UNPKG

m2-ui

Version:

The package is provided web components and utilities based on vue and element-ui.

74 lines (57 loc) 1.84 kB
'use strict'; exports.__esModule = true; var _arguments = arguments; var _vue = require('vue'); var _vue2 = _interopRequireDefault(_vue); var _deepmerge = require('deepmerge'); var _deepmerge2 = _interopRequireDefault(_deepmerge); var _m2Core = require('m2-core'); var _format = require('./format'); var _format2 = _interopRequireDefault(_format); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var locale = null; var merged = false; var i18nHandler = function i18nHandler() { var i18n = Object.getPrototypeOf(undefined || _vue2.default).$t; if (typeof i18n === 'function' && !!_vue2.default.locale) { if (!merged) { merged = true; _vue2.default.locale(_vue2.default.config.lang, (0, _deepmerge2.default)(locale, _vue2.default.locale(_vue2.default.config.lang) || {}, { clone: true })); } return i18n.apply(undefined, _arguments); } }; var trans = function trans(path, options) { var lang = _m2Core.DataStorage.get(_m2Core.DEFAULT_LANGUAGE_SETTING); useLang(lang); var value = i18nHandler.apply(undefined, _arguments); if (value !== null && value !== undefined) return value; var array = path.split('.'); var current = locale; for (var i = 0, j = array.length; i < j; i++) { var property = array[i]; value = current[property]; if (i === j - 1) return (0, _format2.default)()(value, options); if (!value) return ''; current = value; } return ''; }; var useLang = function useLang(lang) { switch (lang) { case 'en': locale = require('./lang/en-US').default; break; case 'zh': default: locale = require('./lang/zh-CN').default; break; } }; exports.default = { t: trans, use: useLang, i18n: function i18n(fn) { return i18nHandler = fn || i18nHandler; } };