|
ドキュメント
デモを予約プラットフォーム
プラットフォーム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は、Xcode .strings、Android XML、Flutter ARB、React Native JSON といったネイティブのモバイルリソースファイルを、設定済みのローカライゼーションエンジン経由で翻訳します。各プラットフォームには専用のバケットタイプがあり、ファイル形式を正しく理解し、構造を保ったまま、複数形もネイティブに処理します。

プラットフォーム概要#

プラットフォームネイティブ形式CLI バケット一般的なファイルパス
iOS(Xcode).stringsxcode-strings[locale].lproj/Localizable.strings
iOS(Xcode).stringsdictxcode-stringsdict[locale].lproj/Localizable.stringsdict
iOS(Xcode).xcstringsxcode-xcstringsLocalizable.xcstrings
Androidstrings.xmlandroidapp/src/main/res/values-[locale]/strings.xml
Flutter.arbflutterlib/l10n/app_[locale].arb
React Native.jsonjsonsrc/locales/[locale].json

前提条件#

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

プラットフォームの設定#

Xcode は 3 つのローカライズ形式に対応しています。プロジェクト構成に合ったものを選んでください。

String Catalogs(.xcstrings) - Xcode 15 で導入された最新の Xcode 形式です。1 つの JSON ファイルにすべてのロケールが入り、新しい文字列を追加すると Xcode が自動で更新します。CLI はこのファイルを直接更新するため、[locale] プレースホルダーは不要です。

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "xcode-xcstrings": {
      "include": ["MyApp/Localizable.xcstrings"]
    }
  }
}

従来の .strings ファイル - [locale].lproj/ ディレクトリ内に、ロケールごとに 1 ファイルずつ配置します。複数形のためにプロジェクトで .stringsdict も使っている場合は、両方のバケットを追加してください。

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "xcode-strings": {
      "include": ["MyApp/[locale].lproj/Localizable.strings"]
    },
    "xcode-stringsdict": {
      "include": ["MyApp/[locale].lproj/Localizable.stringsdict"]
    }
  }
}

Xcode の i18n 基盤の設定方法については、Apple のローカライズ関連ドキュメントをご覧ください。

翻訳の実行#

1 つのコマンドですべてのリソースファイルを翻訳できます。

bash
npx lingo.dev@latest run

CLI はソースロケールのファイルを読み込み、lockfile を使って前回の実行からの変更を判定し、差分だけを翻訳してターゲットロケールのファイルに書き込みます。

プロジェクトに複数のリソースタイプが含まれている場合は、特定のプラットフォームだけを対象にすることもできます。

bash
npx lingo.dev@latest run --bucket android
npx lingo.dev@latest run --bucket xcode-xcstrings

複数形とプラットフォームごとの慣習#

複数形の扱いはモバイルプラットフォームごとに異なります。iOS は .stringsdict または String Catalog のルール、Android は <plurals> XML 要素、Flutter は ARB ファイル内の ICU MessageFormat を使います。CLI は翻訳時に各プラットフォーム固有の複数形構造を保持し、各ターゲットロケールに対して正しい複数形カテゴリを生成します。

翻訳者向けメモ

モバイル向けの文字列は短く、文脈に左右されやすい傾向があります。文字列がどこに表示されるかという文脈をローカライゼーションエンジンに伝えるために、Xcode の .xcstrings ファイルで translator notes を使ってください。たとえば、"checkout フローのボタンラベル" と "ナビゲーションメニューの項目" では、適切な訳し方が異なります。

プラットフォーム別ガイド#

String Catalogs を使った iOS
CLI と GitHub Actions で Xcode .xcstrings を扱うエンドツーエンドガイド
strings.xml を使った Android
CLI と GitHub Actions で Android XML リソースを扱うエンドツーエンドガイド

次のステップ#

対応フォーマット
すべてのモバイル向けファイル形式とバケットタイプを網羅した完全リファレンス
用語集
ブランド名や技術用語を翻訳対象から外して固定
CI/CD ワークフロー
プッシュのたびにモバイル翻訳を自動化
キーのロック
特定の値は翻訳せず、そのままコピー

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

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