http://ru.orientpalms.com

  • Dites, je cherche les listes (par langue) des caractères/glyphes courants utilisés dans les langues mondiales majeures.

    Pour les curieux : c’est pour faire du « subsetting » sur mesure de webfonts, pour plein de pays (>15). Une idée ?

    Pour l’instant, j’ai trouvé des choses chez font squirrel. C’est très bien, mais j’ai des doutes sur la fiabilité.

    • Je n’irais pas faire du subsetting précis pour chaque langue, sinon tu vas retomber dans les problèmes historiques des multiples variantes régionales d’ISO 8859 : multilinguisme problématique (tu veux écrire « as the French say : “qui vole un œurf vole un bœuf” » dans un article du site anglais, et hop, le « œ » est tout pété – private joke), noms étrangers qui utilisent des caractères qui ne sont pas dans ton subset (tu parles de « Håkan Juholt » dans un article en français, et le « å » apparaît tout moche parce que tu ne l’as pas conservé dans le subset de la fonte du site français), et à l’heure d’Unicode l’habitude des gens de détourner les caractères d’une autre langue pour faire des effets de signature graphique…

      Sur Orient Palms, il se trouve justement que j’ai 15 langues différentes, et que j’utilise un certain nombre de fontes différentes, justement pour éviter d’avoir une énorme police Unicode « complète » à charger… Mais j’ai vraiment limité les variantes :
      – il y a la police avec les caractères latins (tous ceux dessinés par le typographe, ça me couvre de l’espagnol à l’allemand en passant par le français et le suédois… Comprendre que j’ai ici une seule version de la police de caractère pour 9 langues différentes :
      http://www.orientpalms.com
      http://fr.orientpalms.com
      http://tr.orientpalms.com
      http://pt.orientpalms.com
      http://es.orientpalms.com
      http://de.orientpalms.com
      http://it.orientpalms.com
      http://sv.orientpalms.com
      http://nl.orientpalms.com

      – il y a le fichier du même dessin de caractère avec les caractères cyrilliques et latins (grosso modo deux fois plus lourde),
      http://ru.orientpalms.com

      – il y a encore un fichier du même dessin de caractère, mais avec les dessins grecs et latins (donc égalemment plus lourde que le latin seul),
      http://el.orientpalms.com
      (uniquement sur les sous-titres, les gros titres restent en caractères latins ici)

      – il y a un fichier pour les caractères arabes (la fonte contient les caractères latins les plus courants),
      http://ar.orientpalms.com

      – et pour le fun, dans la version coréenne j’ai une (énorme - 1Mo) fonte dédiée, tellement grosse que soit c’est une idiotie soit je compte sur le fait que les coréens ont la meilleure connexion du monde…
      http://ko.orientpalms.com

      – je n’utilise pas de webfonts pour le chinois, ni pour le japonais, parce que là aussi, ça ferait des polices énormes (et on a un traffic pas négligeable sur la Chine, alors je soigne un peu plus l’expérience utilisateur sur cette version).

      Par ailleurs, comme je l’ai déjà documenté ici, je n’utilise plus que WOFF et WOFF2, qui sont bien compactés.

      Un des aspects à prendre en compte :
      – pas question pour moi de gérer 15 fichiers de police différents, c’est le meilleur moyen de se planter dans son organisation et ses mises à jour (surtout si tu t’amuses à modifier des dessins de caractères, je te dis pas s’il faut le reproduire ensuite dans 15 fontes différentes…) ; et comme généralement on a besoin de plusieurs fontes pour faire quelque chose de joli, on multiplie encore le nombre de fichiers (sur Orient Palms, j’ai 2 webfontes dans ma maquette) ;
      – je préfère éviter le recours aux options CSS de range Unicode pour gérer par exemple Grec et Latin avec deux fichiers de polices différents qui se complèteraient : d’abord parce qu’il faudrait encore tester la compatibilité du truc (avec les Webfonts et Unicode, je me méfie très lourdement des implémentations dans les brouteurs, qui ont toujours été historiquement merdiques) ; surtout parce que je préfère charger un fichier plutôt que deux.

      Après, perso, je préfère généralement n’utiliser que des polices de titraille, j’évite les webfonts sur le texte courant (problèmes de rendus et de lisibilité, temps de chargement des polices sur du texte qu’on devrait pouvoir lire immédiatement, et besoin de 3 voire 4 fichiers juste pour assurer l’affichage gras/italique…). Ça limite énormément les problèmes de subsetting par langue, parce que les caractères hors-subset et le multilinguisme, c’est beaucoup plus rare (genre mettre une citation originale en cyrillique dans un article en anglais, ça se fait, mais dans le titre c’est beaucoup plus rare).

    • Sinon, si tu tiens à tester pour chaque langue, il y a une astuce que j’avais faite pour ajouter des langues à mon #plugin #SPIP de détection de langues : j’avais besoin de connaître la fréquence des séries de 3 lettres dans quelques langues manquantes dans le script d’origine.

      Du coup je suis allé sur le projet Gutenberg, j’ai récupéré quelques gros romans dans la langue qui me manquait, j’ai collé tous les textes (bruts) dans un fichier, et hop j’ai fait une moulinette qui a compté les séries de 3 lettres et m’a retourné un tableau de leurs fréquences respectives. Tu peux facilement faire la même chose pour connaître la fréquence des caractères utilisés dans une langue… (mais voir mon message précédent, je ne pense pas que ce soit une bonne idée).

    • Roh, merci pour tout ces détails, ça donne à réfléchir. Je savais bien que sur seenthis j’allais avoir de la matière :)

      Le contexte chez mon client est légèrement différent : sites e-commerce assez ciblés (contenus peu ou pas littéraire), et grosse préoccupation webperf. Il est très improbable que l’on ait à utiliser des caractères sortant du subset.

      Comme tu le soulignes, l’enjeu lors du subsetting, est de décider ce qu’on inclue ou non...

      Pour l’instant, j’ai un générateur « toutautomatisé » (utilisant https://github.com/ecomfe/fontmin), qui prend en entrée un ensemble de fichiers ttf (la Roboto et toutes ses variantes, dans mon cas) et une liste de fichiers texte UTF8 (1 par pays), contenant les caractères à utiliser (en faisant gaffe aux caractères invisibles).

      Il produit en sortie les formats attendus (woff2, woff, etc...) rangés dans des répertoires qui vont bien. Bien sûr, l’approche ne vaut que pour les sites « européens » (pour simplifier), je ne me suis pas attaqué encore au site chinois.

      L’avantage d’avoir tout automatisé, est qu’on pourra changer rapidement le subsetting sans que ce soit la plaie.
      Je croise les doigts, et j’espère bien que ma solution tiendra la route.

      Au départ, j’ai cherché à comprendre comment faisait https://fonts.google.com pour proposer des webfonts aussi légères. Grosso modo, en plus des optimisations classiques ils génèrent plus de 30 variantes par fonte, optimisées sur mesure et servies dynamiquement selon l’OS et le User-agent. Cet aspect n’est bien sûr pas documenté, et je n’ai pas le temps, les compétences ni le courage de faire la rétro-ingénierie.