diff --git a/docs/docs/CHANGELOG.md b/docs/docs/CHANGELOG.md index 536c6d66..b961722a 100644 --- a/docs/docs/CHANGELOG.md +++ b/docs/docs/CHANGELOG.md @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Instruct reverse proxies to not cache error pages. - Fixed mixed tab/space indentation in Caddy documentation code block - Improve error messages and fix broken REDIRECT_DOMAINS link in docs ([#1193](https://github.com/TecharoHQ/anubis/issues/1193)) +- Add Bulgarian locale ([#1394](https://github.com/TecharoHQ/anubis/pull/1394)) - Fix CEL internal errors when iterating `headers`/`query` map wrappers by implementing map iterators for `HTTPHeaders` and `URLValues` ([#1465](https://github.com/TecharoHQ/anubis/pull/1465)). diff --git a/lib/localization/locales/bg.json b/lib/localization/locales/bg.json new file mode 100644 index 00000000..e6a93c9e --- /dev/null +++ b/lib/localization/locales/bg.json @@ -0,0 +1,66 @@ +{ + "loading": "Зареждане...", + "why_am_i_seeing": "Защо виждам това?", + "protected_by": "Защитено от", + "protected_from": "От", + "made_with": "Направено с ❤️ в 🇨🇦", + "mascot_design": "Дизайн на талисмана от", + "ai_companies_explanation": "Виждате това, защото администраторът на този уебсайт е kонфигурирал Anubis, за да защити сървъра от агресивното събиране на данни от компании, занимаващи се с изкуствен интелект. Това може и причинява прекъсвания на уебсайтовете, което прави техните ресурси недостъпни за всички.", + "anubis_compromise": "Anubis е компромис. Anubis използва схема за ддоказателство-за-работа по подобие на Hashcash, предложена схема за доказателство-за-работа за намаляване на спама в имейлите. Идеята е, че при индивидуални мащаби допълнителното натоварване е пренебрежимо, но при масов ниво на събиране на данни то се натрупва и прави събирането на данни много по-скъпо.", + "hack_purpose": "В крайна сметка, това е временно решение, за да се отдели повече време за идентифициране и разпознаване на безглави браузъри (например чрез това как те рендират шрифтовете), така че страницата за доказателство-за-работа да не се налага да се показва на потребители, които е по-вероятно да са легитимни.", + "simplified_explanation": "Това е мярка срещу ботове и злонамерени заявки, подобна на CAPTCHA. Вместо да трябва да правите нещо сами, браузърът ви получава задача за изчисление, която трябва да реши, за да се увери, че е валиден клиент. Тази концепция се нарича схема доказателство-за-работа. Задачата се изчислява за няколко секунди и ви се дава достъп до уебсайта. Благодаря ви за разбирането и търпението.", + "jshelter_note": "Моля, имайте предвид, че Anubis изисква използването на модерни функции на JavaScript, сред които и като JShelter ще деактивират. Моля, деактивирайте JShelter или други подобни добавки за този домейн.", + "version_info": "Този уебсайт използва версия на Anubis", + "try_again": "Опитайте отново", + "go_home": "Отидете на началната страница", + "contact_webmaster": "или ако смятате, че не трябва да бъдете блокирани, моля свържете се с уебмастъра на", + "connection_security": "Моля, изчакайте, докато се уверим в сигурността на връзката ви", + "javascript_required": "За съжаление, трябва да включите JavaScript, за да минете през това предизвикателство. Това е необходимо, защото компаниите за изкуствен интелект промениха социалния договор около начина на хостинг на уебсайтове. Решение без JavaScript е в процес на разработка.", + "benchmark_requires_js": "За да използвате инструмента за тестване, е необходимо да включите JavaScript.", + "difficulty": "Трудност:", + "algorithm": "Алгоритъм:", + "compare": "Сравни:", + "time": "Време", + "iters": "Итерации", + "time_a": "Време А", + "iters_a": "Итерации А", + "time_b": "Време Б", + "iters_b": "Итерации Б", + "static_check_endpoint": "Това е просто краен пункт за проверка, който да използва обратният ви прокси.", + "authorization_required": "Изисква се авторизация", + "cookies_disabled": "Браузърът ви е настроен да деактивира бисквитките. Anubis изисква бисквитки за законния интерес да се увери, че сте валиден клиент. Моля, включете бисквитките за този домейн", + "access_denied": "Достъпът е отказан: код на грешка", + "dronebl_entry": "DroneBL докладва запис", + "see_dronebl_lookup": "вижте", + "internal_server_error": "Вътрешна сървърна грешка: администраторът е грешно конфигурирал Anubis. Моля, свържете се с администратора и ги помолете да проверят логовете около", + "invalid_redirect": "Невалидно пренасочване", + "redirect_not_parseable": "URL адресът за пренасочване не може да бъде разпознат", + "redirect_domain_not_allowed": "Домейнът за пренасочване не е позволен", + "missing_required_forwarded_headers": "Липсват необходимите X-Forwarded-* заглавни части", + "failed_to_sign_jwt": "неуспешно подписване на JWT", + "invalid_invocation": "Невалидно извикване на MakeChallenge", + "client_error_browser": "Крешка в клиента: Моля, уверете се, че браузърът ви е актуализиран и опитайте отново по-късно.", + "oh_noes": "О, не!", + "benchmarking_anubis": "Тестване на Anubis!", + "you_are_not_a_bot": "Ти не си бот!", + "making_sure_not_bot": "Уверяваме се, че не си бот!", + "celphase": "CELPHASE", + "js_web_crypto_error": "Браузърът ви няма функциониращ web.crypto елемент. Гледате ли това през сигурен контекст?", + "js_web_workers_error": "Браузърът ви не поддържа уеб работници (Anubis използва това, за да избегне замръзване на браузъра ви). Имате ли инсталирана добавка като JShelter?", + "js_cookies_error": "Браузърът ви не съхранява бисквитки. Anubis използва бисквитки, за да определи които клиенти са преминали задачите, като съхранява подписан токен в бисквитка. Моля, включете съхраняването на бисквитки за този домейн. Имената на бисквитките, съхранени от Anubis, могат да се променят без предварително уведомление. Имената и стойностите на бисквитките не са част от публичния API.", + "js_context_not_secure": "Вашият контекст не е сигурен!", + "js_context_not_secure_msg": "Опитайте да се свържете чрез HTTPS или уведомете администратора да kонфигурира HTTPS. За повече информация вижте MDN.", + "js_calculating": "Изчисляване...", + "js_missing_feature": "Липсваща функция", + "js_challenge_error": "Грешка при задачата!", + "js_challenge_error_msg": "Неуспешно разрешаване на алгоритъма за проверка. Може би искате да презаредите страницата.", + "js_calculating_difficulty": "Изчисляване... Трудност:", + "js_speed": "Скорост:", + "js_verification_longer": "Проверката отнема повече време от очакваното. Моля, не презареждайте страницата.", + "js_success": "Успех!", + "js_done_took": "Готово! Отне", + "js_iterations": "итерации", + "js_finished_reading": "Приключих с четенето, продължете →", + "js_calculation_error": "Грешка при изчислението!", + "js_calculation_error_msg": "Неуспешно изчисление на задачата:" +} \ No newline at end of file diff --git a/lib/localization/locales/manifest.json b/lib/localization/locales/manifest.json index de4f182e..2927a8f2 100644 --- a/lib/localization/locales/manifest.json +++ b/lib/localization/locales/manifest.json @@ -23,6 +23,7 @@ "vi", "zh-CN", "zh-TW", - "sv" + "sv", + "bg" ] -} +} \ No newline at end of file diff --git a/lib/localization/localization_test.go b/lib/localization/localization_test.go index 006e76d6..8f25b79d 100644 --- a/lib/localization/localization_test.go +++ b/lib/localization/localization_test.go @@ -34,6 +34,7 @@ func TestLocalizationService(t *testing.T) { "zh-CN": "加载中...", "zh-TW": "載入中...", "sv": "Laddar...", + "bg": "Зареждане...", } var keys []string