Internationalisation (informatique)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Internationalisation (homonymie).

L'internationalisation d'un logiciel (abrégé par i18n) 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 déployé dans différentes langues en ajoutant simplement un nouveau fichier de traduction.

Exemple[modifier | modifier le code]

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).

Capture d’écran d’un logiciel localisé en Italien.

Internationalisation et localisation[modifier | modifier le code]

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 ne pas suffire 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 autre langue. La migration ou la prise en compte d'un jeu de caractères plus étendu peut être nécessaire particulièrement 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. » Les termes sont souvent écrits dans leur forme abrégée i18n (le 18 fait référence au nombre lettre comprises entre le premier i et le dernier n du mot « internationalization » (internationalisation en français), une utilisation inventée par la Digital Equipment Corporation dans les années 1970 et 1980)[2] et L10n pour le mot « 'localization »' (localisation en français), en raison de la longueur des mots.

Certaines entreprises, comme IBM et Sun Microsystems, utilisent le terme « globalization » (globalisation en français) pour définir la combinaison entre l’internationalisation et la localisation[3].

Microsoft[4] définit l’internationalisation comme une combinaison entre l’expression anglaise ' « World-Readiness »' et la localisation. World-readiness est une tâche qui incombe au développeur, et qui permet d’utiliser un produit avec de nombreux caractères d’écriture et de nombreuses cultures (globalisation) tout en séparant les ressources de l’interface utilisateur dans un format localisable (localisibilité, abrégée en L12y)[5].

Ce concept est également connu sous le nom de « NLS » (« National Language Support » ou « Native Language Support » qui signifie Support des Langues Nationales ou Support des Langues Maternelles en français)

Aperçu[modifier | modifier le code]

Le processus d’internationalisation et de localisation
(selon une charte du site web LISA.)

Les efforts d’internationalisation et de localisation doivent converger vers les caractéristiques suivantes :

  • La langue
    • Le texte codé par ordinateur
      • Les alphabets/caractères d’écriture; la plupart des systèmes récents utilise le standard informatique Unicode afin de résoudre les problèmes de codage des caractères.
      • Différents systèmes d’adjectifs numéraux
      • Le système d’écriture de la gauche vers la droite dans les langues européennes (par exemple, l’allemand), de la droite vers la gauche en hébreux et en arabe, et en vertical dans certaines langues asiatiques.
      • La mise en page de textes complexes
      • Les différents traitements de texte, tel que le concept dit de « capitalisation » qui existe dans certains caractères d’écriture mais pas dans tous, les différentes règles de tri des textes, etc.
      • Les formes plurielles dans l’affichage du texte, qui varie selon la langue[6]
    • La saisie du texte
      • L’activation des raccourcis clavier sur tout type de clavier[7]
    • Les représentations graphiques du texte (des documents imprimés, des images en ligne contenant du texte)
    • le son de la voix (Son)
    • Le sous-titrage de films et de vidéos
  • La culture
  • Les conventions écrites
    • Le format de date et d’heure, y compris l’utilisation des différents calendriers
    • Les fuseaux horaires (UTC dans les milieux internationalisés)
    • La mise en forme des nombres (séparateur décimal, ordre de tri des chiffres)
    • Les différences de symboles (par exemple, les guillemets (" "), en anglais, utilisées pour les citations, ou les chevrons (« ») en français).
  • Tout autre aspect du produit ou du service étant soumis à la conformité réglementaire

La distinction entre internationalisation et localisation est subtile mais importante. L’internationalisation est l’adaptation de produits utilisables de manière « potentielle » presque partout, alors que la localisation constitue l’ajout de caractéristiques spéciales destinées à des paramètres régionaux « spécifiques ». L’internationalisation est effectuée une fois sur chaque produit, alors que la localisation est effectuée une fois pour chaque combinaison entre un produit et des paramètres régionaux. Les processus se complètent et doivent être combinés afin d’atteindre l’objectif d’un système fonctionnant à l’échelle mondiale. Les domaines propres à la localisation incluent les caractéristiques suivantes :

Procédure d’affaires pour l’internationalisation de logiciels[modifier | modifier le code]

Afin d’« internationaliser » un produit, il convient de bien vérifier dans les différents marchés dans lequel s’inscrit vraisemblablement votre produit. Les détails tels que la longueur de champ pour les adresses, le format unique pour l’adresse, la capacité à rendre le champ du code ZIP optionnel pour les pays ne disposant pas codes postaux ou le champ de l’état pour les pays ne possédant pas d’états, ainsi que l’introduction de nouveaux flux d’enregistrement qui adhérent aux lois locales ne sont là que des exemples faisant de l’internationalisation un projet complexe[8],[9].

Une approche plus large prend en compte les facteurs culturels concernant, par exemple, l’adaptation de la logique du processus d’affaires ou l’inclusion des aspects individuels et culturels (comportementaux)[10].

Pratique de codage[modifier | modifier le code]

La pratique actuellement en vigueur est destinée aux applications permettant de placer du texte dans des chaînes de ressource, chargées durant l’exécution du programme et selon les besoins. Ces chaînes, stockées dans des fichiers de ressource, sont relativement faciles à convertir. Les programmes sont souvent créés afin de référencer des bibliothèques de ressource qui dépendent des données des paramètres régionaux ayant été sélectionnés. Ceci est possible grâce à une bibliothèque logicielle appelée gettext.

Ainsi, pour obtenir une application qui puisse prendre en charge plusieurs langues, il conviendrait de concevoir l’application qui permettrait de sélectionner le fichier de ressource de la langue correspondante au moment de l’exécution. Les fichiers de ressource sont convertis dans les langues requises. Cette méthode a tendance à devenir spécifique à l’application voire spécifique au fournisseur. Le code nécessaire pour gérer la vérification d’une saisie et de nombreux autres types de données sensibles aux paramètres régionaux doit également supporter les différentes exigences régionales. Les systèmes modernes de développement et d’exploitation incluent des bibliothèques sophistiquées qui offrent un soutien international à ce genre de données.

Difficultés[modifier | modifier le code]

Bien que la traduction de textes existant dans d’autres langues puisse sembler facile, il est plus difficile de conserver les versions parallèles des textes tout au long de la vie du produit. Par exemple, si un message affiché à l’utilisateur est modifié, toutes les versions traduites devront également être modifiées. Il en résulte par la suite un cycle de développement un peu plus long.

De nombreux problèmes de localisation (comme le sens de l’écriture, le tri du texte, etc.) nécessitent une modification plus profonde que la traduction du texte. Par exemple, OpenOffice.org y parvient grâce aux commutateurs de compilation.

Dans une certaine mesure (par exemple pour l’ assurance qualité), l’équipe de développement a besoin de quelqu’un qui comprenne les langues et les cultures étrangères et qui dispose d’une formation technique. Au sein des grands pays où il n’existe qu’une langue ou culture dominante, il est probablement difficile de trouver une telle personne.

L’un des exemples de pièges connus à propos de la localisation est celui de la tentative qu’a faite Microsoft pour garder quelques raccourcis clavier significatifs pour des langues locales. Dans certains programmes (mais pas tous) de la version italien de Microsoft Office, la touche « CTRL + U » (soulignement) a fini par être remplacée par « CTRL + S » (« sottolineato »), plutôt que par la fonction (quasi) universelle « Enregistrer ».

Coûts et bénéfices[modifier | modifier le code]

Dans un contexte commercial, l’avantage de la localisation est l’accès à de nouveaux marchés. Cependant, cela implique des coûts considérables, qui vont bien au-delà de la simple ingénierie. Tout d’abord, le programme doit généralement être remanié pour pouvoir être commercialisé à l’échelle mondiale.

Ensuite, le fait de fournir un pack de localisation pour une langue donnée n’est pas considéré comme un projet sans intérêt. Cela implique l’intervention de rédacteurs techniques spécialisés qui construisent une syntaxe adaptée à la culture, notamment dans le cas de concepts potentiellement complexes, associée à des ressources d’ingénierie permettant de développer et de tester les éléments de localisation. En outre, les opérations commerciales doivent être adaptées afin de gérer la production, le stockage et la distribution des nombreux et différents produits localisés, souvent vendus à des prix différents selon les devises, dans différents environnements réglementaires ainsi que dans différents régimes fiscaux.

Enfin, les ventes, le soutien marketing et technique doit également faciliter leurs opérations dans les nouvelles langues afin d’aider les consommateurs à choisir leurs produits localisés. Mais concernant les populations parlant une langue très peu répandue, il ne faut jamais s’attendre à ce que les produits localisés soient rentables. Même si les populations parlant une langue répandue exigent qu’un produit donné soit localisé, et que la structure interne du produit permette déjà la localisation, le développeur ou éditeur de logiciel concerné manquera sûrement d’espace ou de savoir-faire pour gérer les fonctions complémentaires liées à l’exploitation dans plusieurs langues. Par exemple, Microsoft Windows 7 dispose d’un pack disponible en 96 langues[11].
Une alternative, le plus souvent utilisée par les communautés de logiciels open source, c’est l’auto-localisation par équipes d’utilisateurs finaux et de volontaires. Le projet « K Desktop Environment 3 », par exemple, a été traduit en plus de 100 langues, et le projet KDE Software Compilation 4 est déjà disponible en 68 langues[12]. Toutefois, l’auto-localisation exige que le produit sous-jacent soit d’abord conçu pour financer de telles activités, ce qui représente un effort non négligeable.

Articles connexes[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. Les fichiers .po, utilisés par plusieurs logiciels dont Drupal, permettent ces indications.
  2. « Glossary of W3C Jargon », World Wide Web Consortium (consulté le 2008-10-13)
  3. IBM Globalization web site
  4. Microsoft "Globalization Step-by-Step" guide
  5. MSDN.microsoft.com
  6. GNU.org
  7. Blog.i18n.ro février 2013
  8. « Internationalizing a Product: Product Internationalization 101 » (ArchiveWikiwixArchive.isGoogleQue faire ?). Consulté le 2014-03-12
  9. « International Address Formats », Microsoft Developer Network, Microsoft (consulté le 10 décembre 2013)
  10. Pawlowski, J.M. (2008): Culture Profiles: Facilitating Global Learning and Knowledge Sharing. Proc. of ICCE 2008, Taiwan, novembre 2008. Draft Version
  11. See
  12. For the current list see KDE.org

Notes[modifier | modifier le code]

  • .NET Internationalization: The Developer's Guide to Building Global Windows and Web Applications, Guy Smith-Ferrier, Addison-Wesley Professional, 7 August 2006. ISBN 0-321-34138-4
  • A Practical Guide to Localization, Bert Esselink, John Benjamins Publishing, [2000]. ISBN 1-58811-006-0
  • Lydia Ash: The Web Testing Companion: The Insider's Guide to Efficient and Effective Tests, Wiley, May 2, 2003. ISBN 0-471-43021-8
  • Business Without Borders: A Strategic Guide to Global Marketing, Donald A. DePalma, Globa Vista Press [2004]. ISBN 978-0-9765169-0-3

Liens externes[modifier | modifier le code]