From aa8005a982231575b3e910f1724615603b62f165 Mon Sep 17 00:00:00 2001 From: hb0730 <1278032416@qq.com> Date: Mon, 15 Nov 2021 16:45:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(i18n):=20=E8=8F=9C=E5=8D=95=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E6=94=AF=E6=8C=81i18n=20(#109)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(i18n): 菜单动态支持i18n --- mock/asyncRoutes.ts | 6 ++++++ src/layout/components/navbar.vue | 9 ++++++-- src/layout/components/sidebar/breadCrumb.vue | 10 ++++++--- src/layout/components/sidebar/sidebarItem.vue | 21 +++++++++++++------ src/layout/types.ts | 1 + src/router/index.ts | 10 ++++++--- src/router/modules/components.ts | 13 +++++++++++- src/router/modules/editor.ts | 2 ++ src/router/modules/error.ts | 3 +++ src/router/modules/externalLink.ts | 2 ++ src/router/modules/flowchart.ts | 2 ++ src/router/modules/home.ts | 2 ++ src/router/modules/nested.ts | 8 +++++++ src/router/modules/remaining.ts | 2 ++ src/utils/i18n.ts | 18 ++++++++++++++++ 15 files changed, 94 insertions(+), 15 deletions(-) create mode 100644 src/utils/i18n.ts diff --git a/mock/asyncRoutes.ts b/mock/asyncRoutes.ts index 977cbcdf7..36a6cbcca 100644 --- a/mock/asyncRoutes.ts +++ b/mock/asyncRoutes.ts @@ -9,6 +9,7 @@ const systemRouter = { meta: { icon: "Setting", title: "message.hssysManagement", + i18n: true, showLink: true, rank: 6 }, @@ -18,6 +19,7 @@ const systemRouter = { name: "user", meta: { title: "message.hsBaseinfo", + i18n: true, showLink: true } }, @@ -26,6 +28,7 @@ const systemRouter = { name: "dict", meta: { title: "message.hsDict", + i18n: true, showLink: true } } @@ -39,6 +42,7 @@ const permissionRouter = { meta: { title: "message.permission", icon: "Lollipop", + i18n: true, showLink: true, rank: 3 }, @@ -48,6 +52,7 @@ const permissionRouter = { name: "permissionPage", meta: { title: "message.permissionPage", + i18n: true, showLink: true } }, @@ -56,6 +61,7 @@ const permissionRouter = { name: "permissionButton", meta: { title: "message.permissionButton", + i18n: true, showLink: true, authority: [] } diff --git a/src/layout/components/navbar.vue b/src/layout/components/navbar.vue index ee1e12ef7..badaaf0b5 100644 --- a/src/layout/components/navbar.vue +++ b/src/layout/components/navbar.vue @@ -10,6 +10,7 @@ import { unref, watch, getCurrentInstance } from "vue"; import { deviceDetection } from "/@/utils/deviceDetection"; import screenfull from "../components/screenfull/index.vue"; import globalization from "/@/assets/svg/globalization.svg"; +import { getMessage } from "/@/utils/i18n"; const instance = getCurrentInstance().appContext.config.globalProperties.$storage; @@ -17,13 +18,17 @@ const pureApp = useAppStoreHook(); const router = useRouter(); const route = useRoute(); let usename = storageSession.getItem("info")?.username; -const { locale, t } = useI18n(); +const { locale } = useI18n(); watch( () => locale.value, () => { //@ts-ignore - document.title = t(unref(route.meta.title)); // 动态title + document.title = getMessage( + //@ts-ignore + unref(route.meta.title), + unref(route.meta.i18n) + ); // 动态title } ); diff --git a/src/layout/components/sidebar/breadCrumb.vue b/src/layout/components/sidebar/breadCrumb.vue index dbcd6861b..6d3df2e78 100644 --- a/src/layout/components/sidebar/breadCrumb.vue +++ b/src/layout/components/sidebar/breadCrumb.vue @@ -1,6 +1,7 @@