Use rainbow bg color to mark build in label

This commit is contained in:
2022-03-28 15:47:34 +08:00
parent 126324bb0c
commit 241161ebb6
6 changed files with 65 additions and 30 deletions
@@ -9,7 +9,7 @@ const LanguageDataBase = {
EN_US, ZH_CN
}
type AllI18nKeys = keyof typeof EN_US;
type AllI18nKeys = (keyof typeof EN_US) | string;
interface ILocalizationProps {
className?: string;
@@ -17,14 +17,17 @@ interface ILocalizationProps {
options?: Record<string, string>;
}
function I18N(language: Language | IMixinSettingProps, key: keyof typeof EN_US, values?: Record<string, string>) {
function I18N(language: Language | IMixinSettingProps, key: AllI18nKeys, values?: Record<string, string>) {
let lang: Language;
if (typeof language === "string") {
lang = language;
} else {
lang = language.setting?.language ?? "EN_US";
}
let i18nValue = LanguageDataBase[lang][key];
let languageDataBase = LanguageDataBase[lang];
if (!languageDataBase) languageDataBase = LanguageDataBase["EN_US"];
let i18nValue = languageDataBase[key as keyof typeof EN_US];
if (!i18nValue) i18nValue = key;
if (values) {
for (let valueKey in values) {
i18nValue = i18nValue.replaceAll(new RegExp(`\\{\\s*${valueKey}\\s*\\}`, "g"), values[valueKey]);