diff options
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 | ||