Quand votre code parle une autre langue : Les pièges méconnus de la traduction

Traduire une application web peut sembler trivial à première vue. Après tout, avec les avancées de l’intelligence artificielle, une multitude d’outils facilitent grandement cette tâche. Pourtant, entre les règles de pluriel, l’ordre des mots, la direction du texte et les subtilités du contenu dynamique, traduire correctement devient vite un véritable casse-tête… à moins d’une planification rigoureuse.

Un client nous a récemment contactés pour traduire son système de gestion d’inventaire, utilisé dans des magasins à grande surface, du français vers l’anglais. Ce projet nous a permis de revisiter nos bonnes pratiques et de tomber dans quelques pièges, que nous avons dû résoudre avec ingéniosité. Voici ce qu’on a retenu de l’expérience.

Le contenu statique

Chaque environnement technologique ( Laravel, Symfony, Phoenix, Rails, etc.) dispose de son propre système de traduction pour gérer le contenu statique. Sans entrer dans les détails spécifiques à chaque librairie, nous allons plutôt aborder les éléments communs qu’il est essentiel de comprendre pour bien les utiliser.

Pour commencer, Il est important de comprendre que lorsqu’on parle de contenu statique, nous parlons de texte qui est défini à l’avance à l’intérieur du code de l’application et non pas de texte qui ne change jamais. Un exemple pourrait être un libellé qui indique le nombre de résultats d’une requête:

Le pluriel

L’un des aspects qui varie le plus d’une langue à l’autre est la manière de gérer le pluriel. Il est dangereux de supposer que les règles sont identiques, même au sein d’une même famille linguistique.

Un piège par lequel énormément de personnes se font prendre est de simplement ajouter un s lorsqu’il y a plus d’un résultat. Par exemple, en JavaScript, on pourrait l’écrire ainsi:

Malgré sa simplicité, ce code comporte plusieurs erreurs :

D’abord, en français comme en anglais, tous les mots ne prennent pas un « s » au pluriel. Il existe de nombreux mots irréguliers, comme « cheval » qui devient « chevaux » en français, ou « octopus » qui peut devenir « octopi » ou « octopuses » en anglais. Même en codant une logique pour gérer les exceptions, ces règles varient d’une langue à l’autre.

Ensuite, la règle grammaticale diffère pour le cas du zéro. En anglais, on accorde généralement le nom au pluriel même en l’absence d’objet, comme dans « There are no results ». Il faut donc afficher « 0 results », alors qu’en français, on écrit « 0 résultat », au singulier.

La meilleure solution consiste à utiliser les fonctions de gestion du pluriel fournies par les bibliothèques d’internationalisation. Chaque langue traduite aura donc ses propres déclinaisons de chaque chaîne de caractères accordées selon le nombre d’entrées.

L’ordre des mots

Il est facile de tomber dans le piège qui consiste à croire que toutes les langues suivent le même ordre de mots que le français ou l’anglais.

Chez Rum&Code, même si nos applications sont principalement traduites en anglais et en français, nous préparons dès le départ nos interfaces pour qu’elles puissent s’adapter facilement à d’autres langues, sans nécessiter de modifications majeures du code.

En japonais, par exemple, l’ordre des mots diffère de celui du français. Le nombre suit généralement le nom. Ainsi, l’expression « 5 résultats » se traduirait par 結果が5件 (kekka ga 5 ken). Dans cette formulation, 結果 (kekka) signifie résultats, が (ga) est une particule grammaticale, 5 représente le nombre et 件 (ken) est un classificateur numérique utilisé pour désigner des objets physiques ou des documents.

C’est pour cette raison qu’il est crucial de toujours traduire des phrases complètes et non des mots isolés. Chaque langue a sa propre structure, et il faut en tenir compte pour que le résultat soit naturel et correct.

La direction du texte

Certaines langues, comme l’arabe ou l’hébreu, s’écrivent de droite à gauche. Cette différence fondamentale de direction modifie profondément la façon dont une interface doit être conçue.

Traduire une application pour ces langues demande d’adapter l’ensemble de l’interface, et pas seulement les textes. Il faut repenser l’emplacement des éléments visuels, les formulaires, les icônes directionnelles et l’ordre de navigation.

Le contenu dynamique

Les textes d’une application ne sont pas tous équivalents au niveau de la traduction. Le contenu dynamique est sans doute l’élément le plus complexe à traduire. Il s’agit de texte qui évolue au fil de l’utilisation de l’application, généré par les utilisateurs eux-mêmes ou par des systèmes externes. Contrairement au contenu statique, ce texte n’est pas défini dans le code.

Conclusion

Traduire une application Web ne se résume pas à un simple remplacement de mots. C’est un processus complexe qui nécessite une planification minutieuse, une compréhension profonde des nuances linguistiques et une architecture technique flexible.