- 管理端按联赛展示单场,新增赛事/单场流程与列表展开状态保持 - 盘口赔率迁至独立页面,保存按钮仅在有修改时高亮 - API 新增联赛列表与子场查询,按 locale 返回队名并修复编译 - 波胆其它选项与促销标签等 i18n 补齐,文案更易懂
29 lines
893 B
TypeScript
29 lines
893 B
TypeScript
/** 内容翻译 fallback:当前语言 → 英文 → 中文 → 马来文 */
|
||
export function resolveTranslationFallback(
|
||
map: Record<string, string | undefined | null>,
|
||
locale: string,
|
||
): string {
|
||
const chain = [locale, 'en-US', 'zh-CN', 'ms-MY'];
|
||
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;
|