# Internationalisation et localisation

En informatique, l'internationalisation et la localisation sont des moyens d'adapter des logiciels informatiques dans différentes langues, en prenant en compte les particularités régionales et exigences techniques d'un lieu cible. L'internationalisation est le processus de conception d'une application logicielle afin de l'adapter à différentes langues et régions sans modifications techniques. La localisation est le processus d'adaptation d'un logiciel internationalisé pour une région ou une langue spécifique en traduisant le texte et en ajoutant des composants spécifiques aux paramètres régionaux. La localisation (qui est parfois effectuée plusieurs fois, pour différents paramètres régionaux) utilise l'infrastructure ou la flexibilité fournie par l'internationalisation (qui est idéalement effectuée une seule fois avant la localisation, ou en tant que partie intégrante du développement en cours).

## Appellation

Les termes sont fréquemment abrégés en numéraux i18n (où 18 représente le nombre de lettres entre le premier i et le dernier n du mot internationalisation, un usage inventé par Digital Equipment Corporation dans les années 1970 ou 1980)$^,$ et L10n pour la localisation, en raison de la longueur des mots$^,$. Certains écrivains ont capitalisé ce dernier acronyme pour aider à distinguer les deux.
Certaines entreprises, comme IBM et Oracle, utilisent le terme mondialisation, g11n, pour combiner internationalisation et localisation (du mot globalization en anglais). on parle aussi de " glocalisation " (un mot-valise de mondialisation et localisation ).
Microsoft définit l'internationalisation comme une combinaison de préparation au monde et de localisation. La préparation au monde est une tâche de développeur qui permet à un produit d'être utilisé avec plusieurs scripts et cultures (mondialisation) et de séparer les ressources de l'interface utilisateur dans un format localisable (localisabilité, abrégé en L12y)$^,$.
Hewlett-Packard et HP-UX ont créé un système appelé « National Language Support » ou « Native Language Support » (NLS) pour produire des logiciels localisables.

## Portée

Selon Software without frontiers, les aspects de conception à prendre en compte lors de l'internationalisation d'un produit sont « l'encodage des données, les données et la documentation, la construction du logiciel, la prise en charge du matériel informatique, l'interaction avec l'utilisateur » ; tandis que les principaux domaines de conception à considérer lors de la fabrication d'un produit entièrement internationalisé à partir de zéro sont « l'interaction avec l'utilisateur, la conception des algorithmes et les formats de données, les services logiciels, la documentation ».
La traduction est généralement la composante la plus longue de la localisation linguistique. Cela peut inclure :
* Pour le film, une vidéo et une bande-son, la traduction de paroles ou de paroles de musique, souvent à l'aide de doublages ou de sous-titrages.
* La traduction de textes pour les documents imprimés, les supports numériques (y compris éventuellement les messages d'erreur et la documentation).
* La modification éventuelle d'images et de logos contenant du texte pour contenir des traductions ou des icônes génériques.
* Les longueurs de traduction différentes et les différences de tailles de caractères (par exemple entre les lettres de l'alphabet latin et les caractères chinois) peuvent causer des problèmes de mise-en-page dans une langue, là où elle sera parfaite dans une autre.
* La prise en compte des différences de dialecte, de registre ou de variété.
* Les conventions d'écriture comme :
** Le formatage des nombres (en particulier séparateur décimal et l'espace entre les chiffres).
** Le format de date et d'heure, nécessitant éventuellement l'utilisation de différents calendriers.

### Données locales standard

Les logiciels informatiques peuvent rencontrer des différences au-delà de la simple traduction de mots et de phrases car les programmes informatiques peuvent générer du contenu de manière dynamique. Ces différences peuvent devoir être prises en compte par le processus d'internationalisation lors de la préparation de la traduction. Beaucoup de ces différences sont si régulières qu'une conversion entre les langues peut être facilement automatisée. Le référentiel de données Common Locale par Unicode fournit une collection de ces différences. Ses données sont utilisées par les principaux systèmes d'exploitation, notamment Microsoft Windows, MacOS et Debian, ainsi que par de grandes sociétés Internet ou des projets tels que Google et la Wikimedia Foundation. Des exemples de telles différences comprennent :
* Les différents scripts dans différents systèmes d'écriture utilisent différents caractères - un ensemble différent de lettres, de syllogrammes, de logogrammes ou de symboles. Les systèmes modernes utilisent la norme Unicode pour représenter de nombreuses langues différentes avec un seul codage de caractères.
* La direction d'écriture est de gauche à droite dans la plupart des langues européennes, de droite à gauche en hébreu et en arabe, ou les deux dans les scripts boustrophédons, et éventuellement verticale dans certaines langues asiatiques.
* La disposition de texte complexe, pour les langues où les caractères changent de forme en fonction du contexte.
* La capitalisation existe dans certains scripts et pas dans d'autres.
* Les différentes langues et systèmes d'écriture ont des règles de collation différentes.
* Les différentes langues ont des systèmes numériques différents, qui pourraient avoir besoin d'être pris en charge si les chiffres arabes ne sont pas utilisés.
* Les différentes langues ont des règles de pluralisation différentes, ce qui peut compliquer les programmes qui affichent dynamiquement du contenu numérique. D'autres règles de grammaire peuvent également varier, par exemple le génitif.
* Les différentes langues utilisent des signes de ponctuation différents (par exemple, citation de texte à l'aide de double-quotes (" ") en anglais, ou guillemets (« ») en français).
* Les raccourcis clavier ne peuvent utiliser que les boutons de la disposition du clavier pour laquelle la localisation est effectuée. Si un raccourci correspond à un mot dans une langue particulière (par ex. Ctrl-S pour « enregistrer » en anglais, to save), il peut être nécessaire de le modifier.

### Conventions nationales

Différents pays ont des conventions économiques différentes, y compris des variations dans :
* Tailles de papier
* Systèmes de diffusion télévisuelle et stockage d'informations populaires
* Formats des numéros de téléphone
* Formats d'adresse postale, codes postaux et choix des services de livraison
* Monnaie (symboles, positions des marqueurs monétaires et montants raisonnables en raison de différents historiques d'inflation ) - les codes ISO 4217 sont souvent utilisés pour l'internationalisation
* Système d'unité
* Formats des piles
* Normes de tension et de courant
En particulier, les États-Unis et l'Europe diffèrent dans la plupart de ces cas.
Des services tiers spécifiques, tels que des cartes en ligne, des bulletins météorologiques ou des fournisseurs de services de paiement, peuvent ne pas être disponibles dans le monde entier auprès des mêmes opérateurs, voire pas du tout.
Les fuseaux horaires varient à travers le monde, et cela doit être pris en compte si un produit n'interagissait à l'origine qu'avec des personnes sur un même fuseau horaire. Pour l'internationalisation, le temps universel coordonné est souvent utilisé en interne, puis converti en fuseau horaire local pour l'affichage.
Différents pays ont des exigences légales différentes, ce qui signifie par exemple :
* La conformité réglementaire peut nécessiter une personnalisation pour une juridiction particulière, ou une modification du produit dans son ensemble, comme :
** Conformité à la loi sur la confidentialité
** Clauses de non-responsabilité supplémentaires sur un site internet ou un emballage
** Différentes exigences d'étiquetage des consommateurs
** Conformité aux restrictions à l'exportation et aux réglementations sur le chiffrement
** Respect d'un régime de censure sur Internet ou de procédures d'assignation
** Conditions d'accessibilité
** Collecte de différentes taxes, telles que la taxe sur la vente, la taxe sur la valeur ajoutée ou les droits de douane
** Sensibilité aux différentes questions politiques, comme les conflits de dénomination géographique et les frontières contestées figurant sur les cartes
* Les numéros attribués par le gouvernement ont différents formats (tels que passeports, numéros de sécurité sociale et autres numéros d'identification nationaux )
La localisation peut également prendre en compte des différences de culture, telles que :
* Les jours fériés locaux
* Les conventions relatives aux noms et titres personnels
* L'esthétique
* La compréhensibilité et la pertinence culturelle des images et du symbolisme des couleurs
* L'ethnicité, les vêtements et statut socio-économique des personnes et architecture des lieux représentés
* Les coutumes et conventions locales, telles que les tabous sociaux, les religions locales populaires ou les superstitions telles que les groupes sanguins dans la culture japonaise par rapport aux signes astrologiques dans d'autres cultures

## Processus opérationnel pour l'internationalisation des logiciels

Afin d'internationaliser un produit, il est important d'examiner l'ensemble des marchés sur lesquels le produit entrera vraisemblablement.
Des détails tels que la longueur du champ pour les adresses, le format unique de l'adresse, la possibilité de rendre le champ de code postal facultatif pour adresser les pays qui n'ont pas de code postal ou le champ d'état pour les pays qui n'ont pas un système étatique, ne sont que quelques exemples qui font de l'internationalisation un projet complexe$^,$.
Une approche plus large prend en compte les facteurs culturels concernant par exemple l'adaptation des méthodes commerciales ou l'inclusion des aspects culturels (comportementaux) individuels$^,$.
Déjà dans les années 1990, des entreprises comme Bull utilisaient la traduction automatique (Systran) à grande échelle, pour toutes leurs activités de traduction : les traducteurs humains s'occupaient de la pré-édition (rendant l'entrée lisible par la machine) et de la post-édition.

## Ingénierie

Tant dans la réinvention d'un logiciel existant que dans la conception d'un nouveau logiciel internationalisé, la première étape de l'internationalisation consiste à diviser chaque partie potentiellement dépendante des paramètres régionaux (que ce soit du code, du texte ou des données) en un module distinct. Chaque module peut alors soit s'appuyer sur une bibliothèque / dépendance standard, soit être remplacé indépendamment selon les besoins pour chaque paramètre régional.
La norme actuelle est que les applications placent du texte dans des chaînes de ressources qui sont chargées pendant l'exécution du programme selon les besoins. Ces chaînes, stockées dans des fichiers de ressources, sont relativement faciles à traduire. Les programmes sont souvent conçus pour référencer les bibliothèques de ressources en fonction des données locales sélectionnées.
Le stockage des chaînes traduisibles et traduites est parfois appelé un catalogue de messages car les chaînes sont appelées messages. Le catalogue comprend généralement un ensemble de fichiers dans un format de localisation spécifique et une bibliothèque standard pour gérer ce format. Une bibliothèque de logiciels et un format qui facilitent cela est gettext .
Ainsi, pour qu'une application prenne en charge plusieurs langues, il faudrait concevoir l'application pour sélectionner le fichier de ressources linguistiques approprié lors de son exécution. Le code requis pour gérer la vérification de la saisie des données et de nombreux autres types de données sensibles aux paramètres régionaux doivent également prendre en charge des exigences locales différentes. Les systèmes de développement et les systèmes d'exploitation modernes incluent des bibliothèques sophistiquées pour la prise en charge internationale de ces types, voir également les données locales standard ci-dessus.
De nombreux problèmes de localisation (par exemple, direction d'écriture, tri de texte) nécessitent des changements plus profonds dans le logiciel que la traduction de texte. Par exemple, OpenOffice.org y parvient avec des commutateurs de compilation.

## Processus

Une méthode de mondialisation comprend, après la planification, trois étapes de mise en œuvre : l'internationalisation, la localisation et l'assurance qualité.
Dans une certaine mesure (par exemple pour l'assurance qualité), les équipes de développement comprennent une personne qui gère les étapes de base/centrales du processus, qui permettent ensuite toutes les autres. Ces personnes comprennent généralement des langues et des cultures étrangères et ont des connaissances techniques. Des rédacteurs techniques spécialisés sont nécessaires pour construire une syntaxe culturellement appropriée pour les concepts éventuellement compliqués, couplée à des ressources d'ingénierie pour déployer et tester les éléments de localisation.
Une fois correctement internationalisés, les logiciels peuvent s'appuyer sur des modèles de localisation plus décentralisés : les logiciels libres et open source reposent généralement sur l'auto-localisation par les utilisateurs finaux et les bénévoles, parfois organisés en équipes. Le projet KDE3, par exemple, a été traduit dans plus de 100 langues ; MediaWiki en 270 langues, dont 100 pour la plupart terminées en 2016.
Lors de la traduction de textes existants dans d'autres langues, il est difficile de conserver les versions parallèles de textes tout au long de la vie du produit. Par exemple, si un message affiché à l'utilisateur est modifié, toutes les versions traduites doivent être modifiées.

## Considérations commerciales

Dans un contexte commercial, l'avantage de la localisation est l'accès à davantage de marchés. Au début des années 1980, Lotus 1-2-3 a pris deux ans pour séparer le code du programme et le texte et a perdu la première place du marché en Europe au profit de Microsoft Multiplan. MicroPro a constaté que l'utilisation d'un traducteur autrichien pour le marché ouest-allemand avait pour conséquence que sa documentation WordStar « n'avait pas le ton qu'elle aurait dû ».
Cependant, il y a des coûts considérables qui vont bien au-delà de l'ingénierie. De plus, les opérations commerciales doivent s'adapter pour gérer la production, le stockage et la distribution de plusieurs produits localisés discrets, qui sont souvent vendus dans des devises, des environnements réglementaires et des régimes fiscaux complètement différents.
Enfin, les ventes, le marketing et le support technique doivent également faciliter leurs propres opérations dans les nouvelles langues, afin d'accompagner les clients pour les produits localisés. En particulier pour les populations linguistiques relativement petites, il peut ne jamais être économiquement viable d'offrir un produit localisé. Même lorsque de grandes populations linguistiques peuvent justifier la localisation d'un produit donné et que la structure interne d'un produit permet déjà la localisation, un développeur ou un éditeur de logiciel donné peut ne pas avoir la taille et les capacités nécessaires pour gérer les fonctions auxiliaires associées à l'exploitation dans plusieurs environnements locaux.