diff --git a/src/directives/language.ts b/src/directives/language.ts index 9f1b0c1..7bc9714 100644 --- a/src/directives/language.ts +++ b/src/directives/language.ts @@ -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 }) diff --git a/src/store/state.ts b/src/store/state.ts index e289c04..d030a4f 100644 --- a/src/store/state.ts +++ b/src/store/state.ts @@ -15,7 +15,7 @@ export interface State { export const state = (): State => ({ shopList: [], selectedModule: '', - language: 'zh', + language: 'tw', config: {}, shop: {}, currentFloor: {},