Files
Epicnabbo-Catalogus-Updated…/src/i18n/merge-messages.ts
T

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;
}