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: ********
Stringsアクセストークンを使用した認証
--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設定ファイルから読み取られますが、前述のフラッグまたは環境変数を使用することで動作を上書きでき、フラッグまたは環境変数経由で提供されたトークンが代わりに使用されます。フラッグ経由で提供されたトークンは環境変数経由で提供されたトークンを上書きします。
.phrase.ymlファイルをコードリポジトリに保存する際は、最初にトークンを削除し、環境変数やコマンドラインフラグを通じてトークンを渡すなどの代替手段を使用することをお勧めします。リポジトリに秘密のトークンを直接保存することはセキュリティ上の問題になる可能性があります。
プラットフォームアクセストークンを使用した認証
プラットフォームAPIトークンはStrings CLIによって直接受け入れられません。 ユーザーは最初に短命の製品アクセストークン(JWT)と交換する必要があります、その後、次のいずれかのオプションを通じて返されたトークンを使用します:
-
環境変数を設定する
export PHRASE_ACCESS_TOKEN="GENERATED-JWT" phrase projects list --access_token "$PHRASE_ACCESS_TOKEN"
-
トークンを直接渡す
phrase projects list --access_token GENERATED-JWT
プッシュとプル
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 de を config/locales/de.yml にダウンロードしました en を 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: プルする前にプレフィックスに基づいて翻訳キーをフィルタリングするブールオプション。
-
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_
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つのプロジェクトのための複数のローカリゼーションファイル
プロジェクトのロケールごとに1つのファイルを使用します。ツールやフレームワークによって複数のファイルの使用が強制される場合は、プロジェクト設定方法の詳細については、ファイル構造の維持を参照してください。
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で必要なパターンを指定してください。
各ロケールのために別々のプルターゲットを定義する代わりに、グローバルなlocale_mapping設定を使用し、<locale_name>プレースホルダーと組み合わせてください。CLIは、対応するロケールのマッピングからカスタム名を使用し、他のすべての言語に対してデフォルトのPhraseロケールコードにフォールバックします。
例:
phrase:
access_token: ACCESS_TOKEN
project_id: PROJECT_ID
file_format: "xml"
# PhraseロケールをAndroid特有のディレクトリ名にマッピング
locale_mapping:
en-US: values
de-DE: values-de-rDE
fr-FR: values-fr
push:
sources:
# ソースファイルはデフォルト言語であり、'values'にマッピングされます
- file: ./app/src/main/res/values/strings.xml
params:
ロケール_ID: en-US # ソースロケールはPhraseと一致する必要があります
pull:
targets:
# <ロケール名> プレースホルダーを使用してください。これはマッピングによって置き換えられます。
- file: ./app/src/main/res/<locale_name>/strings.xml