Comme annoncé dans notre actualité, nous avons rendu le site web de Liberogic multilingue !
Pour le moment, seules six langues sont proposées, mais une fois la première en place, les autres ne posent franchement pas de difficulté : on peut en théorie prendre en charge l'ensemble des langues disponibles dans Google.
Une expérimentation née de « essayons simplement de traduire »
L'idée était simple.
« Avec l'essor de l'accessibilité web et de plus en plus de visiteurs venus de l'étranger, si on essayait de traduire le site ? »
C'était une idée lancée un peu à la légère.
Mais en la mettant réellement en œuvre, la tâche s'est révélée plus complexe que prévu : API de traduction, cache, build, coûts, mise à jour du cache… les coulisses se sont avérées bien plus délicates que ce qu'on imaginait.
C'est pourquoi cette mise en place multilingue repose sur Google Cloud Translation API, avec un système qui traduit automatiquement lors du build.
Le fonctionnement
Lors du build, le script scripts/translate-html-cache.mjs est exécuté.
Le cache (translate-cache.json) est consulté en premier : si la traduction existe déjà, elle est réutilisée. Sinon, l'API de traduction de Google est sollicitée.
Les nouvelles traductions sont ajoutées au cache et réutilisées lors des builds suivants. Point important : le cache n'est pas pris en compte dans l'environnement de déploiement automatique, il faut donc effectuer un build et un push en local.
Cette approche permet d'éviter des appels API inutiles et donc des coûts superflus. (Au début, on passe pas mal de temps sur la console de facturation de Google… 😅)
Composer avec les travers de la traduction automatique
Les résultats de traduction réservent parfois des surprises.
« Liberogic Inc. » est devenu « Liberlogic Inc. », voire « Libelogic » à certains moments…
Ça y est, on est perdus ! J'ai aussi essayé la fonctionnalité Glossary (glossaire) de Google, mais elle ne fonctionne qu'au niveau de la phrase, ce qui rend difficile le contrôle du seul terme « Liberogic Inc. ».
Au final, j'ai donc implémenté ma propre logique de remplacement.
en: [
{ from: /Liberlogic/g, to: 'Liberogic' },
{ from: /Libelogic/g, to: 'Liberogic' },
],
de: [
{ from: /Liberlogic/g, to: 'Liberogic' },
{ from: /Libelogic/g, to: 'Liberogic' },
],
Ensuite, j'ai connecté le tout à Google Sheets afin que les règles qui y sont enregistrées soient appliquées automatiquement. Ainsi, « Liberogic » comme « Liberozee » sont protégés.
Comment choisir les langues
Pour commencer, nous avons retenu l'anglais, le chinois (traditionnel et simplifié), le français et l'espagnol. Le japonais étant déjà disponible, cela fait 6 langues.
Sur Slack, on a aussi eu cet échange.
« Et le russe, on fait quoi ? Le coréen et le thaï, ça vous dit ? »
« L'arabe, c'est pénible à cause du CSS, on le fera plus tard. »
« Non, le hindi, ça risque de faire exploser les accès, mieux vaut s'en passer. »
... Voilà comment nous avons choisi nos langues, un peu au feeling.
Cela dit, on a lu quelque part que ces 6 langues permettent de couvrir plus de 75 % des utilisateurs dans le monde.
Bref, on se mondialise petit à petit ?
Voici les exemples d'URL à ce jour :
- 🇯🇵 Japonais
- 🇬🇧 Anglais
- 🇩🇪 Allemand
- 🇪🇸 Espagnol
- 🇨🇳 Chinois simplifié
- 🇹🇼 Chinois traditionnel
Nous prévoyons d'étendre le site à environ 30 langues à terme (à confirmer).
Nous envisageons également de nous attaquer prochainement à l'arabe (écrit de droite à gauche, prise en charge RTL).
Restez à l'écoute !
En résumé : une mise en place simple du multilinguisme
Cette solution convient parfaitement aux clients qui souhaitent simplement
tester la traduction de leur site. Avec Google Cloud Translation API et une gestion de cache, il est possible de créer un site multilingue à un coût relativement modéré.
C'est également une option idéale comme phase d'expérimentation avant de lancer une localisation complète.
✳️ À noter :
Nous corrigeons progressivement les formulations et mises en page un peu bizarres qui peuvent subsister suite à la traduction multilingue. Merci de votre indulgence ! (Les détails seront ajustés en CSS ultérieurement, la mise en ligne étant notre priorité !)
🌏 Un petit mot pour finir
« Une traduction n'a pas besoin d'être parfaite pour que le message passe dans le monde. »
C'est avec cet esprit que Liberogic continue, aujourd'hui encore, de construire le Web. Une traduction n'a pas besoin d'être parfaite pour transmettre un message. C'est pourquoi nous essayons d'abord nous-mêmes, avant de le présenter à nos clients. Échouer ne pose aucun problème, expérimenter non plus. Liberogic continue aujourd'hui encore de multiplier les tests à la pointe du Web.
Pendant qu'on le dit, Google Traduction, lui, ne cesse d'évoluer chaque jour ! Fin de l'histoire.
Président de l'entreprise, mais toujours du côté des praticiens. Passionné de terrain, j'éprouve une véritable joie à comprendre les nouvelles technologies ou à voir un outil devenir plus pratique, et je m'y plonge sans compter. Enthousiaste face aux technologies de demain, j'aime continuer à découvrir de nouvelles expériences, quel que soit mon âge.
Tadanori Morimoto
Chef de projet / Directeur artistique / Fondée en 2007