Explorar el Código

中英文切换功能

Shan9312 hace 10 meses
padre
commit
132cf9101b
Se han modificado 3 ficheros con 37 adiciones y 36 borrados
  1. 22 23
      src/i18n.js
  2. 14 12
      src/layout/components/Navbar.vue
  3. 1 1
      src/views/formulationPlan/recipeTemplate/index.vue

+ 22 - 23
src/i18n.js

@@ -10,33 +10,32 @@ import locale from 'element-ui/lib/locale'
 
 Vue.use(VueI18n)
 
-const i18n = new VueI18n({
-  messages: {
-    EN: {
-      ...enLocale,
-      ...enlogin,
-    },
-    CN: {
-      ...zhLocale,
-      ...zhlogin,
-    }
-  },
-
-  locale: 'EN', // set locale
-  fallbackLocale: 'EN', // 默认语言设置,当其他语言没有的情况下,使用en作为默认语言
 
+const lang = navigator.language || 'zh'
+console.log('初始语言类型', lang);
 
+const messages= {
+  'en': Object.assign(enlogin, enLocale),
+  'zh': Object.assign(zhlogin, zhLocale),
+}
 
+const i18n = new VueI18n({
+  locale: lang, // set locale
+  messages:messages
 
-  // locale: 'ZH', // 设置默认语言
-  //   fallbackLocale: 'ZH', // 当无法匹配当前语言时,使用的备选语言
-  //   messages: {
-  //     'ZH': require('./locales/zh.json'), // 导入中文语言文件
-  //     'EN': require('./locales/en.json')  // 导入英文语言文件
-  //   }
 })
+// 配置elementUI 语言转换关系
+locale.i18n((key, value) => i18n.t(key, value))
+
+const vantLocales = lang => {
+
+  if (lang == 'zh') {
+    Locale.use(lang, zhlogin)
+  } else if (lang === 'en') {
+    Locale.use(lang, enlogin)
+  }
+}
+vantLocales(i18n.locale)
+
 
-  // 配置elementUI 语言转换关系
-  locale.i18n((key, value) => i18n.t(key, value))
-// console.log(i18n)
 export default i18n

+ 14 - 12
src/layout/components/Navbar.vue

@@ -34,15 +34,13 @@
       </el-dropdown> -->
 
       <!-- 切换中英文 -->
-      <!-- <el-switch
+      <el-switch
         class="swichs"
         v-model="langValue"
-        :active-text="active_text"
-        :inactive-text="inactive_text"
-        active-color="#13ce66"
-        inactive-color="#ff4949"
+        active-text="英文"
+        inactive-text="中文"
         @change="translate"
-      ></el-switch> -->
+      ></el-switch>
       <el-dropdown class="avatar-container" trigger="click">
         <div class="avatar-wrapper">
           <!-- <img src="@/assets/cow.jpg" class="user-avatar"> -->
@@ -71,6 +69,7 @@
 // import { GetDataByName } from '@/api/common'
 import { mapGetters } from 'vuex'
 import Hamburger from '@/components/Hamburger'
+import language from '../../i18n'
 // import Screenfull from '@/components/Screenfull'
 // import Search from '@/components/HeaderSearch'
 // import path from 'path'
@@ -115,17 +114,20 @@ export default {
     // }, 100)
   },
   methods: {
-    // 切换中英文
+    // 获取浏览器当前中英文
     setSwitch() {
-      this.active_text = navigator.language === 'zh' ? '英文' : '中文'
-      this.inactive_text = navigator.language === 'zh' ? '中文' : '英文'
-      this.lang = navigator.language
+      console.log(navigator.language,'navigator.language1')
+      this.lang = navigator.language === 'zh-CN'? 'zh' :'en'
     },
-    // 切换调用
+    // 切换中英文的调用
     translate() {
       this.lang = this.lang === 'zh' ? 'en' : 'zh'
-      console.log(this.lang)
       this.$i18n.locale = this.lang
+      if(this.$i18n.locale == 'zh'){
+        localStorage.setItem('lang','zh-CN')
+      }else{
+        localStorage.setItem('lang','en-US')
+      }
     },
 
     toggleSideBar() {

+ 1 - 1
src/views/formulationPlan/recipeTemplate/index.vue

@@ -380,7 +380,7 @@
             </el-table-column>
             <!-- TODO: -->
             <el-table-column :label="$t('formulationEvaluation.yxyspc')" min-width="80px" align="center">
-
+            </el-table-column>
             <el-table-column label="允许延时偏差(min)" min-width="80px" align="center">
               <template slot-scope="scope">
                 <span v-if="scope.row.NoEdit">{{ scope.row.deviation }}</span>