C’est une excellente idée de rendre un programme, quel qu’il soit, accessible à un public différent de ses seuls développeurs. Et si l’internationalisation est une tâche à la réputation rébarbative, elle recèle en réalité quantité de détails passionnants… et piégeux. Ceci explique pourquoi tant de logiciels, sites, applications – y compris très connus – ont des défauts dans ce domaine.
Or, vois-tu, cher lecteur, chère lectrice, depuis une dizaine d’années maintenant je travaille sur des projets qui présentent une problématique forte d’internationalisation. C’est pourquoi je te propose un tour d’horizon des difficultés et subtilités à prendre en compte si toi aussi tu souhaites rendre ton programme accessible pour un maximum d’êtres humains.
On commencera par un peu de vocabulaire, quelques définitions pour que ce dont il est question soit bien clair. Puis viendront les pièges linguistiques, les différences culturelles, et enfin une poignée de considérations techniques.
Ce tutoriel ne nécessite pas de prérequis autres que celui de s’intéresser à l’internationalisation de logiciels.
Un peu de vocabulaire…
- L'internationalisation, ou « i18n »
- La régionalisation, ou « l10n »
- Les autres termes
- Quand et quoi internationaliser ?
Gérer différentes langues
- La sélection de la langue
- Différentes tailles de texte
- Le sens d'écriture
- Tout ce qui vient avec une langue mais qui n'était pas prévu
Les différences culturelles
- Les noms et civilité des utilisateurs
- Les adresses postales
- Les nombres, les monnaies et tout ce qui va avec
- Les calendriers, dates et heures
- Les systèmes d'unités
- Le design et les couleurs
- Les contraintes politiques et légales
Quelques considérations techniques
- Utilisez des outils pour faire le boulot à votre place !
- Éléments traduits ou langues porteuses d'éléments ?
- Clés de traduction et la langue « développeur »
- Unicode, votre meilleur ami
- Le cas particulier des messages d'erreur techniques
- Rendre un site internet accessible partout dans le monde
Ainsi donc, rendre un logiciel utilisable à l’international est une tâche assez simple en apparence, mais qui recèle une multitude de pièges à éviter et de détails à gérer.
Ainsi, un logiciel correctement internationalisé :
- Verra ses différentes langues accessibles et sélectionnables par l’usager ;
- Gèrera les subtilités inhérentes aux multiples langues qu’il supporte : différences de longueurs de textes, de hauteur de ligne, de sens de l’interface le cas échéant, ainsi que toutes les difficultés spécifiques à ces langues ;
- Supportera les différences culturelles telles que la gestion des adresses, dates, nombres dont les monnaies… sans présenter d’éléments mésinterprétables par les utilisateurs des différents pays ;
- Sera cohérent d’un point de vue technique sur sa façon de gérer l’internationalisation.
Merci à @informaticienzero pour la validation, ainsi qu’à @Fumble, @ache, @Renault, @Javier et @QuentinC pour leurs remarques et conseils avisés pendant la bêta de ce tutoriel !
Icône sous licence Creative Commons Attribution 4.0 International (CC BY 4.0), d’après Font Awesome.