crowdin-context-cli について
Crowdin Context CLI は、文字列の AI コンテキストをダウンロード、編集、アップロードし、登録状況を集計するツールです。Crowdin プロジェクトで翻訳コンテキストを管理するローカライゼーション作業に使えます。
主な機能
- 01ファイル、ラベル、ブランチで文字列を絞り込み
- 02JSONL 形式でコンテキストを入出力
- 03コンテキストの登録状況を集計
- 04手動分を保ちながら AI コンテキストをリセット
- 05dryrun で変更を事前確認
活用シーン
- 01AI エージェントによる補足用に文字列を出力
- 02プロジェクトのブランチ別に登録状況を確認
- 03編集済み AI コンテキストをアップロード
- 04再生成前に古い AI コンテキストを削除
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ crowdin/ skills --skill crowdin-context-cliインストール後、Claude Code で/crowdin-context-cliを入力して読み込まれたか確認します。
詳細
Crowdin Context CLI
コンテキストのダウンロードとアップロードには、Crowdin CLI を使用します。デフォルトでは crowdin.yml から設定が読み込まれます。必要に応じて -c, --config=<path> で上書きできます。
crowdin context <command> [options]
context download
AI エージェントで補足するため、文字列のコンテキストを別ファイルにダウンロードします。
crowdin context download [CONFIG OPTIONS] [OPTIONS]
--to=<path>— コンテキストのダウンロード先のファイルパス。デフォルト:crowdin-context.jsonl-f, --file=<glob>— Crowdin のファイルパス(glob)で文字列を絞り込みます。複数のパスを指定できます--label=<label>— ラベルで文字列を絞り込みます。複数のラベルを指定できます-b, --branch=<name>— ブランチ名で絞り込みます--croql=<expr>— CroQL 式(ほかの絞り込みオプションとは併用できません)--since=<YYYY-MM-DD>— この日付より後に作成された文字列のみを対象にします--status=<value>— 文字列がすでに持っているコンテキストの種類:empty(種類を問わずコンテキストなし)、manual(ソースコンテキストあり、AI コンテキストなし)、ai(AI コンテキストが書き込まれている)。以下を参照してください。これは「コンテキストがまだ必要な文字列」を絞り込むオプションではありません
設定ファイルを使用しない場合の設定オプション:-T, --token、-i, --project-id、--base-url、--base-path。-c, --config=<path> で設定ファイルを上書きできます(デフォルト:crowdin.yml または crowdin.yaml)。
AI コンテキストが必要な文字列を選択する --status の値は、ソース形式によって異なるため、省略することをおすすめします。 ソース参照を Crowdin に引き継ぐ形式(例:PO の #: 行)では、すべての文字列に手動コンテキストが残るため、empty では何も一致せず、manual ではすべてが一致します。コンテキストを持たない形式では、その逆になります。--status を指定しなければ、1 回の実行ですべてのケースをダウンロードできます。また、余分なコストもかかりません。context upload は、ai_context が実際に入力されたレコードのみを書き戻します。
context upload
文字列のコンテキストをアップロードします。context download で事前にダウンロードしたファイルのみサポートされます。
crowdin context upload [CONFIG OPTIONS] [OPTIONS]
--from=<path>— コンテキストのアップロード元のファイルパス。デフォルト:crowdin-context.jsonl--overwrite—ai_contextが空の文字列も更新します(その AI セクションを削除します)。デフォルト:false--dryrun— 実行せずにコマンドの出力を表示します
context status
コンテキストの網羅状況(手動、AI、またはコンテキストなしの文字列の数)を表示します。
crowdin context status [CONFIG OPTIONS] [OPTIONS]
-f, --file=<glob>— Crowdin のファイルパス(glob)で文字列を絞り込みます。複数のパスを指定できます--label=<label>— ラベルで文字列を絞り込みます。複数のラベルを指定できます-b, --branch=<name>— ブランチ名で絞り込みます--croql=<expr>— CroQL 式(ほかの絞り込みオプションとは併用できません)--since=<YYYY-MM-DD>— この日付より後に作成された文字列のみを対象にします--by-file— ファイルごとに統計を分けて表示します
context reset
文字列から AI が生成したコンテキストを削除します。手動で記述したコンテキストは保持されます。
crowdin context reset [CONFIG OPTIONS] [OPTIONS]
-f, --file=<glob>— 一致するファイルパスの文字列のみをリセットします。複数のパスを指定できます--label=<label>— 一致するラベルを持つ文字列のみをリセットします。複数のラベルを指定できます-b, --branch=<name>— 一致するブランチの文字列のみをリセットします--croql=<expr>— CroQL 式に一致する文字列のみをリセットします(ほかの絞り込みオプションとは併用できません)--since=<YYYY-MM-DD>— この日付より後に作成された文字列のみをリセットします--dryrun— 実行せずにコマンドの出力を表示します--all— 絞り込み条件が指定されていない場合に必要な安全フラグです
JSONL format
1 行につき JSON オブジェクトが 1 つ含まれます。フィールド:
id— Crowdin の文字列 IDkey— 文字列キーtext— ソーステキストfile— Crowdin のファイルパスcontext— 既存のソースコンテキストai_context— 設定する AI コンテキスト(アップロード前にこのフィールドを編集してください)
行の例:
{"file":"/src/locales/en.po","ai_context":"","context":"#: src/App.tsx:54","id":3125833,"text":"Click on the Vite and React logos to learn more","key":"Click on the Vite and React logos to learn more"}
一般的なワークフロー
- カバレッジを確認します(任意):
crowdin context status— 手動、AI、コンテキストなしの内訳を確認できます。次のステップで--statusフィルターを選ぶ前に内容を確認するか、フィルターを省略してすべてを対象にします。 - ダウンロードします:
crowdin context download(デフォルトでcrowdin-context.jsonlに書き込みます)、またはcrowdin context download --to=path/to/file.jsonl - ファイルを編集し、各文字列の
ai_contextを入力します(context-extraction を使うと便利です)。 - アップロードします:
crowdin context upload(デフォルトでcrowdin-context.jsonlから読み込みます)、またはcrowdin context upload --from=path/to/file.jsonl
後でAI生成コンテキストを破棄する場合(たとえば、最初からコンテキストの補完をやり直す前など)は、フィルターを指定して crowdin context reset を実行するか、crowdin context reset --all を実行します。