flutter-localization について
flutter-localization は、Flutter プロジェクトのローカライズ設定を支援するスキルです。ARB ファイル、コード生成、ロケール別の書式設定、RTL レイアウトの手順を扱います。
主な機能
- 01flutter_localizations と intl の設定
- 02ARB ファイルとコード生成の設定
- 03context.l10n による文字列アクセス
- 04ICU の複数形・選択形式の利用
- 05RTL レイアウトとロケールテストへの対応
活用シーン
- 01Flutter の UI に言語を追加
- 02ローカライズ文字列を生成・管理
- 03ロケールに応じた日付・時刻・数値の書式設定
- 04RTL ロケールで UI の方向をテスト
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dhruvanbhalara/ skills --skill flutter-localizationインストール後、Claude Code で/flutter-localizationを入力して読み込まれたか確認します。
詳細
ローカライゼーションのセットアップ
- Flutter に組み込まれている
flutter_localizationsパッケージとintlパッケージを使用します - 自動コード生成のために、
pubspec.yamlでgenerate: trueを有効にします - プロジェクトルートで
l10n.yamlを設定します:arb-dir: lib/l10n template-arb-file: app_en.arb output-localization-file: app_localizations.dart output-class: AppLocalizations nullable-getter: false
ARB ファイルの構造
- すべての
.arbファイルをlib/l10n/に配置します app_{locale}.arbという命名規則を使用します (例:app_en.arb、app_es.arb、app_hi.arb)- テンプレート ARB ファイル (
app_en.arb) には、すべてのキーに対して@メタデータを含める必要があります:{ "loginTitle": "Sign In", "@loginTitle": { "description": "Title on the login screen" }, "itemCount": "{count, plural, =0{No items} =1{1 item} other{{count} items}}", "@itemCount": { "description": "Item count with pluralization", "placeholders": { "count": { "type": "int" } } } } - キーの命名:
featureName_context形式を使用します (例:settings_title、login_emailHint) - ARB ファイル内で、コメント区切りを使って機能ごとにキーをグループ化します
使用ルール
BuildContext拡張機能を使用して、context.l10n.keyNameで文字列にアクセスします- コードベース内のどこであっても、ユーザーに表示される文字列をハードコードすることは厳禁です
initState()内やウィジェットツリーの外で.l10nを使用することは厳禁です —contextが利用可能でなければなりません- 日付・時刻・数値の書式設定には、現在のロケールで
intlパッケージのフォーマッターを使用します
複数形および選択形式
- 数えられる項目には ICU の複数形構文を使用します:
{count, plural, =0{...} =1{...} other{...}} - 性別やカテゴリには ICU の選択構文を使用します:
{gender, select, male{...} female{...} other{...}} - フォールバックとして常に
otherケースを含めます
RTL サポート
DirectionalityおよびTextDirectionを認識するウィジェットを使用します- パディングやマージンには
EdgeInsetsよりもEdgeInsetsDirectionalを優先します MainAxisAlignmentおよびCrossAxisAlignmentではleft/rightではなくstart/endを使用します- ウィジェットテスト中に RTL ロケールでテストします
新しい言語の追加
- すべてのキーを翻訳した
app_{locale}.arbを作成します flutter gen-l10nを実行します (または自動生成に任せます)MaterialAppのsupportedLocalesにLocaleを追加します- 新しいロケールを使用してウィジェットテストで検証します
コメント
Markdown 対応