Créer un outil de traduction sur-mesure pour une web app ou mobile

Membre de l'équipe
Adrien
CTO & Lead Developer
Nous sommes une agence web. Par la force des choses, les projets de nos clients – tout comme les nôtres – doivent généralement inclure une gestion des traductions.

Nous sommes une agence web. Par la force des choses, les projets de nos clients – tout comme les nôtres – doivent généralement inclure une gestion des traductions.

Aussi simple que cela puisse paraître, cela signifie que nous avons 2 options pour gérer les traductions: le faire en interne ou utiliser un service tiers.

Bien évidemment, disposer d’outils personnalisés, testés et maîtrisés par notre équipe est bel et bien la meilleure solution et peut nous permettre d’économiser grandement sur le long terme!

C’est exactement ce sur quoi nous nous sommes penchés récemment chez Coteries. C’est aussi dans cet esprit que nous avons décidé de reprendre le contrôle de notre gestion des traductions, alors hébergée pour certains projets sur une solution tierce plutôt coûteuse.

Définir les objectifs d'un outil idéal pour la gestion des traductions

Le brief était plutôt simple :

  1. Nous avions besoin d’une base commune solide pour les traductions afin de ne plus perdre de temps avec des tâches aussi triviales à l’avenir.
  2. Nous avions besoin que tous nos développeurs soient en mesure de maintenir cet outil et de l’améliorer si besoin.
  3. Nous voulions que les traductions puissent être facilement modifiées par nos designers et nos spécialistes du marketing.
  4. Nous voulions que les traductions soient toujours à jour dans les projets.
  5. Nous voulions que l’intégration dans les projets soit simple.
  6. Nous voulions que l’outil ne coûte pas un bras.

Avec l’établissement d’un cahier des charges clair, nous avons ensuite pu choisir la bonne direction à prendre pour une solution sur-mesure.

Choisir une option simple pour gérer les traductions

Nous utilisons la suite Google comme plateforme de travail collaborative. Nous sommes donc habitués à utiliser Google Sheets au quotidien. Il nous a semblé logique et pragmatique d’utiliser Google Sheets comme base pour un outil commun de gestion de traductions.

Gérer efficacement les traductions grâce à un format approprié

Nous avions ensuite besoin d’un format optimal pour une utilisation régulière.

Facile: nous décidons d’afficher les clés de traduction dans la colonne 1 et toutes les langues de l’application web ou mobile dans une ligne d’en-tête.

Cette matrice peut ensuite être facilement analysée dans un JSON tree qui peut être utilisé dans les fichiers de traduction.

Les traductions étant principalement utilisées dans le backend, il était logique de créer un outil node standalone qui pourrait être facilement importé en tant que devDependency.

Construire une simple commande de traduction "auto-hébergée”

Pour construire l’outil idéal, nous avons décomposé la tâche comme suit :

  1. Récupérer une grille Excel à partir du fichier Google Sheet en utilisant un compte de service Google
  2. Analyser la grille dans un JSON tree (langue -> clé -> valeur)
  3. Sérialiser la grille dans le format souhaité (JSON pour le web, .xml et .strings pour les applications mobiles)
  4. BONUS : rapporter les clés de traduction manquantes

Comme nous voulions que l’outil soit facilement disponible pour tous les projets, il devait être accessible par une simple commande. Nous l’avons donc appelée « translator ».

Il fallait encore que l’outil soit guidé d’une manière ou d’une autre : quel est le Google Sheet ? Dans quelle feuille ? Quel est le format de sortie et le répertoire ?

Ensuite, un translator.json devrait être ajouté dans le projet cible, contenant ces informations. Il serait lu par la commande “translator” et guiderait son exécution.

Nous pouvons maintenant l’exécuter en même temps que n’importe quelle tâche npm, et il tirera toujours les traductions en même temps que cette tâche :

package.json
{

“scripts”: {

“start”: “npx concurrently \”react-scripts start\” \”npm translate\””,
“translate”: “translator”
}

}

Construire des solutions de développement sur mesure

Et voilà ! À l’exception du temps de développement, cet outil est gratuit. Vous disposerez d’un outil de collaboration personnalisé pour travailler facilement sur vos traductions, et les traductions seront toujours à jour.

Il est disponible gratuitement en libre accès ici: https://github.com/coteries/translator

Cet outil vous appartient et peut être facilement amélioré ou étendu pour utiliser en plus des outils additionnels, comme Google Translate ou Deepl, directement dans votre feuille de calcul.

Vous pouvez également modifier n’importe quel type ou format de sortie sans limitation pour disposer directement de ce que vous préférez.

Contactez-nous si vous avez besoin d’un outil personnalisé spécifique à développer !

Travaillons ensemble !

Faites-nous part de votre projet ou besoin, sans engagement ! Nous vous garantissons bien entendu la plus haute confidentialité.
Membre de l'équipe
Sébastien
Co-fondateur
Thank you! Your submission has been received!
Oops ! Un problème est survenu avec ce formulaire, nous allons le corriger aussi vite que possible.

En attendant, merci de nous envoyer votre demande par email à info@coteries.com.

A très vite !
En cliquant sur Envoyer, vous acceptez nos conditions d’utilisation et notre politique de confidentialité.