Files
vmall/apps/admin/i18n.config.ts
T

25 lines
710 B
TypeScript

import { en as enBase, zh as zhBase } from "@vmall/shared/locales";
import { enExtra, zhExtra } from "./locales-extra";
function deepMerge<T extends Record<string, unknown>>(base: T, extra: T): T {
const out: Record<string, unknown> = { ...base };
for (const [k, v] of Object.entries(extra)) {
const b = out[k];
out[k] =
b && v && typeof b === "object" && typeof v === "object"
? deepMerge(b as Record<string, unknown>, v as Record<string, unknown>)
: v;
}
return out as T;
}
export default defineI18nConfig(() => ({
legacy: false,
locale: "en",
fallbackLocale: "en",
messages: {
en: deepMerge(enBase, enExtra),
zh: deepMerge(zhBase, zhExtra),
},
}));