Traduire les fichiers de locale YAML, style Rails
Un fichier YAML style Rails commence par le code de la langue et imbrique tout sous celui-ci, et ses chaînes contiennent des variables %{name}. KAERIS traduit les valeurs, réécrit la clé racine pour la langue cible et vérifie que chaque variable est passée.
KAERIS a traduit cette page et vérifié chaque ligne en la retraduisant. Un locuteur natif ne l'a pas encore revue. Original anglais
Comment un fichier de locale YAML est construit
La première ligne est la locale (en:) ; chaque clé vit sous celle-ci. Les formes plurielles sont des clés simples comme one et other. Les listes sont prises en charge. Un fichier qui est une seule correspondance plate sans locale racine est également lu, et ses clés pointées restent telles quelles.
en: greeting: "Welcome back, %{name}!" inbox: one: "%{count} new message" other: "%{count} new messages" errors: blank: "can't be blank" too_short: "is too short (minimum is %{count} characters)" checkout: total: "Total: <strong>%{amount}</strong>"
À surveiller dans les traductions YAML
La clé racine suit le fichier
en:doit devenirde:dans le fichier allemand, sinon Rails ne le trouvera jamais. KAERIS écrit la langue cible comme racine.Variables %{variables} et HTML
L'interpolation Rails est
%{name}; certains projets utilisent{{name}}. Les deux sont comparés à la source. Les balises inline comme<strong>sont vérifiées de la même manière.Mise entre guillemets
Une valeur traduite qui commence par
[,*ou&, ou qui contient:, n'est pas un YAML valide à moins d'être mise entre guillemets. L'auteur décide lui-même des guillemets : dans l'exemple de sortie, une valeur commençant par%{count}est renvoyée entre guillemets.Les commentaires ne voyagent pas
Les commentaires YAML dans la source ne sont pas reportés dans le fichier traduit. Gardez les notes pour les traducteurs dans les clés de service (une clé commençant par
_n'est pas traduite) ou dans votre dépôt.
Une vraie exécution : traduite en allemand et vérifiée
Une exécution réelle, le 27 octobre 2026, rien édité à la main : kaeris translate en.yml --langs de avec kaeris 0.2.35, 3 secondes, modèle google/gemini-2.5-flash-lite, le défaut du niveau gratuit. Ci-dessous, le fichier allemand qu'il a écrit et ce que kaeris check en dit.
de: greeting: Willkommen zurück, %{name}! inbox: one: '%{count} neue Nachricht' other: '%{count} neue Nachrichten' errors: blank: darf nicht leer sein too_short: ist zu kurz (mindestens %{count} Zeichen) checkout: total: 'Gesamt: <strong>%{amount}</strong>'
$ kaeris check --source en.yml --langs de ✓ de: complete & placeholder-safe ✓ all locales complete & placeholder-safe
Ce que KAERIS en fait
Structure conservée
L'imbrication, l'ordre des clés et les listes reviennent identiques ; la clé de locale racine est réécrite pour chaque langue.
Variables et balises vérifiées
Une
%{name}ou<strong>perdue est détectée par comptage, sans modèle impliqué.Vérification gratuite pour ce format
La vérification gratuite sur la page /check lit ce format et s'exécute sans clé ni compte. La commande terminal
kaeris checkla lit aussi : elle prend les 13 formats depuis kaeris 0.2.35, avec les mêmes règles et rien n'est envoyé ailleurs.
Exécutez-le en trois étapes
Installer le CLI
Exécutez
pip install kaeris.Traduire le fichier
Exécutez
kaeris translate config/locales/en.yml --langs de,ja. Les fichiers de sortie sont nommés par langue.Vérifier le résultat
Téléchargez la source et le fichier traduit sur la page de vérification gratuite ; elle liste les variables perdues, les balises et les clés manquantes.
pip install kaeris kaeris translate config/locales/en.yml --langs de,ja --verify
Questions
Est-ce que ça marche pour Rails en.yml ?
Oui. La clé racine en:, les clés imbriquées et les variables %{name} sont gérées. Voir aussi la page Rails.
Qu'en est-il des commentaires dans mon YAML ?
Ils restent dans votre fichier source. Le fichier traduit est écrit sans eux.
Est-ce gratuit ?
Oui, sans compte : 10 000 caractères par fichier et jusqu'à 8 langues par exécution. Une clé API gratuite augmente la limite de fichiers à 50 000 caractères. La licence à vie est de 79 $ une fois, sur votre propre clé OpenRouter ; les plans mensuels commencent à 19 $. Tarifs
Puis-je l'exécuter depuis le terminal ou en CI ?
Oui. pip install kaeris, puis kaeris translate config/locales/en.yml --langs de,ja. Le GitHub Action exécute la même traduction dans une pull request. Docs CLI · GitHub Action
Continuer
Référence CLI · Référence Check · Traduire dans le navigateur · Vérification gratuite · Convertir les formats · Localisation fictive
Autres formats : JSON · .po · ARB · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · XML Android