index.js
1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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