Flutter Localization

Standards for multi-language support using easy_localization and JSON/CSV assets.

fierzone Updated

File contents

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 use await 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 via tr(args: [...]).
  • Counting: Use plural() for quantities.
  • Sheets: Sync via sheet_loader_localization from 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 or easy_localization context 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

fierzone/agent-skills-standard/tree/main/skills/flutter/localization commit 8f460f42c0

Frequently asked questions

npx skillmds@latest add fierzone/flutter-localization