サポートするファイル形式(Strings)

.PO - gettext ファイル (Strings)

本コンテンツはPhrase Language AIの機械翻訳により、英語から翻訳されています。

ファイル拡張子 

.po

API拡張 

gettext

インポート 

はい

エクスポート 

はい

複数形のサポート 

はい

説明のサポート 

はい

フォーマットオプション

これらは、ファイルがアップロードおよび/またはダウンロードされる際に指定できるオプションです。アップロード/ダウンロード方法(API、CLI、Repo sync など)に応じて、クエリパラメータ アップロードダウンロード、または phrase.yml 設定ファイルで指定できます。

  • msgid_as_default

  • is_bilingual_file

.PO (Portable Object) は、ローカライズプロセスを簡素化するために設計されたオープンソースの GNU ライブラリである GNU gettext を使用したローカライズの標準ファイル形式です。GNU gettext を使用すると、ローカライズ可能な Strings がソースコードから翻訳用の PO ファイルに抽出されます。.PO ファイルは、キーと値のペアの集まりです。キー msgid には原文の文字列が配置され、値 msgstr には訳文が配置されます。

gettext はソースコードから文字列を .POT (portable object テンプレート) に抽出します。定義されたロケールに基づいて、gettext は .POT ファイルを翻訳のために CAT ツールへアップロードするロケール固有の .PO ファイルに変換します。翻訳後、gettext は翻訳された .PO ファイルを、最終的にローカライズに使用される .MO ファイル(マシンオブジェクトファイル)に変換します。

.PO ファイルは .POT ファイルと同一ですが、.POT ファイルは一般的に gettext によってロケール固有の .PO ファイルを生成するために使用されます。.POT ファイルを直接翻訳し、後で意図したロケールに合わせて名前を変更しても問題は発生しません。Phrase は以下の翻訳をサポートしています:

  • .PO ファイル

  • バイリンガル .PO ファイル

  • .POT ファイル 

  • 機械可読な .MO ファイル

msgctxt がキーのプレフィックスとして使用され、msgid と組み合わされて || で区切られます。 

ファイル形式オプション

識別子

msgid_as_default

タイプ

ブール

アップロード

true

ダウンロード

false

デフォルト

false

概要

msgstr ではなく msgid の値から翻訳コンテンツを取得します

識別子

is_bilingual_file

タイプ

ブール

アップロード

true

ダウンロード

false

デフォルト

false

概要

原文と訳文の両方がアップロードされたファイルからインポートされます:原文のコンテンツは msgid の値から、訳文は msgstr の値から取得されます。

コードサンプル

msgid ""
msgstr ""
"Language: English\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: PhraseApp (phraseapp.com)\n"

msgid "boolean_key"
msgstr "--- true\n"

msgid "empty_string_translation"
msgstr ""

# これは、このキーの素晴らしい説明です!
msgid "key_with_description"
msgstr "チェックしてください!"このキーは説明です。(少なくとも一部のファイル形式で)」

msgid "key_with_line-break"
msgstr "This translations contains\na line-break."

msgid "nested.deeply.key"
msgstr "このキーはさらに深くネストされています。"

msgid "nested.key"
msgstr "このキーは名前空間の中にネストされています。"

msgid "null_translation"
msgstr ""

msgid "pluralized_key"
msgid_plural ""
msgstr[0] "エントリーが1つだけ見つかりました。"
msgstr[1] "わあ、%s個の複数形があります!"

msgid "sample_collection"
msgstr "---\n- first item\n- second item\n- third item\n"

msgid "simple_key"
msgstr "シンプルなキー、シンプルなメッセージ、とてもシンプルです。2"

#, あいまい一致
msgid "unverified_key"
msgstr "検証が必要です。私を検証してください!"(一部のフォーマットでは、このステータスにも対応しています)

典型的なgettextエントリー: 

# 説明 (オプション)
msgid "key-name"
msgstr "私の翻訳",translation_3:

gettextヘッダー

gettextファイルのヘッダーには、インポート中に抽出されるロケール名と複数形のデータが含まれている場合があります:

msgid ""
msgstr ""
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: PhraseApp (phraseapp.com)\n"

キー説明

gettextファイルのコメントは、インポート中にキー説明として追加されます:

# This is my description
msgid "app_title"
msgstr \"My Software Project\"

コンテキスト

gettextは、同じmsgidに対して異なるコンテキストを区別するためにmsgctxt表記を使用します。すべてのキー名は一意である必要があるため、msgctxtがキー名の最初の部分として追加され、2つのパイプ記号||で区切られます:

msgctxt "menu"
msgid "Open"
msgstr \"I'am a translation\"

msgctxt "forum"
msgid "Open"
msgstr \"I'am some other translation\"

新しいキーにmsgctxtを追加するには、キー名の先頭にそれを付加します:

my_context||my_key_name

結果のgettext出力:

...
msgctxt "my_context"
msgid "my_key_name"
...

複数形

gettextは翻訳の複数形をサポートしています:

msgid "new_messages"
msgid_plural ""
msgstr[0] \"You have a new message\"
msgstr[1] \"You have %{count} new messages\"

あいまい一致

あいまい一致キーワードは、翻訳の検証に使用されます。あいまい一致は、Phrase内で自動的に未検証プロセスを呼び出します。

#, あいまい一致
msgid "app_title"
msgstr \"My Software Project\"
この記事は役に立ちましたか?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.