export const LOCALE = { ZH: 'zh_CN', EN: 'en_US', } as const; export const CATEGORY = { GENERAL: 'General', NAVIGATION: 'Navigation', LAYOUT: 'Layout', DATA_ENTRY: 'Data Entry', DATA_DISPLAY: 'Data Display', FEEDBACK: 'Feedback', OTHER: 'Other', } as const; export const GROUP = { BASIC: 'Basic', } as const; /** Maps legacy Chinese category/group labels to English keys. */ export const CATEGORY_FROM_ZH: Record = { 通用: CATEGORY.GENERAL, 基础: CATEGORY.GENERAL, 导航: CATEGORY.NAVIGATION, 布局: CATEGORY.LAYOUT, 表单: CATEGORY.DATA_ENTRY, 信息输入: CATEGORY.DATA_ENTRY, 数据展示: CATEGORY.DATA_DISPLAY, 信息展示: CATEGORY.DATA_DISPLAY, 反馈: CATEGORY.FEEDBACK, 信息反馈: CATEGORY.FEEDBACK, 其他: CATEGORY.OTHER, 基础组件: GROUP.BASIC, }; export type I18nText = { type: 'i18n'; zh_CN: string; en_US: string; }; export function i18n(zh: string, en: string): I18nText { return { type: 'i18n', zh_CN: zh, en_US: en, }; } export function fieldTitle( zhLabel: string, enLabel: string, zhTip?: string, enTip?: string, ): { label: I18nText; tip?: I18nText } { return { label: i18n(zhLabel, enLabel), ...(zhTip != null ? { tip: i18n(zhTip, enTip ?? zhTip) } : {}), }; }