UNPKG

diandi-ele-form

Version:

基于 element-ui 的数据驱动表单组件

55 lines (47 loc) 1.35 kB
/** * @Author: Wang chunsheng email:2192138785@qq.com * @Date: 2021-11-27 17:48:41 * @Last Modified by: Wang chunsheng email:2192138785@qq.com * @Last Modified time: 2021-11-28 16:06:31 */ import defaultLang from './lang/zh-CN' import Vue from 'vue' import deepmerge from 'deepmerge' import Format from './format' const format = Format(Vue) let lang = defaultLang let merged = false let i18nHandler = function () { const vuei18n = Object.getPrototypeOf(this || Vue).$t if (typeof vuei18n === 'function' && !!Vue.locale) { if (!merged) { merged = true Vue.locale( Vue.config.lang, deepmerge(lang, Vue.locale(Vue.config.lang) || {}, { clone: true }) ) } return vuei18n.apply(this, arguments) } } export const t = function (path, options) { let value = i18nHandler.apply(this, arguments) if (value !== null && value !== undefined) return value const array = path.split('.') let current = lang for (let i = 0, j = array.length; i < j; i++) { const property = array[i] value = current[property] if (i === j - 1) return format(value, options) if (!value) return '' current = value } return '' } export const use = function (l) { lang = l || lang } export const i18n = function (fn) { i18nHandler = fn || i18nHandler } export default { use, t, i18n }