大規模プロジェクト

更新日:前四半期 · 読了目安 1分

非推奨

このドキュメントは旧CLI(v0)について説明しています。現在のCLIはv1です。 現在の CLI ドキュメントを見る

Lingo.dev CLI は、並列処理、lockfile を使った増分翻訳、対象を絞った処理オプションにより、数千の翻訳キーと数十の対象言語を扱うプロジェクトにも対応できます。

並列処理#

CLI は翻訳タスクを複数のワーカーに分散して同時実行します。デフォルトの並列数は 10 ワーカーです。

bash
npx lingo.dev@latest run

大規模プロジェクトでは、並列数を増やせます:

bash
npx lingo.dev@latest run --concurrency 20

50 ファイル × 10 言語のプロジェクトでは、翻訳タスクは 500 件にのぼります。並列処理なら、これらを逐次ではなく同時に処理できます。ワーカーアーキテクチャの詳細は Parallel Processing を参照してください。

対象を絞った処理#

プロジェクト全体ではなく、必要な範囲だけを処理できます:

bash
# Specific languages
npx lingo.dev@latest run --target-locale es --target-locale fr

# Specific file format
npx lingo.dev@latest run --bucket json

# Specific files
npx lingo.dev@latest run --file components/header

# Specific keys
npx lingo.dev@latest run --key welcome.title

これらのオプションは組み合わせて使えます。--force --bucket json --target-locale es を使うと、スペイン語の JSON コンテンツだけを再翻訳できます。

CI/CD 連携#

GitHub Actions を使えば、push のたびに翻訳を自動化できます:

yaml
name: Lingo.dev Localization
on:
  workflow_dispatch:
permissions:
  contents: write
  pull-requests: write
jobs:
  localize:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}

lockfile によって、変更があったコンテンツだけが翻訳されるため、大規模プロジェクトでも CI の実行を高速に保てます。

バケット構成#

対象を絞って処理できるよう、コンテンツ種別ごとにバケットを分けましょう:

json
{
  "buckets": {
    "json": {
      "include": ["src/locales/[locale].json"]
    },
    "markdown": {
      "include": ["docs/[locale]/*.md"]
    }
  }
}

これにより、ドキュメントとアプリのコンテンツをそれぞれ独立して処理できます。--bucket markdown を使えば、ドキュメントだけを翻訳できます。

次のステップ#