翻訳

gettextの.poファイルを翻訳する

.poファイルはテキストをキーとする形式で、英語の文がキーです。コンテキスト、複数形スロット、Pythonスタイルの変数はすべてそのテキストに付随します。KAERISはそれらを保持し、ターゲット言語に必要な複数形スロットを書き込みます。

KAERISはこのページを翻訳し、すべての行を逆翻訳して確認しました。ネイティブスピーカーによるレビューはまだ行われていません。 英語原文

.poファイルの構造

各エントリにはmsgid(原文)とmsgstr(翻訳文)があります。msgctxtは同じ文を区別します。複数形はmsgid_pluralと各形態ごとのmsgstr[n]を使い、ヘッダーのPlural-Forms行で言語の形態数を指定します。

ソースファイルen.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 ""

.po翻訳で注意すべき点

実際の実行例:ドイツ語に翻訳しチェック

実例:2026年10月27日、手動編集なしでkaeris translate en.po --langs deをkaeris 0.2.35で実行(3.9秒、モデル google/gemini-2.5-flash-lite、無料プランのデフォルト)。以下に生成されたドイツ語ファイルとkaeris checkの結果を示します。

ドイツ語の結果de.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 チェックexit code 0
$ kaeris check --source en.po --langs de
✓ de: complete & placeholder-safe
✓ all locales complete & placeholder-safe

KAERIS が行うこと

3ステップで実行する

  1. CLIをインストールする

    pip install kaerisを実行します。

  2. カタログを翻訳する

    kaeris translate django.po --langs de,jaを実行します。出力ファイルは言語名で命名されます。

  3. 結果をチェックする

    無料のチェックページにソースと翻訳済み.poファイルをアップロードして、失われた変数や不整合な用語を確認します。

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

よくある質問

ロシア語やアラビア語の複数形は対応していますか?

複数形ヘッダーとmsgstr[n]スロットの数はターゲット言語に合わせて書き込まれます。ロシア語の実行例ではnplurals=3と3つのスロットが生成されました。

msgctxtはどうなりますか?

コンテキストはエントリに付随したままなので、同じ原文でも異なるコンテキストがあれば別の文字列として扱われます。チェックは異なる翻訳が返された場合に警告します。

無料ですか?

はい、アカウントなしで:ファイルあたり 10,000 文字、実行あたり最大 8 言語。無料の API キーでファイル制限が 50,000 文字に引き上げられます。一度限りの生涯プランは 79 ドルで、ご自身の OpenRouter キーを使用します。月額プランは 19 ドルから。 料金

ターミナルや CI から実行できますか?

はい。pip install kaerisを実行し、次にkaeris translate django.po --langs de,jaを実行します。Djangoも参照してください。GitHub Actionはプルリクエスト内で同じ翻訳を実行します。CLIドキュメント · GitHub Action

続ける

CLIリファレンス · チェックリファレンス · ブラウザで翻訳 · 無料チェック · フォーマット変換 · 疑似ローカリゼーション

その他のフォーマット: JSON · YAML · ARB · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML