1 Commits

Author SHA1 Message Date
searxng-bot
51403f9b58 [l10n] update translations from Weblate
fce853a65 - 2025-07-16 - return42 <return42@noreply.codeberg.org>
234a91155 - 2025-07-16 - return42 <return42@noreply.codeberg.org>
162ff0369 - 2025-07-16 - return42 <return42@noreply.codeberg.org>
3307e81ab - 2025-07-16 - return42 <return42@noreply.codeberg.org>
7948181fb - 2025-07-15 - Juno Takano <jutty@noreply.codeberg.org>
e88a0b264 - 2025-07-15 - muha7a <muha7a@noreply.codeberg.org>
7b37b944e - 2025-07-14 - Cookie_Monster <cookie_monster@noreply.codeberg.org>
d6c61f1ff - 2025-07-14 - kolegacik <kolegacik@noreply.codeberg.org>
5bd662542 - 2025-07-15 - lucasmz.dev <lucasmz.dev@noreply.codeberg.org>
4ddad097c - 2025-07-14 - yoonhahwang <yoonhahwang@noreply.codeberg.org>
a8d319c18 - 2025-07-13 - norizou <norizou@noreply.codeberg.org>
e7e471f65 - 2025-07-13 - Hēphaistos <hephaistos@noreply.codeberg.org>
b6b198f0a - 2025-07-12 - return42 <return42@noreply.codeberg.org>
9da60d355 - 2025-07-11 - sourdragon <sourdragon@noreply.codeberg.org>
632b879ba - 2025-07-12 - return42 <return42@noreply.codeberg.org>
a543b2b87 - 2025-07-12 - return42 <return42@noreply.codeberg.org>
7e418d9cc - 2025-07-12 - return42 <return42@noreply.codeberg.org>
6e78fbd5c - 2025-07-12 - return42 <return42@noreply.codeberg.org>
917b27bad - 2025-07-12 - return42 <return42@noreply.codeberg.org>
82e69afbf - 2025-07-12 - return42 <return42@noreply.codeberg.org>
096c36ef7 - 2025-07-12 - return42 <return42@noreply.codeberg.org>
2048ef8e2 - 2025-07-12 - return42 <return42@noreply.codeberg.org>
2025-07-18 07:12:28 +00:00
29 changed files with 191 additions and 196 deletions

View File

@@ -51,7 +51,8 @@ ENV SEARXNG_VERSION="$SEARXNG_GIT_VERSION" \
GRANIAN_LOOP="uvloop" \
GRANIAN_BLOCKING_THREADS="4" \
GRANIAN_WORKERS_KILL_TIMEOUT="30" \
GRANIAN_BLOCKING_THREADS_IDLE_TIMEOUT="300"
GRANIAN_BLOCKING_THREADS_IDLE_TIMEOUT="300" \
GRANIAN_STATIC_PATH_MOUNT="/usr/local/searxng/searx/static/"
VOLUME $CONFIG_PATH
VOLUME $DATA_PATH

View File

@@ -1,4 +1,4 @@
certifi==2025.7.14
certifi==2025.7.9
babel==2.17.0
flask-babel==4.0.0
flask==3.1.1
@@ -19,4 +19,3 @@ tomli==2.2.1; python_version < '3.11'
msgspec==0.19.0
typer-slim==0.16.0
isodate==0.7.2
whitenoise==6.9.0

View File

@@ -10,8 +10,9 @@ import re
from collections.abc import Iterator
from urllib.parse import urlparse, urlunparse, parse_qsl, urlencode
import httpx
from searx.data.core import get_cache, log
from searx.network import get as http_get
RuleType = tuple[str, list[str], list[str]]
@@ -43,7 +44,7 @@ class TrackerPatternsDB:
self.cache.properties.set("tracker_patterns loaded", "OK")
self.load()
# F I X M E:
# do we need a maintenance .. remember: database is stored
# do we need a maintenance .. rember: database is stored
# in /tmp and will be rebuild during the reboot anyway
def load(self):
@@ -70,7 +71,7 @@ class TrackerPatternsDB:
def iter_clear_list(self) -> Iterator[RuleType]:
resp = None
for url in self.CLEAR_LIST_URL:
resp = http_get(url, timeout=3)
resp = httpx.get(url, timeout=3)
if resp.status_code == 200:
break
log.warning(f"TRACKER_PATTERNS: ClearURL ignore HTTP {resp.status_code} {url}")

View File

@@ -1,10 +1,11 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""Wordnik (general)"""
"""Wordnik (general)
"""
from lxml.html import fromstring
from searx.utils import extract_text
from searx.result_types import EngineResults
from searx.network import raise_for_httperror
# about
about = {
@@ -16,7 +17,7 @@ about = {
"results": 'HTML',
}
categories = ['dictionaries', 'define']
categories = ['general']
paging = False
@@ -26,23 +27,46 @@ def request(query, params):
def response(resp):
results = EngineResults()
results = []
raise_for_httperror(resp)
dom = fromstring(resp.text)
word = extract_text(dom.xpath('//*[@id="headword"]/text()'))
definitions = []
for src in dom.xpath('//*[@id="define"]//h3[@class="source"]'):
item = results.types.Translations.Item(text="")
src_text = extract_text(src).strip()
if src_text.startswith('from '):
src_text = src_text[5:]
src_defs = []
for def_item in src.xpath('following-sibling::ul[1]/li'):
def_abbr = extract_text(def_item.xpath('.//abbr')).strip()
def_text = extract_text(def_item).strip()
if def_abbr:
def_text = def_text[len(def_abbr) :].strip()
src_defs.append((def_abbr, def_text))
# use first result as summary
if not item.text:
item.text = def_text
item.definitions.append(def_text)
definitions.append((src_text, src_defs))
results.add(results.types.Translations(translations=[item], url=resp.search_params["url"]))
if not definitions:
return results
infobox = ''
for src_text, src_defs in definitions:
infobox += f"<small>{src_text}</small>"
infobox += "<ul>"
for def_abbr, def_text in src_defs:
if def_abbr:
def_abbr += ": "
infobox += f"<li><i>{def_abbr}</i> {def_text}</li>"
infobox += "</ul>"
results.append(
{
'infobox': word,
'content': infobox,
}
)
return results

View File

@@ -2494,7 +2494,8 @@ engines:
- name: wordnik
engine: wordnik
shortcut: wnik
shortcut: def
categories: [dictionaries]
timeout: 5.0
- name: woxikon.de synonyme

View File

@@ -150,7 +150,7 @@ SCHEMA = {
'new_issue_url': SettingsValue(str, 'https://github.com/searxng/searxng/issues/new'),
'docs_url': SettingsValue(str, 'https://docs.searxng.org'),
'public_instances': SettingsValue((False, str), 'https://searx.space'),
'wiki_url': SettingsValue((False, str), 'https://github.com/searxng/searxng/wiki'),
'wiki_url': SettingsValue(str, 'https://github.com/searxng/searxng/wiki'),
'custom': SettingsValue(dict, {'links': {}}),
},
'search': {

View File

@@ -24,22 +24,20 @@
# akwceles <akwceles@users.noreply.translate.codeberg.org>, 2025.
# dansmachina <dansmachina@noreply.codeberg.org>, 2025.
# return42 <return42@noreply.codeberg.org>, 2025.
# eudemo <eudemo@noreply.codeberg.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
"PO-Revision-Date: 2025-07-24 15:15+0000\n"
"Last-Translator: eudemo <eudemo@noreply.codeberg.org>\n"
"Language-Team: Catalan <https://translate.codeberg.org/projects/searxng/"
"searxng/ca/>\n"
"PO-Revision-Date: 2025-06-22 17:06+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language: ca\n"
"Language-Team: Catalan "
"<https://translate.codeberg.org/projects/searxng/searxng/ca/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.12.2\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -298,7 +296,7 @@ msgstr "Cel buidat"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Partly cloudy"
msgstr "Parcialment ennuvolat"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -318,42 +316,42 @@ msgstr "Boira"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain and thunder"
msgstr "Pluja lleugera i trons"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain showers and thunder"
msgstr "Ruixats lleugers i trons"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain showers"
msgstr "Ruixats lleugers"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain"
msgstr "Pluja lleugera"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain and thunder"
msgstr "Tempesta"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain showers and thunder"
msgstr "Ruixats i trons"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain showers"
msgstr "Ruixats"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain"
msgstr "Pluja"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -398,7 +396,7 @@ msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Sleet and thunder"
msgstr "Calamarsa i trons"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -413,7 +411,7 @@ msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Sleet"
msgstr "Calamarsa"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -473,7 +471,7 @@ msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Snow"
msgstr "Neu"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -2369,3 +2367,4 @@ msgstr "oculta el vídeo"
#~ msgid "Change SearXNG layout"
#~ msgstr "Canvia l'aparença de SearXNG"

View File

@@ -28,17 +28,16 @@ msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
"PO-Revision-Date: 2025-07-22 10:57+0000\n"
"Last-Translator: Fjuro <fjuro@alius.cz>\n"
"Language-Team: Czech <https://translate.codeberg.org/projects/searxng/"
"searxng/cs/>\n"
"PO-Revision-Date: 2025-06-28 09:58+0000\n"
"Last-Translator: Fjuro <git@alius.cz>\n"
"Language: cs\n"
"Language-Team: Czech "
"<https://translate.codeberg.org/projects/searxng/searxng/cs/>\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && "
"n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n "
"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
"X-Generator: Weblate 5.12.2\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -829,7 +828,7 @@ msgstr "Nepoužíváte Tor a máte externí IP adresu"
#: searx/plugins/tracker_url_remover.py:35
msgid "Tracker URL remover"
msgstr "Odstranit sledovací URL"
msgstr "Odstraňovač sledovacích URL"
#: searx/plugins/tracker_url_remover.py:36
msgid "Remove trackers arguments from the returned URL"
@@ -928,7 +927,7 @@ msgstr "archivovaná verze"
#: searx/templates/simple/new_issue.html:64
msgid "Start submitting a new issue on GitHub"
msgstr "Přidat nový problém na GitHub"
msgstr "Začněte přidávat novou chybu na Githubu"
#: searx/templates/simple/new_issue.html:66
msgid "Please check for existing bugs about this engine on GitHub"
@@ -942,11 +941,11 @@ msgstr ""
#: searx/templates/simple/new_issue.html:71
msgid "If this is a public instance, please specify the URL in the bug report"
msgstr "Pokud je toto veřejná instance, uveďte prosím URL v náhlášení chyby"
msgstr "Pokud je tohle veřejná instance, prosím specifikujte URL v náhlášení chyby"
#: searx/templates/simple/new_issue.html:72
msgid "Submit a new issue on Github including the above information"
msgstr "Odeslat nový problém na GitHub včetně výše uvedených informací"
msgstr "Odeslání nového problému na Github včetně výše uvedených informací"
#: searx/templates/simple/preferences.html:65
msgid "No HTTPS"
@@ -1246,7 +1245,7 @@ msgstr "Vypnuto"
#: searx/templates/simple/filters/time_range.html:1
#: searx/templates/simple/preferences/engines.html:28
msgid "Time range"
msgstr "Časový interval"
msgstr "Čásový interval"
#: searx/templates/simple/filters/time_range.html:3
msgid "Anytime"
@@ -2367,3 +2366,4 @@ msgstr "skrýt video"
#~ msgid "Change SearXNG layout"
#~ msgstr "Změnit vzhled SearXNG"

View File

@@ -21,16 +21,15 @@ msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
"PO-Revision-Date: 2025-07-19 08:08+0000\n"
"PO-Revision-Date: 2025-06-26 02:46+0000\n"
"Last-Translator: Priit Jõerüüt <jrtcdbrg@noreply.codeberg.org>\n"
"Language-Team: Estonian <https://translate.codeberg.org/projects/searxng/"
"searxng/et/>\n"
"Language: et\n"
"Language-Team: Estonian "
"<https://translate.codeberg.org/projects/searxng/searxng/et/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.12.2\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -1572,7 +1571,7 @@ msgstr ""
#: searx/templates/simple/preferences/theme.html:2
msgid "Theme"
msgstr "Kujundus"
msgstr "Teema"
#: searx/templates/simple/preferences/theme.html:14
msgid "Change the layout of SearXNG"
@@ -2352,3 +2351,4 @@ msgstr "peida video"
#~ msgid "Change SearXNG layout"
#~ msgstr "Muuda SearXNG paigutust"

View File

@@ -21,16 +21,15 @@ msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
"PO-Revision-Date: 2025-07-21 15:53+0000\n"
"Last-Translator: alexgabi <alexgabi@noreply.codeberg.org>\n"
"Language-Team: Basque <https://translate.codeberg.org/projects/searxng/"
"searxng/eu/>\n"
"PO-Revision-Date: 2025-06-22 17:06+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language: eu\n"
"Language-Team: Basque "
"<https://translate.codeberg.org/projects/searxng/searxng/eu/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.12.2\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -289,7 +288,7 @@ msgstr "Oskarbi"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Partly cloudy"
msgstr "Ostarteak"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -309,42 +308,42 @@ msgstr "Lainoa"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain and thunder"
msgstr "Euri arina eta trumoiak"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain showers and thunder"
msgstr "Euri zaparrada arinak eta trumoiak"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain showers"
msgstr "Euri zaparrada arinak"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light rain"
msgstr "Euri arina"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain and thunder"
msgstr "Euria eta trumoiak"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain showers and thunder"
msgstr "Zaparradak eta trumoiak"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain showers"
msgstr "Euri zaparradak"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain"
msgstr "Euria"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -369,22 +368,22 @@ msgstr "Euri trinkoa"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet and thunder"
msgstr "Elurbusti arina eta trumoiak"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet showers and thunder"
msgstr "Elurbusti arineko zaparradak eta trumoiak"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet showers"
msgstr "Elurbusti arineko zaparradak"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet"
msgstr "Elurbusti arina"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -2337,3 +2336,4 @@ msgstr "ezkutatu bideoa"
#~ msgid "Change SearXNG layout"
#~ msgstr "Aldatu SearXNGren diseinua"

View File

@@ -41,14 +41,13 @@
# wags07 <wags07@noreply.codeberg.org>, 2025.
# demilune <demilune@noreply.codeberg.org>, 2025.
# Hēphaistos <hephaistos@noreply.codeberg.org>, 2025.
# ledjfou <ledjfou@noreply.codeberg.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
"PO-Revision-Date: 2025-07-20 14:08+0000\n"
"Last-Translator: ledjfou <ledjfou@noreply.codeberg.org>\n"
"PO-Revision-Date: 2025-07-13 23:08+0000\n"
"Last-Translator: Hēphaistos <hephaistos@noreply.codeberg.org>\n"
"Language-Team: French <https://translate.codeberg.org/projects/searxng/"
"searxng/fr/>\n"
"Language: fr\n"
@@ -788,8 +787,6 @@ msgstr "Module de noms dhôtes"
#: searx/plugins/hostnames.py:124
msgid "Rewrite hostnames and remove or prioritize results based on the hostname"
msgstr ""
"Personnalisez vos résultats en redirigeant les liens et en filtrant les "
"sites affichés"
#: searx/plugins/oa_doi_rewrite.py:55
msgid "Open Access DOI rewrite"
@@ -1400,6 +1397,7 @@ msgid "Value"
msgstr "Valeur"
#: searx/templates/simple/preferences/cookies.html:23
#, fuzzy
msgid "Search URL of the currently saved preferences"
msgstr ""
"URL de recherche définie selon les préférences actuellement sauvegardées"
@@ -1537,7 +1535,7 @@ msgstr "Proxy d'images"
#: searx/templates/simple/preferences/image_proxy.html:14
msgid "Proxy image results through SearXNG"
msgstr "Résultats des images proxy via SearXNG"
msgstr ""
#: searx/templates/simple/preferences/infinite_scroll.html:2
msgid "Infinite scroll"

View File

@@ -49,8 +49,8 @@ msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
"PO-Revision-Date: 2025-07-22 10:57+0000\n"
"Last-Translator: \"lucasmz.dev\" <lucasmz.dev@noreply.codeberg.org>\n"
"PO-Revision-Date: 2025-07-16 06:08+0000\n"
"Last-Translator: Juno Takano <jutty@noreply.codeberg.org>\n"
"Language-Team: Portuguese (Brazil) <https://translate.codeberg.org/projects/"
"searxng/searxng/pt_BR/>\n"
"Language: pt_BR\n"
@@ -362,12 +362,12 @@ msgstr "Chuva com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain showers and thunder"
msgstr "Chuva rápida com trovões"
msgstr "Chuva contínua com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Rain showers"
msgstr "Chuva rápida"
msgstr "Chuva contínua"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -382,12 +382,12 @@ msgstr "Chuva intensa com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy rain showers and thunder"
msgstr "Chuva rápida e intensa com trovões"
msgstr "Chuva intensa contínua com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy rain showers"
msgstr "Chuva rápida e intensa"
msgstr "Chuva intensa contínua"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -402,12 +402,12 @@ msgstr "Granizo leve com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet showers and thunder"
msgstr "Granizo leve e rápido com trovões"
msgstr "Granizo leve contínuo com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light sleet showers"
msgstr "Granizo leve e rápido"
msgstr "Granizo leve contínuo"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -422,12 +422,12 @@ msgstr "Granizo com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Sleet showers and thunder"
msgstr "Granizo rápido com trovões"
msgstr "Granizo contínuo com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Sleet showers"
msgstr "Granizo rápido"
msgstr "Granizo contínuo"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -442,12 +442,12 @@ msgstr "Granizo intenso com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy sleet showers and thunder"
msgstr "Granizo pesado rápido com trovões"
msgstr "Granizo intenso contínuo com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy sleet showers"
msgstr "Chuvas rápidas e intensas de granizo"
msgstr "Granizo intenso contínuo"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -462,12 +462,12 @@ msgstr "Neve fraca com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light snow showers and thunder"
msgstr "Neve fraca e rápida com trovões"
msgstr "Neve fraca contínua com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Light snow showers"
msgstr "Neve fraca e rápida"
msgstr "Neve fraca contínua"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -482,12 +482,12 @@ msgstr "Neve com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Snow showers and thunder"
msgstr "Neve rápida com trovões"
msgstr "Neve contínua com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Snow showers"
msgstr "Neve rápida"
msgstr "Neve contínua"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -502,12 +502,12 @@ msgstr "Neve pesada com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy snow showers and thunder"
msgstr "Neve intensa rápida com trovões"
msgstr "Neve intensa contínua com trovões"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy snow showers"
msgstr "Neve intensa rápida"
msgstr "Neve intensa contínua"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
@@ -1107,7 +1107,7 @@ msgstr "Tempo de resposta"
#: searx/templates/simple/preferences/engines.html:35
#: searx/templates/simple/stats.html:29
msgid "Reliability"
msgstr "Confiabilidade"
msgstr "Consistência"
#: searx/templates/simple/stats.html:59
msgid "Total"

View File

@@ -30,25 +30,22 @@
# return42 <return42@noreply.codeberg.org>, 2025.
# yurtpage <yurtpage@noreply.codeberg.org>, 2025.
# kotovasia <kotovasia@noreply.codeberg.org>, 2025.
# IcewindX <icewindx@noreply.codeberg.org>, 2025.
# 0ko <0ko@noreply.codeberg.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
"PO-Revision-Date: 2025-07-23 11:09+0000\n"
"Last-Translator: IcewindX <icewindx@noreply.codeberg.org>\n"
"Language-Team: Russian <https://translate.codeberg.org/projects/searxng/"
"searxng/ru/>\n"
"PO-Revision-Date: 2025-07-03 10:26+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"Language: ru\n"
"Language-Team: Russian "
"<https://translate.codeberg.org/projects/searxng/searxng/ru/>\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) "
"|| (n%100>=11 && n%100<=14)? 2 : 3);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || ("
"n%100>=11 && n%100<=14)? 2 : 3);\n"
"X-Generator: Weblate 5.12.2\n"
"Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -580,7 +577,7 @@ msgstr "Не удалось загрузить следующую страниц
#: searx/webapp.py:447 searx/webapp.py:845
msgid "Invalid settings, please edit your preferences"
msgstr "Неправильные параметры, пожалуйста, измените ваши настройки"
msgstr "Неправильные параметры, пожалуйста измените ваши настройки"
#: searx/webapp.py:463
msgid "Invalid settings"
@@ -714,7 +711,7 @@ msgid ""
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
" WebP."
msgstr ""
"Не удалось прочитать изображение по ссылке. Возможно это вызвано "
"Не удалось прочитать изображение по ссылки. Возможно это вызвано "
"неподдерживаемым форматом файла. TinEye поддерживает только следующие "
"форматы: JPEG, PNG, GIF, BMP, TIFF or WebP."
@@ -810,7 +807,7 @@ msgstr "Ваш IP-адрес: "
#: searx/plugins/self_info.py:55
msgid "Your user-agent is: "
msgstr "Ваш браузер: "
msgstr "Ваш обозреватель: "
#: searx/plugins/tor_check.py:42
msgid "Tor check plugin"
@@ -831,7 +828,7 @@ msgstr "Не удалось загрузить список выходных у
#: searx/plugins/tor_check.py:72
msgid "You are using Tor and it looks like you have the external IP address"
msgstr "Вы используете Tor и кажется что у вас есть внешний IP-адрес"
msgstr "Вы используете Tor и кажется что у вас есть внешний айпи адрес"
#: searx/plugins/tor_check.py:76
msgid "You are not using Tor and you have the external IP address"
@@ -942,7 +939,7 @@ msgstr "Создайте задачу на GitHub"
#: searx/templates/simple/new_issue.html:66
msgid "Please check for existing bugs about this engine on GitHub"
msgstr "Пожалуйста, проверьте ныне существующие ошибки этого движка на GitHub"
msgstr "Пожалуйста проверьте ныне существующие ошибки этого движка на GitHub"
#: searx/templates/simple/new_issue.html:69
msgid "I confirm there is no existing bug about the issue I encounter"
@@ -1196,7 +1193,7 @@ msgstr "Сообщения от поисковых систем"
#: searx/templates/simple/elements/engines_msg.html:7
msgid "seconds"
msgstr "сек."
msgstr "секунды"
#: searx/templates/simple/elements/search_url.html:3
msgid "Search URL"
@@ -1253,7 +1250,7 @@ msgstr "Умеренный"
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences/safesearch.html:15
msgid "None"
msgstr "Нет"
msgstr "Нету"
#: searx/templates/simple/filters/time_range.html:1
#: searx/templates/simple/preferences/engines.html:28
@@ -1364,13 +1361,13 @@ msgstr "Выравнивание по центру"
#: searx/templates/simple/preferences/center_alignment.html:14
msgid "Display results in the center of the page (Oscar layout)."
msgstr "Отображать результаты по центру страницы."
msgstr "Отображать результаты в центре страницы."
#: searx/templates/simple/preferences/cookies.html:2
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr "Список cookies и их значений, которые SearXNG хранит в вашем браузере."
msgstr "Список cookies и их значений, которые SearXNG хранит в вашем обозревателе."
#: searx/templates/simple/preferences/cookies.html:3
msgid "With this list, you can assess the transparency of SearXNG."
@@ -1398,7 +1395,7 @@ msgstr ""
#: searx/templates/simple/preferences/cookies.html:35
msgid "URL to restore your preferences in another browser"
msgstr "URL-адрес для восстановления ваших настроек в другом браузере"
msgstr "URL-адрес для восстановления ваших настроек в другом обозревателе"
#: searx/templates/simple/preferences/cookies.html:43
msgid ""
@@ -1523,7 +1520,7 @@ msgstr "Прокси для картинок"
#: searx/templates/simple/preferences/image_proxy.html:14
msgid "Proxy image results through SearXNG"
msgstr "Проксировать найденные изображения через SearXNG"
msgstr "Результаты прокси-изображения через SearXNG"
#: searx/templates/simple/preferences/infinite_scroll.html:2
msgid "Infinite scroll"
@@ -1564,8 +1561,8 @@ msgid ""
"When enabled, the result page's title contains your query. Your browser "
"can record this title"
msgstr ""
"Добавить поисковый запрос в заголовок страницы с результатами. Ваш браузер "
"может сохранять этот заголовок"
"Добавить поисковый запрос в заголовок страницы с результатами. "
"Обозреватель может сохранять этот заголовок"
#: searx/templates/simple/preferences/results_on_new_tab.html:2
msgid "Results in new tabs"
@@ -1573,7 +1570,7 @@ msgstr "Результаты в новых вкладках"
#: searx/templates/simple/preferences/results_on_new_tab.html:14
msgid "Open result links in new browser tabs"
msgstr "Открывать результаты с ссылками в новых вкладках браузера"
msgstr "Открывать результаты с ссылками в новых вкладках обозревателя"
#: searx/templates/simple/preferences/safesearch.html:20
msgid "Filter content"
@@ -1597,7 +1594,7 @@ msgstr "Тема"
#: searx/templates/simple/preferences/theme.html:14
msgid "Change the layout of SearXNG"
msgstr "Изменить раскладку интерфейса SearXNG"
msgstr "Изменить макет SearXNG"
#: searx/templates/simple/preferences/theme.html:19
msgid "Theme style"
@@ -1605,7 +1602,7 @@ msgstr "Стиль темы"
#: searx/templates/simple/preferences/theme.html:31
msgid "Choose auto to follow your browser settings"
msgstr "Выберите «автоматически» для использования настроек вашего браузера"
msgstr "Выберите «автоматически» для использования настроек вашего обозревателя"
#: searx/templates/simple/preferences/tokens.html:2
msgid "Engine tokens"
@@ -2393,3 +2390,4 @@ msgstr "скрыть видео"
#~ msgid "Change SearXNG layout"
#~ msgstr "Изменить расположение элементов SearXNG"

View File

@@ -29,14 +29,13 @@
# return42 <return42@noreply.codeberg.org>, 2025.
# AhmetHakki1 <ahmethakki1@noreply.codeberg.org>, 2025.
# Cookie_Monster <cookie_monster@noreply.codeberg.org>, 2025.
# zbbhzdaajc <zbbhzdaajc@noreply.codeberg.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
"PO-Revision-Date: 2025-07-19 08:08+0000\n"
"Last-Translator: zbbhzdaajc <zbbhzdaajc@noreply.codeberg.org>\n"
"PO-Revision-Date: 2025-07-15 05:18+0000\n"
"Last-Translator: Cookie_Monster <cookie_monster@noreply.codeberg.org>\n"
"Language-Team: Turkish <https://translate.codeberg.org/projects/searxng/"
"searxng/tr/>\n"
"Language: tr\n"
@@ -478,7 +477,7 @@ msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Snow"
msgstr "Kar"
msgstr ""
#. WEATHER_CONDITIONS
#: searx/searxng.msg

View File

@@ -1,19 +1,18 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# pylint: disable=,missing-module-docstring,missing-class-docstring
import importlib
import logging
import os
import shlex
import subprocess
import logging
import importlib
# fallback values
# if there is searx.version_frozen module, and it is not possible to get the git tag
VERSION_STRING = "1.0.0"
VERSION_TAG = "1.0.0"
DOCKER_TAG = "1.0.0"
GIT_URL = "unknown"
GIT_BRANCH = "unknown"
GIT_URL = "unknow"
GIT_BRANCH = "unknow"
logger = logging.getLogger("searx")
@@ -70,7 +69,6 @@ def get_git_version():
# which depended on the git version: '2023.05.06+..' --> '2023.5.6+..'
git_commit_date_hash = git_commit_date_hash.replace('.0', '.')
tag_version = git_version = git_commit_date_hash
docker_tag = git_commit_date_hash.replace("+", "-")
# add "+dirty" suffix if there are uncommitted changes except searx/settings.yml
try:
@@ -80,29 +78,10 @@ def get_git_version():
git_version += "+dirty"
else:
logger.warning('"%s" returns an unexpected return code %i', e.returncode, e.cmd)
docker_tag = git_version.replace("+", "-")
return git_version, tag_version, docker_tag
def get_information():
version_string = VERSION_STRING
version_tag = VERSION_TAG
docker_tag = DOCKER_TAG
git_url = GIT_URL
git_branch = GIT_BRANCH
try:
version_string, version_tag, docker_tag = get_git_version()
except subprocess.CalledProcessError as ex:
logger.error("Error while getting the version: %s", ex.stderr)
try:
git_url, git_branch = get_git_url_and_branch()
except subprocess.CalledProcessError as ex:
logger.error("Error while getting the git URL & branch: %s", ex.stderr)
return version_string, version_tag, docker_tag, git_url, git_branch
try:
vf = importlib.import_module('searx.version_frozen')
VERSION_STRING, VERSION_TAG, DOCKER_TAG, GIT_URL, GIT_BRANCH = (
@@ -113,7 +92,18 @@ try:
vf.GIT_BRANCH,
)
except ImportError:
VERSION_STRING, VERSION_TAG, DOCKER_TAG, GIT_URL, GIT_BRANCH = get_information()
try:
try:
VERSION_STRING, VERSION_TAG, DOCKER_TAG = get_git_version()
except subprocess.CalledProcessError as ex:
logger.error("Error while getting the version: %s", ex.stderr)
try:
GIT_URL, GIT_BRANCH = get_git_url_and_branch()
except subprocess.CalledProcessError as ex:
logger.error("Error while getting the git URL & branch: %s", ex.stderr)
except FileNotFoundError as ex:
logger.error("%s is not found, fallback to the default version", ex.filename)
logger.info("version: %s", VERSION_STRING)
@@ -121,8 +111,6 @@ if __name__ == "__main__":
import sys
if len(sys.argv) >= 2 and sys.argv[1] == "freeze":
VERSION_STRING, VERSION_TAG, DOCKER_TAG, GIT_URL, GIT_BRANCH = get_information()
# freeze the version (to create an archive outside a git repository)
python_code = f"""# SPDX-License-Identifier: AGPL-3.0-or-later
# pylint: disable=missing-module-docstring

View File

@@ -30,9 +30,6 @@ from pygments.formatters import HtmlFormatter # pylint: disable=no-name-in-modu
from werkzeug.serving import is_running_from_reloader
from whitenoise import WhiteNoise
from whitenoise.base import Headers
import flask
from flask import (
@@ -150,7 +147,7 @@ STATS_SORT_PARAMETERS = {
}
# Flask app
app = Flask(__name__, static_folder=None, template_folder=templates_path)
app = Flask(__name__, static_folder=settings['ui']['static_path'], template_folder=templates_path)
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
@@ -248,7 +245,6 @@ def custom_url_for(endpoint: str, **values):
if not _STATIC_FILES:
_STATIC_FILES = webutils.get_static_file_list()
# handled by WhiteNoise
if endpoint == "static" and values.get("filename"):
# We need to verify the "filename" argument: in the jinja templates
@@ -261,11 +257,9 @@ def custom_url_for(endpoint: str, **values):
if arg_filename not in _STATIC_FILES:
# try file in the current theme
theme_name = sxng_request.preferences.get_value("theme")
theme_filename = f"themes/{theme_name}/{arg_filename}"
if theme_filename in _STATIC_FILES:
values["filename"] = theme_filename
return f"static/{values['filename']}"
arg_filename = f"themes/{theme_name}/{arg_filename}"
if arg_filename in _STATIC_FILES:
values["filename"] = arg_filename
if endpoint == "info" and "locale" not in values:
@@ -1430,27 +1424,8 @@ def init():
favicons.init()
def static_headers(headers: Headers, _path: str, _url: str) -> None:
headers['Cache-Control'] = 'public, max-age=30, stale-while-revalidate=60'
for header, value in settings['server']['default_http_headers'].items():
headers[header] = value
app.wsgi_app = WhiteNoise(
app.wsgi_app,
root=settings['ui']['static_path'],
prefix="static",
max_age=None,
allow_all_origins=False,
add_headers_function=static_headers,
)
patch_application(app)
# remove when we drop support for uwsgi
application = app
patch_application(app)
init()
if __name__ == "__main__":

View File

@@ -8,10 +8,10 @@ from :py:obj:`BANGS_URL`.
"""
import json
import httpx
from searx.external_bang import LEAF_KEY
from searx.data import data_dir
from searx.network import get as http_get
DATA_FILE = data_dir / 'external_bangs.json'
@@ -24,7 +24,7 @@ HTTP_COLON = 'http:'
def main():
print(f'fetch bangs from {BANGS_URL}')
response = http_get(BANGS_URL)
response = httpx.get(BANGS_URL)
response.raise_for_status()
ddg_bangs = json.loads(response.content.decode())
trie = parse_ddg_bangs(ddg_bangs)

View File

@@ -75,4 +75,7 @@ pythonpath = ${SEARXNG_SRC}
http = ${SEARXNG_INTERNAL_HTTP}
buffer-size = 8192
# To serve the static files via the WSGI server
static-map = /static=${SEARXNG_STATIC}
static-gzip-all = True
offload-threads = %k

View File

@@ -72,4 +72,7 @@ pythonpath = ${SEARXNG_SRC}
socket = ${SEARXNG_UWSGI_SOCKET}
buffer-size = 8192
# To serve the static files via the WSGI server
static-map = /static=${SEARXNG_STATIC}
static-gzip-all = True
offload-threads = %k

View File

@@ -78,4 +78,7 @@ pythonpath = ${SEARXNG_SRC}
http = ${SEARXNG_INTERNAL_HTTP}
buffer-size = 8192
# To serve the static files via the WSGI server
static-map = /static=${SEARXNG_STATIC}
static-gzip-all = True
offload-threads = %k

View File

@@ -75,4 +75,7 @@ pythonpath = ${SEARXNG_SRC}
socket = ${SEARXNG_UWSGI_SOCKET}
buffer-size = 8192
# To serve the static files via the WSGI server
static-map = /static=${SEARXNG_STATIC}
static-gzip-all = True
offload-threads = %k