Browse Source

修改多语言问题

gcj 3 years ago
parent
commit
d2e1a00666
3 changed files with 58 additions and 25 deletions
  1. 5 0
      package-lock.json
  2. 38 24
      src/store/modules/lang.js
  3. 15 1
      src/utils/i18n.js

+ 5 - 0
package-lock.json

@@ -7330,6 +7330,11 @@
       "resolved": "https://registry.npm.taobao.org/js-cookie/download/js-cookie-2.2.1.tgz",
       "integrity": "sha1-aeEG3F1YBolFYpAqpbrsN0Tpsrg="
     },
+    "js-md5": {
+      "version": "0.7.3",
+      "resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz",
+      "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ=="
+    },
     "js-message": {
       "version": "1.0.7",
       "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.7.tgz",

+ 38 - 24
src/store/modules/lang.js

@@ -1,38 +1,52 @@
-import Cookies from 'js-cookie';
 import { getContent } from '@/api/api';
-import { getToken, removeToken } from "@/utils/auth";
+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);
-        state.language_type = language_type;
-    },
+  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;
+  },
 }
 
 const actions = {
-    // 用户更换语言类型
-    updateLanguageType({ commit }, language_type) {
-        return new Promise((reslove, reject) => {
-            let MethodName = "login_control-UpdateLanguageType";
-            getContent(MethodName, { language_type })
-                .then(() => {
-                    commit('SET_UPDATE_LANGUAGE_TYPE', language_type);
-                    reslove();
-                })
-                .catch(error => {
-                    reject(error);
-                });
+  // 用户更换语言类型
+  updateLanguageType({ commit }, language_type) {
+    return new Promise((reslove, reject) => {
+      let MethodName = "login_control-UpdateLanguageType";
+      getContent(MethodName, { language_type })
+        .then(() => {
+          commit('SET_UPDATE_LANGUAGE_TYPE', language_type);
+          reslove();
+        })
+        .catch(error => {
+          reject(error);
         });
-    },
+    });
+  },
 }
 
 export default {
-    namespaced: true,
-    state,
-    mutations,
-    actions
+  namespaced: true,
+  state,
+  mutations,
+  actions
 }

+ 15 - 1
src/utils/i18n.js

@@ -11,8 +11,22 @@ 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 state = {
+  language_type: locale
+}
 const i18n = new VueI18n({
-  locale: localStorage.getItem('language_type') || "ZH", //store.getters.language_type,
+  locale: locale, //store.getters.language_type,
   messages: {
     ZH: {
       ...zhLocal