tradforge
Traduire un jeu ou une appli avec un LLM, sans rien casser
Un outil en ligne de commande, avec une application de bureau, pour traduire des jeux, des mods et des applis avec un modèle local (Ollama) ou une API cloud. Chaque phrase est vérifiée avant d'être écrite.
- Code public
- Exécutable Windows
Mon rôle : Conception et développement

98 000phrases sur un cas réel
0,03 %rejetées par la validation
25+formats de fichiers
5moteurs de traduction
Le problème
Un LLM traduit bien, mais il abîme facilement tout ce qui entoure le texte : les variables, les balises, les retours à la ligne. Et sur un projet de plusieurs dizaines de milliers de lignes, une coupure au milieu veut souvent dire tout recommencer.
tradforge s'occupe de tout ça : il trouve les textes, pilote le modèle, vérifie le résultat et reprend là où il s'était arrêté.
Comment je l'ai construit
Au départ, je voulais traduire en français un gros mod de Project Zomboid, et aucune traduction n'existait. J'ai passé beaucoup de temps sur les décisions d'architecture d'un outil censé rester simple : gérer les variables, les particularités des fichiers Lua et JSON, et faire en sorte que la traduction ne touche que le texte. La traduction complète a tourné de longues heures sur un modèle local, et elle a réussi.
Entre-temps, quelqu'un avait publié sa propre traduction du mod. Comme les règles étaient solides, j'ai étendu l'outil à tous les types de fichiers. J'ai fait travailler Claude Code intensivement sur ces formats, dont certains que je ne connaissais pas : pour chacun, je suis allé vérifier son fonctionnement et j'ai fixé les règles à respecter.
Pour l'application de bureau, je partais de zéro sur ce type de développement : Claude l'a construite à partir de mes exigences, et je me suis concentré sur les tests et sur une architecture propre, pour que le code se comprenne en le lisant.
Les étapes
- 1Trouver les fichiers
- 2Extraire les textes
- 3Enlever les doublons
- 4Sauter ce qui est déjà traduit
- 5Faire des lots, avec leur contexte
- 6Traduire
- 7Appliquer la typographie
- 8Vérifier
- 9Réessayer en plus petit si besoin
- 10Sauvegarder la mémoire
- 11Écrire les fichiers traduits
Ce qui le rend fiable
Une vérification stricte
Les variables, balises, retours à la ligne, espaces et termes du glossaire doivent ressortir intacts. Sinon, le lot repart en plus petit, puis il est noté avec la raison du refus.
Une mémoire de traduction
Chaque texte n'est traduit qu'une fois. Après une mise à jour du jeu, seuls les textes nouveaux ou modifiés repartent au modèle.
Une coupure ne coûte presque rien
La mémoire est sauvegardée après chaque lot. Si tout s'arrête, on ne perd que le lot en cours.
La relecture humaine d'abord
Une correction faite à la main n'est jamais écrasée. On peut aussi tout exporter en CSV pour relire dans un tableur.
Un deuxième avis sur le sens
La commande verify retraduit les phrases douteuses et demande à un modèle si le sens est resté le même.
Choisir son moteur avant de payer
compare fait passer un échantillon dans plusieurs moteurs, et --dry-run estime les tokens et le coût avant de lancer quoi que ce soit.
L'application de bureau
Pour ceux qui ne veulent pas toucher à la ligne de commande, il y a une appli en quatre écrans : le projet, les réglages, la traduction et la relecture. Elle partage la même config et la même mémoire que la CLI, donc on peut passer de l'une à l'autre sur un même projet. Les captures viennent du petit jeu d'exemple du dépôt, traduit avec Ollama en local.
Architecture
- Un cœur qui ne touche ni au disque ni au réseau : toute la logique se teste toute seule.
- Les formats, les moteurs, le stockage et la ligne de commande viennent se brancher dessus.
- Node.js 22 et TypeScript, sans aucune dépendance à l'exécution.
- Un monorepo npm avec la CLI et l'appli de bureau (Electron, un exécutable Windows portable en préversion).
Où il en est
Plus de 100 commits et une CI en place. L'outil n'est pas encore publié sur npm, il s'installe depuis les sources. La suite : un exécutable signé et d'autres langues d'interface.
Les limites sont écrites noir sur blanc dans le dépôt. Par exemple, les règles de typographie n'existent pour l'instant qu'en français.
Projet suivant
Ce portfolio

