|
|
|
@ -1,11 +1,12 @@ |
|
|
|
import { watchEffect } from 'vue' |
|
|
|
import { watchEffect, DirectiveBinding } from 'vue' |
|
|
|
import { useStore } from '@/store' |
|
|
|
import { chineseLanguageLoader } from '@/i18n/util' |
|
|
|
|
|
|
|
/* |
|
|
|
ep:v-language:[state.obj]="'title'" |
|
|
|
ep:v-language:title="state.obj" |
|
|
|
*/ |
|
|
|
export default (el: HTMLElement, binding: any) => { |
|
|
|
|
|
|
|
export default (el: HTMLElement, binding: DirectiveBinding) => { |
|
|
|
watchEffect(() => { |
|
|
|
const store = useStore() |
|
|
|
const language = store.language |
|
|
|
@ -13,23 +14,22 @@ export default (el: HTMLElement, binding: any) => { |
|
|
|
|
|
|
|
let content = '' |
|
|
|
|
|
|
|
if (!Object.keys(arg)?.length) { |
|
|
|
if (!Object.keys(value)?.length || !arg) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
if (language === 'zh') { |
|
|
|
console.log('zh') |
|
|
|
content = arg[value] |
|
|
|
content = value[arg] |
|
|
|
} |
|
|
|
|
|
|
|
if (language === 'en' && arg[value + 'En']) { |
|
|
|
content = arg[value + 'En'] |
|
|
|
} else if (language === 'en' && !arg[value + 'En']) { |
|
|
|
content = arg[value] |
|
|
|
if (language === 'en' && value[arg + 'En']) { |
|
|
|
content = value[arg + 'En'] |
|
|
|
} else if (language === 'en' && !value[arg + 'En']) { |
|
|
|
content = value[arg] |
|
|
|
} |
|
|
|
|
|
|
|
if (language === 'tw') { |
|
|
|
content = chineseLanguageLoader(arg[value]) |
|
|
|
content = chineseLanguageLoader(value[arg]) |
|
|
|
} |
|
|
|
el.innerHTML = content |
|
|
|
}) |
|
|
|
|