Optimized lang_str().

This commit is contained in:
default
2025-02-15 06:00:19 +01:00
parent d8ae88e779
commit f0f93b84be
3 changed files with 22 additions and 15 deletions
+6 -13
View File
@@ -4072,21 +4072,14 @@ void badlogin_inc(const char *user, const char *addr)
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");
const char *n_str = str;
if (xs_is_string(lang)) {
const xs_dict *strs = xs_dict_get(srv_langs, lang);
if (user && xs_is_dict(user->lang) && xs_is_string(str)) {
n_str = xs_dict_get(user->lang, str);
if (xs_is_dict(strs)) {
const char *n_str = xs_dict_get(strs, str);
if (xs_is_string(n_str))
str = n_str;
}
}
if (xs_is_null(n_str) || *n_str == '\0')
n_str = str;
}
return str;
return n_str;
}
+15 -2
View File
@@ -3326,6 +3326,17 @@ xs_str *html_notifications(snac *user, int skip, int show)
}
void set_user_lang(snac *user)
/* sets the language dict according to user configuration */
{
user->lang = NULL;
const char *lang = xs_dict_get(user->config, "lang");
if (xs_is_string(lang))
user->lang = xs_dict_get(srv_langs, lang);
}
int html_get_handler(const xs_dict *req, const char *q_path,
char **body, int *b_size, char **ctype,
xs_str **etag, xs_str **last_modified)
@@ -3399,7 +3410,8 @@ int html_get_handler(const xs_dict *req, const char *q_path,
return HTTP_STATUS_NOT_FOUND;
}
user = &snac;
user = &snac; /* for L() */
set_user_lang(&snac);
if (xs_is_true(xs_dict_get(srv_config, "proxy_media")))
proxy = 1;
@@ -4048,7 +4060,8 @@ int html_post_handler(const xs_dict *req, const char *q_path,
return HTTP_STATUS_UNAUTHORIZED;
}
user = &snac;
user = &snac; /* for L() */
set_user_lang(&snac);
p_vars = xs_dict_get(req, "p_vars");
+1
View File
@@ -60,6 +60,7 @@ typedef struct {
xs_dict *links; /* validated links */
xs_str *actor; /* actor url */
xs_str *md5; /* actor url md5 */
const xs_dict *lang;/* string translation dict */
} snac;
typedef struct {