Kaynağa Gözat

修改多语言问题

gcj 3 yıl önce
ebeveyn
işleme
c75709b820
2 değiştirilmiş dosya ile 28 ekleme ve 3 silme
  1. 17 2
      src/store/modules/lang.js
  2. 11 1
      src/utils/i18n.js

+ 17 - 2
src/store/modules/lang.js

@@ -1,13 +1,28 @@
-import Cookies from 'js-cookie';
 import { getContentFile } from '@/api/ajax';
+import { getToken, setToken } from "@/utils/auth";
+
+let locale = 'ZH';
+if (getToken()) {
+  const user = JSON.parse(getToken());
+  let language_type = user.language_type;
+  locale = language_type || localStorage.getItem('language_type') || "ZH";
+} else {
+  locale = localStorage.getItem('language_type') || "ZH";
+}
 
 const state = {
-  language_type: localStorage.getItem('language_type') || 'ZH'
+  language_type: locale
 }
 
 const mutations = {
   SET_UPDATE_LANGUAGE_TYPE: (state, language_type) => {
     localStorage.setItem('language_type', language_type);
+    let userInfor = getToken();
+    if (userInfor) {
+      userInfor = JSON.parse(getToken());
+      userInfor.language_type = language_type;
+      setToken(userInfor);
+    }
     state.language_type = language_type;
   },
 }

+ 11 - 1
src/utils/i18n.js

@@ -11,8 +11,18 @@ import deLocal from 'element-ui/lib/locale/lang/de';
 import ruLocal from 'element-ui/lib/locale/lang/ru-RU';
 
 Vue.use(VueI18n);
+import { getToken } from "@/utils/auth";
+
+let locale = 'ZH';
+if (getToken()) {
+  const user = JSON.parse(getToken());
+  let language_type = user.language_type;
+  locale = language_type || localStorage.getItem('language_type') || "ZH";
+} else {
+  locale = localStorage.getItem('language_type') || "ZH";
+}
 const i18n = new VueI18n({
-  locale: localStorage.getItem('language_type') || 'ZH',//store.getters.language_type,
+  locale: locale,//store.getters.language_type,
   messages: {
     ZH: {
       ...zhLocal