Internationalization (i18n)
Overview
Patterns for building multilingual applications with RTL support, safe translation rendering, and server-side language detection.
Quick Reference
Language Detection
- Language determined server-side (middleware or database)
- Propagated to clients via
LangProviderin layout - Database
languages.directionis source of truth for RTL
Safe Translation
const { getT } = useSafeTranslation(translations);
return <h1>{getT('page.title')}</h1>;
RTL Support
- Automatic detection via
LangService dir="rtl"on HTML element- Tailwind respects RTL direction
- ARIA text in English unless translation key exists
References
| Topic | File |
|---|---|
| RTL support, safe translations, LangProvider, language tables | references/i18n-patterns.md |
| CSS logical properties, DirectionProvider, icon rotation, RTL pitfalls | references/rtl-css-patterns.md |
| Per-entity translation table pattern (product_translations, etc.) | references/per-entity-translations.md |
| Translation assembler pattern (fetch all, filter in-memory) | references/assembler-pattern.md |
| Server-side locale detection in proxy.ts | references/server-locale-detection.md |
| SEO hreflang alternates for multi-language sites | references/seo-hreflang.md |