import Vue from 'vue' import VueI18n from 'vue-i18n' import dynamicI18n from './dynamicI18n' import utils from 'hotent-ui/src/utils.js' Vue.use(VueI18n) const messages = {} //优先获取url的语言 let language = utils.getUrlKey('language') || localStorage.getItem('lang') || 'zh-CN' localStorage.setItem('lang', language) const i18n = new VueI18n({ // set locale // options: en | zh locale: language, // set locale messages messages, // 隐藏警告 silentTranslationWarn: true, }) //动态获取国际化资源 dynamicI18n.getlang(i18n) /** * 扩展国际化方法,如果没有资源则返回默认值 * @param {*} key 资源key * @param {*} defaultMessage 默认值 * @returns key对应有资源则返回对应的资源,否则返回默认值,若默认值也没有则直接返回key */ Vue.prototype.$td = function (key, defaultMessage) { if (!key) { return defaultMessage } let result = i18n._t.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this, ]) return result === key && defaultMessage ? defaultMessage : result } export default i18n