Files
EpicNext-Cms/src/i18n/merge-messages.ts
T
Simo b12e405b34
CI / check (push) Successful in 1m41s
CI / deploy (push) Successful in 1m37s
CI / e2e (push) Successful in 22s
fix(i18n): complete command center texts and merge client fallbacks
2026-09-05 20:24:41 +02:00

18 lines
527 B
TypeScript

export type MessageTree = { [key: string]: string | MessageTree };
/** Fill missing translations before sending messages to server and client consumers. */
export function mergeMessages(
fallback: MessageTree,
localized: MessageTree,
): MessageTree {
const result: MessageTree = { ...fallback };
for (const [key, value] of Object.entries(localized)) {
const base = fallback[key];
result[key] =
typeof value === "object" && typeof base === "object"
? mergeMessages(base, value)
: value;
}
return result;
}