Files
corner/résumé/_data.ts
Romain Paquet 47473a53b5
All checks were successful
buildbot/nix-eval Build done.
buildbot/nix-build Build done.
buildbot/nix-effects Build done.
typo: rename 'resumé' to 'résumé'
2025-11-04 20:21:00 +01:00

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