i18n & Localization

SkillFiles & storage

The i18n-localization skill is a set of internationalization and localization patterns for AI agents. It helps your agent find hardcoded strings in code, set up locale files, and apply translation patterns such as react-i18next, next-intl, or gettext. It also covers pluralization, date and number formats, and RTL layout.

Use i18n & Localization in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add i18n & Localization and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the i18n & Localization skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Have a project with user-facing text that needs translation.

i18n & LocalizationStart free

What your AI can do with it

  • Detect hardcoded strings in source files
  • Set up locale files for multiple languages
  • Apply react-i18next, next-intl, or gettext patterns
  • Handle pluralization with ICU message format
  • Format dates and numbers per locale with Intl
  • Check for missing translations with a checker script

Getting started

  1. Have a project with user-facing text that needs translation.
  2. Add the skill to your agent so it can read, glob, and grep your files.
  3. Ask the agent to scan for hardcoded strings and list them.
  4. Create locale files for each supported language and move strings into translation keys.
  5. Run the checker script to find missing translations before shipping.

What this skill tells your AI

The instructions your AI receives, as published by davila7/claude-code-templates in cli-tool/components/skills/development/i18n-localization/SKILL.md and read by ahel’s review.

Internationalization (i18n) and Localization (L10n) best practices.


1. Core Concepts

TermMeaning
i18nInternationalization - making app translatable
L10nLocalization - actual translations
LocaleLanguage + Region (en-US, tr-TR)
RTLRight-to-left languages (Arabic, Hebrew)

2. When to Use i18n

Project Typei18n 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

IssueSolution
Missing translationFallback to default language
Hardcoded stringsUse linter/checker script
Date formatUse Intl.DateTimeFormat
Number formatUse Intl.NumberFormat
PluralizationUse 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

ScriptPurposeCommand
scripts/i18n_checker.pyDetect hardcoded strings & missing translationspython scripts/i18n_checker.py <project_path>

Signals

GitHub stars
32k
Forks
4k
Last commit
Oct 2026

Others that do the same job

Questions

What does the skill do?
It guides the agent through internationalizing an app: detecting hardcoded strings, setting up locale files, and applying patterns like react-i18next, next-intl, or gettext.
Does it support RTL languages?
Yes. It covers RTL layout with CSS logical properties and direction-aware styling for languages such as Arabic and Hebrew.
How do I find hardcoded strings?
The skill includes a checker script, scripts/i18n_checker.py, that detects hardcoded strings and missing translations.
Which translation libraries does it cover?
It includes patterns for react-i18next, next-intl, and gettext.
How does it handle pluralization?
It recommends using the ICU message format for complex strings and pluralization.
Advanced
Item type
skill
Key
i18n-localization
Source
github.com/davila7/claude-code-templates