i18n-localization▌
davila7/claude-code-templates · updated Apr 19, 2026
Internationalization (i18n) and Localization (L10n) best practices.
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)
import { useTranslation } from 'react-i18next';
function Welcome() {
const { t } = useTranslation();
return <h1>{t('welcome.title')}</h1>;
}
Next.js (next-intl)
import { useTranslations } from 'next-intl';
export default function Page() {
const t = useTranslations('Home');
return <h1>{t('title')}</h1>;
}
Python (gettext)
from gettext import gettext as _
print(_("Welcome to our app"))
4. File Structure
locales/
├── en/
│ ├── common.json
│ ├── auth.json
│ └── errors.json
├── tr/
│ ├── common.json
│ ├── auth.json
│ └── errors.json
└── ar/ # RTL
└── ...
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
/* CSS Logical Properties */
.container {
margin-inline-start: 1rem; /* Not margin-left */
padding-inline-end: 1rem; /* Not padding-right */
}
[dir="rtl"] .icon {
transform: scaleX(-1);
}
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> |
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.4★★★★★50 reviews- ★★★★★Shikha Mishra· Dec 20, 2024
Solid pick for teams standardizing on skills: i18n-localization is focused, and the summary matches what you get after install.
- ★★★★★Ganesh Mohane· Dec 12, 2024
Useful defaults in i18n-localization — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Hana Thompson· Dec 8, 2024
i18n-localization has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Hana Choi· Dec 8, 2024
i18n-localization reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Omar Huang· Dec 4, 2024
Registry listing for i18n-localization matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Hiroshi Abebe· Nov 27, 2024
We added i18n-localization from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Meera Flores· Nov 23, 2024
i18n-localization fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Sakshi Patil· Nov 3, 2024
i18n-localization is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Chaitanya Patil· Oct 22, 2024
Keeps context tight: i18n-localization is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Sakura Bansal· Oct 18, 2024
i18n-localization fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
showing 1-10 of 50