L'internationalisation et ses pièges : créer un logiciel universel

Comment rendre votre logiciel accessible à d'autres langues et cultures

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…

  1. L'internationalisation, ou « i18n »
  2. La régionalisation, ou « l10n »
  3. Les autres termes
  4. Quand et quoi internationaliser ?

Gérer différentes langues

  1. La sélection de la langue
  2. Différentes tailles de texte
  3. Le sens d'écriture
  4. Tout ce qui vient avec une langue mais qui n'était pas prévu

Les différences culturelles

  1. Les noms et civilité des utilisateurs
  2. Les adresses postales
  3. Les nombres, les monnaies et tout ce qui va avec
  4. Les calendriers, dates et heures
  5. Les systèmes d'unités
  6. Le design et les couleurs
  7. Les contraintes politiques et légales

Quelques considérations techniques

  1. Utilisez des outils pour faire le boulot à votre place !
  2. Éléments traduits ou langues porteuses d'éléments ?
  3. Clés de traduction et la langue « développeur »
  4. Unicode, votre meilleur ami
  5. Le cas particulier des messages d'erreur techniques
  6. 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.

11 commentaires

Un truc que j’avais vu pour le choix des langues et qui est pas mal, c’est d’afficher le nom et dans la langue cible et dans la langue courante.

Je m’explique. Sur un site en français, j’afficherai comme ça.

  • Français (français)
  • English (anglais)
  • Deutsch (allemand)
  • Русский (russse)

Si je passe sur la version russe du site, alors ça devient comme suit.

  • Français (французский)
  • English (английский)
  • Deutsch (немецкий)
  • Русский (русский)

:)

C’est pourtant là toute l’astuce de la liste de sélection : tu mets les noms de langue dans les langues en question, comme ça tu t’adresse à ceux qui comprennent ces langues, même s’ils ne comprennent pas la langue en cours d’affichage.

Si le visiteur comprends plusieurs langues dans la liste, tant mieux pour lui, parce que leurs noms seront affichées dans ces langues qu’il comprends.

Mais du coup, à quoi ça peut servir d’afficher le nom des langues dans la langue « pour faire plaisir au lecteur amateur de langues » ? Sans plus d’explications, ça ressemble plus à une surcharge inutile d’interface.

Il me semble que l’idée d’informaticienzero peu avoir un intérêt niveau communication/marketing. Après niveau UI, il ne me semble pas que ça apporte quelque-chose, mais ça ne retire rien non plus (de la place peut-être).

+2 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte