feat(admin): 从已有玩家升级代理、修复 i18n 与过期 .js 冲突
- 新建一级代理改为选择已有玩家;新建用户可选一级代理 - 操作日志/注单等扁平 key 翻译;清理 src 内误生成 .js,Vite 优先解析 .ts Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -7,11 +7,10 @@ export type AdminLocale = 'zh-CN' | 'en-US' | 'ms-MY';
|
||||
export const ADMIN_LOCALES: {
|
||||
code: AdminLocale;
|
||||
label: string;
|
||||
flag: string;
|
||||
}[] = [
|
||||
{ code: 'zh-CN', label: '中文', flag: '🇨🇳' },
|
||||
{ code: 'en-US', label: 'English', flag: '🇺🇸' },
|
||||
{ code: 'ms-MY', label: 'Bahasa Melayu', flag: '🇲🇾' },
|
||||
{ code: 'zh-CN', label: '中文' },
|
||||
{ code: 'en-US', label: 'English' },
|
||||
{ code: 'ms-MY', label: 'Bahasa Melayu' },
|
||||
];
|
||||
|
||||
const zh: Record<string, string> = {
|
||||
@@ -458,32 +457,9 @@ const ms: Record<string, string> = {
|
||||
...adminPagesMs,
|
||||
};
|
||||
|
||||
const messages: Record<AdminLocale, Record<string, string>> = {
|
||||
/** vue-i18n 文案表(扁平 key,与原先 adminT 一致) */
|
||||
export const adminMessages: Record<AdminLocale, Record<string, string>> = {
|
||||
'zh-CN': zh,
|
||||
'en-US': en,
|
||||
'ms-MY': ms,
|
||||
};
|
||||
|
||||
export function adminT(locale: AdminLocale, key: string, params?: Record<string, string | number>): string {
|
||||
const chain = [locale, 'en-US', 'zh-CN'];
|
||||
const seen = new Set<string>();
|
||||
let raw = key;
|
||||
for (const loc of chain) {
|
||||
if (seen.has(loc)) continue;
|
||||
seen.add(loc);
|
||||
const v = messages[loc as AdminLocale]?.[key];
|
||||
if (v) {
|
||||
raw = v;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!params) return raw;
|
||||
return Object.entries(params).reduce(
|
||||
(s, [k, v]) => s.replace(new RegExp(`\\{${k}\\}`, 'g'), String(v)),
|
||||
raw,
|
||||
);
|
||||
}
|
||||
|
||||
export function adminLocaleTag(locale: AdminLocale): string {
|
||||
return locale;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user