feat(i18n): add locale dictionaries and pilot surfaces
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
export const SUPPORTED_LOCALES = ["en", "es"] as const
|
||||
|
||||
export type Locale = (typeof SUPPORTED_LOCALES)[number]
|
||||
|
||||
export const FALLBACK_LOCALE: Locale = "en"
|
||||
export const DEFAULT_LOCALE_ENV_VAR = "STOCK_MANAGER_DEFAULT_LOCALE"
|
||||
export const LOCALE_COOKIE_NAME = "stock-manager-locale"
|
||||
|
||||
export function isLocale(value: unknown): value is Locale {
|
||||
return (
|
||||
typeof value === "string" && SUPPORTED_LOCALES.includes(value as Locale)
|
||||
)
|
||||
}
|
||||
|
||||
export function resolveDefaultLocale(value: unknown): Locale {
|
||||
return isLocale(value) ? value : FALLBACK_LOCALE
|
||||
}
|
||||
|
||||
export function resolveLocale(value: unknown, fallback: Locale): Locale {
|
||||
return isLocale(value) ? value : fallback
|
||||
}
|
||||
Reference in New Issue
Block a user