|
ドキュメント
デモを予約プラットフォーム
プラットフォームMCPCLIAPIワークフロー
ガイド
変更履歴

ローカライゼーション

  • 概要
  • 翻訳API
  • Webアプリのローカライゼーション
  • モバイルアプリのローカライズ
  • String Catalogを使ったiOS
  • Android with strings.xml
  • メールのローカライズ
  • 静的コンテンツ(例: .md、.json)
  • Next.js with Markdoc
  • Rails with i18n

ワークフロー

  • MCP でエンジンを設定
  • Jiraトリアージ
  • CI/CD

静的コンテンツのローカライズ

Lingo.dev のCLIは、リポジトリ内の静的ファイル(Markdown、MDX、Markdoc、JSON、YAML、字幕など)を、設定済みのローカライゼーションエンジンを通じて翻訳します。コンテンツを指定して一度実行するだけで、翻訳済みファイルがソースと並んで生成されます。

対応コンテンツタイプ#

CLI は各ファイルの形式を拡張子から自動判別するため、bucket type の設定は不要です。ロケールはパスに含まれるため(content/en/x.md は content/de/x.md になります)、[locale] プレースホルダーも必要ありません。

コンテンツタイプ形式パス例
ドキュメントMarkdowndocs/en/getting-started.md
ドキュメントMDXdocs/en/getting-started.mdx
ドキュメントMarkdocdocs/en/getting-started.mdoc
構造化データJSONdata/en.json
構造化データYAMLdata/en.yaml
ブログ記事Markdown / MDXblog/en/post-slug.md
ローカライゼーションGettext POlocale/en/messages.po
ローカライゼーションXLIFFlocale/en.xliff
字幕SRTsubs/en/intro.srt

対応ファイル形式の一覧は、formats リファレンスをご覧ください。

新しい CLI ではまだサポートされていません

CSV(csv-per-locale)、VTT 字幕、プレーンテキストの.txt、および Java の.propertiesは、まだ新しいCLIではサポートされていません。現時点では、これらのファイルはlegacy CLIで引き続き扱い、アップデートは変更履歴でご確認ください。

前提条件#

実行のたびに、コンテンツはローカライゼーションエンジンを通ります。これは、どのLLMモデル、用語集、ブランドボイス、ルールを適用するかを決める設定です。まずはLingo.devのダッシュボードで作成し、続いてCLI(Node 22+)をセットアップしてください。

bash
npm install -g @lingo.dev/cli
lingo login
lingo init
lingo link

lingo init と lingo link を実行すると .lingo/config.json が作成され、CLI が組織とエンジンに接続されます。すべての環境で同じ設定を共有できるよう、このファイルはコミットしてください。

json
{
  "orgId": "org_abc123",
  "engineId": "eng_abc123",
  "sourceLocale": "en",
  "targetLocales": ["es", "fr", "de", "ja"],
  "files": [{ "pattern": "docs/en/getting-started.md" }]
}

CI では lingo login をスキップし、代わりに LINGO_API_KEY を環境変数として指定してください。これは API keys から生成できます。

ドキュメントサイト#

多くのドキュメントフレームワークでは、翻訳済みコンテンツをロケールごとのディレクトリで管理します。ソースファイルごと(または glob)にパターンを files へ追加してください。CLI は Markdown、MDX、Markdoc を翻訳しつつ、frontmatter、コードブロック、コンポーネント構文はそのまま保持します。

json
{
  "orgId": "org_abc123",
  "engineId": "eng_abc123",
  "sourceLocale": "en",
  "targetLocales": ["es", "fr", "de", "ja"],
  "files": [
    { "pattern": "docs/en/getting-started.md" },
    { "pattern": "docs/en/setup.mdx" }
  ]
}

まずは最初の翻訳を実行して、すべての対象ロケールを埋めましょう。

bash
lingo push --backfill-missing

以降の実行では、lingo push が変更のあった箇所だけを翻訳します。別の場所で生成された翻訳を取り込むには、lingo pull を使ってください。

使用中のフレームワークのディレクトリ規約に合わせて、ソースパスを調整してください。

フレームワークロケールディレクトリ規約参考リンク
Docusaurusi18n/[locale]/docusaurus-plugin-content-docs/current/Docusaurus i18n ガイド
Nextraロケールごとのページまたは JSON 辞書Nextra ドキュメント
Hugocontent/[locale]/Hugo 多言語ガイド
Astrosrc/content/[locale]/ または JSON 辞書Astro i18n ガイド
VitePress[locale]/ ディレクトリプレフィックスVitePress i18n
MkDocsi18n プラグインを使ったロケールごとのdocs/MkDocs i18n プラグイン

MDX コンポーネント

MDX の翻訳では JSX コンポーネント構文が保持されます。<Callout>、<Tabs>、<CodeBlock> のようなカスタムコンポーネントは変更されずにそのまま通過し、その中のテキストだけが翻訳されます。

構造化データ#

JSON と YAML ファイルは、拡張子に応じて自動的に翻訳されます。翻訳対象ではない値(ID、URL、設定フラグ)を変更しないようにするには、key controls を使ってください。

json
{
  "orgId": "org_abc123",
  "engineId": "eng_abc123",
  "sourceLocale": "en",
  "targetLocales": ["es", "fr", "de", "ja"],
  "files": [
    { "pattern": "content/en.json" },
    { "pattern": "data/en.yaml" }
  ]
}

汎用 YAML ではformatフィールドは不要です。ファイルエントリで明示的なyaml-openapiが必要なのは、yaml-root-key、android、"format"のみです。

ロケールルートキー YAML

ルートキーにロケールコードを使う YAML ファイル(Rails や Hugo で一般的)では、明示的な"format": "yaml-root-key"が必要です。ルートキーは対象のロケールに書き換えられます。詳しくは、formats リファレンスをご覧ください。

字幕#

SRT 字幕ファイルは拡張子から自動的に判別されて翻訳されます。CLI はタイミングデータ、キューインデックス、書式タグをすべて保持し、翻訳するのはテキストだけです。

json
{
  "orgId": "org_abc123",
  "engineId": "eng_abc123",
  "sourceLocale": "en",
  "targetLocales": ["es", "fr", "de", "ja"],
  "files": [{ "pattern": "subs/en/intro.srt" }]
}

VTT はまだサポートされていません

WebVTT(.vtt)字幕は、現時点では新しい CLI に対応していません。VTT ファイルはしばらく legacy CLI で運用し、更新は changelog で確認してください。

大規模なコンテンツを扱う#

静的コンテンツのリポジトリには数千ものファイルが含まれることがあります。CLI はそうした規模でも効率よく処理できます。

仕組み効果
実行状態.lingo/lock.json はソースコンテンツのフィンガープリントを追跡するため、lingo push は新規または変更のあったファイルだけを翻訳します。このファイルもコミットしてください。push のたびに再生成されます。
サーバー側の並列処理翻訳の並列化はエンジン側で行われるため、並行処理フラグを調整する必要はありません。
対象を絞った実行glob を使えば、特定のファイルだけに対象を絞って実行できます: lingo push "docs/en/**"。

翻訳が最新かどうかをファイルを書き出さずに確認したい場合—CI のゲートにも便利です—は、lingo check を実行してください。

次のステップ#

対応フォーマット
CLI が翻訳できるすべてのファイル形式を網羅したリファレンス
事例プロジェクト
設定と翻訳も含めてコミット済みの、Markdown、MDX、Markdoc、OpenAPI の実用的なリポジトリ
Key Controls
特定の値が翻訳されないようにする
GitHub App
プッシュのたびに静的コンテンツの翻訳を自動化
Run State
.lingo/lock.json を使った増分翻訳トラッキングの仕組み

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

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