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"]
}