/** * 语言 / Culture 取值:区分「后端 Culture 线值」与「uView Pro 语言包 name」两套 * * - 后端(旧 CulturePolicy)严格字面:中文 "zh-cn"、英文 "en"。 * 发给后端的 locale 头 / 登录体 Culture 用这套,防止后端精确匹配失败。 * - uView Pro 内置语言包 name 固定为 "zh-CN" / "en-US"(大小写敏感)。 * 前端自定义语言包的 name 必须与之完全相同,config-provider 才能把自定义文案 * 与内置组件文案(picker / calendar / upload …)按 name 合并; * 若写成 "zh-cn" 会被当成另一种语言,导致内置组件文案丢失 + 语言选择器出现重复项。 */ /** 发给后端的 Culture 线值 */ export const BACKEND_LOCALE_ZH = "zh-cn"; export const BACKEND_LOCALE_EN = "en"; /** uView Pro 语言包 name(必须匹配内置大小写,勿改成 zh-cn / en) */ export const UI_LOCALE_ZH = "zh-CN"; export const UI_LOCALE_EN = "en-US"; /** 前端默认选中的语言包 name */ export const DEFAULT_LOCALE = UI_LOCALE_ZH; /** 归一化任意 locale 变体(zh-Hans / zh-CN / en-US …)到后端 Culture 线值 */ export function toBackendLocale(value: string): string { const l = String(value || "").toLowerCase(); return l.startsWith("en") ? BACKEND_LOCALE_EN : BACKEND_LOCALE_ZH; } /** 归一化任意 locale 变体(含 DB 的 Lang)到 uView 语言包 name */ export function toUiLocale(value: string): string { const l = String(value || "").toLowerCase(); return l.startsWith("en") ? UI_LOCALE_EN : UI_LOCALE_ZH; }