25 lines
710 B
TypeScript
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),
|
|
},
|
|
}));
|