An Agent Skill that correctly formats, validates, and explains locale-specific conventions for currency, dates, numbers, units of measurement, and addresses — across 20+ locales, based on Unicode CLDR standards.
Works with any agent that supports the open SKILL.md format, including Cursor, Claude Code, Codex, and 60+ more via the skills CLI.
Inspired by @MostafaNageeb: those "trivial" formatting differences — like the € sign coming after the number in Germany (
14 €) but before in the Netherlands (€ 14) — have a real impact on user trust.
Your agent will automatically use this skill when you ask about:
- Prices / currency — symbol position, decimal and thousands separators, spacing
- Dates and times — format order (DMY vs MDY vs YMD), 12h vs 24h, separators
- Numbers — grouping separators, decimal mark, large number abbreviations, ordinals
- Units of measurement — metric vs imperial, regional quirks (UK miles + °C)
- Addresses and phone numbers — field order, postal code format, RTL layouts
Format 1234.56 EUR for Germany, Netherlands, and France
Is "06/05/2026" ambiguous? How would each region read it?
Display this price for India: 1234567.89 INR
What address format does Japan use?
In Germany (de-DE), the euro sign comes after the number:
1.234,56 €In the Netherlands (nl-NL), the same amount is written with the euro sign before:€ 1.234,56Both use a comma as the decimal separator and a dot for thousands.
| Region | Locales |
|---|---|
| Americas | en-US, en-CA, fr-CA, pt-BR, es-MX, es-AR, es-CL |
| Europe | en-GB, de-DE, nl-NL, fr-FR, es-ES, it-IT, pt-PT, pl-PL, ru-RU, tr-TR, sv-SE, nb-NO, da-DK, de-CH |
| Asia-Pacific | ja-JP, zh-CN, zh-TW, ko-KR, hi-IN, en-AU, en-NZ |
| Middle East & Africa | ar-SA, ar-EG, he-IL, en-ZA |
Install with the skills CLI — it auto-detects your agents and symlinks the skill into the right directories:
npx skills add ikhattab/l10n-skillCommon options:
# Install globally (available across all projects)
npx skills add ikhattab/l10n-skill -g
# Install to specific agents
npx skills add ikhattab/l10n-skill -a cursor -a claude-code
# Non-interactive (CI/CD friendly)
npx skills add ikhattab/l10n-skill -g -a cursor -yUse without installing:
npx skills use ikhattab/l10n-skill@localization | claudeBrowse and discover skills at skills.sh.
Copy or symlink the skills/localization folder into your agent's skills directory:
| Agent | Personal (global) | Project-scoped |
|---|---|---|
| Cursor | ~/.cursor/skills/localization/ |
.cursor/skills/localization/ |
| Claude Code | ~/.claude/skills/localization/ |
.claude/skills/localization/ |
| Codex | ~/.codex/skills/localization/ |
.agents/skills/localization/ |
Example (Cursor, global):
ln -s "$(pwd)/skills/localization" ~/.cursor/skills/localization- Germany vs Netherlands: same currency (€), opposite symbol position
- France / Russia: thousands separator is a narrow no-break space (U+202F), not a regular space
- India: lakh/crore grouping —
₹12,34,567not₹1,234,567 - Japan / Korea: no decimal places for ¥ and ₩
- US date
06/05: June 5th — in Europe it means May 6th - Brazil:
R$ 1.234,56— note the space afterR$ - Switzerland: apostrophe as thousands separator —
CHF 1'234.56 - Japanese addresses: reversed from Western — postal code → prefecture → city → recipient
The skill ships with detailed reference files loaded on demand:
| Domain | File | Covers |
|---|---|---|
| Currency | references/currency.md |
Symbol position, separators, negative formats for 30+ locales |
| Date & Time | references/datetime.md |
Format patterns, 12/24h, calendar systems |
| Numbers | references/numbers.md |
Grouping, ordinals, digit systems, abbreviations |
| Units | references/units.md |
Metric/imperial, regional quirks |
| Addresses | references/addresses.md |
Field order, postal formats, phone numbers |
MIT — see LICENSE