feat(i18n): 管理端与玩家端三语支持(中/英/马来语)

- 管理后台 adminT 文案库、结算与代理端页面、表单校验
- 玩家端 vue-i18n 补全首页/公告/串关与 ms 文案
- Element Plus ms 语言包与共享 locale 工具
This commit is contained in:
2026-06-03 15:05:36 +08:00
parent 80adc0e928
commit cbfa18d1d3
63 changed files with 3081 additions and 1038 deletions

View File

@@ -0,0 +1,28 @@
/** 内容翻译 fallback当前语言 → 英文 → 中文 */
export function resolveTranslationFallback(
map: Record<string, string | undefined | null>,
locale: string,
): string {
const chain = [locale, 'en-US', 'zh-CN'];
const seen = new Set<string>();
for (const loc of chain) {
if (seen.has(loc)) continue;
seen.add(loc);
const v = map[loc];
if (v != null && String(v).trim() !== '') return String(v).trim();
}
for (const v of Object.values(map)) {
if (v != null && String(v).trim() !== '') return String(v).trim();
}
return '';
}
/** 前台语言显示名PRD 3.1 */
export const LOCALE_UI_LABELS: Record<string, string> = {
'zh-CN': '中文',
'ms-MY': 'Bahasa Melayu',
'en-US': 'English',
};
/** vue-i18n 缺 key 时en-US → zh-CN */
export const VUE_I18N_FALLBACK_LOCALES = ['en-US', 'zh-CN'] as const;