1 |
|
2 |
|
3 |
|
4 |
|
5 | import Vue from 'vue'
|
6 | import defaultLang from './lang/en-US'
|
7 |
|
8 | const i18nHandler = function (...args) {
|
9 | const vuei18n = Object.getPrototypeOf(this || Vue).$t
|
10 |
|
11 | if (typeof vuei18n === 'function') {
|
12 | return vuei18n.apply(this, args)
|
13 | }
|
14 | }
|
15 |
|
16 | export function t (path, options) {
|
17 | const array = path.split('.')
|
18 | let value = i18nHandler.apply(this, arguments)
|
19 | let current = defaultLang
|
20 |
|
21 | if (value !== null && typeof value !== 'undefined') {
|
22 | return value
|
23 | }
|
24 |
|
25 | for (let i = 0, len = array.length; i < len; i++) {
|
26 | const property = array[i]
|
27 | value = current[property]
|
28 |
|
29 | if (i === len - 1) {
|
30 | return value
|
31 | } else if (!value) {
|
32 | return ''
|
33 | }
|
34 |
|
35 | current = value
|
36 | }
|
37 |
|
38 | return ''
|
39 | }
|