i18n-localization
VoDaiLocz/kilo-kit-mcp/skills/engineering/i18n-localization/SKILL.md
Internationalization and localization patterns. Detecting hardcoded strings, managing translations, locale files, RTL support.
Skill26 starsChanged 44 days ago
What's in it
- i18n & Localization
- 1. Core Concepts
- 2. When to Use i18n
- 3. Implementation Patterns
- React (react-i18next)
- Next.js (next-intl)
- Python (gettext)
- 4. File Structure
- 5. Best Practices
- DO ✅
- DON'T ❌
- 6. Common Issues
- 7. RTL Support
- 8. Checklist
- Script
Tools it asks for
- Read
- Glob
- Grep
---
name: i18n-localization
description: Internationalization and localization patterns. Detecting hardcoded strings, managing translations, locale files, RTL support.
allowed-tools: Read, Glob, Grep
---
# 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)
```tsx
import { useTranslation } from 'react-i18next';
function Welcome() {
const { t } = useTranslation();
return <h1>{t('welcome.title')}</h1>;
}
```
### Next.js (next-intl)
```tsx
import { useTranslations } from 'next-intl';
export default function Page() {
const t = useTranslations('Home');
return <h1>{t('title')}</h1>;
}
```
### Python (gettext)
```python
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
/* 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>` |
More agent context in VoDaiLocz/kilo-kit-mcp
163 other files this repository gives its agents, the first 60 shown.
AGENTS.md
CLAUDE.md
Skill
- agent-memoryskills/agent-frameworks/agent-memory/SKILL.md
- claukitskills/agent-frameworks/claukit/SKILL.md
- mcp-agent-patternsskills/agent-frameworks/mcp-agent-patterns/SKILL.md
- multi-agent-orchestrationskills/agent-frameworks/multi-agent-orchestration/SKILL.md
- workflow-state-machinesskills/agent-frameworks/workflow-state-machines/SKILL.md
- ai-multimodalskills/ai-media/ai-multimodal/SKILL.md
- geo-fundamentalsskills/ai-media/geo-fundamentals/SKILL.md
- media-processingskills/ai-media/media-processing/SKILL.md
- screenshotskills/ai-media/screenshot/SKILL.md
- seo-fundamentalsskills/ai-media/seo-fundamentals/SKILL.md
- soraskills/ai-media/sora/SKILL.md
- aestheticskills/design/aesthetic/SKILL.md
- figma-implement-designskills/design/figma-implement-design/SKILL.md
- figmaskills/design/figma/SKILL.md
- frontend-designskills/design/frontend-design/SKILL.md
- mobile-designskills/design/mobile-design/SKILL.md
- tailwind-patternsskills/design/tailwind-patterns/SKILL.md
- ui-stylingskills/design/ui-styling/SKILL.md
- agentic-ragskills/engineering/agentic-rag/SKILL.md
- api-patternsskills/engineering/api-patterns/SKILL.md
- app-builderskills/engineering/app-builder/SKILL.md
- architectureskills/engineering/architecture/SKILL.md
- ask-mattskills/engineering/ask-matt/SKILL.md
- aspnet-coreskills/engineering/aspnet-core/SKILL.md
- backend-developmentskills/engineering/backend-development/SKILL.md
- better-authskills/engineering/better-auth/SKILL.md
- clean-codeskills/engineering/clean-code/SKILL.md
- code-agent-patternsskills/engineering/code-agent-patterns/SKILL.md
- codebase-designskills/engineering/codebase-design/SKILL.md
- code-review-checklistskills/engineering/code-review-checklist/SKILL.md
- code-reviewskills/engineering/code-review/SKILL.md
- context-engineeringskills/engineering/context-engineering/SKILL.md
- context-optimizationskills/engineering/context-optimization/SKILL.md
- database-designskills/engineering/database-design/SKILL.md
- databasesskills/engineering/databases/SKILL.md
- diagnoseskills/engineering/diagnose/SKILL.md
- diagnosing-bugsskills/engineering/diagnosing-bugs/SKILL.md
- docs-seekerskills/engineering/docs-seeker/SKILL.md
- domain-modelingskills/engineering/domain-modeling/SKILL.md
- frontend-dev-guidelinesskills/engineering/frontend-development/SKILL.md
- graph-ragskills/engineering/graph-rag/SKILL.md
- implementskills/engineering/implement/SKILL.md
- improve-codebase-architectureskills/engineering/improve-codebase-architecture/SKILL.md
- lint-and-validateskills/engineering/lint-and-validate/SKILL.md
- llm-evalsskills/engineering/llm-evals/SKILL.md
- nextjs-best-practicesskills/engineering/nextjs-best-practices/SKILL.md
- nodejs-best-practicesskills/engineering/nodejs-best-practices/SKILL.md
- openai-docsskills/engineering/openai-docs/SKILL.md
- performance-profilingskills/engineering/performance-profiling/SKILL.md
- playwright-interactiveskills/engineering/playwright-interactive/SKILL.md
- playwrightskills/engineering/playwright/SKILL.md
- prompt-engineeringskills/engineering/prompt-engineering/SKILL.md
- prototypeskills/engineering/prototype/SKILL.md
- python-patternsskills/engineering/python-patterns/SKILL.md
- react-patternsskills/engineering/react-patterns/SKILL.md
- render-deployskills/engineering/render-deploy/SKILL.md
- repomixskills/engineering/repomix/SKILL.md
- researchskills/engineering/research/SKILL.md
Also found in 2 other repositories
The same file, byte for byte, in the weekly crawl of public GitHub.
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
No reports yet. Be the first to say whether it worked.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool public_context_discussion, action report. How to connect one.

