Claude Agent Skill · by Sickn33

I18n Localization

Install I18n Localization skill for Claude Code from sickn33/antigravity-awesome-skills.

Install
Terminal · npx
$npx skills add https://github.com/sickn33/antigravity-awesome-skills --skill i18n-localization
Works with Paperclip

How I18n Localization fits into a Paperclip company.

I18n Localization drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.

S
SaaS FactoryPaired

Pre-configured AI company — 18 agents, 18 skills, one-time purchase.

$27$59
Explore pack
Source file
SKILL.md164 lines
Expand
---name: i18n-localizationdescription: "Internationalization and localization patterns. Detecting hardcoded strings, managing translations, locale files, RTL support."risk: safesource: communitydate_added: "2026-02-27"--- # 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) ```tsximport { useTranslation } from 'react-i18next'; function Welcome() {  const { t } = useTranslation();  return <h1>{t('welcome.title')}</h1>;}``` ### Next.js (next-intl) ```tsximport { useTranslations } from 'next-intl'; export default function Page() {  const t = useTranslations('Home');  return <h1>{t('title')}</h1>;}``` ### Python (gettext) ```pythonfrom 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>` | ## When to UseThis skill is applicable to execute the workflow or actions described in the overview. ## Limitations- Use this skill only when the task clearly matches the scope described above.- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.