Je travaille pour une entreprise qui a commencé à intégrer des systèmes informatiques embarqués dans nos produits que nous fabriquons. Nous avons une gamme assez large de produits et ils sont distribués à travers le monde. De plus, nous avons conçu quelques cartes intégrées qui peuvent servir à plusieurs fins en fonction du micrologiciel qui a été flashé sur le système. De cette façon, nous n'avons pas à repenser notre matériel informatique pour nos différents produits - tout ce que nous avons à faire est de réécrire la couche de micrologiciel pour répondre aux besoins spécifiques du produit.
En raison de ces limitations matérielles, le changement de notre matériel prend un acte de congrès, mais l'écriture de nouveaux logiciels est beaucoup plus simple.
L'un de nos produits a une nouvelle exigence que nous n'avons pas eu à implémenter auparavant, qui est le besoin de texte saisi par l'utilisateur.
Actuellement, nous avons pu stocker du texte international dans des ressources et seuls les caractères de police nécessaires sont compilés en images bitmap. Cela signifie que nous avons été en mesure de stocker des langues hautement idéographiques comme le texte chinois et japonais dans un espace minimal, car nous n'utilisons qu'un très faible pourcentage de l'ensemble des langues.
Étant donné que ce nouveau produit nécessitera que nos utilisateurs saisissent du texte, nous devrons implémenter un jeu de caractères étendu. En tant que développeur PC principalement, je connais assez bien ASCII, Unicode, UTF-8, etc. pour stocker les données de police.
Ma direction espère qu'il existe un jeu de caractères minimal qui peut être utilisé pour les langues hautement idéographiques. Je crois qu'il y a un alphabet phonétique pour le japonais (le Hiragana?) Existe-t-il également des alphabets phonétiques similaires pour les langues chinoise, coréenne, vietnamienne, etc. Je suis sûr que la réponse à cette question est "absolument, non", mais c'est une question qui mérite d'être posée.
La direction a défini une exigence "souple" selon laquelle nous ne pouvons avoir qu'un jeu de caractères limité d'environ 8 000 caractères couvrant toutes les principales langues couramment utilisées. Si cela n'est pas possible, nous devons rechercher une autre forme de méthode alternative pour répondre à nos besoins en fonction de nos ressources matérielles limitées.
Je suis sûr que ce problème a dû être résolu auparavant. Quelqu'un a-t-il de l'expérience dans ces contraintes tout en ayant besoin d'un système complet de codage de polices et de caractères? Si oui, quelles pépites de sagesse pouvez-vous offrir?
Réponses:
Ceci est une excellente question.
Pour répondre à votre réponse une langue à la fois;
vietnamien
Le vietnamien n'utilise plus de caractères idéographiques, mais son ensemble latin est assez large: regardez l'exemple pour voir combien de diacritiques il utilise:
La raison en est que chaque syllabe vietnamienne a l'une des six marques de tonalité qui ont un impact sur la prononciation - en plus d'avoir un glyphe de consonne non standard et six voyelles non standard.
Unicode compose des marques de tonalité sur les voyelles; si vous avez la capacité de composer des glyphes, vous n'aurez besoin que de 13 glyphes supplémentaires pour le vietnamien, mais sinon, vous aurez besoin de 1 consonne supplémentaire + 12 voyelles * 6 tons + 6 nouvelles voyelles sans ton = 79 glyphes supplémentaires , en downcase et majuscule.
coréen
Le coréen est une mauvaise nouvelle. Le coréen est écrit à travers un alphabet appelé Hangul , qui, tout en étant techniquement un alphabet de seulement 68 lettres (appelé jamo), est en fait écrit en blocs de la taille d'une syllabe, construit à partir de jamo.
Un exemple de l'apparence du texte coréen:
Unicode a 11 172 caractères de bloc terminés - mais si vous êtes prêt à coder la logique pour composer vous-même les «blocs» finaux, vous pouvez économiser considérablement sur le jeu de caractères.
Fondamentalement, toutes les syllabes peuvent être divisées en deux catégories - consonne + voyelle et consonne + voyelle + finale, où finale peut être une voyelle, une consonne ou un composite. Les syllabes CV sont construites avec C à gauche et V à droite; Les consonnes CVF sont composées d'un bloc CV en haut (de gauche à droite) et d'une finale en bas.
Donc, fondamentalement, vous avez besoin de:
pour un total de 108 symboles . (Je ne suis pas absolument sûr qu'il n'y ait pas de «ligatures» en coréen, de sorte que parfois un bloc construit semble différent de la combinaison de composants, mais c'est le meilleur que nous aurons pour l'instant).
Japonais
Comme vous l'avez bien remarqué, le japonais a un alphabet phonétique - mais en fait, pas seulement un, mais deux! Hiragana et Katakana sont des syllabaires, tous deux avec 48 des mêmes syllabes, mais utilisés dans des contextes différents (katakana est utilisé pour les mots étrangers, hiragana est utilisé pour la grammaire).
Malheureusement (pour nos besoins), le japonais est presque impossible à écrire complètement en utilisant uniquement ces deux alphabets - les caractères chinois ou kanji , comme ils sont connus dans ce contexte, sont essentiels à tout texte japonais.
Exemple d'écriture obligatoire:
Outre les kanji, vous aurez besoin de 103 glyphes pour mapper deux alphabets phonétiques + 7 kanji communs qui n'existent pas en chinois.
Ponctuation CKJ
Pas un expert sur celui-ci, mais les chinois et les japonais utilisent la ponctuation classique d'Asie de l'Est. Unicode possède 64 symboles dédiés à la ponctuation et aux symboles CJK.
chinois
Il nous reste donc 7631 caractères dans notre «budget». Sera-ce suffisant pour couvrir les caractères chinois?
Avec plus de 100 000 caractères, il est pratiquement impossible de couvrir entièrement le jeu de caractères chinois, le sous-jeu activement utilisé est beaucoup plus petit. 2000-3000 caractères seraient suffisants pour l'alphabétisation générale (HSK, test du chinois mandarin semblable au TOEFL, nécessite la connaissance de 2800 caractères pour son plus haut niveau, HSK Advanced), 4000-5000 caractères suffisent pour une personne instruite.
En gardant à l'esprit qu'il existe des caractères simplifiés et traditionnels (les premiers sont utilisés en RPC, les derniers - à Taiwan), qui diffèrent pour beaucoup de caractères, les 7600 symboles restants, je dirais, suffiraient à couvrir la plupart des cas d'utilisation pour les deux jeux de caractères.
N'hésitez pas à demander si vous avez des questions!
la source