Localization
Priority: P1 (STANDARD)
Consistent multi-language support using easy_localization.
Structure
assets/
└── translations/
├── en.json
└── vi.json
Implementation Guidelines
- Bootstrap: Wrap root with
EasyLocalization. Always useawait EasyLocalization.ensureInitialized(). - Format: Default to JSON. Store in
assets/translations/. - Lookup: Use
.tr()extension on strings. - Locale: Change via
context.setLocale(Locale('code')). - Params: Use
{}in JSON; pass viatr(args: [...]). - Counting: Use
plural()for quantities. - Sheets: Sync via
sheet_loader_localizationfrom Google Sheets for Online file storage to JSON/CSV.
Anti-Patterns
- Hardcoding: No raw strings in UI; use keys.
- Manual L10n: Avoid standard
Localizations.of; use GetX oreasy_localizationcontext methods. - Desync: Keep keys identical across all locale files.
Reference & Examples
For setup and Google Sheets automation: See references/REFERENCE.md.
Related Topics
idiomatic-flutter | widgets