cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
41 lines (40 loc) • 1.52 kB
JavaScript
import Model from "../model/Model.mjs";
import env from "../../../zrender/lib/core/env.mjs";
import langEN from "../i18n/langEN.mjs";
import langZH from "../i18n/langZH.mjs";
import { isString, clone, merge } from "../../../zrender/lib/core/util.mjs";
var LOCALE_ZH = "ZH";
var LOCALE_EN = "EN";
var DEFAULT_LOCALE = LOCALE_EN;
var localeStorage = {};
var localeModels = {};
var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : function() {
var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();
return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;
}();
function registerLocale(locale, localeObj) {
locale = locale.toUpperCase();
localeModels[locale] = new Model(localeObj);
localeStorage[locale] = localeObj;
}
function createLocaleObject(locale) {
if (isString(locale)) {
var localeObj = localeStorage[locale.toUpperCase()] || {};
if (locale === LOCALE_ZH || locale === LOCALE_EN) {
return clone(localeObj);
} else {
return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);
}
} else {
return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);
}
}
function getLocaleModel(lang) {
return localeModels[lang];
}
function getDefaultLocaleModel() {
return localeModels[DEFAULT_LOCALE];
}
registerLocale(LOCALE_EN, langEN);
registerLocale(LOCALE_ZH, langZH);
export { SYSTEM_LANG, createLocaleObject, getDefaultLocaleModel, getLocaleModel, registerLocale };