corner/resumé/localize.typ

22 lines
No EOL
471 B
Typst

#let is-translation-dict(d) = d.keys().first().len() == 2
#let localize(lang, s) = {
let localize-dict(s) = {
if is-translation-dict(s) {
localize(lang, s.at(lang))
} else {
let t = (:)
for (k, v) in s {
t.insert(k, localize(lang, v))
}
t
}
}
let localize-array(s) = s.map(localize.with(lang))
if type(s) == array { localize-array(s) }
else if type(s) == dictionary { localize-dict(s) }
else { s }
}