globalize-now-cli-use について
Globalizeプラットフォームで翻訳プロジェクトやリソースを管理するCLI利用スキルです。プロジェクト設定、リポジトリ接続、言語管理、各種設定を案内します。
主な機能
- 01CLIコマンドのJSON出力利用
- 02言語IDの照合とプロジェクト作成
- 03GitHub・GitLabリポジトリの接続
- 04リポジトリのローカライズ構成検出
- 05QAチェックと翻訳プロバイダーの設定
- 06プロジェクト言語の管理
活用シーン
- 01Globalize翻訳プロジェクトの作成
- 02GitHubまたはGitLabリポジトリの接続
- 03リポジトリ内のローカライズファイル確認
- 04QAチェックと通知の設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ globalize-now/ globalize-skills --skill globalize-now-cli-useインストール後、Claude Code で/globalize-now-cli-useを入力して読み込まれたか確認します。
同梱ファイルmetadata.json
詳細
Globalize CLI の使用方法
このスキルでは、CLI(globalise-now-cli)を使用して、Globalize プラットフォームで翻訳リソースを管理する方法を説明します。
プログラムからコマンドを実行するときは、必ず --json を使用してください。 JSON 出力を解析して、後続のコマンドで使用する ID を抽出します。多くの操作で、前の手順から返された UUID が必要になります。
すべての例では npx @globalize-now/cli-client を使用しています。CLI がグローバルにインストールされている場合は、globalise-now-cli に置き換えてください。
ステップ 1:前提条件の確認
認証が設定されていることを確認します。
npx @globalize-now/cli-client auth status --json
失敗する場合、または認証情報がないと表示された場合は、最初に globalize-now-account-setup スキルを実行してください。
ステップ 2:一般的なワークフロー — プロジェクトを作成してリポジトリを接続する
これは最も一般的なエンドツーエンドのワークフローです。以下のサブステップを順番に実行してください。
2a. 利用可能な言語を取得して照合する
プロジェクトは、言語 API から返される言語 IDを使用して作成する必要があります。プロジェクトを作成する前に、カタログを取得し、ユーザーが希望する言語と照合してください。
- 言語カタログを取得します。
npx @globalize-now/cli-client languages list --json
これは、id(UUID)、name、locale(BCP 47 コード)を含む言語オブジェクトの配列を返します。
-
希望する言語をカタログと照合します。 ユーザーのソース言語とターゲット言語のロケールコード(例:
en、fr、de、ja)を、返されたリストのlocaleフィールドと照合します。一致する言語ごとに対応するidを抽出します。 -
未対応の言語を報告します。 ユーザーが希望する言語がカタログにない場合は、どの言語が未対応でプロジェクトに追加できないかをユーザーに伝えてください。黙ってスキップしてはいけません。先に進む前に、ユーザーがその不足を了承する必要があります。一致するカタログ項目がある言語のみで続行してください。
2b. プロジェクトを作成する
ステップ 2a で照合した言語 ID(UUID)を使用してください。ロケールコードをそのまま指定してはいけません。
npx @globalize-now/cli-client projects create \
--name "My App" \
--source-language <SOURCE_LANGUAGE_ID> \
--target-languages <TARGET_LANGUAGE_ID_1> <TARGET_LANGUAGE_ID_2> \
--json
--target-languages には、スペース区切りまたはカンマ区切りの値を指定できます。
返された JSON を解析して、プロジェクト IDを抽出します。
2c. リポジトリを接続する
Globalize は GitHub App または GitLab OAuth 接続を使用して、リポジトリの内容にアクセスします。以下のサブステップを順番に実行してください。
1. Git リモート URL を取得します。
git remote get-url origin
コマンドが失敗した場合(origin という名前のリモートがない場合)は、中止してください。 ユーザーに次のように伝えます。「Git リモート origin が見つかりません。リモートを追加(git remote add origin <URL>)してから再試行するか、Git URL を手動で指定してください。」ユーザーが URL を手動で指定した場合は、その URL を使用して続行します。
2. URL を解析して、オーナーとリポジトリ/プロジェクトを抽出します。
- GitHub HTTPS:
https://github.com/<OWNER>/<REPO>.git - GitHub SSH:
[email protected]:<OWNER>/<REPO>.git - GitLab HTTPS:
https://gitlab.com/<OWNER>/<PROJECT>.git - GitLab SSH:
[email protected]:<OWNER>/<PROJECT>.git
URL を <GIT_URL> として保存します。重要: CLI の --git-url が受け付けるのは HTTPS URL のみです。リモートが SSH URL の場合は、HTTPS 形式に変換してください。
- URL に
github.comが含まれる場合:GitHub フロー(サブステップ 3 以降)に進みます。 - URL に
gitlab.comが含まれる場合:以下のGitLab フローに進みます。 - それ以外の場合:中止してください。 ユーザーに次のように伝えます。「Globalize が対応しているのは GitHub と GitLab のリポジトリです。検出されたリモート URL(
<URL>)は、どちらにも該当しないようです。」続行してはいけません。
3. 同意の確認 — リポジトリの詳細をユーザーに確認します。この手順は、続行する前に必ず完了してください。
検出結果を提示し、確認を求めます。
次のリポジトリが検出されました:
- Git URL:
<GIT_URL>- オーナー:
<OWNER>- リポジトリ:
<REPO>GitHub App(または GitLab OAuth)を使用して、このリポジトリをお客様の Globalize プロジェクトに接続します。インストールを承認するため、ブラウザーウィンドウが開く場合があります。この内容でよろしいですか?
続行する前にユーザーの応答を待ってください。
- ユーザーが確認した場合 → サブステップ 4(GitHub)または GitLab フローに進みます。
- ユーザーが URL を訂正した場合 → サブステップ 2 に戻り、訂正された URL を解析します。
GitHub フロー
4. GitHub App を設定し、リポジトリを接続します:
4a. 既存の GitHub App インストールを確認します:
npx @globalize-now/cli-client github installations --json
インストールの配列が返されます。それぞれに id(UUID — Globalize 内部のインストールレコード)、installationId(GitHub の数値のインストール ID。例:122432012)、accountLogin(GitHub の組織名またはユーザー名)、accountType が含まれます。
4b. インストールをリポジトリの所有者に照合します:
accountLogin が <OWNER> と一致するインストールを探します(大文字と小文字は区別しません)。両方の ID を取得します。数値の installationId は <GITHUB_INSTALLATION_ID> として(github repos/branches/detect --installation-id に使用)、UUID の id は <INSTALLATION_UUID> として取得します(repositories create --github-installation-id に使用)。
- 一致するものがある場合 → 両方の ID を取得し、手順 4d に進みます。
- 一致するものがない場合 → 手順 4c に進みます。
4c. GitHub App をインストールします(ユーザー操作が必要です):
npx @globalize-now/cli-client github install --no-wait --json
すぐに { "installUrl": "...", "nonce": "..." } が返されます。installUrl をユーザーに提示し、ブラウザーで開いて、正しい GitHub アカウントまたは組織を選択し、インストールを承認するよう依頼します。
ユーザーがブラウザーでの手順を完了したと確認したら、ステータスを確認します:
npx @globalize-now/cli-client github install-status --nonce <NONCE> --json
完了すると { "status": "completed", "installationId": "...", "accountLogin": "..." } が、ユーザーがまだ完了していない場合は { "status": "pending" } が、nonce の期限が切れている場合は { "status": "expired" } が返されます。status === "completed" を確認してください。完了していない場合は、完了したかユーザーに確認してから再試行します。
完了したら、github installations --json を再度実行し、対象の所有者に対応する <GITHUB_INSTALLATION_ID>(数値の installationId)と <INSTALLATION_UUID>(UUID の id)を見つけます。
4d. リポジトリへのアクセスを確認します:
npx @globalize-now/cli-client github repos --installation-id <GITHUB_INSTALLATION_ID> --json
返された一覧に <OWNER>/<REPO> が含まれていることを確認します。含まれていない場合、この GitHub App は特定のリポジトリへのアクセス権を持っていない可能性があります。GitHub でインストールのリポジトリアクセス設定を変更する必要があることをユーザーに伝えてください。
4e. リポジトリを接続します:
npx @globalize-now/cli-client repositories create \
--project-id <PROJECT_ID> \
--git-url <GIT_URL> \
--provider github \
--github-installation-id <INSTALLATION_UUID> \
--json
任意のフラグ:--branches <branches...>、--patterns '<JSON array>'、--import-mode <ignore|reviewed|translated>、--import-scope <new_keys_only|all_keys>。
返された JSON を解析し、リポジトリ ID を抽出します。
GitLab フロー
GitLab リポジトリの場合:
4a. 既存の GitLab 接続を確認します:
npx @globalize-now/cli-client gitlab connections --json
接続の配列が返されます。それぞれに id(UUID)、username、gitlabUserId、status、createdAt が含まれます。
4b. 接続をリポジトリの所有者に照合します:
username が GitLab の所有者と一致する接続を探します(大文字と小文字は区別しません)。見つかった場合は、その id を <CONNECTION_ID> として使用します。
- 一致するものがある場合 → その
idを<CONNECTION_ID>として使用し、手順 4d に進みます。 - 一致するものがない場合 → 手順 4c に進みます。
4c. GitLab OAuth 接続をインストールします(ユーザー操作が必要です):
npx @globalize-now/cli-client gitlab install --no-wait --json
すぐに { "installUrl": "...", "nonce": "..." } が返されます。installUrl をユーザーに提示し、ブラウザーで開いて GitLab 接続を認証するよう依頼します。
ユーザーがブラウザーでの手順を完了したと確認したら、ステータスを確認します:
npx @globalize-now/cli-client gitlab install-status --nonce <NONCE> --json
完了すると { "status": "completed", "connectionId": "...", "username": "..." } が、ユーザーがまだ完了していない場合は { "status": "pending" } が、nonce の期限が切れている場合は { "status": "expired" } が返されます。status === "completed" を確認してください。完了していない場合は、完了したかユーザーに確認してから再試行します。
完了したら、connectionId を <CONNECTION_ID> として使用します。
4d. GitLab プロジェクトを一覧表示してアクセスを確認します:
npx @globalize-now/cli-client gitlab projects --connection-id <CONNECTION_ID> --json
pathWithNamespace を <OWNER>/<PROJECT> に照合します。見つからない場合、この GitLab 接続はプロジェクトへのアクセス権を持っていない可能性があります。その旨をユーザーに伝えてください。
4e. リポジトリを接続します:
npx @globalize-now/cli-client repositories create \
--project-id <PROJECT_ID> \
--git-url <GIT_URL> \
--provider gitlab \
--gitlab-connection-id <CONNECTION_ID> \
--json
任意のフラグ:--branches <branches...>、--patterns '<JSON array>'、--import-mode <ignore|reviewed|translated>、--import-scope <new_keys_only|all_keys>。
返された JSON を解析し、リポジトリ ID を抽出します。
2d. リポジトリ設定を検出する
GitHub リポジトリの場合、GitHub App を使って i18n 構造を検出できます:
npx @globalize-now/cli-client github detect \
--installation-id <GITHUB_INSTALLATION_ID> \
--owner <OWNER> \
--repo <REPO> \
--json
GitLab リポジトリの場合、GitLab 接続を使って i18n 構造を検出できます:
npx @globalize-now/cli-client gitlab detect \
--connection-id <CONNECTION_ID> \
--project-id <GITLAB_PROJECT_ID> \
--json
または、接続済みリポジトリから自動検出することもできます(あるいは、追加で自動検出できます):
npx @globalize-now/cli-client repositories detect \
--id <REPO_ID> \
--json
注: すべての検出コマンドは、ローカルの作業コピーではなくリモートのコードに対して実行されます。ロケールファイルに影響する未コミットまたは未プッシュの変更がある場合、検出結果には反映されません。該当する場合はユーザーにお知らせください。
ステップ 2.5:プロジェクト設定
プロジェクトには、QA、プロバイダー、VCS、通知の設定を格納する型付きの config オブジェクトがあります。--config を指定して projects update を使い、設定を追加または変更します。
現在の設定を確認する
npx @globalize-now/cli-client projects get --id <PROJECT_ID> --json
返される JSON には、現在の設定を含む config オブジェクトがあります。
設定を更新する
--config 経由で JSON オブジェクトを渡します。オブジェクトはマージされるため、変更したいキーのみを指定してください:
npx @globalize-now/cli-client projects update \
--id <PROJECT_ID> \
--config '{"qa": {"enabledChecks": ["placeholder", "terminology"]}}' \
--json
同じ呼び出しで --name、--source-language、--target-languages も更新できます。
設定セクション
| セクション | フィールド | 説明 |
|---|---|---|
qa | enabledChecks("placeholder"、"length"、"terminology"、"formatting")、lengthRatioBounds(ロケールをキーとし、それぞれが {min, max} のオブジェクト)、aiReviewScope("enabled"、"disabled") | 品質保証のチェックとしきい値 |
defaultProvider | 文字列 | デフォルトの翻訳プロバイダー |
providerOverrides | ロケールをキーとするオブジェクト → プロバイダー文字列 | 言語ごとのプロバイダー上書き |
deeplFormality | ロケールをキーとするオブジェクト → フォーマル度の文字列 | 言語ごとの DeepL フォーマル度設定 |
github | prTranslations(ブール値)、ignoreDraftPrs(ブール値) | GitHub 連携の動作 |
gitlab | mrTranslations(ブール値)、ignoreDraftMrs(ブール値) | GitLab 連携の動作 |
notifications | webhookUrl(文字列)、webhookSecret(文字列)、emailRecipients(文字列[])、enabledEvents("job_failed"、"qa_issues"、"delivery_failed"、"job_completed") | Webhook とメールの通知設定 |
例
QA チェックを有効にする:
npx @globalize-now/cli-client projects update \
--id <PROJECT_ID> \
--config '{"qa": {"enabledChecks": ["placeholder", "length", "terminology", "formatting"], "aiReviewScope": "enabled"}}' \
--json
GitHub PR 翻訳を設定する:
npx @globalize-now/cli-client projects update \
--id <PROJECT_ID> \
--config '{"github": {"prTranslations": true, "ignoreDraftPrs": true}}' \
--json
Webhook 通知を設定する:
npx @globalize-now/cli-client projects update \
--id <PROJECT_ID> \
--config '{"notifications": {"webhookUrl": "https://example.com/webhook", "enabledEvents": ["job_failed", "job_completed"]}}' \
--json
ステップ 3:プロジェクトの言語を管理する
プロジェクトの作成後、必要に応じてターゲット言語を追加または削除します。
現在のプロジェクト言語を一覧表示します:
npx @globalize-now/cli-client project-languages list \
--project-id <PROJECT_ID> \
--json
これは、プロジェクト言語ごとのプロジェクト言語 ID(グローバル言語 ID とは異なります)を含む配列を返します。用語集とスタイルガイドの操作にこれらの ID が必要です。
言語を追加します:
npx @globalize-now/cli-client project-languages add \
--project-id <PROJECT_ID> \
--name "Spanish" \
--locale es \
--json
必須:--name と --locale(BCP 47 コード)。任意:特定のグローバル言語に紐付ける場合は --language-id。
言語を削除します:
npx @globalize-now/cli-client project-languages remove \
--project-id <PROJECT_ID> \
--language-id <PROJECT_LANGUAGE_ID> \
--json
ステップ 3.5:パターン管理
ロケールパスパターンは、リポジトリ内で翻訳ファイルを配置する場所を定義します。各パターンには、パスのテンプレートとファイル形式があります。パターンはリポジトリの作成・更新とは別に管理します。
パターンを一覧表示します。
npx @globalize-now/cli-client patterns list --repository-id <REPO_ID> --json
パターンを作成します。
npx @globalize-now/cli-client patterns create \
--repository-id <REPO_ID> \
--pattern "locales/{locale}/*.json" \
--file-format json-nested \
--json
対応するファイル形式:json-flat、json-nested、po、xliff-1、xliff-2、yaml-rails、arb、xcstrings、android-strings、chrome-messages、wxt-i18n。
単一ファイル形式({locale} セグメントなし)。 ほとんどの形式ではロケールごとに 1 つのファイルを使用するため、パターンには {locale} プレースホルダーが含まれます(locales/{locale}/*.json)。xcstrings 形式(Apple String Catalog)は異なり、すべてのロケールを 1 つの複数ロケール対応ファイルに格納するため、パターンにはカタログのパスをそのまま指定し、{locale} セグメントは含めません。例:
npx @globalize-now/cli-client patterns create \
--repository-id <REPO_ID> \
--pattern "Localizable.xcstrings" \
--file-format xcstrings \
--json
プロジェクトに複数のカタログテーブル/ディレクトリがある場合は、代わりに "**/*.xcstrings" を使用します。
パスロケールの上書き(ディレクトリ名が言語コードと異なる場合)。 {locale} はリテラルトークンの置換であり、変換は行われません。ブラウザー拡張機能では、カタログが _locales/pt_BR/messages.json(アンダースコア)に保存される一方、プラットフォームの言語は pt-BR です。この違いは言語ごとに記録する必要があります。
npx @globalize-now/cli-client patterns path-locale \
--repository-id <REPO_ID> \
--pattern-id <PATTERN_ID> \
--language-id <PROJECT_LANGUAGE_ID> \
--path-locale pt_BR \
--json
--language-id は project-languages list で取得できるプロジェクト言語の UUID であり、グローバル言語 ID ではありません。上書きを削除して言語独自のコードに戻すには、--path-locale の代わりに --clear を指定します。表記がすでに一致する言語(de、fr、ja)にはエントリーは不要です。リポジトリ作成時には、同じ情報を repositories create --path-locales '[{"pattern": …, "locale": "pt-BR", "pathLocale": "pt_BR"}]' で一度に指定できます。
パターンを更新します。
npx @globalize-now/cli-client patterns update \
--repository-id <REPO_ID> \
--pattern-id <PATTERN_ID> \
--pattern "locales/{locale}/{namespace}.json" \
--json
パターンを削除します。
npx @globalize-now/cli-client patterns delete \
--repository-id <REPO_ID> \
--pattern-id <PATTERN_ID> \
--json
パターンの順序を変更します。
npx @globalize-now/cli-client patterns reorder \
--repository-id <REPO_ID> \
--pattern-id <PATTERN_ID> \
--position 0 \
--json
ステップ 4:用語集管理
用語集を使うと、特定の用語を言語間で一貫して翻訳できます。
用語集のエントリーを一覧表示します。
npx @globalize-now/cli-client glossary list \
--project-id <PROJECT_ID> \
--json
用語集のエントリーを作成します。
npx @globalize-now/cli-client glossary create \
--project-id <PROJECT_ID> \
--source-term "Dashboard" \
--target-term "Tableau de bord" \
--source-language-id <SOURCE_PROJECT_LANGUAGE_ID> \
--target-language-id <TARGET_PROJECT_LANGUAGE_ID> \
--json
--source-language-id と --target-language-id は、project-languages list(ステップ 3)で取得できるプロジェクト言語の UUID であり、グローバル言語 ID ではありません。
すべての言語で原文のまま維持する用語(ブランド名、製品名、コード識別子)には、--do-not-translate を指定します。--target-term も必須です。原文の表記を使用してください。
用語集のエントリーを削除します。
npx @globalize-now/cli-client glossary delete \
--project-id <PROJECT_ID> \
--entry-id <ENTRY_ID> \
--json
用語集全体を 1 回のトランザクションで一括インポートします(最大 10 000 件。各エントリーには独自の言語ペアを指定します)。同じキーの既存エントリーは重複して追加されず、更新されます。
npx @globalize-now/cli-client glossary bulk \
--project-id <PROJECT_ID> \
--entries '[{"sourceTerm":"Dashboard","targetTerm":"Tableau de bord","sourceProjectLanguageId":"<SRC_PL_ID>","targetProjectLanguageId":"<TGT_PL_ID>"},{"sourceTerm":"Globalize","targetTerm":"Globalize","sourceProjectLanguageId":"<SRC_PL_ID>","targetProjectLanguageId":"<TGT_PL_ID>","doNotTranslate":true}]' \
--json
書き込みを行う前に、同じインポートをプレビューできます。作成されるエントリー数と更新されるエントリー数が表示されます。
npx @globalize-now/cli-client glossary preview \
--project-id <PROJECT_ID> \
--keys '[{"sourceTerm":"Dashboard","sourceProjectLanguageId":"<SRC_PL_ID>","targetProjectLanguageId":"<TGT_PL_ID>"}]' \
--json
ステップ 5:スタイルガイド管理
スタイルガイドは、言語ごとの翻訳指示(例:「敬体を使用する」「イギリス英語の綴りを優先する」)を提供します。
スタイルガイドを一覧表示します。
npx @globalize-now/cli-client style-guides list \
--project-id <PROJECT_ID> \
--json
スタイルガイドを作成または更新します。
npx @globalize-now/cli-client style-guides upsert \
--project-id <PROJECT_ID> \
--language-id <PROJECT_LANGUAGE_ID> \
--instructions "Use formal register. Prefer British English spelling." \
--json
--language-id は、project-languages list(ステップ 3)で取得できるプロジェクト言語の UUID です。
スタイルガイドを削除します。
npx @globalize-now/cli-client style-guides delete \
--project-id <PROJECT_ID> \
--language-id <PROJECT_LANGUAGE_ID> \
--json
ステップ 6:組織とチームの管理
エージェントからこれらのコマンドを使う必要はあまりありませんが、リクエストに応じて使用できます。
組織
npx @globalize-now/cli-client orgs list --json
npx @globalize-now/cli-client orgs delete --id <ORG_ID> --json
注:
orgs createコマンドはありません。組織の作成には対話型の(Clerk)セッションが必要で、ウェブアプリで行います。API キーからは利用できません。CLI では組織の一覧表示と削除、および組織内のすべての管理を行えます。
メンバー
npx @globalize-now/cli-client members list --org-id <ORG_ID> --json
npx @globalize-now/cli-client members invite --org-id <ORG_ID> --email <EMAIL> --json
npx @globalize-now/cli-client members remove --org-id <ORG_ID> --membership-id <ID> --json
メンバーはメールアドレス(--email)で招待します。invite では任意で --role フラグを指定できます。値は admin または member(既定値:member)です。
API キー
npx @globalize-now/cli-client api-keys list --org-id <ORG_ID> --json
npx @globalize-now/cli-client api-keys create --org-id <ORG_ID> --name "CI Key" --json
npx @globalize-now/cli-client api-keys revoke --org-id <ORG_ID> --key-id <KEY_ID> --json
GitLab
npx @globalize-now/cli-client gitlab install # OAuth flow (opens browser)
npx @globalize-now/cli-client gitlab install --no-wait --json # Returns URL and nonce
npx @globalize-now/cli-client gitlab install-status --nonce <NONCE> --json
npx @globalize-now/cli-client gitlab connections --json
npx @globalize-now/cli-client gitlab connection-delete --id <ID> --json
npx @globalize-now/cli-client gitlab projects --connection-id <ID> --json
npx @globalize-now/cli-client gitlab branches --connection-id <ID> --project-id <PROJECT_ID> --json
npx @globalize-now/cli-client gitlab detect --connection-id <ID> --project-id <PROJECT_ID> --json
コマンドリファレンス
| Command | Required flags | Optional flags |
|---|---|---|
auth login | (interactive) | --no-wait |
auth complete | --device-code, --code-verifier | --interval, --expires-in |
auth status | ||
auth logout | ||
orgs list | ||
orgs delete | --id | |
projects list | ||
projects create | --name, --source-language (ID), --target-languages (IDs) | --config (JSON), --translation-memory-id |
projects update | --id | --name, --source-language, --target-languages, --config (JSON), --cdn-public (true/false), --auto-discover-locales (true/false), --context |
projects get | --id | |
projects delete | --id | |
projects refs | --id | |
projects scorecards | --limit | |
projects budget | --id | |
projects rotate-webhook-secret | --id | |
languages list | ||
languages get | --id | |
project-languages list | --project-id | |
project-languages add | --project-id, --name, --locale | --language-id |
project-languages remove | --project-id, --language-id | |
repositories list | --project-id | |
repositories create | --project-id, --git-url, --provider | --branches, --github-installation-id, --gitlab-connection-id, --patterns, --import-mode, --import-scope |
repositories update | --id | --git-url, --branches, --github-installation-id, --gitlab-connection-id, --provider, --detected-framework, --import-mode, --import-scope |
repositories delete | --id | |
repositories detect | --id | |
repositories branches | --id | |
repositories discover | --id | |
repositories translate | --id | --branch, --delivery-mode (push|pr) |
patterns list | --repository-id | |
patterns create | --repository-id, --pattern, --file-format | --position |
patterns update | --repository-id, --pattern-id | --pattern, --file-format |
patterns delete | --repository-id, --pattern-id | |
patterns reorder | --repository-id, --pattern-id, --position | |
patterns bulk | --repository-id, --patterns (JSON) | |
patterns path-locale | --repository-id, --pattern-id, --language-id | --path-locale, --clear |
github install | --no-wait | |
github install-status | --nonce | |
github installations | ||
github repos | --installation-id | |
github branches | --installation-id, --owner, --repo | |
github detect | --installation-id, --owner, --repo | |
gitlab install | --no-wait | |
gitlab install-status | --nonce | |
gitlab connections | ||
gitlab connection-delete | --id | |
gitlab projects | --connection-id | |
gitlab branches | --connection-id, --project-id | |
gitlab detect | --connection-id, --project-id | |
glossary list | --project-id | |
glossary create | --project-id, --source-term, --target-term, --source-language-id, --target-language-id | --do-not-translate |
glossary delete | --project-id, --entry-id | |
glossary bulk | --project-id, --entries (JSON) | |
glossary preview | --project-id, --keys (JSON) | |
style-guides list | --project-id | |
style-guides upsert | --project-id, --language-id, --instructions | |
style-guides delete | --project-id, --language-id | |
style-guides generate | --project-id, --language-id | |
style-guides apply | --project-id, --language-id, --generation-id, --instructions | --context, --invalidate-tm |
style-guides quota | --project-id | |
api-keys list | --org-id | |
api-keys create | --org-id, --name | |
api-keys revoke | --org-id, --key-id | |
members list | --org-id | |
members invite | --org-id, --email | --role |
members remove | --org-id, --membership-id | |
namespaces list | --project-id | |
namespaces update | --project-id, --namespace-id, --name | |
namespaces delete | --project-id, --namespace-id | |
translation-memories list | ||
translation-memories create | --name | |
translation-memories get | --id | |
translation-memories rename | --id, --name | |
translation-memories delete | --id | |
translation-memories entries | --id | --query, --source-locale, --target-locale, --limit, --cursor |
translation-memories delete-entry | --id, --entry-id | |
translation-memories clear | --id | --target-locale |
translation-memories count | --id | --target-locale |
translation-memories fresh-count | --id, --target-locale | |
translation-memory list (deprecated) | --project-id | --query, --source-language-id, --target-language-id, --limit, --cursor |
translation-memory delete (deprecated) | --project-id, --entry-id | |
translation-memory count (deprecated) | --project-id | --target-language-id |
translation-memory fresh-count (deprecated) | --project-id, --target-language-id | |
jobs list | --project-id, --status, --limit, --offset | |
jobs get | --id | |
jobs start | --id | |
jobs retry | --id | |
jobs stats | --id | |
jobs qa-report | --id | |
jobs qa-dismiss | --id, --unit-id, --check-type | --reason, --note |
jobs qa-undismiss | --id, --unit-id, --check-type | |
jobs export | --id | --target-lang |
jobs export-manifest | --id | |
jobs units | --job-id, --target-project-language-id | --filter, --search, --limit, --cursor |
jobs unit-get | --job-id, --unit-id | |
jobs files | --id | --limit, --cursor |
jobs redeliver | --id | |
billing balance | ||
billing ledger | --type, --grouped, --limit, --cursor |
追加コマンド:ジョブ、名前空間、翻訳メモリ、請求
これらのコマンドグループでは、初期設定以外の翻訳作業とアカウントの状態を管理します。オンボーディング中に必要となることは比較的少ないですが、必要に応じていつでも利用できます。
ジョブ
翻訳ジョブでは、プロジェクトのパイプラインを実行します。ジョブの確認、開始、再試行、エクスポートができます:
npx @globalize-now/cli-client jobs list --project-id <PROJECT_ID> --json
npx @globalize-now/cli-client jobs get --id <JOB_ID> --json
npx @globalize-now/cli-client jobs start --id <JOB_ID> --json
npx @globalize-now/cli-client jobs stats --id <JOB_ID> --json
npx @globalize-now/cli-client jobs qa-report --id <JOB_ID> --json
ジョブの QA 指摘は、非表示にしたり、再表示したりできます。--check-type は QA チェック(例:placeholder、length、terminology、formatting)を指定し、--unit-id は対象の翻訳ユニットを指定します:
npx @globalize-now/cli-client jobs qa-dismiss --id <JOB_ID> --unit-id <UNIT_ID> --check-type <CHECK> --json
npx @globalize-now/cli-client jobs qa-undismiss --id <JOB_ID> --unit-id <UNIT_ID> --check-type <CHECK> --json
名前空間
名前空間は、プロジェクト内のキーをグループ化します(例:機能やページごと):
npx @globalize-now/cli-client namespaces list --project-id <PROJECT_ID> --json
npx @globalize-now/cli-client namespaces update --project-id <PROJECT_ID> --namespace-id <NS_ID> --name "common" --json
npx @globalize-now/cli-client namespaces delete --project-id <PROJECT_ID> --namespace-id <NS_ID> --json
namespaces create コマンドはありません。名前空間は、キーのインポート時に自動的に作成されます。
翻訳メモリ
翻訳メモリ(TM)は、以前の翻訳を保存して再利用できるようにします。メモリはプロジェクト単位ではなく、組織単位のリソースです。複数のプロジェクトを同じメモリに接続し、そのエントリを共有できます。projects get(translationMemory.id)でプロジェクトのメモリを取得するか、組織内のすべてのメモリを一覧表示します:
npx @globalize-now/cli-client translation-memories list --json
npx @globalize-now/cli-client translation-memories get --id <TM_ID> --json # attached projects + locales
エントリは、プロジェクトの言語 UUID ではなく、メモリ ID とロケール(en、fr-CA)で指定します:
npx @globalize-now/cli-client translation-memories entries --id <TM_ID> --target-locale fr --json
npx @globalize-now/cli-client translation-memories count --id <TM_ID> --json
npx @globalize-now/cli-client translation-memories fresh-count --id <TM_ID> --target-locale fr --json
npx @globalize-now/cli-client translation-memories delete-entry --id <TM_ID> --entry-id <ENTRY_ID> --json
メモリ自体を管理するには:
npx @globalize-now/cli-client translation-memories create --name "Marketing site" --json
npx @globalize-now/cli-client translation-memories rename --id <TM_ID> --name "Marketing" --json
npx @globalize-now/cli-client translation-memories clear --id <TM_ID> --target-locale fr --json # omit the locale to clear everything
npx @globalize-now/cli-client translation-memories delete --id <TM_ID> --json
作成時に projects create --translation-memory-id <TM_ID> を指定すると、新しいプロジェクトを既存のメモリに接続できます。この接続は永続的です。
破壊的な操作は、接続されているすべてのプロジェクトに影響します。 clear、delete-entry、delete は共有メモリに対して実行されるため、他のプロジェクトが追加したエントリも消去されます。attachedProjectCount(translation-memories list/get から取得)を確認し、消去または削除する前にユーザーに確認してください。translation-memories delete は、プロジェクトが接続されていないメモリに対してのみ実行できます。
従来のプロジェクト単位のコマンド(translation-memory list|count|fresh-count|delete --project-id)も引き続き動作し、プロジェクトのメモリを自動的に解決します。ただし、非推奨であることを示す警告が表示され、projectId の代わりに translationMemoryId を含むエントリが返されます。上記の translation-memories コマンドを優先して使用してください。
請求
組織のクレジット残高と台帳を確認します:
npx @globalize-now/cli-client billing balance --json
npx @globalize-now/cli-client billing ledger --json
billing balance は、API キーから組織を特定します。チェックアウトとポータルのフローはウェブ専用であり、API キーでは利用できません。
よくある注意点
- 必ず
--jsonを使用してください:CLI は非 TTY を自動検出して JSON を出力しますが、信頼性を高めるため、プログラムから実行する際は必ず明示的に--jsonを指定してください。 - ID は UUID です(
--installation-idを除く):すべての--id、--project-id、--org-idなどには、以前の create/list コマンドで返された UUID 値を指定します。インストール ID を指定するフラグは 2 種類あり、それぞれ異なる値の型を受け取ります。--installation-id(github repos、github branches、github detectで使用)には、数値の GitHub インストール ID(github installations --jsonのinstallationIdフィールド。例:122432012)を指定します。--github-installation-id(repositories create/updateで使用)には、UUID(github installations --jsonのidフィールド)を指定します。JSON レスポンスから両方の ID を必ず取得してください。 - プロジェクトの言語 ID とグローバルな言語 ID:用語集(
--source-language-id、--target-language-id)とスタイルガイド(--language-id)のコマンドでは、プロジェクトの言語 UUID(特定のプロジェクト内での言語 ID)を使用します。これらはproject-languages listから取得してください。languages listから取得してはいけません。例外として、translation-memoriesコマンドでは、メモリーが複数のプロジェクトで共有されるため、通常のロケール(--source-locale、--target-locale)を指定します。 - GitHub リポジトリには GitHub App が必要です:GitHub リポジトリを接続する際は、GitHub App のフロー(
github installations/github install)を使用してインストール ID を取得し、repositories createの--github-installation-idで指定します。これを行わないと、Globalize はリポジトリの内容にアクセスできません。ブロックせずにインストール URL を取得するにはgithub install --no-wait --jsonを使用し、その URL をユーザーに提示してから、github install-status --nonce <NONCE> --jsonで完了を確認してください。 - パターンは個別に管理します:リポジトリを作成した後、
patterns list/create/update/delete/reorderを使用してロケールのパスパターンを管理します。repositories createの--patternsフラグは初期設定専用です。作成後にパターンを変更するには、パターンの CRUD コマンドが必要です。 - GitLab ではインストールではなく接続を使用します:GitLab リポジトリでは
gitlab connections(github installationsではありません)を使用し、repositories createでは--github-installation-idではなく--gitlab-connection-idを指定します。GitLab のプロジェクト ID は 数値 です(UUID ではありません)。 - プロジェクトを作成する前に言語を検証してください:必ず
languages list --jsonを取得し、ユーザーが希望するロケールをカタログと照合してください。--source-languageと--target-languagesには、返された UUID を使用してください。ロケールコードをそのまま指定してはいけません。カタログに該当する言語がなく、サポートされていない言語がある場合は、そのことをユーザーに伝えてください。 - 非対話型のコンテキストでの認証:CLI は TTY がない場合、対話型ログインにフォールバックしません。
GLOBALIZE_API_KEYが設定されているか、~/.globalize/config.jsonが存在することを確認してください。