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

ローカライゼーション

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

ローカライズ

  • String Catalogを使ったiOS

ワークフロー

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

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

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

対応コンテンツタイプ#

コンテンツタイプ形式CLIバケットパス例
ドキュメントMarkdownmarkdowndocs/[locale]/getting-started.md
ドキュメントMDXmdxdocs/[locale]/getting-started.mdx
ドキュメントMarkdocmarkdocdocs/[locale]/getting-started.mdoc
構造化データJSONjsondata/[locale].json
構造化データYAMLyamldata/[locale].yaml
ブログ記事Markdown / MDXmarkdown / mdxblog/[locale]/post-slug.md
字幕SRTsrtsubs/[locale]/intro.srt
字幕VTTvttsubs/[locale]/intro.vtt
スプレッドシートCSVcsv-per-localedata/[locale].csv
設定文字列Propertiespropertieslang/[locale].properties
設定文字列Gettext POpolocale/[locale]/messages.po
プレーンテキストTXTtxtcontent/[locale]/readme.txt

前提条件#

CLI を実行するたびに、コンテンツはローカライゼーションエンジンを通過します。これは、適用する LLM モデル、用語集、ブランドボイス、指示を決める設定です。Lingo.dev ダッシュボードで作成し、API キーを生成してください。

ドキュメントサイト#

多くのドキュメントフレームワークでは、翻訳済みコンテンツをロケールごとのディレクトリで管理します。CLI のmarkdown、mdx、markdocバケットなら、frontmatter、コードブロック、コンポーネント構文を保ったまま、これらのファイルを翻訳できます。

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "markdown": {
      "include": ["docs/[locale]/getting-started.md"]
    },
    "mdx": {
      "include": ["docs/[locale]/setup.mdx"]
    }
  }
}

お使いのフレームワークのディレクトリ規約に合わせて、includeパターンを調整してください。

フレームワークロケールディレクトリ規約参考リンク
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 ファイルは、jsonおよびyamlバケットで翻訳できます。翻訳不要な値(ID、URL、設定フラグ)を変更させたくない場合は、locked keysを使ってください。

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "json": {
      "include": ["content/[locale].json"],
      "lockedKeys": ["id", "slug", "url"]
    },
    "yaml": {
      "include": ["data/[locale].yaml"]
    }
  }
}

ルートキーにロケールコードを使う YAML ファイル(Rails や Hugo で一般的)では、代わりにyaml-root-keyバケットを使用してください。このバケットはソースロケールキーから読み取り、同じファイル内のターゲットロケールキーに書き込みます。

字幕#

SRT と VTT の字幕ファイルは、srtおよびvttバケットで翻訳できます。CLI はタイミングデータ、キューインデックス、書式タグをすべて保持し、翻訳されるのはテキストコンテンツだけです。

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "srt": {
      "include": ["subs/[locale]/intro.srt"]
    }
  }
}

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

静的コンテンツのリポジトリには、数千ものファイルが含まれることがあります。CLI は次の 3 つの仕組みで、これを効率よく処理します。

仕組み効果
Lockfileソースコンテンツの SHA-256 フィンガープリントを追跡します。2 回目以降の実行では、新規または変更されたファイルだけが翻訳対象になります。
並列処理翻訳処理を複数のワーカーに分散して同時実行します。run --concurrency 20で設定できます。
対象を絞った実行特定のバケットやロケールだけを処理できます: run --bucket markdown または run --target-locale es。

次のステップ#

対応フォーマット
CLI で翻訳できる 25 以上のファイル形式を網羅した完全リファレンス
キーのロック
特定の値が翻訳されないようにする
CI/CD ワークフロー
プッシュのたびに静的コンテンツの翻訳を自動化
Lockfile
増分翻訳トラッキングの仕組み

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

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