소스 검색

feat: add switch lang

double 5 년 전
부모
커밋
e08c3b91a3
2개의 변경된 파일44개의 추가작업 그리고 0개의 파일을 삭제
  1. 41 0
      src/components/LangSelect/index.vue
  2. 3 0
      src/layout/components/Navbar.vue

+ 41 - 0
src/components/LangSelect/index.vue

@@ -0,0 +1,41 @@
+<template>
+  <el-dropdown trigger="click" class="international" @command="handleSetLanguage">
+    <div>
+      <svg-icon class-name="international-icon" icon-class="language" />
+    </div>
+    <el-dropdown-menu slot="dropdown">
+      <el-dropdown-item :disabled="language==='zh'" command="zh">
+        中文
+      </el-dropdown-item>
+      <el-dropdown-item :disabled="language==='en'" command="en">
+        English
+      </el-dropdown-item>
+      <el-dropdown-item :disabled="language==='es'" command="es">
+        Español
+      </el-dropdown-item>
+      <el-dropdown-item :disabled="language==='ja'" command="ja">
+        日本語
+      </el-dropdown-item>
+    </el-dropdown-menu>
+  </el-dropdown>
+</template>
+
+<script>
+export default {
+  computed: {
+    language() {
+      return this.$store.getters.language
+    }
+  },
+  methods: {
+    handleSetLanguage(lang) {
+      this.$i18n.locale = lang
+      this.$store.dispatch('app/setLanguage', lang)
+      this.$message({
+        message: 'Switch Language Success',
+        type: 'success'
+      })
+    }
+  }
+}
+</script>

+ 3 - 0
src/layout/components/Navbar.vue

@@ -16,6 +16,7 @@
           <size-select id="size-select" class="right-menu-item hover-effect" />
           <size-select id="size-select" class="right-menu-item hover-effect" />
         </el-tooltip>
         </el-tooltip>
 
 
+        <lang-select class="right-menu-item right-menu-item-onland hover-effect" />
       </template>
       </template>
 
 
       <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
       <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
@@ -46,6 +47,7 @@ import Hamburger from '@/components/Hamburger'
 import ErrorLog from '@/components/ErrorLog'
 import ErrorLog from '@/components/ErrorLog'
 import Screenfull from '@/components/Screenfull'
 import Screenfull from '@/components/Screenfull'
 import SizeSelect from '@/components/SizeSelect'
 import SizeSelect from '@/components/SizeSelect'
+import LangSelect from '@/components/LangSelect'
 import Search from '@/components/HeaderSearch'
 import Search from '@/components/HeaderSearch'
 import { logoutUrl } from '@/utils/auth' // get token from cookie
 import { logoutUrl } from '@/utils/auth' // get token from cookie
 
 
@@ -56,6 +58,7 @@ export default {
     ErrorLog,
     ErrorLog,
     Screenfull,
     Screenfull,
     SizeSelect,
     SizeSelect,
+    LangSelect,
     Search
     Search
   },
   },
   computed: {
   computed: {