Files
corner/resumé/_data.ts

29 lines
727 B
TypeScript

function is_translation_dict(d: object): boolean {
return Object.keys(d)[0].length == 2;
}
function localize_dict(s: object, lang: string) {
if (is_translation_dict(s)) {
return localize(lang, s[lang]);
} else {
let t = Object();
for (const [k, v] of Object.entries(s)) {
t[k] = localize(lang, v);
}
return t;
}
}
let localize_array = (s: any[], lang: string) =>
s.map((e) => localize(lang, e));
function localize(lang: string, s: object): object {
if (Array.isArray(s)) return localize_array(s, lang);
else if (typeof s === "object") return localize_dict(s, lang);
else return s;
}
export function translated(data: object, lang: string): object {
return localize(lang, data);
}