Procházet zdrojové kódy

feat:语言切换

liming před 4 týdny
rodič
revize
f9a5c59c4d

+ 2 - 1
src/i18n/enUs/router.js

@@ -1,3 +1,4 @@
 export default {
-  Login: "登录"
+  Login: "登录",
+  LanguageSettings:"LanguageSettings",
 }

+ 4 - 5
src/i18n/vant.js

@@ -1,3 +1,4 @@
+import { Locale } from 'vant';
 import { lang } from "@/settings/designSetting";
 import { useLangStore } from "@/stores/modules/langStore";
 
@@ -9,16 +10,14 @@ const langStore = useLangStore();
 import enUS from 'vant/es/locale/lang/en-US';
 import zhHK from 'vant/es/locale/lang/zh-HK';
 
-const i18nUi = new map([
+const i18nUi = new Map([
   ["zh-HK", zhHK],
   ["en-US", enUS]
 ]); 
 
 
-
-
 // 切换端语言包
 export const useLang = (e) => {
-  const lang = e || langStore?.lang || lang
-  Locale.use(lang, i18nUi.get(lang));
+  const setLang = e || langStore?.lang || lang 
+  Locale.use(setLang, i18nUi.get(setLang));
 }

+ 3 - 0
src/i18n/zhHk/router.js

@@ -21,4 +21,7 @@ export default {
   BackupMnemonic: "備份助記詞",
   AboutUs: "關於我們",
   SystemSettings: "系統設置",
+
+  LanguageSettings:"語言設置",
+  
 };

+ 8 - 4
src/i18n/zhHk/settings.js

@@ -3,8 +3,12 @@ export default {
   OfficialWebsite: "官方網站",
   VersionUpdate: "版本更新",
 
+  Language: "語言",
+  MonetaryUnit: "貨幣單位",
+  NodeSettings: "節點設置",  
 
-Language: "語言",
-MonetaryUnit: "貨幣單位",
-NodeSettings: "節點設置"
-}
+  TraditionalChinese: "繁體中文",
+
+
+
+};

+ 6 - 0
src/router/system.js

@@ -105,6 +105,12 @@ export const systemRoutes = [
         meta: { title: "router.SystemSettings", keepAlive: false, navbar: true, leftArrow: true }, //  系統設置
         component: () => import("@/views/settings/systemSettings/index.vue"),
       },
+      {
+        path: "languageSettings",
+        name: "languageSettings",
+        meta: { title: "router.LanguageSettings", keepAlive: false, navbar: true, leftArrow: true }, //  系統設置
+        component: () => import("@/views/settings/languageSettings/index.vue"),
+      },
     ],
   },
 ]

+ 33 - 0
src/views/settings/languageSettings/index.vue

@@ -0,0 +1,33 @@
+<template>
+  <van-radio-group v-model="langStore.lang" @change="handleChange" class="radio-group">
+    <van-cell-group inset>
+      <van-cell  v-for="(item, index) in langList" :key="index" :title="item.label" clickable  @click="langStore.lang = item.key" >
+        <template #right-icon>
+          <van-radio :name="item.key" />
+        </template>
+      </van-cell>
+    </van-cell-group>
+  </van-radio-group>
+</template>
+
+<script setup> 
+import { langList } from "@/i18n/index.js" 
+import { useLang } from "@/i18n/vant.js"
+import { useLangStore } from "@/stores/modules/langStore"
+
+const langStore = useLangStore() 
+const router = useRouter()
+
+const handleChange =  async (value) =>{
+  await langStore.changeLang(value)
+  useLang(value)
+  router.go(0)
+}
+
+</script>
+
+<style lang="less" scoped>
+.radio-group{
+  margin-top: 17px;
+}
+</style>

+ 7 - 5
src/views/settings/systemSettings/index.vue

@@ -11,19 +11,21 @@
         @click="evGoPath(item.url)"
       />
     </van-list>
+ 
   </div>
 </template>
 
 <script setup> 
 
+const router = useRouter() 
 const vanListConfig = [
-  { title: $t('settings.ServiceAndPrivacyPolicy'), icon:"ingot",  url: 'agreement' },
-  { title: $t('settings.OfficialWebsite'),   txt:"https://wallet.angeltokens.io" },
-  { title: $t('settings.VersionUpdate'),   url: 'nodeDividend' },
+  { title: $t('settings.Language'), icon:"ingot",  url: 'languageSettings', txt: $t("settings.TraditionalChinese")  },
+  // { title: $t('settings.MonetaryUnit'),   txt:"USD" },
+  { title: $t('settings.NodeSettings'),   url: 'nodeDividend',  },
 ]
 
-const evGoPath = (url) => {
- 
+const evGoPath = (url) => { 
+  router.push(url)
 }
 </script>