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.
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.
Minimal working example:
// 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)
Detailed implementations in the references/ directory:
| Guide | Contents | |---|---| | i18next (JavaScript/TypeScript) | i18next (JavaScript/TypeScript) | | React-Intl (Format.js) | React-Intl (Format.js) | | Python i18n (gettext) | Python i18n (gettext) | | Date and Time Formatting | Date and Time Formatting | | Number and Currency Formatting | Number and Currency Formatting | | Pluralization Rules | Pluralization Rules | | RTL (Right-to-Left) Language Support | RTL (Right-to-Left) Language Support | | Translation Management | Translation Management | | Locale Detection | Locale Detection | | Server-Side i18n | Server-Side i18n |
Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/internationalization-i18n · pinned to the source commit
git clone https://github.com/aj-geddes/useful-ai-prompts.git
cd useful-ai-prompts
git checkout 3f5182cfd739fc113f4af5244a1cf342ad7f7911
mkdir -p ".claude/skills/internationalization-i18n"
cp -r "skills/internationalization-i18n" ".claude/skills/internationalization-i18n"Review the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
Scanner static-checks@0.1.0 · commit 3f5182cfd739. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
References credentials, tokens or secret files that a skill should not need.
Evidence: [redacted]· fingerprint e9cbb0224c4a3d23