Lingo.dev + .arb (Flutter)

Lingo.dev CLIはFlutterアプリケーションリソースバンドル(ARB)ファイルをメタデータ、プレースホルダー定義、Flutterのl10n規約を保持しながら翻訳します。CLIはflutter gen-l10nとシームレスに連携し、IDE自動補完のためのプレースホルダータイプ定義を維持し、開発者のコンテキストとドキュメントを損なわず、ARB仕様標準に正確に従います。

クイックセットアップ

Flutterの標準ARBファイル構造の設定:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "flutter": {
      "include": ["lib/l10n/app_[locale].arb"]
    }
  }
}

注意[locale]は設定内に文字通り残しておくべきプレースホルダーで、CLI実行時に実際のロケールに置き換えられます。

ARBファイルの翻訳

npx lingo.dev@latest i18n

コンテンツを翻訳しながら、ARBメタデータ、プレースホルダー定義、Flutter固有のフォーマットを保持します。

Flutter ARBの機能

タイプ付きプレースホルダー

{
  "welcomeMessage": "Hello {name}, you have {count} messages",
  "@welcomeMessage": {
    "description": "Welcome message with user name and count",
    "placeholders": {
      "name": {
        "type": "String"
      },
      "count": {
        "type": "int"
      }
    }
  }
}

複数形

{
  "itemCount": "{count, plural, =0{no items} =1{one item} other{{count} items}}",
  "@itemCount": {
    "description": "Number of items",
    "placeholders": {
      "count": {
        "type": "int"
      }
    }
  }
}

メタデータの保持

ARBメタデータ(@keyエントリ)は翻訳されずに保持されます:

  • 説明:開発者のコンテキストを保持
  • プレースホルダー:型定義を維持
  • :使用例を保持
  • カスタム属性:追加のメタデータを保持

高度な設定

複数のARBファイル

"flutter": {
  "include": [
    "lib/l10n/app_[locale].arb",
    "lib/l10n/errors_[locale].arb"
  ]
}

メタデータキーのロック

"flutter": {
  "include": ["lib/l10n/app_[locale].arb"],
  "lockedKeys": ["@@locale", "@@last_modified"]
}