diff --git a/packages/core/client/src/route-switch/antd/admin-layout/index.tsx b/packages/core/client/src/route-switch/antd/admin-layout/index.tsx index 354db02fe3..ddbf8a266f 100644 --- a/packages/core/client/src/route-switch/antd/admin-layout/index.tsx +++ b/packages/core/client/src/route-switch/antd/admin-layout/index.tsx @@ -42,15 +42,15 @@ import { IsSubPageClosedByPageMenuProvider, useCurrentPageUid, useLocationNoUpdate, - useNavigateNoUpdate, } from '../../../application/CustomRouterContextProvider'; import { Plugin } from '../../../application/Plugin'; +import { withTooltipComponent } from '../../../hoc/withTooltipComponent'; import { menuItemInitializer } from '../../../modules/menu/menuItemInitializer'; +import { useMenuTranslation } from '../../../schema-component/antd/menu/locale'; import { KeepAlive } from './KeepAlive'; import { NocoBaseDesktopRoute, NocoBaseDesktopRouteType } from './convertRoutesToSchema'; import { MenuSchemaToolbar, ResetThemeTokenAndKeepAlgorithm } from './menuItemSettings'; import { userCenterSettings } from './userCenterSettings'; -import { withTooltipComponent } from '../../../hoc/withTooltipComponent'; export { KeepAlive, NocoBaseDesktopRouteType }; @@ -504,12 +504,13 @@ export const InternalAdminLayout = () => { const [isMobile, setIsMobile] = useState(false); const [collapsed, setCollapsed] = useState(false); const doNotChangeCollapsedRef = useRef(false); + const { t } = useMenuTranslation(); const route = useMemo(() => { return { path: '/', - children: convertRoutesToLayout(allAccessRoutes, { designable, isMobile }), + children: convertRoutesToLayout(allAccessRoutes, { designable, isMobile, t }), }; - }, [allAccessRoutes, designable, isMobile]); + }, [allAccessRoutes, designable, isMobile, t]); const layoutToken = useMemo(() => { return { header: { @@ -755,7 +756,10 @@ const MenuDesignerButton: FC<{ testId: string }> = (props) => { }); }; -function convertRoutesToLayout(routes: NocoBaseDesktopRoute[], { designable, parentRoute, isMobile, depth = 0 }: any) { +function convertRoutesToLayout( + routes: NocoBaseDesktopRoute[], + { designable, parentRoute, isMobile, t, depth = 0 }: any, +) { if (!routes) return; const getInitializerButton = (testId: string) => { @@ -773,7 +777,7 @@ function convertRoutesToLayout(routes: NocoBaseDesktopRoute[], { designable, par const result: any[] = routes.map((item) => { if (item.type === NocoBaseDesktopRouteType.link) { return { - name: item.title, + name: t(item.title), icon: item.icon ? : null, path: '/', hideInMenu: item.hideInMenu, @@ -784,7 +788,7 @@ function convertRoutesToLayout(routes: NocoBaseDesktopRoute[], { designable, par if (item.type === NocoBaseDesktopRouteType.page) { return { - name: item.title, + name: t(item.title), icon: item.icon ? : null, path: `/admin/${item.schemaUid}`, redirect: `/admin/${item.schemaUid}`, @@ -795,7 +799,8 @@ function convertRoutesToLayout(routes: NocoBaseDesktopRoute[], { designable, par } if (item.type === NocoBaseDesktopRouteType.group) { - const children = convertRoutesToLayout(item.children, { designable, parentRoute: item, depth: depth + 1 }) || []; + const children = + convertRoutesToLayout(item.children, { designable, parentRoute: item, depth: depth + 1, t }) || []; // add a designer button if (designable && depth === 0) { @@ -803,7 +808,7 @@ function convertRoutesToLayout(routes: NocoBaseDesktopRoute[], { designable, par } return { - name: item.title, + name: t(item.title), icon: item.icon ? : null, path: `/admin/${item.id}`, redirect: diff --git a/packages/core/client/src/schema-component/antd/menu/index.ts b/packages/core/client/src/schema-component/antd/menu/index.ts index 9e85b084fb..3809dfaf60 100644 --- a/packages/core/client/src/schema-component/antd/menu/index.ts +++ b/packages/core/client/src/schema-component/antd/menu/index.ts @@ -9,3 +9,4 @@ export * from './MenuItemInitializers'; export * from './util'; +export { useMenuTranslation } from './locale'; diff --git a/packages/plugins/@nocobase/plugin-client/src/client/routesTableSchema.tsx b/packages/plugins/@nocobase/plugin-client/src/client/routesTableSchema.tsx index e8e1e7cebd..05e7bc6de9 100644 --- a/packages/plugins/@nocobase/plugin-client/src/client/routesTableSchema.tsx +++ b/packages/plugins/@nocobase/plugin-client/src/client/routesTableSchema.tsx @@ -25,6 +25,7 @@ import { useDataBlockRequestData, useDataBlockRequestGetter, useInsertPageSchema, + useMenuTranslation, useNocoBaseRoutes, useRequest, useRouterBasename, @@ -492,14 +493,14 @@ export const createRoutesTableSchema = (collectionName: string, basename: string type: 'string', 'x-component': function Com(props) { const record = useCollectionRecordData(); - const { t } = useTranslation(); + const { t } = useMenuTranslation(); let value = props.value; if (record.type === NocoBaseDesktopRouteType.tabs && _.isNil(props.value)) { value = t('Unnamed'); } - return ; + return ; }, 'x-read-pretty': true, 'x-component-props': {