Sebastian Walz 860d31cee1
Tohu vaBohu
2023-04-21 00:22:52 +02:00

38 lines
1.3 KiB
Nix

{ core, ... } @ env:
let
inherit(core) error library list string type;
english = library.import ./english.nix env {};
german = library.import ./german.nix env english;
in
{
inherit english german;
translate
= locale:
let
parts = string.match "([a-z]+)(_[A-Z]+)?([.][0-9A-Za-z-]+)?(@.+)?" locale;
getPart = list.get parts;
locale'
= if string.isInstanceOf locale
then
if parts != null
then
{
language = getPart 0;
territory = getPart 1;
codeset = getPart 2;
modifier = getPart 3;
}
else
error.panic ""
else
locale;
translate
= {
"de" = german.translate;
"en" = english.translate;
}.${locale'.language}
or ( error.panic "Unknown language »${locale'.language}«" );
in
translate locale';
}