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.mdsource 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
(common convention)assets/langs/
- JSON (Developer-friendly):
- Nested structure support (e.g.,
)items_count.zero - IDE validation and autocomplete
- Store in
assets/translations/
- Nested structure support (e.g.,
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
. Always useEasyLocalization
.await EasyLocalization.ensureInitialized() - Lookup: Use
extension on strings (e.g.,.tr()
).'welcome'.tr() - Locale: Change via
.context.setLocale(Locale('code')) - Params: Use
placeholders; pass via{}
.tr(args: [...]) - Counting: Use
for quantities.plural() - Sheets Sync: Use
to auto-generate CSV/JSON from Google Sheets.sheet_loader_localization
Anti-Patterns
- Hardcoding: No raw strings in UI; use keys.
- Manual L10n: Avoid standard
; use GetX orLocalizations.of
context methods.easy_localization - 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