2025-01-23 11:02:55 +08:00
|
|
|
import enUS from './lang/en-US';
|
|
|
|
|
import zhCN from './lang/zh-CN';
|
|
|
|
|
|
2025-02-19 01:01:43 +08:00
|
|
|
const messages = {
|
|
|
|
|
'zh-CN': zhCN,
|
|
|
|
|
'en-US': enUS
|
|
|
|
|
} as const;
|
2025-01-23 11:02:55 +08:00
|
|
|
|
2025-02-19 01:01:43 +08:00
|
|
|
type Language = keyof typeof messages;
|
2025-01-23 11:02:55 +08:00
|
|
|
|
2025-02-19 01:01:43 +08:00
|
|
|
// 为主进程提供一个简单的 i18n 实现
|
|
|
|
|
const mainI18n = {
|
|
|
|
|
global: {
|
|
|
|
|
currentLocale: 'zh-CN' as Language,
|
|
|
|
|
get locale() {
|
|
|
|
|
return this.currentLocale;
|
|
|
|
|
},
|
|
|
|
|
set locale(value: Language) {
|
|
|
|
|
this.currentLocale = value;
|
|
|
|
|
},
|
|
|
|
|
t(key: string) {
|
|
|
|
|
const keys = key.split('.');
|
|
|
|
|
let current: any = messages[this.currentLocale];
|
|
|
|
|
for (const k of keys) {
|
|
|
|
|
if (current[k] === undefined) {
|
|
|
|
|
// 如果找不到翻译,返回键名
|
|
|
|
|
return key;
|
|
|
|
|
}
|
|
|
|
|
current = current[k];
|
|
|
|
|
}
|
|
|
|
|
return current;
|
|
|
|
|
},
|
|
|
|
|
messages
|
|
|
|
|
}
|
|
|
|
|
};
|
2025-01-23 11:02:55 +08:00
|
|
|
|
2025-02-19 01:01:43 +08:00
|
|
|
export type { Language };
|
|
|
|
|
export default mainI18n;
|