言語の追加
Lingo.dev CLIを使用すると、i18n.json設定にターゲットロケールを追加し、単一のコマンドを実行するだけで、プロジェクトを新しい言語に簡単に拡張できます。
新しい言語を追加すると、CLIは既存のすべての翻訳を保持し、同じコンテンツフィンガープリントシステムを維持しながら、新しいロケール用の完全な翻訳ファイルを生成します。
最初の新しい言語の追加
新しい言語を追加するには、i18n.json設定のtargets配列を更新します:
元の設定:
{
"locale": {
"source": "en",
"targets": ["es", "fr"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
}
}
}
ドイツ語を追加した更新後の設定:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
}
}
}
npx lingo.dev@latest runを実行すると、新しいドイツ語翻訳ファイルが作成されます:
locales/
en.json (source - unchanged)
es.json (existing - unchanged)
fr.json (existing - unchanged)
de.json (new - fully translated)
新しい言語生成の仕組み
Lingo.dev CLIは、新しい言語と既存の言語を異なる方法で処理します:
- 既存の言語 — 不足している翻訳のみが生成されます
- 新しい言語 — 完全な翻訳ファイルがゼロから作成されます
部分的な既存翻訳の例:
// locales/en.json (source)
{
"welcome": "Welcome",
"button.save": "Save",
"error.network": "Network error"
}
// locales/es.json (existing with missing translations)
{
"welcome": "Bienvenido"
}
ドイツ語を追加してCLIを実行した後:
// locales/es.json (gaps filled)
{
"welcome": "Bienvenido",
"button.save": "Guardar",
"error.network": "Error de red"
}
// locales/de.json (complete new file)
{
"welcome": "Willkommen",
"button.save": "Speichern",
"error.network": "Netzwerkfehler"
}
複数の言語の追加
複数の言語を同時に追加できます:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja", "zh"]
}
}
CLIはすべての新しい言語を処理し、各新しいロケール用の完全な翻訳ファイルを作成します。
地域バリアント
Lingo.dev CLIは、BCP 47言語タグを使用した地域言語バリアントをサポートしています:
{
"locale": {
"source": "en-US",
"targets": ["en-GB", "es-ES", "es-MX", "fr-FR", "fr-CA"]
}
}
これにより、各地域バリアントごとに個別の翻訳ファイルが生成され、用語、スペル、文化的背景の違いが考慮されます。
ファイル構造への影響
CLIは、バケットパターンに従って新しいファイルを作成します。異なるファイル形式の場合:
JSONバケット:
locales/[locale].json → locales/de.json, locales/ja.json
Markdownバケット:
content/[locale]/*.md → content/de/*.md, content/ja/*.md
ネスト構造:
app/[locale]/messages.json → app/de/messages.json, app/ja/messages.json
特定言語の追加
--target-localeフラグを使用して、特定の新しい言語の翻訳を生成できます:
npx lingo.dev@latest run --target-locale de
これにより、ドイツ語の翻訳のみが生成され、他の新しい言語は後で処理されます。
言語の削除
言語を削除するには、targets配列から削除するだけです。CLIは既存のファイルを削除しませんが、そのロケールの処理を停止します:
{
"locale": {
"source": "en",
"targets": ["es", "fr"]
}
}
必要に応じて、対応する翻訳ファイルを手動で削除できます。