Traduire les fichiers .ftl Mozilla Fluent
Les messages Fluent peuvent contenir des variables, des références à des termes et des expressions de sélection complètes. KAERIS traduit chaque partie de texte et conserve la structure autour, puis vérifie les variables et les références de termes.
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 Fluent est construit
Les messages sont id = text, avec des variables { $name }, des références de termes { -brand-name }, des attributs (.title) et des expressions de sélection avec des variantes [one] et un défaut *. Les commentaires commencent par #.
# Shown on the home screen welcome = Welcome back, { $name }! emails = { $count -> [one] You have { $count } new email. *[other] You have { $count } new emails. } -brand-name = Firefox about = About { -brand-name }
Points à surveiller dans les traductions Fluent
Variables et termes
{ $name }et{ -brand-name }doivent rester. Dans l'exécution réelle ci-dessous, les deux sont restés.Expressions de sélection
Chaque variante est son propre texte à traduire. Le défaut
*reste marqué ; dans l'analyse ci-dessus, les deux variantes d'e-mail sont des chaînes distinctes.Termes
Un terme tel que
-brand-nameest une entrée en soi ; une traduction sans celui-ci est signalée comme manquante.Commentaires
Les commentaires de la source sont réémis avec le fichier.
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.ftl --langs de avec kaeris 0.2.35, 2,1 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.
# Shown on the home screen welcome = Willkommen zurück, { $name }! emails = { $count -> [one] Sie haben { $count } neue E-Mail. *[other] Sie haben { $count } neue E-Mails. } -brand-name = Firefox about = Über { -brand-name }
$ kaeris check --source en.ftl --langs de ✓ de: complete & placeholder-safe ✓ all locales complete & placeholder-safe
Ce que KAERIS en fait
Structure conservée
Les messages, termes, attributs et variantes de sélection sont parcourus et réécrits dans la même forme.
Références comptées
Une
{ $name }ou{ -term }perdue est trouvée sans modèle.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 locales/en/app.ftl --langs de,ja.Vérifier le résultat
Téléversez la source et le .ftl traduit sur la page de vérification gratuite.
pip install kaeris kaeris translate locales/en/app.ftl --langs de,ja --verify
Questions
Les expressions de sélection sont-elles prises en charge ?
Oui. Chaque variante est traduite individuellement et la structure est réécrite.
Qu'en est-il des termes comme -brand-name ?
Ce sont des entrées en soi et elles sont comparées à la source ; une traduction qui en omet une est signalée comme une clé manquante.
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 locales/en/app.ftl --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 · YAML · .po · ARB · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Android XML