nutui-taro-upgrade
Version:
@nutui/nutui-taro 对京东风格组件库的taro4 版本支持
53 lines (52 loc) • 1.47 kB
JavaScript
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => {
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
};
import { reactive, ref } from "vue";
import Lang from "./zh-CN.js";
import Lang$1 from "./en-US.js";
import "./baseLang-3a8457ac.js";
const isObject = (val) => val !== null && typeof val === "object";
const deepMerge = (target, newObj) => {
Object.keys(newObj).forEach((key) => {
const targetValue = target[key];
const newObjValue = newObj[key];
if (isObject(targetValue) && isObject(newObjValue)) {
deepMerge(targetValue, newObjValue);
} else {
target[key] = newObjValue;
}
});
return target;
};
const langs = reactive({
"zh-CN": new Lang(),
"en-US": new Lang$1()
});
class Locale {
static languages() {
return langs[this.currentLang.value];
}
static use(lang, newLanguages) {
if (newLanguages) {
langs[lang] = new newLanguages();
}
this.currentLang.value = lang;
}
static merge(lang, newLanguages) {
if (newLanguages) {
if (langs[lang]) {
deepMerge(langs[lang], newLanguages);
} else {
this.use(lang, newLanguages);
}
}
}
}
__publicField(Locale, "currentLang", ref("zh-CN"));
export {
Locale,
Locale as default
};