diff options
| author | 2025-02-15 06:11:47 +0100 | |
|---|---|---|
| committer | 2025-02-15 06:11:47 +0100 | |
| commit | 91d2beb267020fa632cace5b0b475a9febfa0439 (patch) | |
| tree | 9e0a08dbf2fdfe807d155be1dc11e2bcdfcca6bc /data.c | |
| parent | Optimized lang_str(). (diff) | |
| download | snac2-91d2beb267020fa632cace5b0b475a9febfa0439.tar.gz snac2-91d2beb267020fa632cace5b0b475a9febfa0439.tar.xz snac2-91d2beb267020fa632cace5b0b475a9febfa0439.zip | |
srv_open() now loads all .po files into srv_langs.
Diffstat (limited to 'data.c')
| -rw-r--r-- | data.c | 22 |
1 files changed, 22 insertions, 0 deletions
| @@ -149,6 +149,28 @@ int srv_open(const char *basedir, int auto_upgrade) | |||
| 149 | mkdirx(expdir); | 149 | mkdirx(expdir); |
| 150 | } | 150 | } |
| 151 | 151 | ||
| 152 | /* languages */ | ||
| 153 | srv_langs = xs_dict_new(); | ||
| 154 | |||
| 155 | xs *l_dir = xs_fmt("%s/lang/", srv_basedir); | ||
| 156 | mkdirx(l_dir); | ||
| 157 | |||
| 158 | l_dir = xs_str_cat(l_dir, "*.po"); | ||
| 159 | xs *pos = xs_glob(l_dir, 0, 0); | ||
| 160 | const char *po; | ||
| 161 | |||
| 162 | xs_list_foreach(pos, po) { | ||
| 163 | xs *d = xs_po_to_dict(po); | ||
| 164 | |||
| 165 | if (xs_is_dict(d)) { | ||
| 166 | xs *l = xs_split(po, "/"); | ||
| 167 | xs *id = xs_dup(xs_list_get(l, -1)); | ||
| 168 | id = xs_replace_i(id, ".po", ""); | ||
| 169 | |||
| 170 | srv_langs = xs_dict_set(srv_langs, id, d); | ||
| 171 | } | ||
| 172 | } | ||
| 173 | |||
| 152 | return ret; | 174 | return ret; |
| 153 | } | 175 | } |
| 154 | 176 | ||