feat(projects): 增加i18n支持翻译菜单,tab,title

This commit is contained in:
cc
2023-05-13 12:58:35 +08:00
parent a765da6e28
commit 3d48aa8bbe
19 changed files with 116 additions and 33 deletions

View File

@ -59,7 +59,8 @@ function transformBreadcrumbMenuToBreadcrumb(menu: App.GlobalMenuOption, rootPat
label: menu.label as string,
routeName: menu.routeName,
disabled: menu.routePath === rootPath,
hasChildren
hasChildren,
i18nTitle: menu.i18nTitle
};
if (menu.icon) {
breadcrumb.icon = menu.icon;

View File

@ -1,4 +1,5 @@
import { useIconRender } from '@/composables';
import { t } from '@/locales';
/**
* 将权限路由转换成菜单
@ -18,7 +19,8 @@ export function transformAuthRouteToMenu(routes: AuthRoute.Route[]): App.GlobalM
key: routeName,
label: meta.title,
routeName,
routePath: path
routePath: path,
i18nTitle: meta.i18nTitle
},
icon: meta.icon,
localIcon: meta.localIcon,
@ -33,6 +35,28 @@ export function transformAuthRouteToMenu(routes: AuthRoute.Route[]): App.GlobalM
return globalMenu;
}
/**
* 翻译菜单
* @param menus
* @returns
*/
export function translateMenuLabel(menus: App.GlobalMenuOption[]): App.GlobalMenuOption[] {
const globalMenu: App.GlobalMenuOption[] = [];
menus.forEach(menu => {
let menuChildren: App.GlobalMenuOption[] | undefined;
if (menu.children && menu.children.length > 0) {
menuChildren = translateMenuLabel(menu.children);
}
const menuItem: App.GlobalMenuOption = {
...menu,
children: menuChildren,
label: menu.i18nTitle ? t(menu.i18nTitle) : menu.label
};
globalMenu.push(menuItem);
});
return globalMenu;
}
/**
* 获取当前路由所在菜单数据的paths
* @param activeKey - 当前路由的key