feat(layout): 菜单支持国际化
All checks were successful
CI/CD Pipeline / playwright (push) Successful in 3m42s
CI/CD Pipeline / build-and-deploy (push) Successful in 4m34s

This commit is contained in:
严浩
2025-10-23 18:15:45 +08:00
parent cec32dceb2
commit 93ecda7617
13 changed files with 76 additions and 23 deletions

View File

@@ -2,6 +2,7 @@ import { DataLoaderPlugin } from 'unplugin-vue-router/data-loaders';
import { setupLayouts } from 'virtual:meta-layouts';
// import { createGetRoutes, setupLayouts } from 'virtual:generated-layouts';
import { createRouter, createWebHistory } from 'vue-router';
import type { RouteNamedMap } from 'vue-router/auto-routes';
import { routes, handleHotUpdate } from 'vue-router/auto-routes';
const setupLayoutsResult = setupLayouts(routes);
@@ -63,6 +64,7 @@ declare module 'vue-router' {
export { router, setupLayoutsResult };
export { createGetRoutes } from 'virtual:meta-layouts';
export type RouteLocalizationFlags = Record<keyof RouteNamedMap, string>;
if (__DEV__) Object.assign(globalThis, { router });
// This will update routes at runtime without reloading the page

View File

@@ -11,6 +11,14 @@ export function install({ app }: { app: import('vue').App<Element> }) {
createI18n({
legacy: false, // you must set `false`, to use Composition API
locale: navigator.language,
fallbackRoot: false,
// flatJson: true,
missing: (locale, key /* , instance, type */) => {
consola.warn(`缺少国际化内容: locale='${locale}', key='${key}'`);
return `[${key}]`;
},
missingWarn: !true,
fallbackWarn: !true,
messages,
}),
);