PO・POT ファイルをオンラインで翻訳。複数形とコンテキストにも対応
.pot テンプレートや一部だけ翻訳済みの .po ファイルをアップロードすると、空の msgstr がすべて埋まった .po が返ってきます。msgid と msgctxt は一切変更せず、コメントや参照もそのまま残し、複数形エントリーには翻訳先の言語に必要な数の形式を用意します。最初の数文字列は、アカウント不要で無料です。ファイル全体(最大 5,000 文字列)は $5 の一回払いのみです。
- 空のエントリーと fuzzy エントリーを翻訳し、翻訳済みのエントリーはそのまま保持します
- msgid_plural エントリーには、翻訳先の言語に合わせた msgstr[0]、msgstr[1] … が付き、ヘッダーには Plural-Forms が入ります
- msgctxt、翻訳者向けコメント(#.)、参照(#:)は文脈として送信され、ファイルにもそのまま残ります
- php-format、c-format、python-format のプレースホルダーをすべての文字列でチェックします
- WordPress のプラグインやテーマ、Django、Python、PHP、C のプロジェクトで使えます
{
"home.greeting": "Good morning, {name}Buenos días, {name}",
"home.nearby": "{count, plural, =0 {No trails near you yet} one {# trail near you} other {# trails near you}}{count, plural, =0 {Aún no hay rutas cerca de ti} one {# ruta cerca de ti} other {# rutas cerca de ti}}",
"trail.offline_done": "<b>{name}</b> is saved on this phone. You can use the map without a signal.<b>{name}</b> está guardado en este teléfono. Puedes usar el mapa sin señal.",
"trail.share_text": "I just finished {trail} with Trailbook! {km} km and {meters} m up. 🥾¡Acabo de terminar {trail} con Trailbook! {km} km y {meters} m de subida. 🥾",
"saved.empty": "You have not saved any trails yet.\nTap the heart on a trail to keep it here.Aún no has guardado ninguna ruta.\nToca el corazón en una ruta para guardarla aquí."
}
黄色:プレースホルダーと ICU の複数形構文を、すべての文字列で確認します。青緑:タグ、エスケープ、絵文字は、そのまま保持します。
キーも、プレースホルダーもそのまま。言語だけが新しく。
変わるのは値だけです。ファイルは階層も順序もそのままで、es.json という名前で戻ります。プレースホルダーが欠けた文字列は、ビルドに届く前に再度翻訳されます。
このページ用に作成したデモアプリです。スペイン語の文字列は、85件の文字列を含むファイルからのツールの実際の出力です。
POT テンプレートから PO ファイルへ
.pot ファイルは、プロジェクトで翻訳が必要な文字列の一覧で、msgstr はすべて空です。アップロードして言語を選ぶと、ヘッダーに Language、その言語向けの Plural-Forms 行、文字コードとして UTF-8 が入った .po が返ってきます。ファイル名は言語に合わせて付きます(例:myplugin.pot は myplugin-de.po になります)。WordPress なら myplugin-de_DE.po のようにプロジェクトに合った名前へ変更し、普段お使いのツールで .mo にコンパイルしてください。
複数形と fuzzy エントリー
言語によって数え方は異なります。英語の形式は2つ、gettext ではポーランド語とロシア語が3つ、アラビア語が6つです。複数形エントリーごとに、翻訳先言語の各形式が例となる数字付き(「形式1:2、3、4、22」など)で翻訳エンジンに渡され、形式ごとに1つずつ文字列を書き出します。お手持ちの .po に同じ言語の Plural-Forms ヘッダーがすでにある場合は、そのルールを使います。
fuzzy とマークされたエントリーは再翻訳され、fuzzy フラグと古い #| msgid の行は削除されます。php-format などその他のフラグは保持されます。廃止済みの #~ エントリーには手を加えません。
ツールの仕組み、料金、ファイルの扱いについてはローカライズファイル翻訳のページを、全ツールの料金は料金のページをご覧ください。
最終更新日
よくある質問
既存の翻訳は上書きされますか?
いいえ。すでに msgstr があり fuzzy ではないエントリーは、そのまま保持されます。翻訳されるのは、空のエントリーと fuzzy エントリーだけです。
.mo ファイルも作成されますか?
いいえ、お渡しするのは .po です。msgfmt、Poedit、お使いのフレームワークのコマンド(例:wp i18n make-mo、Django の compilemessages)でコンパイルしてください。
printf 形式のプレースホルダーは安全ですか?
msgid にある %s、%d、%1$s、%(name)s は、すべて訳文にも含まれている必要があります。1つでも欠けた文字列は再翻訳され、それでも直らない場合は msgstr を元の状態(空または fuzzy)のままにして一覧でお知らせします。そのため gettext は、崩れた文字列を表示せず原文にフォールバックします。
料金はいくらですか?
最初の数文字列は無料です。ファイル全体(5,000 文字列まで)は、$5 の一回払いのみで、サブスクはありません。小規模な作業は例外で、300 文字列までの作業は、ダウンロードも含めてすべて無料です。