فهرست منبع

update 升级@intlify/unplugin-vue-i18n版本依赖
update i18n使用方法。
add 新增i18n vite插件。

LiuHao 1 سال پیش
والد
کامیت
024783588e
7فایلهای تغییر یافته به همراه65 افزوده شده و 18 حذف شده
  1. 4 4
      package.json
  2. 1 2
      src/App.vue
  3. 25 0
      src/lang/en_US.json
  4. 2 12
      src/lang/index.ts
  5. 25 0
      src/lang/zh_CN.json
  6. 6 0
      vite/plugins/i18n.ts
  7. 2 0
      vite/plugins/index.ts

+ 4 - 4
package.json

@@ -45,8 +45,8 @@
     "vue-types": "5.1.1"
   },
   "devDependencies": {
-    "@iconify/json": "2.2.157",
-    "@intlify/unplugin-vue-i18n": "1.6.0",
+    "@iconify/json": "2.2.167",
+    "@intlify/unplugin-vue-i18n": "2.0.0",
     "@types/crypto-js": "4.2.0",
     "@types/file-saver": "2.0.5",
     "@types/js-cookie": "3.0.5",
@@ -82,9 +82,9 @@
     "unplugin-vue-setup-extend-plus": "1.0.0",
     "vite-plugin-compression": "0.5.1",
     "vite-plugin-svg-icons": "2.0.1",
-    "vitest": "0.29.7",
+    "vitest": "1.1.3",
     "vue-eslint-parser": "9.3.2",
-    "vue-tsc": "0.35.0",
+    "vue-tsc": "1.8.27",
     "vite": "5.0.10"
   }
 }

+ 1 - 2
src/App.vue

@@ -1,5 +1,5 @@
 <template>
-  <el-config-provider :locale="appStore.locale" :size="size">
+  <el-config-provider :locale="appStore.locale" :size="appStore.size">
     <router-view />
   </el-config-provider>
 </template>
@@ -10,7 +10,6 @@ import { handleThemeStyle } from '@/utils/theme';
 import useAppStore from '@/store/modules/app';
 
 const appStore = useAppStore();
-const size = computed(() => appStore.size);
 
 onMounted(() => {
   nextTick(() => {

+ 25 - 0
src/lang/en_US.json

@@ -0,0 +1,25 @@
+{
+  "route": {
+    "dashboard": "Dashboard",
+    "document": "Document"
+  },
+  "login": {
+    "username": "Username",
+    "password": "Password",
+    "login": "Login",
+    "code": "Verification Code",
+    "copyright": ""
+  },
+  "navbar": {
+    "full": "Full Screen",
+    "language": "Language",
+    "dashboard": "Dashboard",
+    "document": "Document",
+    "message": "Message",
+    "layoutSize": "Layout Size",
+    "selectTenant": "Select Tenant",
+    "layoutSetting": "Layout Setting",
+    "personalCenter": "Personal Center",
+    "logout": "Logout"
+  }
+}

+ 2 - 12
src/lang/index.ts

@@ -1,19 +1,8 @@
 // 自定义国际化配置
 import { createI18n } from 'vue-i18n';
 
-// 本地语言包
-import enUSLocale from './en_US';
-import zhCNLocale from './zh_CN';
 import { LanguageEnum } from '@/enums/LanguageEnum';
-
-const messages = {
-  zh_CN: {
-    ...zhCNLocale
-  },
-  en_US: {
-    ...enUSLocale
-  }
-};
+import messages from '@intlify/unplugin-vue-i18n/messages';
 
 /**
  * 获取当前语言
@@ -28,6 +17,7 @@ export const getLanguage = (): LanguageEnum => {
 };
 
 const i18n = createI18n({
+  globalInjection: true,
   legacy: false,
   locale: getLanguage(),
   messages

+ 25 - 0
src/lang/zh_CN.json

@@ -0,0 +1,25 @@
+{
+  "route": {
+    "dashboard": "首页",
+    "document": "项目文档"
+  },
+  "login": {
+    "username": "用户名",
+    "password": "密码",
+    "login": "登 录",
+    "code": "请输入验证码",
+    "copyright": ""
+  },
+  "navbar": {
+    "full": "全屏",
+    "language": "语言",
+    "dashboard": "首页",
+    "document": "项目文档",
+    "message": "消息",
+    "layoutSize": "布局大小",
+    "selectTenant": "选择租户",
+    "layoutSetting": "布局设置",
+    "personalCenter": "个人中心",
+    "logout": "退出登录"
+  }
+}

+ 6 - 0
vite/plugins/i18n.ts

@@ -0,0 +1,6 @@
+import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite';
+export default (path: any) => {
+  return VueI18nPlugin({
+    include: [path.resolve(__dirname, '../../src/lang/**.json')]
+  });
+};

+ 2 - 0
vite/plugins/index.ts

@@ -6,6 +6,7 @@ import createIcons from './icons';
 import createSvgIconsPlugin from './svg-icon';
 import createCompression from './compression';
 import createSetupExtend from './setup-extend';
+import createI18n from './i18n';
 import path from 'path';
 
 export default (viteEnv: any, isBuild = false): [] => {
@@ -18,5 +19,6 @@ export default (viteEnv: any, isBuild = false): [] => {
   vitePlugins.push(createIcons());
   vitePlugins.push(createSvgIconsPlugin(path, isBuild));
   vitePlugins.push(createSetupExtend());
+  vitePlugins.push(createI18n(path));
   return vitePlugins;
 };