Q : écriture de nouveaux fichiers de locale
Posted in 2006
Topics: Internationalization & Character Sets
Translated from English by DrWatson — View original
Bonjour à tous. Voici le problème : j'ai un client qui souhaite utiliser une application web multilingue sur Informix. Il doit donc utiliser l'encodage utf8 afin de pouvoir stocker des n(var)char provenant de différents jeux de caractères dans la même base de données (latin, cyrillique et éventuellement d'autres). Ma principale préoccupation concerne la prise en charge de l'UTF-8 pour la langue croate. Elle est livrée sur le CD International Language Support, toutes les lettres entrent et sortent correctement, mais le classement (collation) ne fonctionne pas. Évidemment, cela ne fonctionne pas puisqu'il est défini de façon identique au classement en_US, ce qui n'est pas ce qui devrait être le cas (j'ai vérifié les fichiers e01c.lco dans les répertoires en_us et sh_hr : la partie LC_COLLATION est identique octet pour octet !). J'ai donc pensé écrire une nouvelle locale avec la séquence de classement correcte. (Imaginons un instant que je trouve quelqu'un chez IBM pour compiler mon nouveau fichier source « lc » en un fichier objet « lco ».) C'est fastidieux, mais pas vraiment problématique par ailleurs, puisque tout le reste est en place pour le faire. Bien sûr, il y a un problème : je sais comment définir la séquence de classement pour les lettres croates, mais qu'en est-il de toutes les autres ? Comment « ignorer » les autres ? Est-ce seulement possible ? La vraie question serait donc : existe-t-il une documentation sur ce sujet quelque part ? J'ai cherché partout sans succès… Merci à tous.
Avez-vous contacté votre fournisseur de support Informix pour signaler un bug lié à la séquence de classement actuelle ?
Vous avez écrit : « Ma principale préoccupation concerne la prise en charge de l'UTF-8 pour la langue croate. Elle est fournie sur le CD International Language Support ; toutes les lettres entrent et sortent correctement, mais le classement (collation) ne fonctionne pas. » Par quel fichier de l'ILS la prise en charge de l'UTF-8 pour le croate est-elle assurée ? J'y vois le russe, le tchèque et le slovaque, mais pas le croate. Peut-être que ma version de l'ILS est ancienne ? Je crains donc que la langue croate ne soit pas livrée avec l'ILS. Dans ce cas, un ordre de tri incorrect ne constituerait pas un bogue.
Oui, mon collègue l'a fait. Ils disent que ce n'est pas un bogue, mais une demande d'évolution. « scottishpoet » <dryburghj@yahoo.com> a écrit dans le message news:1137673311.807644.4580@o13g2000cwo.googlegroups.com... > avez-vous contacté votre fournisseur de support Informix pour signaler un bogue concernant > la séquence de classement existante ? >
Il se trouve dans le répertoire sh_hr (c'est-à-dire serbo-croate, territoire croate), dans le ou les fichiers gls/lc11/sh_hr/e01c.lc(o). « scottishpoet » <dryburghj@yahoo.com> a écrit dans le message news:1137676548.588271.309640@g14g2000cwa.googlegroups.com... > vous avez dit > > « Ma principale préoccupation concerne la prise en charge de l'UTF-8 pour la langue croate. Elle est livrée > sur > le CD International Language Support, toutes les lettres entrent et sortent sans problème, > mais > le classement (collation) ne fonctionne pas. » > > Par quel fichier de l'ILS la prise en charge du croate en UTF-8 est-elle assurée ? Je > vois le russe, le tchèque et le slovaque, mais pas le croate. Peut-être que j'ai un ancien > ILS ? > > Je crains donc que la langue croate ne soit pas livrée avec l'ILS. Dans ce cas, un ordre de tri incorrect ne constituerait pas un bogue. >
Je viens de vérifier : si vous comparez les fichiers e01c.lco des répertoires en_us et (par exemple) cs_cz, vous constaterez que les définitions LC_COLLATE sont identiques. Idem pour sh_hr. De plus, il n'y a aucune définition de collation dans les fichiers lc correspondants. Le manuel GLS indique : --------------------------------------------- Les locales GLS qui utilisent le jeu de caractères Unicode (UIF-8) prennent en charge la collation Unicode des données NCHAR et NVARCHAR via l'algorithme de collation Unicode ICU. Pour plus d'informations sur cet algorithme, consultez le site Web Unicode à l'adresse http://www.unicode.org/unicode/reports/tr10. --------------------------------------------- La documentation de l'algorithme est assez longue, je ne l'ai pas parcourue en entier, mais pour moi elle ne donne pas les résultats attendus. "scottishpoet" <dryburghj@yahoo.com> a écrit dans le message news:1137676548.588271.309640@g14g2000cwa.googlegroups.com... > vous avez dit > > « Ma principale préoccupation est la prise en charge UTF-8 pour la langue > croate. Elle est fournie sur > le CD International Language Support, toutes les lettres entrent et sortent > correctement, > mais > la collation ne fonctionne pas. » > > Par quel fichier de l'ILS la prise en charge du croate en UTF-8 est-elle assurée ? Je > vois le russe, le tchèque et le slovaque, mais pas le croate. Peut-être que mon > ILS est ancien ? > > Je crains donc que la langue croate ne soit pas livrée avec > l'ILS. Dans ce cas, un ordre de tri incorrect ne constituerait pas un bogue. >