Traduire

Traduire les fichiers .po gettext

Un fichier .po est basé sur des clés textuelles : la phrase anglaise est la clé. Les contextes, les emplacements pour les pluriels et les variables de style Python se trouvent autour de ce texte. KAERIS les conserve et écrit les emplacements pour les pluriels dont la langue cible a besoin.

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 .po est construit

Chaque entrée a un msgid (le texte source) et un msgstr (la traduction). msgctxt permet de distinguer deux phrases identiques. Les pluriels utilisent msgid_plural et un msgstr[n] par forme, et la ligne Plural-Forms de l'en-tête indique combien de formes la langue possède.

Fichier sourceen.po
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: app/views.py:12
msgid "Welcome back, %(name)s!"
msgstr ""

#: app/views.py:20
msgid "%(count)d file"
msgid_plural "%(count)d files"
msgstr[0] ""
msgstr[1] ""

msgctxt "menu"
msgid "Open"
msgstr ""

msgctxt "verb"
msgid "Open"
msgstr ""

Ce à quoi il faut faire attention dans les traductions .po

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.po --langs de avec kaeris 0.2.35, 3,9 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.

Résultat allemandde.po
# Generated by KAERIS i18n Tool
# Language: de
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: de\n"

msgid "Welcome back, %(name)s!"
msgstr "Willkommen zurück, %(name)s!"

msgid "%(count)d file"
msgid_plural "%(count)d files"
msgstr[0] "%(count)d Datei"
msgstr[1] "%(count)d Dateien"

msgctxt "menu"
msgid "Open"
msgstr "Öffnen"

msgctxt "verb"
msgid "Open"
msgstr "Öffnen"
kaeris checkexit code 0
$ kaeris check --source en.po --langs de
✓ de: complete & placeholder-safe
✓ all locales complete & placeholder-safe

Ce que KAERIS en fait

Exécutez-le en trois étapes

  1. Installer le CLI

    Exécutez pip install kaeris.

  2. Traduire le catalogue

    Exécutez kaeris translate django.po --langs de,ja. Les fichiers de sortie sont nommés par langue.

  3. Vérifier le résultat

    Téléversez la source et un .po traduit sur la page de vérification gratuite pour voir les variables perdues et les termes incohérents.

pip install kaeris
kaeris translate locale/en/LC_MESSAGES/django.po --langs de,ja --verify

Questions

Gère-t-il les formes plurielles pour le russe ou l'arabe ?

L'en-tête de pluriel et le nombre d'emplacements msgstr[n] sont écrits pour la langue cible. Dans une exécution avec le russe, l'exemple source a produit nplurals=3 et trois emplacements.

Qu'en est-il de msgctxt ?

Le contexte reste attaché à l'entrée, donc deux sources identiques avec des contextes différents sont des chaînes distinctes. La vérification avertit lorsqu'elles reviennent traduites différemment.

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 django.po --langs de,ja. Voir aussi Django. 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 · ARB · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML