Implement internationalization (i18n) and localization including message extraction, translation catalogs, pluralization rules, date/time/number formatting, RTL language support, and i18n libraries...
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 |