Skillshub flutter-localization

Standards for multi-language support using easy_localization with CSV or JSON. Use when adding localization or multi-language support to Flutter apps. (triggers: **/assets/translations/*.json, **/assets/langs/*.csv, main.dart, localization, multi-language, translation, tr(), easy_localization, sheet_loader)

install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/HoangNguyen0403/agent-skills-standard/flutter-localization" ~/.claude/skills/comeonoliver-skillshub-flutter-localization && rm -rf "$T"
manifest: skills/HoangNguyen0403/agent-skills-standard/flutter-localization/SKILL.md
source content

Localization

Priority: P1 (STANDARD)

Consistent multi-language support using

easy_localization
.

Format Selection

  • CSV (Recommended for teams with translators):
    • Non-technical editors can update easily
    • Native Google Sheets compatibility via
      sheet_loader_localization
    • Store in
      assets/langs/
      (common convention)
  • JSON (Developer-friendly):
    • Nested structure support (e.g.,
      items_count.zero
      )
    • IDE validation and autocomplete
    • Store in
      assets/translations/

Both formats work identically with

easy_localization
.

Structure

# CSV Format (Google Sheets workflow)
assets/langs/langs.csv

# OR JSON Format (nested keys)
assets/translations/
├── en.json
└── vi.json

Implementation Guidelines

  • Bootstrap: Wrap root with
    EasyLocalization
    . Always use
    await EasyLocalization.ensureInitialized()
    .
  • Lookup: Use
    .tr()
    extension on strings (e.g.,
    'welcome'.tr()
    ).
  • Locale: Change via
    context.setLocale(Locale('code'))
    .
  • Params: Use
    {}
    placeholders; pass via
    tr(args: [...])
    .
  • Counting: Use
    plural()
    for quantities.
  • Sheets Sync: Use
    sheet_loader_localization
    to auto-generate CSV/JSON from Google Sheets.

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