Internationalization Base
Multi-language foundations built for server and client components.
This starter now includes locale routing, typed dictionaries, a translation provider, and helpers for building localized pages without leaking translation logic across the app.
Theme System
Active themelight
Developer Notes
- Use getDictionary() and createTranslator() in server components for most translated content.
- Use the I18nProvider and useTranslations() only in client components that need interaction.
- Keep routing locale-aware with buildLocaleHref() and app/[locale] segments.
Usage
background: theme(surface);
color: theme(text-primary);
border-color: theme(border-soft);const { t, locale, direction } = useTranslations();Language
Route-aware locale switchersrc/shared/i18n/config.ts
src/shared/i18n/provider.tsx
Add translations in src/shared/dictionaries, keep locale metadata in src/shared/i18n/config.ts, and use server helpers by default unless a component needs client interaction.