IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Noto : Google développe une nouvelle police qui prend en charge 800 langues
Afin d'éradiquer les problèmes d'affichage de caractères

Le , par Coriolan

45PARTAGES

5  0 
Des fois, quand votre ordinateur ou smartphone n’arrive pas à afficher une font, il remplace les caractères par un carré vide. Cette erreur d’affichage de caractères non compatibles sur certains systèmes s’appelle .notdef (not defined) dans le jargon des coders, mais tout le monde l’appelle tofu.

Bob Jung dirige l’équipe de l’internationalisation de Google s’assure que tous les services du moteur de recherche marchent parfaitement partout dans le monde. Son équipe a passé six années à travailler avec les designers de Monotype afin de se débarrasser du tofu dans les appareils de Google, en développant en open source un set de fonts cohésif et multilingues appelé Noto (no more tofu). La nouvelle police de caractères est particulièrement exhaustive, elle prend en charge 800 langues et 110 000 caractères. Google compte mettre à jour Noto au fur et à mesure que de nouveaux caractères sont ajoutés à l’Unicode, comme les récents émojis.


Selon Jung, le projet du Noto a commencé comme une nécessité pour éradiquer le tofu des systèmes d’exploitation Android et ChromeOS développés par Google. Pour cela, il a été nécessaire de mettre en place une nouvelle famille de police pour afficher le texte, les émojis et les symboles de musique dans les appareils tournant sous les OS de Google. Afin de concrétiser le projet, l’équipe a dû faire face à un énorme challenge qui a requis des tests de centaines de langues et le recours à l’expertise de spécialistes pour gérer des scripts spécifiques. « En arabe, par exemple, chaque caractère a quatre glyphes qui changent selon le texte qui vient après. Dans les langues indiques, les glyphes peuvent être réordonnées ou même séparées en deux selon le texte qui les entoure. »

Loin du ‘no more tofu’ dans les langues utilisées dans le quotidien, Noto va permettre de préserver l’histoire et la culture de langues rares grâce à la numérisation. Ainsi la famille de police inclut un système d’écriture utilisé dans plusieurs langues de tribus canadiennes indigènes et parlées par moins de 250 000 personnes. Noto supporte également l’Urdu Nastaliq, un système d’écriture utilisé par 100 millions de personnes, mais qui n’avait pas été supporté dans le web auparavant. L’équipe a même travaillé sur Noto Ogham, afin d’apporter dans le web un alphabet qui date du quatrième siècle et qui se trouve généralement sur les monuments et manuscrits.

Source : Google - Noto

Et vous ?

Qu'en pensez-vous ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de bbalet
Membre actif https://www.developpez.com
Le 14/10/2016 à 23:29
Citation Envoyé par sazearte Voir le message
Apres j'ai pas testé avec des hiéroglyphe ou de l'araméen
Je ne parlais des langues anciennes. Les langues môn-khmers et plus généralement les dérivés du pali et du sanskrit (thaï, lao, khmer, et beaucoup de langues de l'Inde, etc.) sont parlées par des millions de locuteurs.

Je crois qu'il y a une confusion entre stockage et rendu dans ton propos. L'apparition du carré correspond à un caractère non supporté par la police de caractères, c'est un problème de rendu. L'encodage n'a rien à voir avec l'apparition de ce carré, car l'encodage est lié au stockage de la séquence de caractères. Si c'était un problème d'encodage (par exemple, on a stocké une chaîne de caractères dans un encodage quelconque, puis on le lit en pensant que c'est de l'UTF-8 ou l'inverse), il y aurait une séquence de caractères aléatoires, par exemple Céline au lieu de Céline. Par contre, si la police de caractères ne contient pas le caractère é, le moteur de rendu affiche un carré, soit Cline.

Il existe d'autres problèmes de rendu soit liés à la police de caractère soit liés au moteur de rendu (et parfois les deux à la fois). Par exemple les glyphes combinés. Là encore, la séquence est correctement encodée (stockée), mais la police de caractères peut avoir du mal avec certaines combinaisons de caractères. Car avec Unicode, on peut représenter la lettre é comme étant un seul glyphe ou comme deux glyphes combinés (la lettre e et l'accent aigu combinés). Si la police ou le moteur de rendu ne peuvent les afficher, tu verrais alors Ce´line (la lettre puis la diatric) ou plus rarement Ce◌᷃line (j'ai compris qu'il y avait une lettre et une diatric, mais la police ne contient pas de quoi les combiner).

Le but du projet noto est d'adresser les problèmes de rendu.
3  0 
Avatar de bbalet
Membre actif https://www.developpez.com
Le 14/10/2016 à 13:45
Citation Envoyé par sazearte Voir le message
Je comprend toujours pas, les OS sont livrée de base avec pas mal de polices intégré. Si ces polices sont installé dans l'os y'a normalement pas de probleme, suffit de les appelées.
Pas la peine d'évoquer les hiéroglyphes

Une police de caractères contient un certain nombre de "glyphes". Les glyphes peuvent être les lettres de notre alphabet, les lettres grecques, les caractères spéciaux des autres langues européennes (notre c cédille, le double ll espagnol, la lettre a avec un cercle des Suédois å, etc.).

Ensuite, il faut voir plus large, un peu au-delà de l'Europe, il y a la Russie avec son alphabet cyrillique (Ж, Д, etc.). De l'autre côté de la méditerranée, il faut utiliser l'alphabet arabe.

Encore plus loin, les choses se compliquent. Les Japonais utilisent deux syllabaires (hiragana et katakana) pour retranscrire phonétiquement les idéogrammes chinois et les mots étrangers. Ils utilisent également des idéogrammes chinois (ont dit qu'il faut connaître environ 3000 signes chinois pour lire un journal japonais).

La chine justement n'arrive pas à compter le nombre de caractères (idéogrammes) de sa langue. Certains dictionnaires recensent 40000 glyphes différents, un autre 50000.

Et puis il y a les langues de l'Asie du Sud-est et de l'Inde (18 langues officielles ont été reconnues par la Constitution indienne) qui ont été pendant longtemps un peu les oubliées de l'IT... Le Thaï qui utilise un alphabet complexe et particulier, le Khmer, etc. Google a le mérite de s'intéresser à toutes ces langues un peu orphelines - certes par intérêt commercial, mais c'est intéressant quand même.

Tout ça cumulé, ça fait pas mal de caractères (pour être plus précis, on dit en fait des "glyphes": lettres, chiffres, idéogrammes). Peut-être plusieurs millions.

Revenons au support par les fontes (ou polices de caractères) avec une page Wikipedia qui fait un petit état des lieux : https://en.wikipedia.org/wiki/Unicod..._Unicode_fonts

En prenant quelques exemples, tu vois que la fonte "Times New Roman" ne supporte que 3400 glyphes, "Arial" 4000. La variante de Microsoft "Arial Unicode MS" fait mieux avec un peu moins de 40000 glyphes, mais ce n'est toujours pas suffisant pour couvrir tous les cas.

Les autres fontes livrées avec l'OS sont souvent des polices "fun" qui ne s'intéressent guère à la couverture de l'Unicode.

Il y a des cas où ne peut pas se fier à ce qui est installé sur l'OS et surtout pas à la police par défaut. Il faut donc livrer une ou plusieurs polices de caractères qui vont couvrir les cas d'usage de l'application et peut-être en utiliser plusieurs. Afin d'éviter le fameux carré dans le cas où la fonte sélectionnée ne contient pas le glyphe que l'on souhaitait afficher.

Au-delà de l'aspect technique, il y a aussi la qualité du rendu, la lisibilité de la fonte, etc.

Enfin, je pense qu'il faut avoir été confronté à un projet informatique international pour vraiment appréhender les nombreuses problématiques. Si tu n'as travaillé qu'avec quelques langues européennes, c'est assez difficile de s'en rendre compte.
2  0 
Avatar de Lcf.vs
Membre éclairé https://www.developpez.com
Le 08/10/2016 à 10:21
Sympa de partager... mais c'est loin d'être une actu.
1  0 
Avatar de Namica
Membre expérimenté https://www.developpez.com
Le 09/10/2016 à 3:46
Et si pour commencer les sites web assuraient la cohérence des directives meta de set de caractères au moins sur l'entièreté d'une page ?
Et n'utilisaient plus des polices exotiques mal foutues ?
Et si les rédacteurs ne copiaient plus bêtement leur prose depuis un MS-Word vers leur CMS ou leur blog ?
Et si les concepteurs de chartes graphiques se limitaient à des polices courantes et éprouvées en UTF8 selon la cible de leur audience ?

Si non, belle initiative, mais :
Il va falloir vérifier le poids de ces polices.
Et puis il y aura toujours des utilisateurs qui auront réglé leur navigateur pour ne pas télécharger des polices de caractère à partir du web.

Bref, c'est pas gagné. A moins que les OS et les navigateurs ne commencent à intégrer ces polices en standard.

--
Edit
La taille des polices est indiquée sur la page de téléchargement.
0  0 
Avatar de toopac
Modérateur https://www.developpez.com
Le 10/10/2016 à 13:53
Citation Envoyé par sazearte Voir le message
j’espère quelle sera libre de droit.
Elle l'est :
Citation Envoyé par https://www.google.com/get/noto
All Noto fonts are now licensed under OFL.
0  0 
Avatar de bbalet
Membre actif https://www.developpez.com
Le 13/10/2016 à 22:20
Des erreurs d'encodage oui (UTF8/ANSI/Unicode), mais des erreurs de font jamais. Quels idées d'utiliser des polices bizarre sur ces sites web ou ces apps ? Arial et New time Roman suffit amplement non
Il ne s'agit d'utiliser des polices de caractères bizarres, mais aucune police de caractères ne contient tous les caractères de toutes les langues. Il y en a des millions. Un exemple, le khmer (langue parlée du Cambodge): ភាសាខ្មែរ

Essayes avec différentes polices de caractères courantes et tu verras que le rendu n'est pas toujours possible, alors que l'encodage est correct. Si la police par défaut du système n'est pas capable de faire l'affichage de certains caractères, ta tactique ne fonctionne plus et il faut alors utiliser une mega fonte comme noto ou plusieurs fontes en fonction de ce qu'elles supportent.
0  0 
Avatar de Franz22
Nouveau Candidat au Club https://www.developpez.com
Le 14/10/2016 à 0:21
Je comprend toujours pas, les OS sont livrée de base avec pas mal de polices intégré. Si ces polices sont installé dans l'os y'a normalement pas de probleme, suffit de les appelées.
Les polices de base sont sans doute suffisante pour le français et les langues communes, mais nettement insuffisantes pour toutes les langues plus rares ou anciennes (par exemple pas de police pour le hiéroglyphe de base ...).

Par contre ce serait pas mal de ne pas juste recopier les infos données par google mais de vérifier un peu. D'une part la police Noto est loin de couvrir tous les caractères unicodes, et ce n'est pas la seule à tenter de le faire (cf. Unifont par exemple, qui est aussi sous licence libre).
0  0 
Avatar de RyzenOC
Inactif https://www.developpez.com
Le 14/10/2016 à 20:18
Enfin, je pense qu'il faut avoir été confronté à un projet informatique international pour vraiment appréhender les nombreuses problématiques. Si tu n'as travaillé qu'avec quelques langues européennes, c'est assez difficile de s'en rendre compte.
J'ai un programme en python qui tourne en Anglais, Français, Allemand, Russe, Chinois et Japonais et j'ai jamais rencontré de probleme pour ma part.
A l'inverse j'utilise des logiciels en Japonais, Windows m'affiche les caractères jap sans probleme.

Apres j'ai pas testé avec des hiéroglyphe ou de l'araméen, pas sur que Windows prennent nativement en charge des langues morte depuis 2 millénaire, mais sa doit concerné 0.001% des développeurs.

EDIT: Dans mon programme, python m'a généré une 100aine d'encodage et de police différente, mais si python me le fait automatiquement je pense que les autres langages doivent le faire aussi, sa m'a l'air d’être un truc quand même assez basique à gérer par le langage et/ou le compilateur et/ou l'ide.
0  1 
Avatar de RyzenOC
Inactif https://www.developpez.com
Le 13/10/2016 à 22:26
Essayes avec différentes polices de caractères courantes et tu verras que le rendu n'est pas toujours possible, alors que l'encodage est correct. Si la police par défaut du système n'est pas capable de faire l'affichage de certains caractères, ta tactique ne fonctionne plus et il faut alors utiliser une mega fonte comme noto ou plusieurs fontes en fonction de ce qu'elles supportent.
Je comprend toujours pas, les OS sont livrée de base avec pas mal de polices intégré. Si ces polices sont installé dans l'os y'a normalement pas de probleme, suffit de les appelées.
0  2 
Avatar de RyzenOC
Inactif https://www.developpez.com
Le 09/10/2016 à 17:39
Des fois, quand votre ordinateur ou smartphone n’arrive pas à afficher une font, il remplace les caractères par un carré vide. Cette erreur d’affichage de caractères non compatibles sur certains systèmes s’appelle .notdef (not defined) dans le jargon des coders, mais tout le monde l’appelle tofu.
J'ai jamais rencontrer ce genre de probleme pour ma part.

Des erreurs d'encodage oui (UTF8/ANSI/Unicode), mais des erreurs de font jamais. Quels idées d'utiliser des polices bizarre sur ces sites web ou ces apps ? Arial et New time Roman suffit amplement non
D'une manière générale, mes programmes utilise le font par défaut proposé par l'os.

Sinon, c'est une bonne idée de crée un standard avec une police universelle, mais j’espère quelle sera libre de droit.
0  3