|Labs
デモを予約プラットフォーム
React (Lingo Compiler)
Alpha
React MCPReact (i18n)旧CLI(v0)
非推奨

Lingo.dev CLI

  • 仕組み
  • セットアップ
  • クイックスタート
  • モノレポ

設定

  • 対応フォーマット
  • i18n.json
  • i18n.lock
  • 対応ロケール

機能

  • 既存の翻訳
  • 言語を追加する
  • オーバーライド
  • 翻訳ノート
  • 翻訳キー
  • キーのリネーム
  • キーのロック
  • キーの無視
  • キー保持
  • AIでキーを抽出

パフォーマンス

  • 大規模プロジェクト
  • 並列処理
  • コスト見積もり

再翻訳

  • 自動再翻訳
  • 再翻訳
  • 翻訳を削除

このドキュメントは非推奨の旧CLI(v0)を対象としています。現行のCLIはv1です。 現行CLIのドキュメントを見る

対応フォーマット

Lingo.dev CLI は、さまざまなファイル形式を解析・翻訳するためにバケットタイプを使用します。各バケットタイプは、特定の形式に対応した専用パーサーです。CLI が翻訳対象とするファイルを定義するには、i18n.json で 1 つ以上のバケットを設定します。

バケットタイプ#

バケットタイプフォーマット出力モード[locale] 必須
jsonJSON ファイルロケールごとに別ファイルはい
json5JSON5 ファイルロケールごとに別ファイルはい
jsoncJSONC ファイル(コメント付き)ロケールごとに別ファイルはい
json-dictionaryJSON 辞書(フラットなキー・バリュー)ロケールごとに別ファイルはい
yamlYAML ファイルロケールごとに別ファイルはい
yaml-root-keyロケールをルートキーに持つ YAMLソースファイルを更新いいえ
markdownMarkdown ファイルロケールごとに別ファイルはい
mdxMDX ファイルロケールごとに別ファイルはい
markdocMarkdoc ファイルロケールごとに別ファイルはい
htmlHTML ファイルロケールごとに別ファイルはい
mjmlMJML メールテンプレートロケールごとに別ファイルはい
androidAndroid XML リソースロケールごとに別ファイルはい
xcode-stringsXcode .strings ファイルロケールごとに別ファイルはい
xcode-stringsdictXcode .stringsdict ファイルロケールごとに別ファイルはい
xcode-xcstringsXcode .xcstrings カタログソースファイルを更新いいえ
flutterFlutter ARB ファイルロケールごとに別ファイルはい
poGNU gettext PO ファイルロケールごとに別ファイルはい
propertiesJava .properties ファイルロケールごとに別ファイルはい
csvCSV ファイルソースファイルを更新いいえ
csv-per-localeCSV ファイル(ロケールごとに 1 ファイル)ロケールごとに別ファイルはい
xml汎用 XML ファイルロケールごとに別ファイルはい
xliffXLIFF ファイルロケールごとに別ファイルはい
srtSRT 字幕ファイルロケールごとに別ファイルはい
vttVTT 字幕ファイルロケールごとに別ファイルはい
phpPHP ローカライゼーション配列ロケールごとに別ファイルはい
typescriptTypeScript ファイルロケールごとに別ファイルはい
vue-jsonVue i18n JSON ブロックロケールごとに別ファイルはい
txtプレーンテキストファイルロケールごとに別ファイルはい

出力モード#

バケットは、次の 2 つの出力モードのいずれかで動作します。

ロケールごとに別ファイル - CLI はターゲット言語ごとに個別のファイルを生成します。include パターンには [locale] プレースホルダーを含める必要があります。

json
{
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"]
    }
  }
}

これにより、locales/en.json、locales/es.json、locales/fr.json などのファイルが生成されます。

ソースファイルを更新 - CLI は、ソースコンテンツを含む同じファイルに翻訳を書き戻します。[locale] プレースホルダーは使いません。

json
{
  "buckets": {
    "csv": {
      "include": ["translations.csv"]
    }
  }
}

CSV ファイルは通常、1 つのファイル内の列にすべてのロケールを格納します。Xcode .xcstrings カタログや、ルートキーを持つ YAML も同様です。

設定例#

JSON を使った Web アプリ#

json
{
  "buckets": {
    "json": {
      "include": ["src/locales/[locale].json"],
      "lockedKeys": ["brand/name"]
    }
  }
}

Markdown を使ったドキュメントサイト#

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

モバイルアプリ(iOS + Android)#

json
{
  "buckets": {
    "xcode-xcstrings": {
      "include": ["ios/Localizable.xcstrings"]
    },
    "android": {
      "include": ["android/app/src/main/res/values-[locale]/strings.xml"]
    }
  }
}

複数フォーマットを含むモノレポ#

json
{
  "buckets": {
    "json": {
      "include": ["apps/web/locales/[locale].json"]
    },
    "mdx": {
      "include": ["packages/docs/content/[locale]/*.mdx"]
    },
    "flutter": {
      "include": ["apps/mobile/lib/l10n/app_[locale].arb"]
    }
  }
}

バケット固有の機能#

一部のバケットでは、include / exclude パターンに加えて、追加機能も利用できます。

機能対応バケット説明
Key Lockingキー・バリュー形式(JSON、YAML など)翻訳せずにソースの値をコピー
Key Ignoringキー・バリュー形式キーをターゲットファイルから完全に除外
Key Preservingキー・バリュー形式一度初期化したら、その後の更新から保護
Translator NotesJSONC、XCStringsコメントで文脈を補足し、翻訳品質を向上

include パターンのルール#

  • パターンは i18n.json ファイルの場所からの相対パスです
  • ロケールコードのプレースホルダーとして [locale] を使います(「ロケールごとに別ファイル」バケットでは必須)
  • アスタリスク(*)は任意のファイル名に一致します: locales/[locale]/*.json
  • 再帰パターン(**)は、任意の深さにあるファイルに一致します: src/**/[locale].json、config/locales/**/[locale].yml。パターンで ** を使う場合、node_modules、.git、dist、build、.next、.turbo はデフォルトで除外されます。必要に応じて、独自の exclude エントリを追加してください(CLI 0.135.0+ が必要です)
  • ファイル拡張子は解析に影響しません。どのパーサーを使うかはバケットタイプで決まります

次のステップ#

i18n.json
設定リファレンスの完全版
Key Locking
特定のキーを翻訳対象から保護
Existing Translations
すでに翻訳があるプロジェクトに CLI を追加
Setup
CLI のインストールと設定

このページは役に立ちましたか?

Max PrilutskiyMax Prilutskiy·更新済み 1日前·2分で読めます