monolith / L10n対応
- Flutterアプリ開発で、ローカライゼーションや文字列の外部リソース化を行う場合はこのSKILLを適用する
基本的なデータレイアウト
- 各packageごとに、次のようなファイルを用意する
path/to/package
├── lib
│ ├── domain_school.dart
│ ├── gen
│ │ └── strings.dart # monolith: 自動生成される
│ └── src
│ └── strings.dart # 各packageごとに必要に応じて作成する
├── pubspec.yaml
├── res
│ └── strings.csv # 各packageごとに必要に応じて作成する
└── test
基本的な実行コマンド
# 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して対応する
Source: eaglesakura/ai-agent-headquarters — distributed by TomeVault.