commit 9a56475
default
·
2025-02-14 08:54:58 +0000 UTC
parent c523216
New function lang_str().
M
data.c
+25,
-0
1@@ -4064,3 +4064,28 @@ void badlogin_inc(const char *user, const char *addr)
2 pthread_mutex_unlock(&data_mutex);
3 }
4 }
5+
6+
7+/** language strings **/
8+
9+const char *lang_str(const char *str, const snac *user)
10+/* returns a translated string */
11+{
12+ if (user && xs_is_string(str) && xs_is_dict(srv_langs)) {
13+ /* get user preference */
14+ const char *lang = xs_dict_get(user->config, "lang");
15+
16+ if (xs_is_string(lang)) {
17+ const xs_dict *strs = xs_dict_get(srv_langs, lang);
18+
19+ if (xs_is_dict(strs)) {
20+ const char *n_str = xs_dict_get(strs, str);
21+
22+ if (xs_is_string(n_str))
23+ str = n_str;
24+ }
25+ }
26+ }
27+
28+ return str;
29+}
M
snac.c
+1,
-0
1@@ -34,6 +34,7 @@ xs_str *srv_basedir = NULL;
2 xs_dict *srv_config = NULL;
3 xs_str *srv_baseurl = NULL;
4 xs_str *srv_proxy_token_seed = NULL;
5+xs_dict *srv_langs = NULL;
6
7 int dbglevel = 0;
8
M
snac.h
+3,
-0
1@@ -33,6 +33,7 @@ extern xs_str *srv_basedir;
2 extern xs_dict *srv_config;
3 extern xs_str *srv_baseurl;
4 extern xs_str *srv_proxy_token_seed;
5+extern xs_dict *srv_langs;
6
7 extern int dbglevel;
8
9@@ -444,3 +445,5 @@ xs_str *make_url(const char *href, const char *proxy, int by_token);
10
11 int badlogin_check(const char *user, const char *addr);
12 void badlogin_inc(const char *user, const char *addr);
13+
14+const char *lang_str(const char *str, const snac *user);