summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--data.c25
-rw-r--r--snac.c1
-rw-r--r--snac.h3
3 files changed, 29 insertions, 0 deletions
diff --git a/data.c b/data.c
index 9fc54a0..3aba471 100644
--- a/data.c
+++ b/data.c
@@ -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
4071const 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}
diff --git a/snac.c b/snac.c
index 9f5b50e..541828e 100644
--- a/snac.c
+++ b/snac.c
@@ -34,6 +34,7 @@ xs_str *srv_basedir = NULL;
34xs_dict *srv_config = NULL; 34xs_dict *srv_config = NULL;
35xs_str *srv_baseurl = NULL; 35xs_str *srv_baseurl = NULL;
36xs_str *srv_proxy_token_seed = NULL; 36xs_str *srv_proxy_token_seed = NULL;
37xs_dict *srv_langs = NULL;
37 38
38int dbglevel = 0; 39int dbglevel = 0;
39 40
diff --git a/snac.h b/snac.h
index d2d73af..69b1b74 100644
--- a/snac.h
+++ b/snac.h
@@ -33,6 +33,7 @@ extern xs_str *srv_basedir;
33extern xs_dict *srv_config; 33extern xs_dict *srv_config;
34extern xs_str *srv_baseurl; 34extern xs_str *srv_baseurl;
35extern xs_str *srv_proxy_token_seed; 35extern xs_str *srv_proxy_token_seed;
36extern xs_dict *srv_langs;
36 37
37extern int dbglevel; 38extern int dbglevel;
38 39
@@ -444,3 +445,5 @@ xs_str *make_url(const char *href, const char *proxy, int by_token);
444 445
445int badlogin_check(const char *user, const char *addr); 446int badlogin_check(const char *user, const char *addr);
446void badlogin_inc(const char *user, const char *addr); 447void badlogin_inc(const char *user, const char *addr);
448
449const char *lang_str(const char *str, const snac *user);