commit 91d2beb

default  ·  2025-02-15 05:11:47 +0000 UTC
parent f0f93b8
srv_open() now loads all .po files into srv_langs.
1 files changed,  +22, -0
M data.c
M data.c
+22, -0
 1@@ -149,6 +149,28 @@ int srv_open(const char *basedir, int auto_upgrade)
 2         mkdirx(expdir);
 3     }
 4 
 5+    /* languages */
 6+    srv_langs = xs_dict_new();
 7+
 8+    xs *l_dir = xs_fmt("%s/lang/", srv_basedir);
 9+    mkdirx(l_dir);
10+
11+    l_dir = xs_str_cat(l_dir, "*.po");
12+    xs *pos = xs_glob(l_dir, 0, 0);
13+    const char *po;
14+
15+    xs_list_foreach(pos, po) {
16+        xs *d = xs_po_to_dict(po);
17+
18+        if (xs_is_dict(d)) {
19+            xs *l = xs_split(po, "/");
20+            xs *id = xs_dup(xs_list_get(l, -1));
21+            id = xs_replace_i(id, ".po", "");
22+
23+            srv_langs = xs_dict_set(srv_langs, id, d);
24+        }
25+    }
26+
27     return ret;
28 }
29