export const SUPPORTED_LOCALES = ["en-US", "zh-CN"] as const; export type Locale = (typeof SUPPORTED_LOCALES)[number]; export const DEFAULT_LOCALE: Locale = "en-US"; export function isLocale(value: string): value is Locale { return (SUPPORTED_LOCALES as readonly string[]).includes(value); } export function normalizeLocale(locale: string | null | undefined): Locale { if (!locale) { return DEFAULT_LOCALE; } if (isLocale(locale)) { return locale; } if (locale.toLowerCase().startsWith("zh")) { return "zh-CN"; } return DEFAULT_LOCALE; } // Helper function to detect browser locale export function detectLocale(): Locale { if (typeof window === "undefined") { return DEFAULT_LOCALE; } const browserLang = navigator.language || (navigator as unknown as { userLanguage: string }).userLanguage; return normalizeLocale(browserLang); }