app/src/router/routes.tstypescript
import type { RouteRecordRaw } from "vue-router";
import unlocalizedRoutes from "./unlocalized-routes.mjs";
interface RouteConfig {
path: string;
name?: string;
alias?: string | string[];
component?: unknown;
meta?: Record<string, unknown>;
children?: RouteConfig[];
}
export default [
...unlocalizedRoutes.map((route: RouteConfig) => {
const mappedRoute: RouteConfig = {
...route,
path: `/${route.path}`,
name: `${route.name}unLocalized`,
};
// Handle alias - ensure it's an array and prepend /
if (route.alias) {
const aliases = Array.isArray(route.alias) ? route.alias : [route.alias];
mappedRoute.alias = aliases.map((a: string) => `/${a}`);
}
return mappedRoute;
}),
{
path: "/:locale?",
component: {
template: "<router-view></router-view>",
},
children: unlocalizedRoutes,
meta: { sitemap: { slugs: ["en", "de"] } },
},
] as RouteRecordRaw[];