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_LOOP="uvloop" \
GRANIAN_BLOCKING_THREADS="4" \ GRANIAN_BLOCKING_THREADS="4" \
GRANIAN_WORKERS_KILL_TIMEOUT="30" \ 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 $CONFIG_PATH
VOLUME $DATA_PATH VOLUME $DATA_PATH

View File

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

View File

@@ -10,8 +10,9 @@ import re
from collections.abc import Iterator from collections.abc import Iterator
from urllib.parse import urlparse, urlunparse, parse_qsl, urlencode from urllib.parse import urlparse, urlunparse, parse_qsl, urlencode
import httpx
from searx.data.core import get_cache, log from searx.data.core import get_cache, log
from searx.network import get as http_get
RuleType = tuple[str, list[str], list[str]] RuleType = tuple[str, list[str], list[str]]
@@ -43,7 +44,7 @@ class TrackerPatternsDB:
self.cache.properties.set("tracker_patterns loaded", "OK") self.cache.properties.set("tracker_patterns loaded", "OK")
self.load() self.load()
# F I X M E: # 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 # in /tmp and will be rebuild during the reboot anyway
def load(self): def load(self):
@@ -70,7 +71,7 @@ class TrackerPatternsDB:
def iter_clear_list(self) -> Iterator[RuleType]: def iter_clear_list(self) -> Iterator[RuleType]:
resp = None resp = None
for url in self.CLEAR_LIST_URL: for url in self.CLEAR_LIST_URL:
resp = http_get(url, timeout=3) resp = httpx.get(url, timeout=3)
if resp.status_code == 200: if resp.status_code == 200:
break break
log.warning(f"TRACKER_PATTERNS: ClearURL ignore HTTP {resp.status_code} {url}") 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 # SPDX-License-Identifier: AGPL-3.0-or-later
"""Wordnik (general)""" """Wordnik (general)
"""
from lxml.html import fromstring from lxml.html import fromstring
from searx.utils import extract_text from searx.utils import extract_text
from searx.network import raise_for_httperror
from searx.result_types import EngineResults
# about # about
about = { about = {
@@ -16,7 +17,7 @@ about = {
"results": 'HTML', "results": 'HTML',
} }
categories = ['dictionaries', 'define'] categories = ['general']
paging = False paging = False
@@ -26,23 +27,46 @@ def request(query, params):
def response(resp): def response(resp):
results = EngineResults() results = []
raise_for_httperror(resp)
dom = fromstring(resp.text) dom = fromstring(resp.text)
word = extract_text(dom.xpath('//*[@id="headword"]/text()'))
definitions = []
for src in dom.xpath('//*[@id="define"]//h3[@class="source"]'): 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'): for def_item in src.xpath('following-sibling::ul[1]/li'):
def_abbr = extract_text(def_item.xpath('.//abbr')).strip() def_abbr = extract_text(def_item.xpath('.//abbr')).strip()
def_text = extract_text(def_item).strip() def_text = extract_text(def_item).strip()
if def_abbr: if def_abbr:
def_text = def_text[len(def_abbr) :].strip() def_text = def_text[len(def_abbr) :].strip()
src_defs.append((def_abbr, def_text))
# use first result as summary definitions.append((src_text, src_defs))
if not item.text:
item.text = def_text
item.definitions.append(def_text)
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 return results

View File

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

View File

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

View File

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

View File

@@ -28,17 +28,16 @@ msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-07-03 14:46+0000\n" "POT-Creation-Date: 2025-07-03 14:46+0000\n"
"PO-Revision-Date: 2025-07-22 10:57+0000\n" "PO-Revision-Date: 2025-06-28 09:58+0000\n"
"Last-Translator: Fjuro <fjuro@alius.cz>\n" "Last-Translator: Fjuro <git@alius.cz>\n"
"Language-Team: Czech <https://translate.codeberg.org/projects/searxng/"
"searxng/cs/>\n"
"Language: cs\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" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\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" "Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING'] #. 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 #: searx/plugins/tracker_url_remover.py:35
msgid "Tracker URL remover" msgid "Tracker URL remover"
msgstr "Odstranit sledovací URL" msgstr "Odstraňovač sledovacích URL"
#: searx/plugins/tracker_url_remover.py:36 #: searx/plugins/tracker_url_remover.py:36
msgid "Remove trackers arguments from the returned URL" msgid "Remove trackers arguments from the returned URL"
@@ -928,7 +927,7 @@ msgstr "archivovaná verze"
#: searx/templates/simple/new_issue.html:64 #: searx/templates/simple/new_issue.html:64
msgid "Start submitting a new issue on GitHub" 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 #: searx/templates/simple/new_issue.html:66
msgid "Please check for existing bugs about this engine on GitHub" msgid "Please check for existing bugs about this engine on GitHub"
@@ -942,11 +941,11 @@ msgstr ""
#: searx/templates/simple/new_issue.html:71 #: searx/templates/simple/new_issue.html:71
msgid "If this is a public instance, please specify the URL in the bug report" 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 #: searx/templates/simple/new_issue.html:72
msgid "Submit a new issue on Github including the above information" 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 #: searx/templates/simple/preferences.html:65
msgid "No HTTPS" msgid "No HTTPS"
@@ -1246,7 +1245,7 @@ msgstr "Vypnuto"
#: searx/templates/simple/filters/time_range.html:1 #: searx/templates/simple/filters/time_range.html:1
#: searx/templates/simple/preferences/engines.html:28 #: searx/templates/simple/preferences/engines.html:28
msgid "Time range" msgid "Time range"
msgstr "Časový interval" msgstr "Čásový interval"
#: searx/templates/simple/filters/time_range.html:3 #: searx/templates/simple/filters/time_range.html:3
msgid "Anytime" msgid "Anytime"
@@ -2367,3 +2366,4 @@ msgstr "skrýt video"
#~ msgid "Change SearXNG layout" #~ msgid "Change SearXNG layout"
#~ msgstr "Změnit vzhled SearXNG" #~ msgstr "Změnit vzhled SearXNG"

View File

@@ -21,16 +21,15 @@ msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-07-03 14:46+0000\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" "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: 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" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\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" "Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING'] #. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -1572,7 +1571,7 @@ msgstr ""
#: searx/templates/simple/preferences/theme.html:2 #: searx/templates/simple/preferences/theme.html:2
msgid "Theme" msgid "Theme"
msgstr "Kujundus" msgstr "Teema"
#: searx/templates/simple/preferences/theme.html:14 #: searx/templates/simple/preferences/theme.html:14
msgid "Change the layout of SearXNG" msgid "Change the layout of SearXNG"
@@ -2352,3 +2351,4 @@ msgstr "peida video"
#~ msgid "Change SearXNG layout" #~ msgid "Change SearXNG layout"
#~ msgstr "Muuda SearXNG paigutust" #~ msgstr "Muuda SearXNG paigutust"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,19 +1,18 @@
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
# pylint: disable=,missing-module-docstring,missing-class-docstring # pylint: disable=,missing-module-docstring,missing-class-docstring
import importlib
import logging
import os import os
import shlex import shlex
import subprocess import subprocess
import logging
import importlib
# fallback values # fallback values
# if there is searx.version_frozen module, and it is not possible to get the git tag # if there is searx.version_frozen module, and it is not possible to get the git tag
VERSION_STRING = "1.0.0" VERSION_STRING = "1.0.0"
VERSION_TAG = "1.0.0" VERSION_TAG = "1.0.0"
DOCKER_TAG = "1.0.0" GIT_URL = "unknow"
GIT_URL = "unknown" GIT_BRANCH = "unknow"
GIT_BRANCH = "unknown"
logger = logging.getLogger("searx") logger = logging.getLogger("searx")
@@ -70,7 +69,6 @@ def get_git_version():
# which depended on the git version: '2023.05.06+..' --> '2023.5.6+..' # which depended on the git version: '2023.05.06+..' --> '2023.5.6+..'
git_commit_date_hash = git_commit_date_hash.replace('.0', '.') git_commit_date_hash = git_commit_date_hash.replace('.0', '.')
tag_version = git_version = git_commit_date_hash 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 # add "+dirty" suffix if there are uncommitted changes except searx/settings.yml
try: try:
@@ -80,29 +78,10 @@ def get_git_version():
git_version += "+dirty" git_version += "+dirty"
else: else:
logger.warning('"%s" returns an unexpected return code %i', e.returncode, e.cmd) 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 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: try:
vf = importlib.import_module('searx.version_frozen') vf = importlib.import_module('searx.version_frozen')
VERSION_STRING, VERSION_TAG, DOCKER_TAG, GIT_URL, GIT_BRANCH = ( VERSION_STRING, VERSION_TAG, DOCKER_TAG, GIT_URL, GIT_BRANCH = (
@@ -113,7 +92,18 @@ try:
vf.GIT_BRANCH, vf.GIT_BRANCH,
) )
except ImportError: 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) logger.info("version: %s", VERSION_STRING)
@@ -121,8 +111,6 @@ if __name__ == "__main__":
import sys import sys
if len(sys.argv) >= 2 and sys.argv[1] == "freeze": 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) # freeze the version (to create an archive outside a git repository)
python_code = f"""# SPDX-License-Identifier: AGPL-3.0-or-later python_code = f"""# SPDX-License-Identifier: AGPL-3.0-or-later
# pylint: disable=missing-module-docstring # 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 werkzeug.serving import is_running_from_reloader
from whitenoise import WhiteNoise
from whitenoise.base import Headers
import flask import flask
from flask import ( from flask import (
@@ -150,7 +147,7 @@ STATS_SORT_PARAMETERS = {
} }
# Flask app # 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.trim_blocks = True
app.jinja_env.lstrip_blocks = True app.jinja_env.lstrip_blocks = True
@@ -248,7 +245,6 @@ def custom_url_for(endpoint: str, **values):
if not _STATIC_FILES: if not _STATIC_FILES:
_STATIC_FILES = webutils.get_static_file_list() _STATIC_FILES = webutils.get_static_file_list()
# handled by WhiteNoise
if endpoint == "static" and values.get("filename"): if endpoint == "static" and values.get("filename"):
# We need to verify the "filename" argument: in the jinja templates # 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: if arg_filename not in _STATIC_FILES:
# try file in the current theme # try file in the current theme
theme_name = sxng_request.preferences.get_value("theme") theme_name = sxng_request.preferences.get_value("theme")
theme_filename = f"themes/{theme_name}/{arg_filename}" arg_filename = f"themes/{theme_name}/{arg_filename}"
if theme_filename in _STATIC_FILES: if arg_filename in _STATIC_FILES:
values["filename"] = theme_filename values["filename"] = arg_filename
return f"static/{values['filename']}"
if endpoint == "info" and "locale" not in values: if endpoint == "info" and "locale" not in values:
@@ -1430,27 +1424,8 @@ def init():
favicons.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 application = app
patch_application(app)
init() init()
if __name__ == "__main__": if __name__ == "__main__":

View File

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

View File

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

View File

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

View File

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

View File

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