Traduire en continu avec Weblate

illustrations illustrations illustrations illustrations illustrations illustrations illustrations

Publié le 7 avril 2022 par Andrew Owen (4 minutes)

post-thumb

Cette semaine, j’aimerais faire un clin d’œil à Weblate, un outil de traduction basé sur le web avec intégration Git qui est disponible gratuitement pour les projets open source. Je l’ai découvert par hasard parce qu’un développeur avec qui je discutais sur Telegram avait contribué à un projet qui l’utilisait.

Tout d’abord, un peu d’histoire. Je suis gestionnaire de communauté pour le projet d’ordinateur rétro Chloe 280SE à FPGA. Une partie du firmware est un interprète BASIC classique, qui peut être localisé pour n’importe quelle langue, dont le jeu de personnage peut être encodé dans une page de code de 8 bits (256 personnages). En tant qu’éditeur bénévole de Translation Commons, j’ai pu exiger l’aide de traducteurs bénévoles pour localiser le logiciel dans 20 langues.

Mais lorsque la pandémie a frappé, le responsable du projet de traduction a monnayé de poste et le projet de traduction a stagné. J’ai considéré la traduction automatique comme une solution possible. Mais copier chaînes et lui coller de personnage d’un Google Sheets à Google Translate et inversement est un processus lent, et il n’y a pas de validation.

Lorsque j’ai entendu parler de Weblate, je me suis dit que je devais l’essayer. Il fournit:

  • Une localisation continue grâce à l’intégration avec les services d’hébergement de code les plus courants (GitHub, GitLab, Bitbucket, Pagure et Azure repos).
  • Des contrôles de qualité incluant la longueur des chaînes de personnage, les doubles espaces, les mots répétés, etc.
  • Suggestions, à partir de son adéquat mémoire de traduction et de services de traduction automatique tels que DeepL, Google, LibreTranslate et Microsoft.
  • Glossaires, pour maintenir la cohérence des traductions.
  • Le crowdsourcing avec attribution. Tout le monde peut faire des suggestions anonymes. Les utilisateurs enregistrés peuvent contribuer à des traductions entières.

Weblate fournit une interface web qui est une version simplifiée de ce que la plupart des traducteurs professionnels connaissent grâce à d’autres logiciels de traduction. Il supporte la plupart des formats de traduction compris par translate-toolkit. J’ai choisi d’utiliser un fichier JSON monolingue pour les raisons suivantes

  • J’étais déjà familiarisé avec JSON.
  • Il était relativement simple de convertir le document Google Sheets original en l’exportant au format CSV.
  • Il est lisible par l’homme.
  • Il prend en charge UTF-8.
  • Des outils en ligne de commande étaient disponibles pour automatiser la production d’un fichier binaire à partir de la source JSON.

J’utilisais déjà GitHub pour héberger le logiciel. Tout ce que j’avais à faire pour intégrer Weblate était d’ajouter le robot Weblate en tant qu’utilisateur dans le dépôt, de créer un dossier locales à la racine du projet, et de déposer le fichier de chaînes anglaises en.json dans le dossier.

À partir de là, je pouvais créer de nouvelles traductions et les pousser vers le dépôt distant lorsque j’en étais satisfait. Si je faisais des changements dans le dépôt distant, je pouvais rebaser le dépôt Weblate.

J’ai écrit un script qui analyse le contenu du dossier locales pour générer les binaires nécessaires au logiciel. En fait, je dois le déclencher manuellement. L’étape finale sera de le déclencher lorsqu’il y aura des changements dans le dossier locales sur la branche principale. Plus d’informations à ce sujet dans un prochain article.

J’ai utilisé cette configuration pour augmenter la couverture linguistique de 20 à 48 langues en l’espace de quelques semaines. L’un des avantages du passage à Weblate et de l’automatisation du processus a été la découverte de quelques incohérences dans les traductions qui n’étaient pas évidentes dans le fichier Google Sheets.

Mais le véritable test a eu lieu cette semaine, lorsqu’un traducteur a proposé d’ajouter un support en basque. Ils ont pu suivre tout le processus d’inscription à Weblate et de création de la nouvelle traduction avec un minimum d’aide de ma part. Je n’ai eu besoin que de les conseiller sur le contenu de quelques chaînes spécifiques au projet utilisées dans le processus de construction. Lorsqu’ils ont eu terminé, j’ai relu leur contribution, poussé leurs changements dans le dépôt Git et lancé le script de construction.

Si vous utilisez un dépôt Git et que vous faites en fait vos traductions à l’aide d’une feuille de calcul, je pense que cela vaut la peine de jeter un coup d’œil à Weblate.