diff options
| author | 2025-02-14 09:54:58 +0100 | |
|---|---|---|
| committer | 2025-02-14 09:54:58 +0100 | |
| commit | 9a56475f4c1566925536bdf8bbd7a36c1d0c39f8 (patch) | |
| tree | 962f81e183980cade311efe6c256e7475c23015b /data.c | |
| parent | More variable renaming. (diff) | |
| download | penes-snac2-9a56475f4c1566925536bdf8bbd7a36c1d0c39f8.tar.gz penes-snac2-9a56475f4c1566925536bdf8bbd7a36c1d0c39f8.tar.xz penes-snac2-9a56475f4c1566925536bdf8bbd7a36c1d0c39f8.zip | |
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) | |||
| 4064 | pthread_mutex_unlock(&data_mutex); | 4064 | pthread_mutex_unlock(&data_mutex); |
| 4065 | } | 4065 | } |
| 4066 | } | 4066 | } |
| 4067 | |||
| 4068 | |||
| 4069 | /** language strings **/ | ||
| 4070 | |||
| 4071 | const char *lang_str(const char *str, const snac *user) | ||
| 4072 | /* returns a translated string */ | ||
| 4073 | { | ||
| 4074 | if (user && xs_is_string(str) && xs_is_dict(srv_langs)) { | ||
| 4075 | /* get user preference */ | ||
| 4076 | const char *lang = xs_dict_get(user->config, "lang"); | ||
| 4077 | |||
| 4078 | if (xs_is_string(lang)) { | ||
| 4079 | const xs_dict *strs = xs_dict_get(srv_langs, lang); | ||
| 4080 | |||
| 4081 | if (xs_is_dict(strs)) { | ||
| 4082 | const char *n_str = xs_dict_get(strs, str); | ||
| 4083 | |||
| 4084 | if (xs_is_string(n_str)) | ||
| 4085 | str = n_str; | ||
| 4086 | } | ||
| 4087 | } | ||
| 4088 | } | ||
| 4089 | |||
| 4090 | return str; | ||
| 4091 | } | ||