From 116069c8e9643f0f16e0fc7c1d123ba45fce720a Mon Sep 17 00:00:00 2001 From: frosty Date: Wed, 1 Apr 2026 04:01:07 +0300 Subject: feat: add more locale keys --- src/Routes/Images.c | 13 +++++++++---- src/Routes/Search.c | 39 +++++++++++++++++++++++++-------------- 2 files changed, 34 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/Routes/Images.c b/src/Routes/Images.c index 636f071..d5a1951 100644 --- a/src/Routes/Images.c +++ b/src/Routes/Images.c @@ -49,7 +49,11 @@ int images_handler(UrlParams *params) { char *locale = get_locale("en_uk"); beaker_set_locale(&ctx, locale); - free(locale); + + const char *rate_limit_msg = beaker_get_locale_value(locale, "rate_limit"); + if (!rate_limit_msg) rate_limit_msg = "Slow down! Too many image searches from you!"; + const char *error_images_msg = beaker_get_locale_value(locale, "error_images"); + if (!error_images_msg) error_images_msg = "Error fetching images"; context_set(&ctx, "page", page_str); context_set(&ctx, "prev_page", prev_str); @@ -96,8 +100,7 @@ int images_handler(UrlParams *params) { rate_limit_check("images", &rate_limit_config); if (rate_limit_result.limited) { char response[256]; - snprintf(response, sizeof(response), - "

Slow down!

Too many image searches from you!

"); + snprintf(response, sizeof(response), "

%s

", rate_limit_msg); send_response(response); free(request_cache_key); free(display_query); @@ -115,7 +118,9 @@ int images_handler(UrlParams *params) { if (scrape_images(raw_query, page, &results, &result_count) != 0 || !results) { - send_response("

Error fetching images

"); + char error_html[128]; + snprintf(error_html, sizeof(error_html), "

%s

", error_images_msg); + send_response(error_html); free(request_cache_key); free(display_query); free_context(&ctx); diff --git a/src/Routes/Search.c b/src/Routes/Search.c index c5b3ec0..9219620 100644 --- a/src/Routes/Search.c +++ b/src/Routes/Search.c @@ -296,15 +296,20 @@ static int add_warning_to_collection(const char *engine_name, return current_count + 1; } -static const char *warning_message_for_job(const ScrapeJob *job) { +static const char *warning_message_for_job(const ScrapeJob *job, const char *locale) { switch (job->status) { - case SCRAPE_STATUS_FETCH_ERROR: - return "request failed before OmniSearch could read search results."; - case SCRAPE_STATUS_PARSE_MISMATCH: - return "returned search results in a format OmniSearch could not parse."; - case SCRAPE_STATUS_BLOCKED: - return "returned a captcha or another blocking page instead of search " - "results."; + case SCRAPE_STATUS_FETCH_ERROR: { + const char *msg = beaker_get_locale_value(locale, "warning_fetch_error"); + return msg ? msg : "request failed before OmniSearch could read search results."; + } + case SCRAPE_STATUS_PARSE_MISMATCH: { + const char *msg = beaker_get_locale_value(locale, "warning_parse_mismatch"); + return msg ? msg : "returned search results in a format OmniSearch could not parse."; + } + case SCRAPE_STATUS_BLOCKED: { + const char *msg = beaker_get_locale_value(locale, "warning_blocked"); + return msg ? msg : "returned a captcha or another blocking page instead of search results."; + } default: return NULL; } @@ -421,7 +426,11 @@ int results_handler(UrlParams *params) { char *locale = get_locale("en_uk"); beaker_set_locale(&ctx, locale); - free(locale); + + const char *rate_limit_msg = beaker_get_locale_value(locale, "rate_limit"); + if (!rate_limit_msg) rate_limit_msg = "Slow down! Too many searches from you!"; + const char *no_results_msg = beaker_get_locale_value(locale, "no_results"); + if (!no_results_msg) no_results_msg = "No results found"; char page_str[16]; snprintf(page_str, sizeof(page_str), "%d", page); @@ -518,8 +527,7 @@ int results_handler(UrlParams *params) { rate_limit_check("search", &rate_limit_config); if (rate_limit_result.limited) { char response[256]; - snprintf(response, sizeof(response), - "

Slow down!

Too many searches from you!

"); + snprintf(response, sizeof(response), "

%s

", rate_limit_msg); send_response(response); free(request_cache_key); free_context(&ctx); @@ -629,7 +637,9 @@ int results_handler(UrlParams *params) { } free(request_cache_key); free_context(&ctx); - send_response("

No results found

"); + char no_results_html[128]; + snprintf(no_results_html, sizeof(no_results_html), "

%s

", no_results_msg); + send_response(no_results_html); return 0; } @@ -661,7 +671,7 @@ int results_handler(UrlParams *params) { int warning_count = 0; for (int i = 0; i < enabled_engine_count; i++) { - if (warning_message_for_job(&jobs[i])) + if (warning_message_for_job(&jobs[i], locale)) warning_count++; } @@ -671,7 +681,7 @@ int results_handler(UrlParams *params) { int warning_index = 0; for (int i = 0; i < enabled_engine_count; i++) { - const char *warning_message = warning_message_for_job(&jobs[i]); + const char *warning_message = warning_message_for_job(&jobs[i], locale); if (!warning_message) continue; @@ -886,6 +896,7 @@ int results_handler(UrlParams *params) { } } } + free(locale); free_context(&ctx); return 0; -- cgit v1.2.3