internationalization-i18n · aj-geddes — Claude Code skill for i18n
A skill that walks your agent through shipping a multi-language app: string extraction, translation catalogs, plurals, locale-aware dates and numbers, RTL.
npx skills add aj-geddes/useful-ai-prompts --skill internationalization-i18n -a claude-codeWhat internationalization-i18n does
This skill guides the agent through adding internationalization to an app. It covers pulling user-facing strings into translation files, managing catalogs, plural rules per language, date/time/number formatting for a locale, and right-to-left language support.
Under the hood it ships reference guides in references/: i18next for JavaScript and TypeScript, React-Intl (Format.js), Python gettext, date and time formatting, number and currency formatting, pluralization, RTL, translation management, locale detection, and server-side i18n. SKILL.md opens with a short i18next init using i18next-http-backend and i18next-browser-languagedetector.
One thing the skill pushes hard: never concatenate translated strings, and never hardcode user-facing text. German runs about 30% longer than English, so check your layout before the translators deliver. If your project already has its own key scheme, mixing it with UI strings is a bad idea — settle on one convention first.
Install works through npx skills add on six platforms; GitHub Copilot uses gh skill install.
What it helps with
- move hardcoded UI strings into translation files
- set up i18next with browser language detection
- get plural forms right for Russian and Arabic
- format dates and currency for a specific locale
- add right-to-left layout support
Example prompts for the agent
- Extract every user-facing string from this React app and set up a translation catalog
- Configure i18next with an English fallback and locale detection from localStorage
- Check pluralization for Russian — right now I only have one and other
How to install internationalization-i18n
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill internationalization-i18n -a claude-code2Manually: put the files in place
~/.claude/skills/internationalization-i18n/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/internationalization-i18n/
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill internationalization-i18n -a codex2Manually: put the files in place
.agents/skills/internationalization-i18n/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill internationalization-i18n -a cursor2Manually: put the files in place
.cursor/skills/internationalization-i18n/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install aj-geddes/useful-ai-prompts internationalization-i18n2Manually: put the files in place
.github/skills/internationalization-i18n/SKILL.md1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill internationalization-i18n -a gemini-cli2Platform CLI
gemini skills install https://github.com/aj-geddes/useful-ai-prompts --path skills/internationalization-i18nManually: put the files in place
.devin/skills/internationalization-i18n/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill internationalization-i18n -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about internationalization-i18n
How do I install internationalization-i18n in Claude?
Run npx skills add aj-geddes/useful-ai-prompts --skill internationalization-i18n -a claude-code. The skill lands at ~/.claude/skills/internationalization-i18n/SKILL.md.
What does internationalization-i18n do?
It helps the agent implement i18n: extract strings, maintain translation catalogs, handle pluralization, format dates, numbers and currency per locale, and support RTL languages.
Which i18n libraries does the skill cover?
The reference guides cover i18next for JavaScript and TypeScript, React-Intl (Format.js), and Python gettext.
Source text
SKILL.md · MIT
---
name: internationalization-i18n
description: >
Implement internationalization (i18n) and localization including message
extraction, translation catalogs, pluralization rules, date/time/number
formatting, RTL language support, and i18n libraries like i18next and gettext.
Use for multi-language, translation, or localization needs.
---
# Internationalization (i18n) & Localization
## Table of Contents
- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)
## Overview
Comprehensive guide to implementing internationalization and localization in applications. Covers message translation, pluralization, date/time/number formatting, RTL languages, and integration with popular i18n libraries.
## When to Use
- Building multi-language applications
- Supporting international users
- Implementing language switching
- Formatting dates, times, and numbers for different locales
- Supporting RTL (right-to-left) languages
- Extracting and managing translation strings
- Implementing pluralization rules
- Setting up translation workflows
## Quick Start
Minimal working example:
```typescript
// i18n.ts
import i18next from "i18next";
import Backend from "i18next-http-backend";
import LanguageDetector from "i18next-browser-languagedetector";
await i18next
.use(Backend)
.use(LanguageDetector)
.init({
fallbackLng: "en",
debug: process.env.NODE_ENV === "development",
interpolation: {
escapeValue: false, // React already escapes
},
backend: {
loadPath: "/locales/{{lng}}/{{ns}}.json",
},
detection: {
order: ["querystring", "cookie", "localStorage", "navigator"],
caches: ["localStorage", "cookie"],
},
});
// ... (see reference guides for full implementation)
```
## Reference Guides
Detailed implementations in the `references/` directory:
| Guide | Contents |
|---|---|
| [i18next (JavaScript/TypeScript)](references/i18next-javascripttypescript.md) | i18next (JavaScript/TypeScript) |
| [React-Intl (Format.js)](references/react-intl-formatjs.md) | React-Intl (Format.js) |
| [Python i18n (gettext)](references/python-i18n-gettext.md) | Python i18n (gettext) |
| [Date and Time Formatting](references/date-and-time-formatting.md) | Date and Time Formatting |
| [Number and Currency Formatting](references/number-and-currency-formatting.md) | Number and Currency Formatting |
| [Pluralization Rules](references/pluralization-rules.md) | Pluralization Rules |
| [RTL (Right-to-Left) Language Support](references/rtl-right-to-left-language-support.md) | RTL (Right-to-Left) Language Support |
| [Translation Management](references/translation-management.md) | Translation Management |
| [Locale Detection](references/locale-detection.md) | Locale Detection |
| [Server-Side i18n](references/server-side-i18n.md) | Server-Side i18n |
## Best Practices
### ✅ DO
- Extract all user-facing strings to translation files
- Use ICU message format for complex messages
- Support pluralization correctly for each language
- Use locale-aware date/time/number formatting
- Implement RTL support for Arabic, Hebrew, etc.
- Provide fallback language (usually English)
- Use namespaces to organize translations
- Test with pseudo-localization (ääçćëńţś)
- Store locale preference (cookie, localStorage)
- Use professional translators for production
- Implement translation management workflow
- Support dynamic locale switching
- Use translation memory tools
### ❌ DON'T
- Hardcode user-facing strings in code
- Concatenate translated strings
- Assume English grammar rules apply to all languages
- Use generic plural forms (one/many) for all languages
- Forget about text expansion (German is ~30% longer)
- Store dates/times in locale-specific formats
- Use flags to represent languages (flag ≠ language)
- Translate technical terms without context
- Mix translation keys with UI strings
- Forget to translate alt text, titles, placeholders
- Assume left-to-right layout
© aj-geddes · MIT · aj-geddes/useful-ai-prompts
Similar skills
Everything for Frontend and UI →internationalization-i18n by other authors comes first.