UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

41 lines (40 loc) 1.52 kB
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 };