/** Locale preference stored in the Host user-settings document. */ import z from 'schemastery' /** Settings namespace owned by the locale plugin. */ export const LOCALE_SETTINGS_NAMESPACE = 'locale' /** Field carrying an explicit locale selection; absence delegates to the browser. */ export const LOCALE_PREFERENCE_FIELD = 'preference' /** Locale identifiers shipped by the browser client. */ export const LOCALE_IDS = ['zh', 'en'] as const /** Shipped locale identifier. */ export type LocaleId = typeof LOCALE_IDS[number] /** Durable locale section shared by the Host schema and the browser scope. */ export interface LocaleSettings { /** Explicit locale selection; absence delegates to the browser. */ preference?: LocaleId } /** Durable locale schema; also the wire envelope the browser scope validates against. */ export const LocaleSettingsSchema: z = z.object({ [LOCALE_PREFERENCE_FIELD]: z.union([...LOCALE_IDS]).required(false), })