Internationalisation logicielle : Unicode, ICU et CLDR
Technologies de la traduction · Master 1
Externaliser les chaînes, gérer pluriels, formats de date et encodages avant la localisation.
Introduction
L'internationalisation (i18n) est la conception d'un logiciel de façon à pouvoir l'adapter à plusieurs langues et régions sans modifier le code. La localisation (l10n) est ensuite l'adaptation à un marché précis. Une mauvaise i18n rend la localisation coûteuse, voire impossible.
Les pratiques clés sont l'externalisation des chaînes de texte, l'usage d'Unicode (UTF-8) pour les caractères, et le recours à des bibliothèques de formatage (ICU) fondées sur les données de CLDR, le référentiel Unicode des conventions régionales.
Pour un traducteur, ces notions expliquent des contraintes concrètes : variables, pluriels, concaténations interdites et expansion du texte.
Objectifs d'apprentissage
- Distinguer internationalisation et localisation
- Expliquer l'externalisation des chaînes et ses règles
- Décrire le rôle d'Unicode, d'ICU et de CLDR
- Repérer les erreurs de conception qui bloquent la localisation
Concepts clés
- i18n et l10n
- L'internationalisation prépare le produit ; la localisation produit les versions adaptées (langue, formats, conventions, parfois contenus et images).
- Externalisation des chaînes
- Les textes sont sortis du code dans des fichiers de ressources. On évite de concaténer des fragments, car l'ordre des mots varie selon les langues. On utilise des variables nommées.
- Unicode et encodage
- Unicode attribue un code à chaque caractère ; UTF-8 en est l'encodage dominant. Il garantit l'affichage correct des accents, des alphabets non latins et des écritures de droite à gauche.
- CLDR et pluriels
- Le Common Locale Data Repository fournit formats de date, de nombre, de devise et règles de pluriel par langue. Certaines langues ont plus de deux catégories plurielles.
Conclusion
La localisation réussie dépend d'une internationalisation soignée : chaînes externalisées, Unicode et formats fondés sur les locales.
Pour l'examen, retenez les définitions i18n/l10n et les règles de conception d'un message traduisible.
Cartes
- Que signifie i18n ?
- Internationalisation : 18 lettres entre le « i » et le « n ». Elle prépare le logiciel à plusieurs langues.
- Que signifie l10n ?
- Localisation : adaptation d'un produit à une langue et à un marché cible.
- Pourquoi éviter la concaténation de chaînes ?
- L'ordre des mots et les accords diffèrent d'une langue à l'autre ; une phrase doit rester entière avec des variables.
- Qu'est-ce qu'UTF-8 ?
- Un encodage de caractères Unicode de longueur variable, très répandu sur le web.
- Que contient le CLDR ?
- Des données de formats de date, nombres, monnaies, noms de langues et règles de pluriel par locale.
- Pourquoi les pluriels posent-ils problème ?
- Les langues n'ont pas toutes la même règle ; le russe ou l'arabe ont plusieurs catégories, le français traite 0 et 1 comme singulier.
- Quel est l'effet de l'expansion du texte ?
- Le texte traduit peut être nettement plus long (de l'anglais vers l'allemand, par exemple), ce qui impose des interfaces flexibles.
- Qu'est-ce qu'une locale ?
- Une combinaison langue-région (p. ex. fr-CH) qui détermine les conventions d'affichage.
- Pourquoi utiliser la locale fr-CH plutôt que supposer des conventions françaises ?
- Les conventions régionales (nombres, monnaie, dates) peuvent différer entre fr-CH et fr-FR ; on s'appuie sur les données de la locale.
Glossaire
- Chaîne externalisée
- Texte placé hors du code dans un fichier de ressources.
- Locale
- Identifiant de langue et de région.
- ICU
- Bibliothèque de référence pour l'internationalisation, fondée sur Unicode et CLDR.
- Pseudo-localisation
- Test remplaçant les chaînes par des variantes accentuées et allongées pour détecter les problèmes d'i18n.
- Écriture bidirectionnelle
- Prise en charge de langues écrites de droite à gauche comme l'arabe ou l'hébreu.
- Variable (placeholder)
- Marque de substitution dans une chaîne remplacée à l'exécution.
- Collation
- Règles de tri des chaînes selon la langue.