From ec24cca32fb1dcdffde08f83c75abb1a33e1b9c5 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 14 May 2020 11:38:39 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E4=BF=AE=E6=94=B9language=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/components/NavHeader/index.vue | 44 +++++++++++++++-------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/src/layout/components/NavHeader/index.vue b/src/layout/components/NavHeader/index.vue index bad83dfc9..aff63a9dc 100644 --- a/src/layout/components/NavHeader/index.vue +++ b/src/layout/components/NavHeader/index.vue @@ -18,11 +18,10 @@
- {{ $t('common.nav.Language') }} + {{ currentLang.title }} - 中文(简体) - English + {{ item.title }}
@@ -46,13 +45,34 @@ export default { }, data() { return { - LANG_COOKIE_NAME: 'django_language' + LANG_COOKIE_NAME: 'django_language', + supportLanguages: [ + { + title: '中文(简体)', + code: 'cn', + cookieCode: 'zh-hans' + }, + { + title: 'English', + code: 'en', + cookieCode: 'en' + } + ] } }, computed: { ...mapGetters([ 'sidebar' - ]) + ]), + currentLang() { + const cookieCode = this.$cookie.get(this.LANG_COOKIE_NAME) + let lang = this.supportLanguages.find((v) => v.cookieCode === cookieCode) + if (!lang) { + lang = this.supportLanguages[0] + this.changeLangTo(lang) + } + return lang + } }, methods: { toggleSideBar() { @@ -62,15 +82,11 @@ export default { await this.$store.dispatch('users/logout') this.$router.push(`/login?redirect=${this.$route.fullPath}`) }, - changeLangToZH() { - this.$i18n.locale = 'cn' - localStorage.setItem('lang', 'cn') - this.$cookie.set(this.LANG_COOKIE_NAME, 'zh-hans') - }, - changeLangToEnglish() { - this.$i18n.locale = 'en' - localStorage.setItem('lang', 'en') - this.$cookie.set(this.LANG_COOKIE_NAME, 'en') + changeLangTo(item) { + this.$i18n.locale = item.code + localStorage.setItem('lang', item.code) + this.$cookie.set(this.LANG_COOKIE_NAME, item.cookieCode) + window.location.reload() } } }