CLI

CLI の使用(Strings)

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

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 設定ファイルを編集することで、クライアントのファイルをプッシュおよびプルする方法を制御できます。

  1. プロジェクトを初期化します。

    phrase init を実行してプロジェクトを初期化します。これは、推奨ロケールファイル形式や原文ファイルなどを定義できます:

    $ phrase init
  2. ロケールファイルをアップロードします。

    ロケールファイルのアップロードには push サブコマンドを使用します:

    $ phrase push
  3. ロケールファイルをダウンロードします。

    最新のロケールファイルをダウンロードしてプロジェクトに戻すには、 pull サブコマンドを使用します:

    $ phrase pull
  4. その他のサブコマンド。

    使用可能なすべてのサブコマンドの一覧を表示するには、サブコマンドを指定せずに 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 の update_translations オプションが 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
この記事は役に立ちましたか?

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.