Add i18n foundation (fa-IR/en-US) and localize landing + auth.
Introduce path-prefixed locale routing under app/[lang] with a middleware that detects locale from cookie/Accept-Language (default fa-IR) and redirects. Add fa-IR (source of truth) and en-US dictionaries, a server getDictionary, a client I18nProvider/useT, locale-aware Link + router helpers, and a language switcher. The root [lang] layout sets html lang/dir and the per-locale font (Peyda for fa, Inter for en). Landing sections and the login/register/auth shell now read all copy from the dictionaries; dashboard localization follows in a later commit. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
import type { Locale } from './config';
|
||||
import type { Dictionary } from './dictionaries/fa';
|
||||
|
||||
const loaders: Record<Locale, () => Promise<Dictionary>> = {
|
||||
'fa-IR': () => import('./dictionaries/fa').then((m) => m.default),
|
||||
'en-US': () => import('./dictionaries/en').then((m) => m.default),
|
||||
};
|
||||
|
||||
export const getDictionary = async (locale: Locale): Promise<Dictionary> => loaders[locale]();
|
||||
|
||||
export type { Dictionary };
|
||||
Reference in New Issue
Block a user