Localization
SkillFiles & storageAdd Flutter translation assets, locale initialization, localized strings, locale switching, and plurals with easy_localization and CSV or JSON files. Use for Flutter i18n work; not RTL-only layout or locale-specific date formatting.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Localization skill
What this skill tells your AI
The instructions your AI receives, as published by hoangnguyen0403/agent-skills-standard in skills/flutter/flutter-localization/SKILL.md and read by ahel’s review.
Priority: P1 (HIGH)
Format Selection
- CSV (Recommended for teams with translators): Google Sheets compatibility via
sheet_loader_localization. Store inassets/langs/. - JSON (Developer-friendly): Nested structure support with IDE validation. Store in
assets/translations/.
Scope Boundary
- Use this skill for translation assets,
EasyLocalizationbootstrap,.tr(),plural(), and a language/locale switcher. - Do not use it for RTL-only widget direction, typography, or locale-aware date/number formatting when translation assets are unchanged.
Structure
# CSV Format (Google Sheets workflow)
assets/langs/langs.csv
# OR JSON Format (nested keys)
assets/translations/
├── en.json
└── vi.json
Implementation Workflow
- Initialize — Call
await EasyLocalization.ensureInitialized()beforerunApp. - Wrap root — Wrap app with
EasyLocalizationwidget specifying supported locales and path. - Translate strings — Use
.tr()extension on keys (e.g.,'welcome'.tr()). For dynamic text, use'welcome_user'.tr(namedArgs: {'name': 'John'})with a{name}placeholder, or pass positionalargs:. - Switch locale — Change via
context.setLocale(Locale('vi')). - Handle plurals — Use
plural()for quantity-dependent strings, such asitem_countorcartkeys. - Sync translations — Use
sheet_loader_localizationto auto-generate CSV/JSON from Google Sheets.
Bootstrap & Usage Examples
See implementation examples for bootstrap setup and translation usage patterns.
Anti-Patterns
- No Hardcoded Strings: Always use translation keys from assets
- No Manual Localization Calls: Use
easy_localization.tr()extension - No Mismatched Keys: Ensure keys identical across all locale-specific files
Reference & Examples
For setup and Google Sheets automation: See references/REFERENCE.md.
Related Topics
idiomatic-flutter | widgets
Signals
- GitHub stars
- 565
- Forks
- 163
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
flutter-localization- Source
- github.com/hoangnguyen0403/agent-skills-standard