Phrase Strings CLIツールは、APIのナビゲーションをサポートし、curlリクエストからではなく、コマンドラインからプロジェクトと翻訳を素早く管理できます。
米国データセンターを使用する場合は、ホストをphrase init --host https://api.us.app.phrase.com/v2
で渡します。設定がすでに生成されている場合は、次のコードを追加します。
phrase: host: https://api.us.app.phrase.com/v2
.phrase.yml
設定ファイルを編集することで、クライアントのファイルをプッシュおよびプルする方法を制御できます。
-
プロジェクトを初期化します。
phrase init
を実行してプロジェクトを初期化します。これは、推奨ロケールファイル形式や原文ファイルなどを定義できます。$ phrase init
-
ロケールファイルをアップロードします。
ロケールファイルのアップロードには
push
サブコマンドを使用します。$ phrase push
-
ロケールファイルをダウンロードします。
最新のロケールファイルをダウンロードしてプロジェクトに戻すには、
pull
サブコマンドを使用します。$ phrase pull
-
その他のサブコマンド。
使用可能なすべてのサブコマンドの一覧を表示するには、サブコマンドを指定せずに
Phrase
を実行します。特定のサブコマンドが対応しているすべてのオプションを表示させるには、--help
フラッグを使用します。$ phrase locales list --help
設定ファイルのサンプル。
エスケープルールと見積もりの使用例
コマンドラインで JSON オブジェクトを渡す場合、エスケープ規則と引用符の使用は、使用するシェルによって異なることがあります。
Windows シェルを使用する場合は、JSON 文字列全体を二重引用符""
で囲み、JSON 内の二重引用符はバックスラッシュ \
文字でエスケープします。以下に例を挙げます。
phrase locales create --project_id PROJECT123 --data "{\"name\":\"French\", \"code\":\"fr\"}" --access_token TOKEN123123
APIエンドポイントへのアクセス
クライアントは、すべての API エンドポイントへのアクセスに使用できます。たとえば、すべてのプロジェクトを一覧表示するには、次のようにします。
$ phrase projects list --access_token ACCESS_TOKEN
Phrase認証情報を使用した認証
--username
フラッグでユーザー名を指定すると、パスワードが要求されます。
$ phrase projects list --username user@example.com Password: ********
ユーザーまたは組織で2段階認証がアクティブ化されている場合、有効な多要素トークンを--tfa
フラッグで指定する必要があります。
$ phrase projects list --username user@example.com --tfa Password: ******** TFA: ********
アクセストークンによる認証
環境変数の設定は、プラットフォームによって異なります。.phrase.yml
設定ファイルにアクセストークンを保存することをおすすめします。
--access token
フラッグを使用してアクセストークンを指定します。
$ phrase projects list --access_token ACCESS_TOKEN
または、PHRASE_ACCESS_TOKEN
環境変数を使用してトークンを格納することもできます。
export PHRASE_ACCESS_TOKEN="ACCESS_TOKEN"
2段階認証がアクティブ化されている場合、有効な多要素トークンを--x_phrase_app_otp
フラッグ経由で提供する必要があります。
$ phrase projects list --access_token ACCESS_TOKEN --x_phrase_app_otp PASSWORD
トークンは対話モードで--tfa
フラッグを使用して提供することもできます。
$ phrase projects list --access_token ACCESS_TOKEN --tfa TFA: ********
アクセストークンはデフォルトで.phrase.yml
設定ファイルから読み取られますが、前述のフラッグまたは環境変数を使用することで動作を上書きでき、フラッグまたは環境変数経由で提供されたトークンが代わりに使用されます。flags経由で提供されたトークンは環境変数経由で提供されたトークンを上書きします。
プッシュとプル
push コマンドと pull コマンドを使用して、ロケールファイルのアップロードとダウンロードを行います。コマンドライン引数の代わりに、プッシュとプルは、プロジェクトのルートフォルダにある .phrase.yml
設定ファイルに保存されている設定に基づきます。
push の
オプションが true に設定されている場合、push によって翻訳が上書きされます。pullは常にローカルファイルの翻訳を上書きします。一般的な Rails アプリケーションのロケールファイルをアップロードおよびダウンロードするための設定例:
phrase: access_token:"ACCESS_TOKEN" project_id:"PROJECT_ID" file_format: "yml" push: sources: - file: "./config/locales/<locale_name>.yml" pull: targets: - file: "./config/locales/<locale_name>.yml"
push コマンドを使用して、config/locales フォルダ内のde.yml
およびen.yml
ファイルと一致する project_id
で識別されるプロジェクトにロケールファイルをアップロードします。新しいキーがある場合、これらはローカライゼーションファイルに追加されます。
$ phrase push Uploading config/locales/de.yml Uploaded config/locales/de.yml successfully. Uploading config/locales/en.yml Uploaded config/locales/en.yml successfully.
pull コマンドを使用して、project_id
で識別されるプロジェクトからそれぞれのファイルパスにロケールファイルをダウンロードします。新しいキーがある場合、これらはプロジェクトに追加されます。
$ phrase pull Downloaded de to config/locales/de.yml Downloaded en to config/locales/en.yml
レート制限のサポート
クライアントはロケールダウンロードのレート制限をサポートしています。レート制限に到達すると、クライアントはレート制限の期限が切れるまで待機し、その後はロケールのダウンロードを続行します。クライアントはレート制限を超過していますと表示します。ダウンロードは x 秒後に再開されます。
クリーンアップののアップロード
uploads cleanup コマンドは、プロジェクト内で検出されたが、アップロードされたファイルに含まれていないキーを削除するために使用します。ロケールファイルをプッシュした後は、デフォルトロケールやその他のロケールに含まれていないすべてのキーの削除が必要になる場合があります。
$ phrase uploads cleanup --id <YOUR_UPLOAD_ID>
ファイル形式オプション
CSVなど一部のファイル形式は、アップロード時に追加のファイル形式オプションを使用できます。オプションの前に --format_options
を付けてアクセスします。
phrase uploads create \ --project_id PROJECT_ID \ --file ./en.csv \ --file_format csv \ --locale_mapping ‘{“en”:3, “de”:2}’ \ --format_options ‘{“key_index”:1}’ \ --access token YOUR_ACCESS_TOKEN
翻訳キーのプレフィックス
翻訳キーのプレフィックスは、異なるプロジェクトやファイル間でのキーの衝突を防ぎ、翻訳キーのトレーサビリティを向上させます。CLIインターフェイスは、プル操作とプッシュ操作の両方でキーのプレフィックス処理をサポートします。
-
プッシュパラメータ:
-
translation_key_prefix
:プッシュされる翻訳キーの先頭に、指定したプレフィックスが追加されます。-
マジックプレースホルダー
<file_path>
を使用すると、translation_key_prefix
が現在のファイルパスに自動的に設定されます。パスの長さは最大255文字です。
-
-
-
プルパラメータ:
-
translation_key_prefix
:このパラメータを使用すると、プル操作中に翻訳キー名からプレフィクスを差し引くことができます。-
マジックプレースホルダー
<file_path>
を使用すると、translation_key_prefix
が現在のファイルパスに自動的に設定されます。パスの長さは最大255文字です。
-
-
filter_by_prefix
:翻訳キーを取り出す前にプレフィックスに基づいてフィルタリングするboolean型オプション。
-
phrase.yml
ファイルの設定例:
phrase: access_token: access_token file_format: yml push: sources: - file: path/to/your/file.yml project_id: project_id params: locale_id: en translation_key_prefix: prefix_ pull: targets: - file: path/to/your/file.yml project_id: project_id params: translation_key_prefix: prefix_ filter_by_prefix: true
Curl コマンドの例:
curl "https://api.phrase.com/v2/projects/:project_id/uploads?translation_key_prefix=prefix_" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \ -F file=@/path/to/my/file.format \ -F file_format=format \ -F locale_id=locale_id
curl "https://api.phrase.com/v2/projects/:project_id/locales/:id/download?file_format=file_format&translation_key_prefix=prefix_&filter_by_prefix=true" \ -u USERNAME_OR_ACCESS_TOKEN
プロキシ
プロキシを使用する場合は、HTTPS_PROXY
環境変数を使用してプロキシ設定を指定します。
export HTTPS_PROXY=https://user:password@host:port
複数のローカリゼーションファイルを持つプロジェクト
プロジェクトのロケールごとに 1 つのファイルを使用します。ツールやフレームワークによって複数のファイルの使用が強制される場合は、プロジェクト設定方法の詳細については、「 ファイル構造の維持 」を参照してください。
複数のプロジェクトを含むローカリゼーションプロジェクト
大規模なローカリゼーションプロジェクトでは、複数のプロジェクトに翻訳を分散させます。複数のローカリゼーションファイルを含むプロジェクトを扱うように CLI を設定します。
ファイル形式オプション
一部のファイル形式では、ファイル形式オプションを指定することで、ファイル構文をより詳細に制御できます。.phrase.yml
設定ファイルでファイル形式オプションを指定します::
phrase: pull: targets: - file: file.xml params: format_options: convert_placeholder: true push: sources: - file: file.csv params: format_options: column_separator: ";"
Android プロジェクト用設定
Android では、ファイルパターンとして標準の ISO 言語コードは使用されません。.phrase.yml
で必要なパターンを指定できます。
.phrase.yml
ファイルで各ロケールを明示的に指定します。次に、英語をデフォルト言語、ドイツ語ロケール、およびオーストリアドイツ語のドイツ語地域ロケールとする .phrase.yml
コンフィギュレーションの例を示します。
phrase: access_token:ACCESS_TOKEN project_id:PROJECT_ID file_format: xml pull: targets: - file: ./app/src/main/res/values/strings.xml params: file_format: xml # Unique locale id for English locale_id:LOCALE_ID - file: ./app/src/main/res/values-de/strings.xml params: file_format: xml # Unique locale id for German locale_id:LOCALE_ID - file: ./app/src/main/res/values-de-rAU/strings.xml params: file_format: xml # Unique locale id for Austrian locale_id:LOCALE_ID push: sources: - file: ./app/src/main/res/values/strings.xml params: file_format: xml locale_id:LOCALE_ID - file: ./app/src/main/res/values-de/strings.xml params: file_format: xml locale_id:LOCALE_ID - file: ./app/src/main/res/values-de-rAU/strings.xml params: file_format: xml locale_id:LOCALE_ID