Internationalisation de logiciel
Un article de Wikipédia, l'encyclopédie libre.
L'internationalisation d'un logiciel consiste à le préparer à la régionalisation ((en) localization), c'est-à-dire à l'adaptation à des langues et des cultures différentes. Contrairement à la régionalisation, qui nécessite surtout des compétences en langues, l'internationalisation est un travail essentiellement technique, mené par des programmeurs.
Par exemple, un programme C ainsi rédigé :
printf("Fatal error: %s\n", msg);
n'est pas internationalisé. Pour traduire le message, il faudra éditer le code source. Au contraire,
printf(gettext("Fatal error: %s\n"), msg);
est internationalisé (grâce à la bibliothèque gettext) : le programme va chercher dans ses fichiers de régionalisation (localization) une chaîne de caractères correspondant à 'Fatal error: %s', et ce pour la langue de l'utilisateur.
gettext utilise comme clé, comme index dans les fichiers de localisation, la version par défaut du message. D'autres environnements de programmation peuvent utiliser, par exemple, un numéro (ce que faisait Mac OS).
L'internationalisation ne nécessite pas qu'un travail sur les messages. Il faut aussi souvent permettre de changer les couleurs (dont la signification peut changer selon les cultures), les graphiques, le format des dates ou des nombres, la direction de l'écriture (de droite à gauche en arabe), la taille des éléments graphiques (un texte en allemand est plus long qu'en anglais, etc).
Il peut être judicieux de concevoir un programme pour fonctionner avec une forme d'unicode en particulier UTF-8/UTF-16, afin de le rendre plus facilement internationalisable.
On abrège souvent internationalisation en i18n car, en anglais, il y a dix-huit lettres dans le mot, entre le i et le n. De même pour localization avec l10n.
[modifier] Voir aussi
[modifier] Liens externes
- (en) La bibliothèque gettext, très utilisée pour l'internationalisation des logiciels libres
- (en) Internationalisation de Python, pour le langage Python
- (en) Introduction to i18n