UNPKG

@nutui/nutui

Version:

京东风格的轻量级移动端 Vue2、Vue3 组件库(支持小程序开发)

49 lines (48 loc) 1.42 kB
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); import { reactive, ref } from "vue"; import Lang from "./zh-CN.js"; import Lang$1 from "./en-US.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 };