aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordefault <nobody@localhost>2025-02-15 06:11:47 +0100
committerdefault <nobody@localhost>2025-02-15 06:11:47 +0100
commit91d2beb267020fa632cace5b0b475a9febfa0439 (patch)
tree9e0a08dbf2fdfe807d155be1dc11e2bcdfcca6bc
parentf0f93b84bec5373f9c6567b7b415ea77ca0bd064 (diff)
srv_open() now loads all .po files into srv_langs.
-rw-r--r--data.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/data.c b/data.c
index 4308aa5..e0b4936 100644
--- a/data.c
+++ b/data.c
@@ -149,6 +149,28 @@ int srv_open(const char *basedir, int auto_upgrade)
mkdirx(expdir);
}
+ /* languages */
+ srv_langs = xs_dict_new();
+
+ xs *l_dir = xs_fmt("%s/lang/", srv_basedir);
+ mkdirx(l_dir);
+
+ l_dir = xs_str_cat(l_dir, "*.po");
+ xs *pos = xs_glob(l_dir, 0, 0);
+ const char *po;
+
+ xs_list_foreach(pos, po) {
+ xs *d = xs_po_to_dict(po);
+
+ if (xs_is_dict(d)) {
+ xs *l = xs_split(po, "/");
+ xs *id = xs_dup(xs_list_get(l, -1));
+ id = xs_replace_i(id, ".po", "");
+
+ srv_langs = xs_dict_set(srv_langs, id, d);
+ }
+ }
+
return ret;
}