monolith / L10n対応
- •Flutterアプリ開発で、ローカライゼーションや文字列の外部リソース化を行う場合はこのSKILLを適用する
基本的なデータレイアウト
- •各packageごとに、次のようなファイルを用意する
text
path/to/package ├── lib │ ├── domain_school.dart │ ├── gen │ │ └── strings.dart # monolith: 自動生成される │ └── src │ └── strings.dart # 各packageごとに必要に応じて作成する ├── pubspec.yaml ├── res │ └── strings.csv # 各packageごとに必要に応じて作成する └── test
基本的な実行コマンド
dart
# localization関連ファイルを生成する dart run monolith_runner:localization
依存する主なライブラリ
- •monolith
- •dart workspaceを用いている場合は、ルートのpackageの
dev_dependenciesに追加する - •個別のpackageでは不要
- •dart workspaceを用いている場合は、ルートのpackageの
- •monolith_localization
- •dart workspaceを用いている場合は、ルートのpackageの
dev_dependenciesに追加する - •個別のpackageでは不要
- •dart workspaceを用いている場合は、ルートのpackageの
- •monolith_localization_runtime
- •個別のpackageに必要
追加ドキュメント
実装の詳細について、下記のドキュメントをロードする
主な遵守事項
- • リソース定義は
res/strings.csvに配置し、ヘッダーid,{言語コード},descriptionを遵守する - •
strings.csvを変更・追加した場合は、dart run monolith_runner:localizationを実行してコード生成を行う - • 文字列リソースへのアクセスは
lib/src/strings.dartを作成し、生成されたL10nStringsMixinを使用する - •
strings.dartはexportせず、パッケージ内部 (@internal) で完結させる - • 他パッケージのリソースが必要な場合は、該当パッケージの
L10nStringsMixinを必要な数だけmixinして対応する