I18n
Template for Flutter mobile applications.
npx -y skills add launch52-ai/flutter-template --skill i18nAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Audit Flutter code for hardcoded strings, write clear user-friendly text following UX guidelines, and migrate strings to i18n files. Use when checking localization, finding hardcoded text, improving string clarity, writing error messages, button labels, or any user-facing text.
SKILL.md
3.1 KB, as published. Nobody here has run it
i18n - Localization & UX Writing
Ensure all user-facing text is localized and crystal clear. Every string should be understandable by a 10-year-old or non-native English speaker.
When to Use This Skill
- Checking for hardcoded strings
- Writing or improving user-facing text
- Creating error messages, button labels, confirmations
- Migrating strings to i18n files
- Reviewing string quality
Quick Reference
The Golden Rules
- Be specific, not vague - "Could not save photo" not "Error occurred"
- Use plain words - "Sign in" not "Authenticate"
- Buttons complete "I want to ___" - "Delete photo" not "OK"
- Errors say what to do - "Check your connection and try again"
- No confusing dialogs - Never [Cancel] [OK] on a cancel confirmation
File Structure
lib/
├── core/i18n/
│ ├── common.i18n.yaml → t.common.*
│ └── translations.g.dart → Generated
└── features/{feature}/i18n/
└── {feature}.i18n.yaml → t.{feature}.*
Commands
# Audit for hardcoded strings
dart run .claude/skills/i18n/scripts/check.dart --audit
# Audit specific feature
dart run .claude/skills/i18n/scripts/check.dart --audit auth
# Generate missing i18n files
dart run .claude/skills/i18n/scripts/check.dart --generate
# Regenerate translations
dart run build_runner build --delete-conflicting-outputs
Workflow
1. Audit
dart run .claude/skills/i18n/scripts/check.dart --audit {feature}
Look for: Text('...'), title:, hintText:, label:, SnackBar messages, Dialog content.
2. Evaluate & Improve
Check each string against ux-writing-guide.md. Use patterns from examples.md.
3. Add to i18n File
Create/update lib/features/{feature}/i18n/{feature}.i18n.yaml with proper strings.
4. Replace in Code
// Before: Text('Welcome back')
// After: Text(t.auth.login.title)
5. Regenerate
dart run build_runner build --delete-conflicting-outputs
Guides
| Guide | Use For |
|---|---|
| setup-guide.md | Initial slang setup, build.yaml, file structure |
| ux-writing-guide.md | UX writing principles, patterns |
| examples.md | Before/after examples by scenario |
Checklist
- A 10-year-old would understand it
- Names the specific thing (photo, message, account)
- If error: says what happened AND what to do
- If button: completes "I want to ___"
- If confirmation: buttons clearly show outcomes
- No jargon (credentials, authenticate, invalid, terminate)
Related Skills
/a11y- Accessibility labels (add toaccessibility:section in i18n files)