diff options
| author | default <nobody@localhost> | 2025-02-14 09:54:58 +0100 |
|---|---|---|
| committer | default <nobody@localhost> | 2025-02-14 09:54:58 +0100 |
| commit | 9a56475f4c1566925536bdf8bbd7a36c1d0c39f8 (patch) | |
| tree | 962f81e183980cade311efe6c256e7475c23015b /data.c | |
| parent | c523216bf3fbee74897f15b4526e0ea5bef22c90 (diff) | |
New function lang_str().
Diffstat (limited to 'data.c')
| -rw-r--r-- | data.c | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -4064,3 +4064,28 @@ void badlogin_inc(const char *user, const char *addr) pthread_mutex_unlock(&data_mutex); } } + + +/** language strings **/ + +const char *lang_str(const char *str, const snac *user) +/* returns a translated string */ +{ + if (user && xs_is_string(str) && xs_is_dict(srv_langs)) { + /* get user preference */ + const char *lang = xs_dict_get(user->config, "lang"); + + if (xs_is_string(lang)) { + const xs_dict *strs = xs_dict_get(srv_langs, lang); + + if (xs_is_dict(strs)) { + const char *n_str = xs_dict_get(strs, str); + + if (xs_is_string(n_str)) + str = n_str; + } + } + } + + return str; +} |