From 20f64b54d55603a63bbae959dbf3112de8a96c5f Mon Sep 17 00:00:00 2001
From: LiuHao <liuhaoai545@gmail>
Date: 星期三, 19 四月 2023 11:05:30 +0800
Subject: [PATCH] fix 修改国际化文件名称不规范问题,增加reqeust 国际化配置

---
 src/lang/index.ts                   |   14 +++---
 src/store/modules/app.ts            |   16 +++++---
 src/lang/zh_CN.ts                   |    0 
 src/utils/request.ts                |    6 ++-
 src/components/LangSelect/index.vue |   17 ++++----
 src/lang/en_US.ts                   |    0 
 src/utils/i18n.ts                   |    8 +++-
 7 files changed, 36 insertions(+), 25 deletions(-)

diff --git a/src/components/LangSelect/index.vue b/src/components/LangSelect/index.vue
index 298e5dd..a30a2f6 100644
--- a/src/components/LangSelect/index.vue
+++ b/src/components/LangSelect/index.vue
@@ -5,8 +5,8 @@
     </div>
     <template #dropdown>
       <el-dropdown-menu>
-        <el-dropdown-item :disabled="appStore.language === 'zh-cn'" command="zh-cn"> 涓枃 </el-dropdown-item>
-        <el-dropdown-item :disabled="appStore.language === 'en'" command="en"> English </el-dropdown-item>
+        <el-dropdown-item :disabled="appStore.language === 'zh_CN'" command="zh_CN"> 涓枃 </el-dropdown-item>
+        <el-dropdown-item :disabled="appStore.language === 'en_US'" command="en_US"> English </el-dropdown-item>
       </el-dropdown-menu>
     </template>
   </el-dropdown>
@@ -20,14 +20,15 @@
 const appStore = useAppStore();
 const { locale } = useI18n();
 
-function handleLanguageChange(lang: string) {
+
+const message: any = {
+  zh_CN: '鍒囨崲璇█鎴愬姛锛�',
+  en_US: 'Switch Language Successful!',
+}
+const handleLanguageChange = (lang: string) => {
   locale.value = lang;
   appStore.changeLanguage(lang);
-  if (lang == 'en') {
-    ElMessage.success('Switch Language Successful!');
-  } else {
-    ElMessage.success('鍒囨崲璇█鎴愬姛锛�');
-  }
+  ElMessage.success(message[lang] || '鍒囨崲璇█鎴愬姛锛�');
 }
 </script>
 
diff --git a/src/lang/en.ts b/src/lang/en_US.ts
similarity index 100%
rename from src/lang/en.ts
rename to src/lang/en_US.ts
diff --git a/src/lang/index.ts b/src/lang/index.ts
index 8fdf19e..f8c0801 100644
--- a/src/lang/index.ts
+++ b/src/lang/index.ts
@@ -2,16 +2,16 @@
 import { createI18n } from 'vue-i18n';
 
 // 鏈湴璇█鍖�
-import enLocale from './en';
-import zhCnLocale from './zh-cn';
+import enUSLocale from './en_US';
+import zhCNLocale from './zh_CN';
 import Cookies from 'js-cookie';
 
 const messages = {
-  'zh-cn': {
-    ...zhCnLocale
+  zh_CN: {
+    ...zhCNLocale
   },
-  en: {
-    ...enLocale
+  en_US: {
+    ...enUSLocale
   }
 };
 
@@ -33,7 +33,7 @@
       return locale;
     }
   }
-  return 'zh-cn';
+  return 'zh_CN';
 };
 
 const i18n = createI18n({
diff --git a/src/lang/zh-cn.ts b/src/lang/zh_CN.ts
similarity index 100%
rename from src/lang/zh-cn.ts
rename to src/lang/zh_CN.ts
diff --git a/src/store/modules/app.ts b/src/store/modules/app.ts
index 1fb8337..90a4d0e 100644
--- a/src/store/modules/app.ts
+++ b/src/store/modules/app.ts
@@ -1,6 +1,6 @@
 import Cookies from 'js-cookie';
-import zhCn from 'element-plus/es/locale/lang/zh-cn';
-import en from 'element-plus/es/locale/lang/en';
+import zhCN from 'element-plus/es/locale/lang/zh-cn';
+import enUS from 'element-plus/es/locale/lang/en';
 
 export const useAppStore = defineStore('app', () => {
   const sidebarStatus = Cookies.get('sidebarStatus');
@@ -11,14 +11,18 @@
   });
   const device = ref<string>('desktop');
   const size = ref(Cookies.get('size') || 'default');
+
   // 璇█
   const language = ref(Cookies.get('language'));
+  const languageObj: any = {
+    en_US: enUS,
+    zh_CN: zhCN
+  };
   const locale = computed(() => {
-    if (language.value == 'en') {
-      return en;
-    } else {
-      return zhCn;
+    if (!language.value) {
+      return zhCN;
     }
+    return languageObj[language.value];
   });
 
   const toggleSideBar = (withoutAnimation?: boolean) => {
diff --git a/src/utils/i18n.ts b/src/utils/i18n.ts
index 481010a..ab77af0 100644
--- a/src/utils/i18n.ts
+++ b/src/utils/i18n.ts
@@ -1,8 +1,12 @@
 // translate router.meta.title, be used in breadcrumb sidebar tagsview
 import i18n from '@/lang/index';
 
-export const translateRouteTitleI18n = (title: string): string => {
-  // 鍒ゆ柇鏄惁瀛樺湪鍥介檯鍖栭厤缃紝濡傛灉娌℃湁鍘熺敓杩斿洖
+/**
+ * 鑾峰彇鍥介檯鍖栬矾鐢憋紝濡傛灉涓嶅瓨鍦ㄥ垯鍘熺敓杩斿洖
+ * @param title 璺敱鍚嶇О
+ * @returns {string}
+ */
+export const translateRouteTitle = (title: string): string => {
   const hasKey = i18n.global.te('route.' + title);
   if (hasKey) {
     const translatedTitle = i18n.global.t('route.' + title);
diff --git a/src/utils/request.ts b/src/utils/request.ts
index af73926..d5fac4e 100644
--- a/src/utils/request.ts
+++ b/src/utils/request.ts
@@ -7,14 +7,13 @@
 import { errorCode } from '@/utils/errorCode';
 import { LoadingInstance } from 'element-plus/es/components/loading/src/loading';
 import FileSaver from 'file-saver';
+import { getLanguage } from '@/lang';
 
 let downloadLoadingInstance: LoadingInstance;
 // 鏄惁鏄剧ず閲嶆柊鐧诲綍
 export const isRelogin = { show: false };
 
 axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8';
-// 瀵瑰簲鍥介檯鍖栬祫婧愭枃浠跺悗缂�
-axios.defaults.headers['Content-Language'] = 'zh_CN';
 // 鍒涘缓 axios 瀹炰緥
 const service = axios.create({
   baseURL: import.meta.env.VITE_APP_BASE_API,
@@ -24,6 +23,9 @@
 // 璇锋眰鎷︽埅鍣�
 service.interceptors.request.use(
   (config: InternalAxiosRequestConfig) => {
+    // 瀵瑰簲鍥介檯鍖栬祫婧愭枃浠跺悗缂�
+    config.headers['Content-Language'] = getLanguage();
+
     const isToken = (config.headers || {}).isToken === false;
     // 鏄惁闇�瑕侀槻姝㈡暟鎹噸澶嶆彁浜�
     const isRepeatSubmit = (config.headers || {}).repeatSubmit === false;

--
Gitblit v1.9.3