Internationalisation (informatique)
|
|
Cet article ou cette section est à actualiser.
Des passages de cet article sont obsolètes ou annoncent des événements désormais passés. Améliorez-le ou discutez des points à vérifier.
|
|
|
Cet article ne cite pas suffisamment ses sources (août 2012).
Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ». (Modifier l'article)
|
Sommaire |
Exemple [modifier]
L'internationalisation d'un logiciel consiste à préparer son adaptation à des langues et des cultures différentes. Contrairement à la régionalisation, qui nécessite surtout des compétences en langues (il s'agit de traduire), l'internationalisation est un travail essentiellement technique mené par des programmeurs. Le but est de produire un programme qui puisse être immédiatement deployé dans différentes langues en ajoutant simplement un nouveau fichier de traduction.
Par exemple, le programme C ainsi rédigé n'est pas localisé :
printf("Fatal error: %s\n", msg);
Pour traduire le message, il faudrait éditer le code source et modifier la chaîne de caractère.
Par contre, la version suivante du même programme est localisée, 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 courant :
printf(gettext("Fatal error: %s\n"), msg);
gettext utilise comme clé (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), ou bien se baser sur un paramètre de configuration dynamique (par exemple, la méthode I18n.translate d'une application Ruby On Rails).
Internationalisation et localisation [modifier]
L'internationalisation est un prérequis de la localisation. Elle consiste à séparer, dans le code source d'un programme, ce qui est indépendant de la langue et de la culture de ce qui en est dépendant (généralement, dans des fichiers appelés tables de traduction). Mais l'internationalisation ne nécessite pas qu'un travail sur les messages texte. Il faut aussi parfois permettre de changer les codes couleur (dont la signification peut changer selon les cultures), les graphiques (dont les noms des icônes, certaines icônes pouvant de plus contenir du texte écrit à traduire), le format des dates ou des nombres, la direction de l'écriture (de droite à gauche en arabe, par exemple), la taille des éléments graphiques (un texte en allemand est plus long qu'en anglais, ce qui peut modifier une mise en page, etc.), jusqu'à la façon d'accorder des mots au pluriel après un nombre (on écrira « 0 tâche fille » en français, mais "0 children processes" en anglais[1]).
L'internationalisation est donc l'ensemble des mécanismes techniques qui permettent à l'utilisateur final de choisir la langue de son interface et d'aboutir à un résultat viable, linguistiquement parlant. Elle peut cependant être insuffisante pour traiter « n'importe quelle langue », du fait que le programme utilise un jeu de caractères limité, ou certaines polices de caractères spécifiques, ou encore parce que l'utilisateur ne dispose pas des bons claviers pour la saisie de données dans telle ou telle langue.
En particulier, la migration ou la prise en compte d'un jeu de caractères plus étendu peut être nécessaire pour mener à bien une internationalisation. Des jeux étendus sont proposés, d'une part dans la famille ISO-2022, et d'autre part sous forme d'unicode, avec en particulier UTF-8/UTF-16. Cette étape, plus ou moins indépendante de l'internationalisation (elle peut se faire en même temps, avant ou après) est appelée « multilingualisation. »
On abrège souvent internationalization en i18n car, en anglais, comme en français, dix-huit lettres séparent la première lettre du mot (i) de la dernière (n). De même pour localization avec l10n.
Articles connexes [modifier]
Notes et références [modifier]
- Les fichiers .po, utilisés par plusieurs logiciels dont Drupal, permettent ces indications.
Lien externe [modifier]
- (en) Introduction to i18n