dynamicI18n.js
1.68 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import req from '@/utils/request'
import $store from '@/store'
var dynamicI18n = {
//获取所有的语言
getlang(i18n) {
req
.post(window.context.portal + `/i18n/custom/i18nMessageType/v1/all`)
.then((res) => {
if (res && JSON.stringify(res) != '{}') {
$store.dispatch('i18n/setLangList', res)
res.forEach((ele) => {
dynamicI18n.getMessage(ele.type, i18n)
})
}
})
},
//获取语言对应的资源
getMessage(langKey, i18n) {
req
.get(
window.context.portal +
`/i18n/custom/i18nMessage/v1/getLangPackage?type=${langKey}`
)
.then((res) => {
const data = res || {}
//加载本地的资源
let localMassage = {}
try {
localMassage = require(`./${langKey}`).default
} catch (err) {}
//加载elementUi的资源
let elementMessage = {}
try {
elementMessage =
require(`element-ui/lib/locale/lang/${langKey}`).default
} catch (err) {}
//加载hotentUi的资源
let hotentMessage = {}
try {
hotentMessage =
require(`hotent-ui/src/locale/lang/${langKey}`).default
} catch (err) {}
let hotentPortalMessage = {}
try {
hotentPortalMessage =
require(`hotent-portal/src/locale/lang/${langKey}`).default
} catch (err) {}
i18n.setLocaleMessage(langKey, {
...i18n.getLocaleMessage(langKey),
...elementMessage,
...hotentMessage,
...hotentPortalMessage,
...localMassage,
...data,
})
})
},
}
export default dynamicI18n