i18n-localization

Internationalization and localization patterns. Detecting hardcoded strings, managing translations, locale files, RTL support.

By davila7 · 575 installs

npx skills add davila7/claude-code-templates --skill i18n-localization

Source repository · Upstream listing

i18n & Localization Internationalization (i18n) and Localization (L10n) best practices. 1. Core Concepts Term Meaning i18n Internationalization making app translatable L10n Localization actual translations Locale Language + Region (en US, tr TR) RTL Right to left languages (Arabic, Hebrew) 2. When to Use i18n Project Type i18n Needed? Public web app ✅ Yes SaaS product ✅ Yes Internal tool ⚠️ Maybe Single region app ⚠️ Consider future Personal project ❌ Optional 3. Implementation Patterns React (react i18next) Next.js (next intl) Python (gettext) 4. File Structure 5. Best Practices DO ✅ Use translation keys, not raw text Namespace translations by feature Support pluralization Handle date/number formats per locale Plan for RTL from the start Use ICU message format for complex strings DON'T ❌ Hardcode strings in components Concatenate translated strings Assume text length (German is 30% longer) Forget about RTL layout Mix languages in same file 6. Common Issues Issue Solution Missing translation Fallback to default language Hardcoded strings Use linter/checker script Date format Use Intl.DateTimeFormat Number format Use Intl.NumberFormat Pluralization Use ICU message format 7. RTL Support 8. Checklist Before shipping: [ ] All user facing strings use translation keys [ ] Locale files exist for all supported languages [ ] Date/number formatting uses Intl API [ ] RTL layout tested (if applicable) [ ] Fallback language configured [ ] No hardcoded strings in components Script Script Purpose Command scripts/i18n checker.py Detect hardcoded strings & missing translations python scripts/i18n checker.py <project path