@vxe-ui/core
Version:
Vxe UI core library
76 lines (75 loc) • 2.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getI18n = getI18n;
exports.getLanguage = getLanguage;
exports.hasLanguage = hasLanguage;
exports.setI18n = setI18n;
exports.setLanguage = setLanguage;
var _xeUtils = _interopRequireDefault(require("xe-utils"));
var _core = require("./core");
var _i18nStore = require("./i18nStore");
var _configStore = require("./configStore");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
let checkInstall = false;
let cacheMaps = {};
function getDefaultExport(mod) {
if (mod && mod.__esModule) {
return mod.default;
}
return mod;
}
function getI18n(key, args) {
const {
langMaps,
language
} = _i18nStore.i18nConfigStore;
const {
i18n
} = _configStore.globalConfigStore;
if (i18n) {
return `${i18n(key, args) || ''}`;
}
if (!checkInstall) {
if (!langMaps[language]) {
console.error(`[vxe core] 语言包未安装。Language not installed. https://${_core.VxeCore.uiVersion ? 'vxeui.com' : 'vxetable.cn'}/#/start/i18n`);
}
checkInstall = true;
}
if (!args && cacheMaps[key]) {
return cacheMaps[key];
}
const i18nLabel = _xeUtils.default.toFormatString(_xeUtils.default.get(langMaps[language], key, key), args);
if (!args) {
cacheMaps[key] = i18nLabel;
}
return i18nLabel;
}
function setLanguage(locale) {
const {
language
} = _i18nStore.i18nConfigStore;
const targetlang = locale || 'zh-CN';
if (language !== targetlang) {
_i18nStore.i18nConfigStore.language = targetlang;
cacheMaps = {};
}
return _core.VxeCore;
}
function setI18n(locale, data) {
_i18nStore.i18nConfigStore.langMaps[locale] = Object.assign({}, getDefaultExport(data));
return _core.VxeCore;
}
function hasLanguage(language) {
const {
langMaps
} = _i18nStore.i18nConfigStore;
return !!langMaps[language];
}
function getLanguage() {
const {
language
} = _i18nStore.i18nConfigStore;
return language;
}