Initial clean project import
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
import source from "./../../src/lang/source.json";
|
||||
import enUS from "./../../src/lang/en-US.json";
|
||||
import zhCN from "./../../src/lang/zh-CN.json";
|
||||
import {isDev} from "../lib/env";
|
||||
import lang from "../mapi/lang/main";
|
||||
import {ConfigMain} from "../mapi/config/main";
|
||||
|
||||
export const defaultLocale = "zh-CN";
|
||||
|
||||
let locale = defaultLocale;
|
||||
|
||||
export const langMessageList = [
|
||||
{
|
||||
name: "en-US",
|
||||
label: "English",
|
||||
messages: enUS,
|
||||
},
|
||||
{
|
||||
name: "zh-CN",
|
||||
label: "简体中文",
|
||||
messages: zhCN,
|
||||
},
|
||||
];
|
||||
|
||||
const buildMessages = (): any => {
|
||||
let messages = {};
|
||||
for (let m of langMessageList) {
|
||||
let msgList = {};
|
||||
for (let k in source) {
|
||||
const v = source[k];
|
||||
if (m.messages[v]) {
|
||||
msgList[k] = m.messages[v];
|
||||
}
|
||||
}
|
||||
messages[m.name] = msgList;
|
||||
}
|
||||
return messages;
|
||||
};
|
||||
|
||||
let messages = buildMessages();
|
||||
|
||||
export const t = (text: string, param: object | null = null) => {
|
||||
if (isDev) {
|
||||
lang.writeSourceKeyUse(text).then();
|
||||
}
|
||||
if (messages[locale]) {
|
||||
if (messages[locale][text]) {
|
||||
if (param) {
|
||||
return messages[locale][text].replace(/\{(\w+)\}/g, function (match, key) {
|
||||
return key in param ? param[key] : match;
|
||||
});
|
||||
}
|
||||
return messages[locale][text];
|
||||
}
|
||||
}
|
||||
if (isDev) {
|
||||
lang.writeSourceKey(text).then();
|
||||
}
|
||||
if (param) {
|
||||
return text.replace(/\{(\w+)\}/g, function (match, key) {
|
||||
return key in param ? param[key] : match;
|
||||
});
|
||||
}
|
||||
return text;
|
||||
};
|
||||
|
||||
const readyAsync = async () => {
|
||||
locale = await ConfigMain.get("lang", defaultLocale);
|
||||
};
|
||||
|
||||
const getLocale = () => {
|
||||
return locale;
|
||||
};
|
||||
|
||||
export const ConfigLang = {
|
||||
readyAsync,
|
||||
getLocale,
|
||||
};
|
||||
Reference in New Issue
Block a user