1
0
Fork 0

Merge branch 'searxng:master' into gl/feature/mullvad-leta

This commit is contained in:
Grant Lanham Jr 2024-01-12 12:28:38 -05:00 committed by GitHub
commit 11e82887b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
45 changed files with 503 additions and 431 deletions

View File

@ -163,7 +163,6 @@ jobs:
- name: Update transations
id: update
run: |
git restore utils/brand.env
make V=1 weblate.push.translations
dockers:

View File

@ -2,7 +2,7 @@
## Resources in the documentation
* [Development quickstart](https://docs.searxng.org/dev/contribution_guide.html)
* [Development quickstart](https://docs.searxng.org/dev/quickstart.html)
* [Contribution guide](https://docs.searxng.org/dev/contribution_guide.html)
## Submitting PRs

View File

@ -56,7 +56,7 @@ test.shell:
$(Q)shellcheck -x -s dash \
dockerfiles/docker-entrypoint.sh
$(Q)shellcheck -x -s bash \
utils/brand.env \
utils/brand.sh \
$(MTOOLS) \
utils/lib.sh \
utils/lib_sxng*.sh \
@ -74,7 +74,6 @@ test.shell:
# wrap ./manage script
MANAGE += buildenv
MANAGE += weblate.translations.commit weblate.push.translations
MANAGE += data.all data.traits data.useragents
MANAGE += docs.html docs.live docs.gh-pages docs.prebuild docs.clean

View File

@ -21,17 +21,13 @@
X-Robots-Tag : noindex, nofollow
Referrer-Policy : no-referrer
``base_url`` : ``$SEARXNG_URL`` :ref:`buildenv <make buildenv>`
``base_url`` : ``$SEARXNG_URL``
The base URL where SearXNG is deployed. Used to create correct inbound links.
If you change the value, don't forget to rebuild instance's environment
(:ref:`utils/brand.env <make buildenv>`)
``port`` & ``bind_address``: ``$SEARXNG_PORT`` & ``$SEARXNG_BIND_ADDRESS`` :ref:`buildenv <make buildenv>`
``port`` & ``bind_address``: ``$SEARXNG_PORT`` & ``$SEARXNG_BIND_ADDRESS``
Port number and *bind address* of the SearXNG web application if you run it
directly using ``python searx/webapp.py``. Doesn't apply to a SearXNG
services running behind a proxy and using socket communications. If you
change the value, don't forget to rebuild instance's environment
(:ref:`utils/brand.env <make buildenv>`)
services running behind a proxy and using socket communications.
``secret_key`` : ``$SEARXNG_SECRET``
Used for cryptography purpose.

View File

@ -61,13 +61,9 @@ working tree and release a ``make install`` to get a virtualenv with a
$ make install
PYENV [virtualenv] installing ./requirements*.txt into local/py3
...
PYENV OK
PYENV [install] pip install -e 'searx[test]'
...
Successfully installed argparse-1.4.0 searx
BUILDENV INFO:searx:load the default settings from ./searx/settings.yml
BUILDENV INFO:searx:Initialisation done
BUILDENV build utils/brand.env
Successfully installed searxng-2023.7.19+a446dea1b
If you release ``make install`` multiple times the installation will only
rebuild if the sha256 sum of the *requirement files* fails. With other words:
@ -82,13 +78,9 @@ the check fails if you edit the requirements listed in
...
PYENV [virtualenv] installing ./requirements*.txt into local/py3
...
PYENV OK
PYENV [install] pip install -e 'searx[test]'
...
Successfully installed argparse-1.4.0 searx
BUILDENV INFO:searx:load the default settings from ./searx/settings.yml
BUILDENV INFO:searx:Initialisation done
BUILDENV build utils/brand.env
Successfully installed searxng-2023.7.19+a446dea1b
.. sidebar:: drop environment
@ -98,67 +90,6 @@ the check fails if you edit the requirements listed in
If you think, something goes wrong with your ./local environment or you change
the :origin:`setup.py` file, you have to call :ref:`make clean`.
.. _make buildenv:
``make buildenv``
=================
Rebuild instance's environment with the modified settings from the
:ref:`settings brand` and :ref:`settings server` section of your
:ref:`settings.yml <settings location>`.
What is the :origin:`utils/brand.env` needed for and why do you need to rebuild
it if necessary?
Short answer: :ref:`installation and maintenance <searxng maintenance>`
scripts are running outside of instance's runtime environment and need some
values defined in the runtime environment.
All the SearXNG setups are centralized in the :ref:`settings.yml` file. This
setup is available as long we are in a *installed instance*. E.g. the
*installed instance* on the server or the *installed developer instance* at
``./local`` (the later one is created by a :ref:`make install <make install>` or
:ref:`make run <make run>`).
Tasks running outside of an *installed instance*, especially :ref:`installation
and maintenance <searxng maintenance>` tasks running at (pre-) installation time
do not have access to the SearXNG setup (from a *installed instance*). Those
tasks need a *build environment*.
The ``make buildenv`` target will update the *build environment* in:
- :origin:`utils/brand.env`
Tasks running outside of an *installed instance*, need the following settings
from the YAML configuration:
- ``SEARXNG_URL`` from :ref:`server.base_url <settings server>` (aka
``PUBLIC_URL``)
- ``SEARXNG_BIND_ADDRESS`` from :ref:`server.bind_address <settings server>`
- ``SEARXNG_PORT`` from :ref:`server.port <settings server>`
The ``GIT_URL`` and ``GIT_BRANCH`` in the origin:`utils/brand.env` file, are
read from the git VCS and the branch that is checked out when ``make
buildenv`` command runs.
.. _brand:
**I would like to create my own brand, how should I proceed?**
Create a remote branch (``example.org``), checkout the remote branch (on your
local developer desktop) and in the :origin:`searx/settings.yml` file in the
:ref:`settings server` section set ``base_url``. Run ``make buildenv`` and
create a commit for your brand.
On your server you clone the branch (``example.org``) into your HOME folder
``~`` from where you run the :ref:`installation <installation>` and
:ref:`maintenance <searxng maintenance>` task.
To upgrade you brand, rebase on SearXNG's master branch (on your local
developer desktop), force push it to your remote branch. Go to your server, do
a force pull and run :ref:`sudo -H ./utils/searxng.sh instance update <update
searxng>`.
.. _make node.env:
Node.js environment (``make node.env``)

View File

@ -69,7 +69,7 @@ Parameters
``autocomplete`` : default from :ref:`settings search`
[ ``google``, ``dbpedia``, ``duckduckgo``, ``mwmbl``, ``startpage``,
``wikipedia``, ``swisscows``, ``qwant`` ]
``wikipedia``, ``stract``, ``swisscows``, ``qwant`` ]
Service which completes words as you type.

26
manage
View File

@ -83,8 +83,6 @@ PYLINT_OPTIONS="-m pylint -j 0 --rcfile .pylintrc"
help() {
nvm.help
cat <<EOF
buildenv:
rebuild ./utils/brand.env
webapp.:
run : run developer instance
docs.:
@ -155,29 +153,6 @@ webapp.run() {
SEARXNG_DEBUG=1 pyenv.cmd python -m searx.webapp
}
buildenv() {
# settings file from repository's working tree are used by default
SEARXNG_SETTINGS_PATH="${REPO_ROOT}/searx/settings.yml"
if [ -f /etc/searx/settings.yml ]; then
err_msg "settings.yml in /etc/searx/ is deprecated, move file to folder /etc/searxng/"
fi
if [ -r '/etc/searxng/settings.yml' ]; then
if ask_yn "should settings read from: /etc/searxng/settings.yml"; then
SEARXNG_SETTINGS_PATH='/etc/searxng/settings.yml'
fi
fi
export SEARXNG_SETTINGS_PATH
(
set -e
SEARXNG_DEBUG=1 pyenv.cmd python utils/build_env.py 2>&1 \
| prefix_stdout "${_Blue}BUILDENV${_creset} "
)
return "${PIPESTATUS[0]}"
}
docker.push() {
docker.build push
}
@ -345,7 +320,6 @@ pyenv.install() {
pyenv
build_msg PYENV "[install] pip install -e 'searx${PY_SETUP_EXTRAS}'"
"${PY_ENV_BIN}/python" -m pip install -e ".${PY_SETUP_EXTRAS}"
buildenv
)
local exit_val=$?
if [ ! $exit_val -eq 0 ]; then

View File

@ -2,8 +2,8 @@ certifi==2023.11.17
babel==2.14.0
flask-babel==4.0.0
flask==3.0.0
jinja2==3.1.2
lxml==4.9.4
jinja2==3.1.3
lxml==5.1.0
pygments==2.17.2
python-dateutil==2.8.2
pyyaml==6.0.1

View File

@ -6,7 +6,7 @@
# pylint: disable=use-dict-literal
import json
from urllib.parse import urlencode
from urllib.parse import urlencode, quote_plus
import lxml
from httpx import HTTPError
@ -16,17 +16,26 @@ from searx.engines import (
engines,
google,
)
from searx.network import get as http_get
from searx.network import get as http_get, post as http_post
from searx.exceptions import SearxEngineResponseException
def get(*args, **kwargs):
def update_kwargs(**kwargs):
if 'timeout' not in kwargs:
kwargs['timeout'] = settings['outgoing']['request_timeout']
kwargs['raise_for_httperror'] = True
def get(*args, **kwargs):
update_kwargs(**kwargs)
return http_get(*args, **kwargs)
def post(*args, **kwargs):
update_kwargs(**kwargs)
return http_post(*args, **kwargs)
def brave(query, _lang):
# brave search autocompleter
url = 'https://search.brave.com/api/suggest?'
@ -145,6 +154,18 @@ def seznam(query, _lang):
]
def stract(query, _lang):
# stract autocompleter (beta)
url = f"https://stract.com/beta/api/autosuggest?q={quote_plus(query)}"
resp = post(url)
if not resp.ok:
return []
return [suggestion['raw'] for suggestion in resp.json()]
def startpage(query, sxng_locale):
"""Autocomplete from Startpage. Supports Startpage's languages"""
lui = engines['startpage'].traits.get_language(sxng_locale, 'english')
@ -223,6 +244,7 @@ backends = {
'mwmbl': mwmbl,
'seznam': seznam,
'startpage': startpage,
'stract': stract,
'swisscows': swisscows,
'qwant': qwant,
'wikipedia': wikipedia,

43
searx/engines/stract.py Normal file
View File

@ -0,0 +1,43 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# lint: pylint
"""Stract is an independent open source search engine.
At this state, it's still in beta and hence this implementation will need to be updated once beta ends.
"""
from json import dumps
about = {
"website": "https://stract.com/",
"use_official_api": True,
"official_api_documentation": "https://stract.com/beta/api/docs/#/search/api",
"require_api_key": False,
"results": "JSON",
}
categories = ['general']
paging = True
search_url = "https://stract.com/beta/api/search"
def request(query, params):
params['url'] = search_url
params['method'] = "POST"
params['headers'] = {'Accept': 'application/json', 'Content-Type': 'application/json'}
params['data'] = dumps({'query': query, 'page': params['pageno'] - 1})
return params
def response(resp):
results = []
for result in resp.json()["webpages"]:
results.append(
{
'url': result['url'],
'title': result['title'],
'content': ''.join(fragment['text'] for fragment in result['snippet']['text']['fragments']),
}
)
return results

View File

@ -24,7 +24,7 @@ search:
# Filter results. 0: None, 1: Moderate, 2: Strict
safe_search: 0
# Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "yandex", "mwmbl",
# "seznam", "startpage", "swisscows", "qwant", "wikipedia" - leave blank to turn it off
# "seznam", "startpage", "stract", "swisscows", "qwant", "wikipedia" - leave blank to turn it off
# by default.
autocomplete: ""
# minimun characters to type before autocompleter starts
@ -66,9 +66,7 @@ search:
- html
server:
# If you change port, bind_address or base_url don't forget to rebuild
# instance's environment (make buildenv). Is overwritten by ${SEARXNG_PORT}
# and ${SEARXNG_BIND_ADDRESS}
# Is overwritten by ${SEARXNG_PORT} and ${SEARXNG_BIND_ADDRESS}
port: 8888
bind_address: "127.0.0.1"
# public URL of the instance, to ensure correct inbound links. Is overwritten
@ -2093,6 +2091,11 @@ engines:
timeout: 5.0
disabled: true
- name: stract
engine: stract
shortcut: str
disabled: true
- name: svgrepo
engine: svgrepo
shortcut: svg

View File

@ -6,43 +6,44 @@
# Markus Heiser <markus.heiser@darmarit.de>, 2022.
# Sean Botha <seanbotha@gmail.com>, 2022.
# jestie <jestie@gmail.com>, 2023.
# return42 <markus.heiser@darmarit.de>, 2023.
# return42 <markus.heiser@darmarit.de>, 2023, 2024.
# APoniatowski <adam@poniatowski.dev>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-12-23 08:54+0000\n"
"PO-Revision-Date: 2023-12-08 07:07+0000\n"
"Last-Translator: APoniatowski <adam@poniatowski.dev>\n"
"PO-Revision-Date: 2024-01-03 15:56+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language-Team: Afrikaans <https://translate.codeberg.org/projects/searxng/"
"searxng/af/>\n"
"Language: af\n"
"Language-Team: Afrikaans "
"<https://translate.codeberg.org/projects/searxng/searxng/af/>\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.3.1\n"
"Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
#: searx/searxng.msg
msgid "without further subgrouping"
msgstr "sonder verdere subgroeperin"
msgstr "sonder verdere subgroepering"
#. CONSTANT_NAMES['DEFAULT_CATEGORY']
#: searx/searxng.msg
msgid "other"
msgstr "ande"
msgstr "ander"
#. CATEGORY_NAMES['FILES']
#: searx/searxng.msg
msgid "files"
msgstr "lêer"
msgstr "lêers"
#. CATEGORY_NAMES['GENERAL']
#: searx/searxng.msg
msgid "general"
msgstr "algemen"
msgstr "algemeen"
#. CATEGORY_NAMES['MUSIC']
#: searx/searxng.msg
@ -67,7 +68,7 @@ msgstr "video's"
#. CATEGORY_NAMES['IT']
#: searx/searxng.msg
msgid "it"
msgstr "it"
msgstr "inligtingstegnologie"
#. CATEGORY_NAMES['NEWS']
#: searx/searxng.msg
@ -122,7 +123,7 @@ msgstr "bewaarplekke"
#. CATEGORY_GROUPS['SOFTWARE_WIKIS']
#: searx/searxng.msg
msgid "software wikis"
msgstr "programmatuur wiki's"
msgstr "sagteware wiki's"
#. CATEGORY_GROUPS['WEB']
#: searx/searxng.msg
@ -343,7 +344,7 @@ msgstr "boekgradering"
#: searx/engines/zlibrary.py:131
msgid "File quality"
msgstr ""
msgstr "Lêer kwaliteit"
#: searx/plugins/hash_plugin.py:24
msgid "Converts strings to different hash digests."
@ -507,7 +508,6 @@ msgid "cached"
msgstr "gekas"
#: searx/templates/simple/macros.html:45
#, fuzzy
msgid "proxied"
msgstr "gevolmagtig"
@ -524,11 +524,9 @@ msgid "I confirm there is no existing bug about the issue I encounter"
msgstr "Ek bevestig daar is geen bestaande gogga oor die probleem wat ek teekom"
#: searx/templates/simple/new_issue.html:71
#, fuzzy
msgid "If this is a public instance, please specify the URL in the bug report"
msgstr ""
"As dit 'n publieke geval is, spesifiseer asseblief die URL in die "
"foutverslag"
"As dit 'n publieke geval is, spesifiseer asseblief die URL in die foutverslag"
#: searx/templates/simple/new_issue.html:72
msgid "Submit a new issue on Github including the above information"
@ -541,7 +539,6 @@ msgstr "Geen HTTPS"
#: searx/templates/simple/elements/engines_msg.html:18
#: searx/templates/simple/preferences.html:69
#: searx/templates/simple/preferences.html:70
#, fuzzy
msgid "View error logs and submit a bug report"
msgstr "Bekyk foutlogboeke en dien 'n foutverslag in"
@ -569,7 +566,6 @@ msgid "P95"
msgstr "P95"
#: searx/templates/simple/preferences.html:136
#, fuzzy
msgid "Failed checker test(s): "
msgstr "Mislukte toetsertoets(e): "
@ -648,7 +644,6 @@ msgstr "Soek vir..."
#: searx/templates/simple/search.html:10
#: searx/templates/simple/simple_search.html:6
#, fuzzy
msgid "clear"
msgstr "maak skoon"
@ -693,7 +688,6 @@ msgid "HTTP"
msgstr "HTTP"
#: searx/templates/simple/stats.html:61
#, fuzzy
msgid "Processing"
msgstr "Verwerking"
@ -731,27 +725,27 @@ msgstr "Funksie"
#: searx/templates/simple/stats.html:121
msgid "Code"
msgstr ""
msgstr "Kode"
#: searx/templates/simple/stats.html:128
msgid "Checker"
msgstr ""
msgstr "Inspekteur"
#: searx/templates/simple/stats.html:131
msgid "Failed test"
msgstr ""
msgstr "Mislukte toets"
#: searx/templates/simple/stats.html:132
msgid "Comment(s)"
msgstr ""
msgstr "Opmerking(s)"
#: searx/templates/simple/elements/apis.html:3
msgid "Download results"
msgstr ""
msgstr "Laai resultate af"
#: searx/templates/simple/elements/engines_msg.html:7
msgid "Messages from the search engines"
msgstr ""
msgstr "Boodskappe van die soek enjins"
#: searx/templates/simple/elements/engines_msg.html:12
msgid "Error!"
@ -759,23 +753,23 @@ msgstr "Fout!"
#: searx/templates/simple/elements/engines_msg.html:13
msgid "Engines cannot retrieve results"
msgstr ""
msgstr "Enjins kan nie resultate ophaal nie"
#: searx/templates/simple/elements/search_url.html:3
msgid "Search URL"
msgstr ""
msgstr "Soek URL"
#: searx/templates/simple/elements/search_url.html:4
msgid "Copied"
msgstr ""
msgstr "Gekopieer"
#: searx/templates/simple/elements/search_url.html:4
msgid "Copy"
msgstr ""
msgstr "kopieer"
#: searx/templates/simple/elements/suggestions.html:3
msgid "Suggestions"
msgstr ""
msgstr "Voorstelle"
#: searx/templates/simple/filters/languages.html:1
#: searx/templates/simple/preferences/language.html:2
@ -790,7 +784,7 @@ msgstr "Verstek taal"
#: searx/templates/simple/filters/languages.html:4
#: searx/templates/simple/preferences/language.html:11
msgid "Auto-detect"
msgstr ""
msgstr "Outo-bespeur"
#: searx/templates/simple/filters/safesearch.html:1
#: searx/templates/simple/filters/safesearch.html:2
@ -823,67 +817,68 @@ msgstr "Tydreeks"
#: searx/templates/simple/filters/time_range.html:3
msgid "Anytime"
msgstr ""
msgstr "Enige tyd"
#: searx/templates/simple/filters/time_range.html:6
msgid "Last day"
msgstr ""
msgstr "Laaste dag"
#: searx/templates/simple/filters/time_range.html:9
msgid "Last week"
msgstr ""
msgstr "Laas week"
#: searx/templates/simple/filters/time_range.html:12
msgid "Last month"
msgstr ""
msgstr "Laas maand"
#: searx/templates/simple/filters/time_range.html:15
msgid "Last year"
msgstr ""
msgstr "Laas jaar"
#: searx/templates/simple/messages/no_cookies.html:3
msgid "Information!"
msgstr ""
msgstr "Informasie!"
#: searx/templates/simple/messages/no_cookies.html:4
msgid "currently, there are no cookies defined."
msgstr ""
msgstr "tans is daar geen koekies gedefinieer nie."
#: searx/templates/simple/messages/no_results.html:6
msgid "Sorry!"
msgstr ""
msgstr "Jammer!"
#: searx/templates/simple/messages/no_results.html:12
msgid "No results were found. You can try to:"
msgstr ""
msgstr "Geen resultate was gevind nie. Jy kan probeer om:"
#: searx/templates/simple/messages/no_results.html:14
msgid "There are no more results. You can try to:"
msgstr ""
msgstr "Daar is geen meer resultate nie. Jy kan probeer om:"
#: searx/templates/simple/messages/no_results.html:19
msgid "Refresh the page."
msgstr ""
msgstr "Verfris die bladsy."
#: searx/templates/simple/messages/no_results.html:20
msgid "Search for another query or select another category (above)."
msgstr ""
msgstr "Soek vir 'n ander navraag of kies 'n ander kategorie (hierbo)."
#: searx/templates/simple/messages/no_results.html:21
msgid "Change the search engine used in the preferences:"
msgstr ""
msgstr "Verander die soekenjin wat in die voorkeure gebruik word:"
#: searx/templates/simple/messages/no_results.html:22
msgid "Switch to another instance:"
msgstr ""
msgstr "Skakel oor na 'n ander geval:"
#: searx/templates/simple/messages/no_results.html:24
msgid "Search for another query or select another category."
msgstr ""
msgstr "Soek vir 'n ander navraag of kies 'n ander kategorie."
#: searx/templates/simple/messages/no_results.html:25
msgid "Go back to the previous page using the previous page button."
msgstr ""
"Gaan terug na die vorige bladsy deur die vorige bladsy-knoppie te gebruik."
#: searx/templates/simple/preferences/answerers.html:4
#: searx/templates/simple/preferences/engines.html:17
@ -923,9 +918,8 @@ msgid "Find stuff as you type"
msgstr "Vind goed soos jy tik"
#: searx/templates/simple/preferences/center_alignment.html:2
#, fuzzy
msgid "Center Alignment"
msgstr "Sentrumbelyning"
msgstr "Middelbelyning"
#: searx/templates/simple/preferences/center_alignment.html:14
msgid "Displays results in the center of the page (Oscar layout)."
@ -960,34 +954,40 @@ msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr ""
"Let wel: om gepasmaakte instellings in die soek-URL te spesifiseer, kan "
"privaatheid verminder deur data na die geklikte resultaatwebwerwe te lek."
#: searx/templates/simple/preferences/cookies.html:35
msgid "URL to restore your preferences in another browser"
msgstr ""
msgstr "URL om jou voorkeure in 'n ander blaaier te herstel"
#: searx/templates/simple/preferences/cookies.html:44
msgid ""
"Specifying custom settings in the preferences URL can be used to sync "
"preferences across devices."
msgstr ""
"Deur gepasmaakte instellings in die voorkeur-URL te spesifiseer, kan dit "
"gebruik word om voorkeure oor toestelle heen te sinkroniseer."
#: searx/templates/simple/preferences/doi_resolver.html:2
msgid "Open Access DOI resolver"
msgstr ""
msgstr "Ooptoegang DOI-oplosser"
#: searx/templates/simple/preferences/doi_resolver.html:14
msgid "Select service used by DOI rewrite"
msgstr ""
msgstr "Kies diens wat deur DOI herskryf gebruik word"
#: searx/templates/simple/preferences/engines.html:9
msgid ""
"This tab does not exists in the user interface, but you can search in "
"these engines by its !bangs."
msgstr ""
"Hierdie oortjie bestaan nie in die gebruikerskoppelvlak nie, maar jy kan in "
"hierdie enjins soek volgens sy !bangs."
#: searx/templates/simple/preferences/engines.html:19
msgid "!bang"
msgstr ""
msgstr "!bang"
#: searx/templates/simple/preferences/engines.html:20
msgid "Supports selected language"
@ -1010,20 +1010,18 @@ msgstr ""
"hierdie data oor jou te stoor nie."
#: searx/templates/simple/preferences/footer.html:3
#, fuzzy
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr ""
"Hierdie koekies dien jou enigste gerief, ons gebruik nie hierdie koekies "
"om jou op te spoor nie."
"Hierdie koekies dien jou enigste gerief, ons gebruik nie hierdie koekies om "
"jou op te spoor nie."
#: searx/templates/simple/preferences/footer.html:6
msgid "Save"
msgstr "Stoor"
#: searx/templates/simple/preferences/footer.html:9
#, fuzzy
msgid "Reset defaults"
msgstr "Stel verstekwaardes terug"
@ -1032,22 +1030,20 @@ msgid "Back"
msgstr "Terug"
#: searx/templates/simple/preferences/hotkeys.html:2
#, fuzzy
msgid "Hotkeys"
msgstr "Sneltoetse"
msgstr "sleutelbord kortpaaie"
#: searx/templates/simple/preferences/hotkeys.html:13
msgid "Vim-like"
msgstr "Vim-agtig"
#: searx/templates/simple/preferences/hotkeys.html:18
#, fuzzy
msgid ""
"Navigate search results with hotkeys (JavaScript required). Press \"h\" "
"key on main or result page to get help."
msgstr ""
"Navigeer soekresultate met sneltoetse (JavaScript vereis). Druk "
"\"h\"-sleutel op hoof- of resultaatbladsy om hulp te kry."
"Navigeer soekresultate met sneltoetse (JavaScript vereis). Druk \"h\"-"
"sleutel op hoof- of resultaatbladsy om hulp te kry."
#: searx/templates/simple/preferences/image_proxy.html:2
msgid "Image proxy"
@ -1072,7 +1068,6 @@ msgid "What language do you prefer for search?"
msgstr "Watter taal verkies jy vir soek?"
#: searx/templates/simple/preferences/language.html:25
#, fuzzy
msgid "Choose Auto-detect to let SearXNG detect the language of your query."
msgstr "Kies Outo-detect om SearXNG die taal van jou navraag te laat opspoor."
@ -1113,7 +1108,6 @@ msgid "Search on category select"
msgstr "Soek op kategorie selekteer"
#: searx/templates/simple/preferences/search_on_category_select.html:14
#, fuzzy
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories"
@ -1138,7 +1132,6 @@ msgid "Choose auto to follow your browser settings"
msgstr "Kies outo om jou blaaier verstellings te volg"
#: searx/templates/simple/preferences/tokens.html:2
#, fuzzy
msgid "Engine tokens"
msgstr "Enjin tekens"
@ -1147,7 +1140,6 @@ msgid "Access tokens for private engines"
msgstr "Toegangstekens vir private enjins"
#: searx/templates/simple/preferences/ui_locale.html:2
#, fuzzy
msgid "Interface language"
msgstr "Koppelvlak taal"
@ -1156,9 +1148,8 @@ msgid "Change the language of the layout"
msgstr "Verander die uitleg taal"
#: searx/templates/simple/result_templates/code.html:13
#, fuzzy
msgid "repo"
msgstr "repo"
msgstr "bewaarplek"
#: searx/templates/simple/result_templates/default.html:6
msgid "show media"
@ -1198,7 +1189,6 @@ msgid "hide map"
msgstr "versteek kaart"
#: searx/templates/simple/result_templates/paper.html:5
#, fuzzy
msgid "Published date"
msgstr "Gepubliseerde datum"
@ -1207,7 +1197,6 @@ msgid "Journal"
msgstr "Joernaal"
#: searx/templates/simple/result_templates/paper.html:22
#, fuzzy
msgid "Editor"
msgstr "Redakteur"
@ -1216,9 +1205,8 @@ msgid "Publisher"
msgstr "Uitgewer"
#: searx/templates/simple/result_templates/paper.html:24
#, fuzzy
msgid "Type"
msgstr "Tipe"
msgstr "Tik"
#: searx/templates/simple/result_templates/paper.html:25
msgid "Tags"
@ -1257,9 +1245,8 @@ msgid "Seeder"
msgstr "Saaier"
#: searx/templates/simple/result_templates/torrent.html:9
#, fuzzy
msgid "Leecher"
msgstr "Leecher"
msgstr "Suier"
#: searx/templates/simple/result_templates/torrent.html:11
msgid "Filesize"
@ -1452,4 +1439,3 @@ msgstr "versteek video"
#~ "use another query or search in "
#~ "more categories."
#~ msgstr ""

View File

@ -13,18 +13,19 @@
# alexgabi <alexgabi@disroot.org>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-12-23 08:54+0000\n"
"PO-Revision-Date: 2023-10-15 20:53+0000\n"
"PO-Revision-Date: 2023-12-30 09:19+0000\n"
"Last-Translator: alexgabi <alexgabi@disroot.org>\n"
"Language-Team: Basque <https://translate.codeberg.org/projects/searxng/"
"searxng/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"
"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.3.1\n"
"Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@ -759,11 +760,11 @@ msgstr "Bilaketaren URLa"
#: searx/templates/simple/elements/search_url.html:4
msgid "Copied"
msgstr ""
msgstr "Kopiatuta"
#: searx/templates/simple/elements/search_url.html:4
msgid "Copy"
msgstr ""
msgstr "Kopiatu"
#: searx/templates/simple/elements/suggestions.html:3
msgid "Suggestions"
@ -851,7 +852,7 @@ msgstr "Ez da emaitzarik aurkitu. Saia zaitezke:"
#: searx/templates/simple/messages/no_results.html:14
msgid "There are no more results. You can try to:"
msgstr ""
msgstr "Ez dago emaitza gehiago. Saia zaitezke:"
#: searx/templates/simple/messages/no_results.html:19
msgid "Refresh the page."
@ -871,11 +872,11 @@ msgstr "Aldatu beste instantzia batera:"
#: searx/templates/simple/messages/no_results.html:24
msgid "Search for another query or select another category."
msgstr ""
msgstr "Bilatu beste kontsulta bat edo hautatu beste kategoria bat."
#: searx/templates/simple/messages/no_results.html:25
msgid "Go back to the previous page using the previous page button."
msgstr ""
msgstr "Itzuli aurreko orrialdera aurreko orrialdeko botoia erabiliz."
#: searx/templates/simple/preferences/answerers.html:4
#: searx/templates/simple/preferences/engines.html:17
@ -1685,4 +1686,3 @@ msgstr "ezkutatu bideoa"
#~ "ez dugu emaitzarik aurkitu. Mesedez "
#~ "beste kontsulta bat egin edo bilatu "
#~ "kategoria gehiagotan."

View File

@ -11,23 +11,24 @@
# stf <stefan.marsiske@gmail.com>, 2014
# Markus Heiser <markus.heiser@darmarit.de>, 2022, 2023.
# Shopimisrel <shopisrael12@gmail.com>, 2022.
# return42 <markus.heiser@darmarit.de>, 2023.
# return42 <markus.heiser@darmarit.de>, 2023, 2024.
# shoko <nickskorohod@outlook.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-12-23 08:54+0000\n"
"PO-Revision-Date: 2023-11-05 21:47+0000\n"
"PO-Revision-Date: 2024-01-03 15:56+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language-Team: Hebrew <https://translate.codeberg.org/projects/searxng/"
"searxng/he/>\n"
"Language: he\n"
"Language-Team: Hebrew "
"<https://translate.codeberg.org/projects/searxng/searxng/he/>\n"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 "
"&& n % 10 == 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) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
"n % 10 == 0) ? 2 : 3));\n"
"X-Generator: Weblate 5.3.1\n"
"Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@ -73,7 +74,7 @@ msgstr "וידאו"
#. CATEGORY_NAMES['IT']
#: searx/searxng.msg
msgid "it"
msgstr "IT"
msgstr "טכנולוגיה"
#. CATEGORY_NAMES['NEWS']
#: searx/searxng.msg
@ -1668,4 +1669,3 @@ msgstr "הסתר וידאו"
#~ "use another query or search in "
#~ "more categories."
#~ msgstr "לא מצאנו תוצאות. אנא נסו שאילתא אחרת או חפשו בתוך יותר קטגוריות."

View File

@ -7,31 +7,32 @@
# Issa1552 <fairfull.playing@gmail.com>, 2020
# Matija Kromar <matija.kromar@gmail.com>, 2022.
# Markus Heiser <markus.heiser@darmarit.de>, 2022.
# SecularSteve <fairfull.playing@gmail.com>, 2022.
# SecularSteve <fairfull.playing@gmail.com>, 2022, 2023.
# prljav <marin.ruskica@gmail.com>, 2022.
# ptomljanovic <phill2605@gmail.com>, 2022.
# return42 <markus.heiser@darmarit.de>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-12-23 08:54+0000\n"
"PO-Revision-Date: 2023-09-12 14:53+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"PO-Revision-Date: 2023-12-29 14:09+0000\n"
"Last-Translator: SecularSteve <fairfull.playing@gmail.com>\n"
"Language-Team: Croatian <https://translate.codeberg.org/projects/searxng/"
"searxng/hr/>\n"
"Language: hr\n"
"Language-Team: Croatian "
"<https://translate.codeberg.org/projects/searxng/searxng/hr/>\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.3.1\n"
"Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
#: searx/searxng.msg
msgid "without further subgrouping"
msgstr ""
msgstr "bez daljnjeg podgrupiranja"
#. CONSTANT_NAMES['DEFAULT_CATEGORY']
#: searx/searxng.msg
@ -276,19 +277,19 @@ msgstr "Kanal"
#: searx/engines/radio_browser.py:104
msgid "radio"
msgstr ""
msgstr "radio"
#: searx/engines/radio_browser.py:106
msgid "bitrate"
msgstr ""
msgstr "bitrata"
#: searx/engines/radio_browser.py:107
msgid "votes"
msgstr ""
msgstr "glasovi"
#: searx/engines/radio_browser.py:108
msgid "clicks"
msgstr ""
msgstr "klikovi"
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
msgid "Language"
@ -342,11 +343,11 @@ msgstr "Noć"
#: searx/engines/zlibrary.py:130
msgid "Book rating"
msgstr ""
msgstr "Ocjena knjige"
#: searx/engines/zlibrary.py:131
msgid "File quality"
msgstr ""
msgstr "Kvaliteta datoteke"
#: searx/plugins/hash_plugin.py:24
msgid "Converts strings to different hash digests."
@ -404,16 +405,18 @@ msgid ""
"Could not download the list of Tor exit-nodes from: "
"https://check.torproject.org/exit-addresses"
msgstr ""
"Nije moguće preuzeti popis Tor izlaznih čvorova s: https://check.torproject."
"org/exit-addresses"
#: searx/plugins/tor_check.py:78
msgid ""
"You are using Tor and it looks like you have this external IP address: "
"{ip_address}"
msgstr ""
msgstr "Vi koristite Tor i izgleda da imate ovu vanjsku IP adresu: {ip_address}"
#: searx/plugins/tor_check.py:86
msgid "You are not using Tor and you have this external IP address: {ip_address}"
msgstr ""
msgstr "Vi ne koristite Tor i imate ovu vanjsku IP adresu: {ip_address}"
#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
@ -535,11 +538,11 @@ msgstr "Pogledajte zapisnike grešaka i pošaljite izvješće o greškama"
#: searx/templates/simple/preferences.html:74
msgid "!bang for this engine"
msgstr ""
msgstr "!bang za ovaj motor"
#: searx/templates/simple/preferences.html:80
msgid "!bang for its categories"
msgstr ""
msgstr "!bang za svoje kategorije"
#: searx/templates/simple/preferences.html:102
#: searx/templates/simple/stats.html:64
@ -736,7 +739,7 @@ msgstr "Preuzmi rezultate"
#: searx/templates/simple/elements/engines_msg.html:7
msgid "Messages from the search engines"
msgstr ""
msgstr "Poruke s tražilica"
#: searx/templates/simple/elements/engines_msg.html:12
msgid "Error!"
@ -752,11 +755,11 @@ msgstr "Pretraži URL"
#: searx/templates/simple/elements/search_url.html:4
msgid "Copied"
msgstr ""
msgstr "Kopirano"
#: searx/templates/simple/elements/search_url.html:4
msgid "Copy"
msgstr ""
msgstr "Kopiraj"
#: searx/templates/simple/elements/suggestions.html:3
msgid "Suggestions"
@ -775,7 +778,7 @@ msgstr "Zadani jezik"
#: searx/templates/simple/filters/languages.html:4
#: searx/templates/simple/preferences/language.html:11
msgid "Auto-detect"
msgstr ""
msgstr "Automatski otkrij"
#: searx/templates/simple/filters/safesearch.html:1
#: searx/templates/simple/filters/safesearch.html:2
@ -840,35 +843,35 @@ msgstr "Ispričavamo se!"
#: searx/templates/simple/messages/no_results.html:12
msgid "No results were found. You can try to:"
msgstr ""
msgstr "Nema rezultata. Možete pokušati:"
#: searx/templates/simple/messages/no_results.html:14
msgid "There are no more results. You can try to:"
msgstr ""
msgstr "Nema više rezultata. Možete pokušati:"
#: searx/templates/simple/messages/no_results.html:19
msgid "Refresh the page."
msgstr ""
msgstr "Osvježiti stranicu."
#: searx/templates/simple/messages/no_results.html:20
msgid "Search for another query or select another category (above)."
msgstr ""
msgstr "Potražiti druge upite ili da odaberete drugu kategoriju (iznad)."
#: searx/templates/simple/messages/no_results.html:21
msgid "Change the search engine used in the preferences:"
msgstr ""
msgstr "Promijenite tražilicu korištenu u postavkama:"
#: searx/templates/simple/messages/no_results.html:22
msgid "Switch to another instance:"
msgstr ""
msgstr "Prijeđi na drugu instancu:"
#: searx/templates/simple/messages/no_results.html:24
msgid "Search for another query or select another category."
msgstr ""
msgstr "Potražite drugi upit ili odaberite drugu kategoriju."
#: searx/templates/simple/messages/no_results.html:25
msgid "Go back to the previous page using the previous page button."
msgstr ""
msgstr "Vratite se na prethodnu stranicu pomoću gumba prethodne stranice."
#: searx/templates/simple/preferences/answerers.html:4
#: searx/templates/simple/preferences/engines.html:17
@ -966,17 +969,19 @@ msgstr "Otvoreni pristup DOI rješenja"
#: searx/templates/simple/preferences/doi_resolver.html:14
msgid "Select service used by DOI rewrite"
msgstr ""
msgstr "Odaberite uslugu koju koristi DOI iznovopis"
#: searx/templates/simple/preferences/engines.html:9
msgid ""
"This tab does not exists in the user interface, but you can search in "
"these engines by its !bangs."
msgstr ""
"Ova kartica ne postoji u korisničkom sučelju, ali u ovim tražilicama možete "
"pretraživati po !bangs-ima."
#: searx/templates/simple/preferences/engines.html:19
msgid "!bang"
msgstr ""
msgstr "!bang"
#: searx/templates/simple/preferences/engines.html:20
msgid "Supports selected language"
@ -984,7 +989,7 @@ msgstr "Podržava odabrani jezik"
#: searx/templates/simple/preferences/engines.html:23
msgid "Weight"
msgstr ""
msgstr "Težina"
#: searx/templates/simple/preferences/engines.html:27
msgid "Max time"
@ -1020,17 +1025,20 @@ msgstr "Natrag"
#: searx/templates/simple/preferences/hotkeys.html:2
msgid "Hotkeys"
msgstr ""
msgstr "Prečaci"
#: searx/templates/simple/preferences/hotkeys.html:13
msgid "Vim-like"
msgstr ""
msgstr "Slično Vimu"
#: searx/templates/simple/preferences/hotkeys.html:18
msgid ""
"Navigate search results with hotkeys (JavaScript required). Press \"h\" "
"key on main or result page to get help."
msgstr ""
"Krećite se rezultatima pretraživanja pomoću prečaca (potreban je JavaScript)"
". Pritisnite tipku \"h\" na glavnoj stranici ili stranici s rezultatima za "
"pomoć."
#: searx/templates/simple/preferences/image_proxy.html:2
msgid "Image proxy"
@ -1057,6 +1065,7 @@ msgstr "Koji jezik želite za pretraživanje?"
#: searx/templates/simple/preferences/language.html:25
msgid "Choose Auto-detect to let SearXNG detect the language of your query."
msgstr ""
"Odaberite Automatsko otkrivanje kako bi SearXNG otkrio jezik vašeg upita."
#: searx/templates/simple/preferences/method.html:2
msgid "HTTP Method"
@ -1064,7 +1073,7 @@ msgstr "HTTP metoda"
#: searx/templates/simple/preferences/method.html:14
msgid "Change how forms are submitted"
msgstr ""
msgstr "Promijenite način slanja obrazaca"
#: searx/templates/simple/preferences/query_in_title.html:2
msgid "Query in the page's title"
@ -1099,6 +1108,8 @@ msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories"
msgstr ""
"Izvršite pretragu odmah ako je odabrana kategorija. Onemogući odabir više "
"kategorija"
#: searx/templates/simple/preferences/theme.html:2
msgid "Theme"
@ -1685,4 +1696,3 @@ msgstr "sakrij video"
#~ msgstr ""
#~ "nema rezultata pretraživanja. Unesite novi "
#~ "upit ili pretražite u više kategorija."

View File

@ -19,23 +19,24 @@
# random <thrizem+wnd43@gmail.com>, 2022.
# Franco Longo <longofrancoale@gmail.com>, 2022.
# VaiTon <eyadlorenzo@gmail.com>, 2023.
# return42 <markus.heiser@darmarit.de>, 2023.
# return42 <markus.heiser@darmarit.de>, 2023, 2024.
# SonoAX <giovanniilgiovo@gmail.com>, 2023.
# nicfab <nicfab@icloud.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-12-23 08:54+0000\n"
"PO-Revision-Date: 2023-12-10 13:56+0000\n"
"PO-Revision-Date: 2024-01-03 15:56+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language-Team: Italian <https://translate.codeberg.org/projects/searxng/"
"searxng/it/>\n"
"Language: it\n"
"Language-Team: Italian "
"<https://translate.codeberg.org/projects/searxng/searxng/it/>\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.3.1\n"
"Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@ -868,7 +869,7 @@ msgstr "Non sono stati trovati risultati. Puoi provare a:"
#: searx/templates/simple/messages/no_results.html:14
msgid "There are no more results. You can try to:"
msgstr ""
msgstr "Non ci sono più risultati. Puoi provare a:"
#: searx/templates/simple/messages/no_results.html:19
msgid "Refresh the page."
@ -888,11 +889,12 @@ msgstr "Passa ad un'altra istanza:"
#: searx/templates/simple/messages/no_results.html:24
msgid "Search for another query or select another category."
msgstr ""
msgstr "Prova con unaltra ricerca o seleziona unaltra categoria."
#: searx/templates/simple/messages/no_results.html:25
msgid "Go back to the previous page using the previous page button."
msgstr ""
"Torna alla pagina precedente utilizzando il pulsante della pagina precedente."
#: searx/templates/simple/preferences/answerers.html:4
#: searx/templates/simple/preferences/engines.html:17
@ -1166,7 +1168,7 @@ msgstr "Cambia la lingua dell'interfaccia"
#: searx/templates/simple/result_templates/code.html:13
msgid "repo"
msgstr "ripostigli"
msgstr "ripostiglo"
#: searx/templates/simple/result_templates/default.html:6
msgid "show media"
@ -1725,4 +1727,3 @@ msgstr "nascondi video"
#~ "non abbiamo trovato alcun risultato. "
#~ "Prova una nuova ricerca, o cerca "
#~ "in più categorie."

View File

@ -14,7 +14,7 @@ msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-12-23 08:54+0000\n"
"PO-Revision-Date: 2023-12-29 07:07+0000\n"
"PO-Revision-Date: 2023-12-29 14:09+0000\n"
"Last-Translator: staram <gritty.year0043@fastmail.com>\n"
"Language-Team: Malay <https://translate.codeberg.org/projects/searxng/"
"searxng/ms/>\n"
@ -355,11 +355,9 @@ msgid "Hostname replace"
msgstr "Gantikan nama hos"
#: searx/plugins/hostname_replace.py:10
#, fuzzy
msgid "Rewrite result hostnames or remove results based on the hostname"
msgstr ""
"Tulis semula menyebabkan nama hos atau buang keputusan berdasarkan nama "
"hos"
"Buat semula keputusan nama hos atau buang keputusan berdasarkan nama hos"
#: searx/plugins/oa_doi_rewrite.py:9
msgid "Open Access DOI rewrite"
@ -923,9 +921,8 @@ msgid ""
msgstr ""
#: searx/templates/simple/preferences/cookies.html:3
#, fuzzy
msgid "With that list, you can assess SearXNG transparency."
msgstr "Dengan senarai ini, anda boleh menilai ketelusan SearXNG."
msgstr "Dengan senarai itu, anda boleh menilai ketelusan SearXNG."
#: searx/templates/simple/preferences/cookies.html:9
msgid "Cookie name"

View File

@ -9,7 +9,7 @@
# Rejo Zenger <rejo@zenger.nl>, 2016-2017
# Markus Heiser <markus.heiser@darmarit.de>, 2022.
# Chris Capisce <christof1588@gmail.com>, 2022.
# SecularSteve <fairfull.playing@gmail.com>, 2022.
# SecularSteve <fairfull.playing@gmail.com>, 2022, 2023.
# Sweder doc <swederdvl@gmail.com>, 2022.
# Peter Martin <weblate@pe7er.com>, 2022.
# Max Westen <max@maxwesten.nl>, 2023.
@ -19,18 +19,19 @@
# microsoftocsharp <kottiberyu@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-12-23 08:54+0000\n"
"PO-Revision-Date: 2023-12-10 13:56+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"PO-Revision-Date: 2023-12-29 14:09+0000\n"
"Last-Translator: SecularSteve <fairfull.playing@gmail.com>\n"
"Language-Team: Dutch <https://translate.codeberg.org/projects/searxng/"
"searxng/nl/>\n"
"Language: nl\n"
"Language-Team: Dutch "
"<https://translate.codeberg.org/projects/searxng/searxng/nl/>\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.3.1\n"
"Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@ -862,7 +863,7 @@ msgstr "Geen zoekresultaten. Probeer:"
#: searx/templates/simple/messages/no_results.html:14
msgid "There are no more results. You can try to:"
msgstr ""
msgstr "Er zijn geen resultaten meer. U kunt proberen om:"
#: searx/templates/simple/messages/no_results.html:19
msgid "Refresh the page."
@ -882,11 +883,11 @@ msgstr "Verbind met een andere instance:"
#: searx/templates/simple/messages/no_results.html:24
msgid "Search for another query or select another category."
msgstr ""
msgstr "Zoek naar een andere zoekopdracht of selecteer een andere categorie."
#: searx/templates/simple/messages/no_results.html:25
msgid "Go back to the previous page using the previous page button."
msgstr ""
msgstr "Ga terug naar de vorige pagina met de knop Vorige pagina."
#: searx/templates/simple/preferences/answerers.html:4
#: searx/templates/simple/preferences/engines.html:17
@ -1720,4 +1721,3 @@ msgstr "verberg video"
#~ "We konden geen resultaten vinden. "
#~ "Probeer een andere zoekopdracht, of zoek"
#~ " in meer categorieën."

View File

@ -10,23 +10,24 @@
# Ricardo Simões <xmcorporation@gmail.com>, 2022.
# zaioti <zaioti@tuta.io>, 2022.
# Alexandre Flament <alex@al-f.net>, 2022.
# return42 <markus.heiser@darmarit.de>, 2023.
# return42 <markus.heiser@darmarit.de>, 2023, 2024.
# fabiosantoscode <fabiosantosart@gmail.com>, 2023.
# Coccocoas_Helper <coccocoahelper@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-12-23 08:54+0000\n"
"PO-Revision-Date: 2023-12-21 20:16+0000\n"
"PO-Revision-Date: 2024-01-03 15:56+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language-Team: Portuguese <https://translate.codeberg.org/projects/searxng/"
"searxng/pt/>\n"
"Language: pt\n"
"Language-Team: Portuguese "
"<https://translate.codeberg.org/projects/searxng/searxng/pt/>\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.3.1\n"
"Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@ -853,7 +854,7 @@ msgstr "Nenhum resultado encontrado. Pode tentar:"
#: searx/templates/simple/messages/no_results.html:14
msgid "There are no more results. You can try to:"
msgstr ""
msgstr "Não existem mais resultados. Podes tentar:"
#: searx/templates/simple/messages/no_results.html:19
msgid "Refresh the page."
@ -862,22 +863,24 @@ msgstr "Atualize a página"
#: searx/templates/simple/messages/no_results.html:20
msgid "Search for another query or select another category (above)."
msgstr ""
"Pesquisar por outras palavras chaves ou escolher outra categoria (abaixo)."
#: searx/templates/simple/messages/no_results.html:21
msgid "Change the search engine used in the preferences:"
msgstr ""
msgstr "Alterar o motor de busca usado nas preferências:"
#: searx/templates/simple/messages/no_results.html:22
msgid "Switch to another instance:"
msgstr ""
msgstr "Troque de instância:"
#: searx/templates/simple/messages/no_results.html:24
msgid "Search for another query or select another category."
msgstr ""
"Pesquisar por outras palavras-chave ou selecionar outra categoria (abaixo)."
#: searx/templates/simple/messages/no_results.html:25
msgid "Go back to the previous page using the previous page button."
msgstr ""
msgstr "Volte à página anterior usando o botão de 'página anterior'."
#: searx/templates/simple/preferences/answerers.html:4
#: searx/templates/simple/preferences/engines.html:17
@ -1031,17 +1034,20 @@ msgstr "Voltar"
#: searx/templates/simple/preferences/hotkeys.html:2
msgid "Hotkeys"
msgstr ""
msgstr "Teclas de atalho"
#: searx/templates/simple/preferences/hotkeys.html:13
msgid "Vim-like"
msgstr ""
msgstr "Vim-like"
#: searx/templates/simple/preferences/hotkeys.html:18
msgid ""
"Navigate search results with hotkeys (JavaScript required). Press \"h\" "
"key on main or result page to get help."
msgstr ""
"Navegue os resultados de pesquisa com teclas de atalhos de (JavaScript "
"necessário). Pressione a tecla \"h\" na página principal ou de resultados "
"para conseguir ajuda."
#: searx/templates/simple/preferences/image_proxy.html:2
msgid "Image proxy"
@ -1110,6 +1116,8 @@ msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories"
msgstr ""
"Pesquisar imediatamente se uma categoria estiver selecionada. Desative para "
"selecionar múltiplas categorias."
#: searx/templates/simple/preferences/theme.html:2
msgid "Theme"
@ -1708,4 +1716,3 @@ msgstr "esconder vídeo"
#~ "não encontramos nenhum resultado. Por "
#~ "favor pesquise outra coisa ou utilize"
#~ " mais categorias na sua pesquisa."

View File

@ -21,20 +21,22 @@
# lhostfree951 <freeehost9191@gmail.com>, 2023.
# return42 <markus.heiser@darmarit.de>, 2023.
# Coccocoas_Helper <coccocoahelper@gmail.com>, 2023.
# ETRB <codeberg-cm58mk@r.acmrb.uk>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-12-23 08:54+0000\n"
"PO-Revision-Date: 2023-11-21 07:13+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"PO-Revision-Date: 2023-12-29 14:09+0000\n"
"Last-Translator: ETRB <codeberg-cm58mk@r.acmrb.uk>\n"
"Language-Team: Portuguese (Brazil) <https://translate.codeberg.org/projects/"
"searxng/searxng/pt_BR/>\n"
"Language: pt_BR\n"
"Language-Team: Portuguese (Brazil) "
"<https://translate.codeberg.org/projects/searxng/searxng/pt_BR/>\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.3.1\n"
"Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@ -864,7 +866,7 @@ msgstr "Nenhum resultado foi encontrado. Você pode tentar:"
#: searx/templates/simple/messages/no_results.html:14
msgid "There are no more results. You can try to:"
msgstr ""
msgstr "Sem mais resultados, você pode tentar:"
#: searx/templates/simple/messages/no_results.html:19
msgid "Refresh the page."
@ -884,11 +886,11 @@ msgstr "Mude para outra instância:"
#: searx/templates/simple/messages/no_results.html:24
msgid "Search for another query or select another category."
msgstr ""
msgstr "Pesquise outro termo ou selecione uma categoria diferente."
#: searx/templates/simple/messages/no_results.html:25
msgid "Go back to the previous page using the previous page button."
msgstr ""
msgstr "Volte para a página anterior usando o botão 'página anterior'."
#: searx/templates/simple/preferences/answerers.html:4
#: searx/templates/simple/preferences/engines.html:17
@ -1731,4 +1733,3 @@ msgstr "ocultar vídeo"
#~ "Não encontramos nenhum resultado. Utilize "
#~ "outra consulta ou pesquisa em mais "
#~ "categorias."

View File

@ -15,19 +15,20 @@
# microsoftocsharp <kottiberyu@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-12-23 08:54+0000\n"
"PO-Revision-Date: 2023-11-21 07:13+0000\n"
"PO-Revision-Date: 2023-12-30 09:19+0000\n"
"Last-Translator: alextecplayz <alextec70@outlook.com>\n"
"Language-Team: Romanian <https://translate.codeberg.org/projects/searxng/"
"searxng/ro/>\n"
"Language: ro\n"
"Language-Team: Romanian "
"<https://translate.codeberg.org/projects/searxng/searxng/ro/>\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 "
"< 20)) ? 1 : 2;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n"
"X-Generator: Weblate 5.3.1\n"
"Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@ -858,7 +859,7 @@ msgstr "Niciun rezultat nu a fost găsit. Puteți încerca să:"
#: searx/templates/simple/messages/no_results.html:14
msgid "There are no more results. You can try to:"
msgstr ""
msgstr "Nu mai sunt rezultate. Puteți să:"
#: searx/templates/simple/messages/no_results.html:19
msgid "Refresh the page."
@ -878,11 +879,12 @@ msgstr "Treceți la o altă instanță:"
#: searx/templates/simple/messages/no_results.html:24
msgid "Search for another query or select another category."
msgstr ""
msgstr "Căutați folosind o altă solicitare sau selectați altă categorie."
#: searx/templates/simple/messages/no_results.html:25
msgid "Go back to the previous page using the previous page button."
msgstr ""
"Reveniți la pagina anterioară folosind butonul pentru pagina anterioară."
#: searx/templates/simple/preferences/answerers.html:4
#: searx/templates/simple/preferences/engines.html:17
@ -1715,4 +1717,3 @@ msgstr "ascunde video"
#~ "n-am găsit nici un rezultat. Folosiți"
#~ " o altă interogare sau căutați în "
#~ "mai multe categorii."

View File

@ -7,23 +7,24 @@
# Marc Abonce Seguin, 2019
# jugi1, 2017
# Markus Heiser <markus.heiser@darmarit.de>, 2022.
# SecularSteve <fairfull.playing@gmail.com>, 2022.
# SecularSteve <fairfull.playing@gmail.com>, 2022, 2023.
# return42 <markus.heiser@darmarit.de>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-12-23 08:54+0000\n"
"PO-Revision-Date: 2023-09-12 14:53+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"PO-Revision-Date: 2023-12-29 14:09+0000\n"
"Last-Translator: SecularSteve <fairfull.playing@gmail.com>\n"
"Language-Team: Serbian <https://translate.codeberg.org/projects/searxng/"
"searxng/sr/>\n"
"Language: sr\n"
"Language-Team: Serbian "
"<https://translate.codeberg.org/projects/searxng/searxng/sr/>\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.3.1\n"
"Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
@ -274,19 +275,19 @@ msgstr "Канал"
#: searx/engines/radio_browser.py:104
msgid "radio"
msgstr ""
msgstr "радио"
#: searx/engines/radio_browser.py:106
msgid "bitrate"
msgstr ""
msgstr "битрата"
#: searx/engines/radio_browser.py:107
msgid "votes"
msgstr ""
msgstr "гласови"
#: searx/engines/radio_browser.py:108
msgid "clicks"
msgstr ""
msgstr "кликови"
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
msgid "Language"
@ -340,11 +341,11 @@ msgstr "Noc"
#: searx/engines/zlibrary.py:130
msgid "Book rating"
msgstr ""
msgstr "Оцена књиге"
#: searx/engines/zlibrary.py:131
msgid "File quality"
msgstr ""
msgstr "Квалитет датотеке"
#: searx/plugins/hash_plugin.py:24
msgid "Converts strings to different hash digests."
@ -403,6 +404,8 @@ msgid ""
"Could not download the list of Tor exit-nodes from: "
"https://check.torproject.org/exit-addresses"
msgstr ""
"Није могуће преузети листу Тор излазних чворова са: https://check.torproject."
"org/exit-addresses"
#: searx/plugins/tor_check.py:78
msgid ""
@ -414,7 +417,7 @@ msgstr ""
#: searx/plugins/tor_check.py:86
msgid "You are not using Tor and you have this external IP address: {ip_address}"
msgstr ""
msgstr "Не користите Тор и имате ову спољну ИП адресу: {ip_address}"
#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
@ -536,11 +539,11 @@ msgstr "Погледајте информације о грешки и приј
#: searx/templates/simple/preferences.html:74
msgid "!bang for this engine"
msgstr ""
msgstr "!bang за овај мотор"
#: searx/templates/simple/preferences.html:80
msgid "!bang for its categories"
msgstr ""
msgstr "!bang за своје категорије"
#: searx/templates/simple/preferences.html:102
#: searx/templates/simple/stats.html:64
@ -737,7 +740,7 @@ msgstr "Резултати преузимања"
#: searx/templates/simple/elements/engines_msg.html:7
msgid "Messages from the search engines"
msgstr ""
msgstr "Поруке из претраживача"
#: searx/templates/simple/elements/engines_msg.html:12
msgid "Error!"
@ -753,11 +756,11 @@ msgstr "Тражи URL адресу"
#: searx/templates/simple/elements/search_url.html:4
msgid "Copied"
msgstr ""
msgstr "Копирано"
#: searx/templates/simple/elements/search_url.html:4
msgid "Copy"
msgstr ""
msgstr "Копирај"
#: searx/templates/simple/elements/suggestions.html:3
msgid "Suggestions"
@ -776,7 +779,7 @@ msgstr "Подразумевани језик"
#: searx/templates/simple/filters/languages.html:4
#: searx/templates/simple/preferences/language.html:11
msgid "Auto-detect"
msgstr ""
msgstr "Аутоматски откриј"
#: searx/templates/simple/filters/safesearch.html:1
#: searx/templates/simple/filters/safesearch.html:2
@ -841,35 +844,35 @@ msgstr "Опростите!"
#: searx/templates/simple/messages/no_results.html:12
msgid "No results were found. You can try to:"
msgstr ""
msgstr "Нису пронађени резултати. Можете покушати да:"
#: searx/templates/simple/messages/no_results.html:14
msgid "There are no more results. You can try to:"
msgstr ""
msgstr "Нема више резултата. Можете покушати да:"
#: searx/templates/simple/messages/no_results.html:19
msgid "Refresh the page."
msgstr ""
msgstr "Освежите страницу."
#: searx/templates/simple/messages/no_results.html:20
msgid "Search for another query or select another category (above)."
msgstr ""
msgstr "Потражите други упит или да изаберете другу категорију (изнад)."
#: searx/templates/simple/messages/no_results.html:21
msgid "Change the search engine used in the preferences:"
msgstr ""
msgstr "Промените претраживач који се користи у подешавањима:"
#: searx/templates/simple/messages/no_results.html:22
msgid "Switch to another instance:"
msgstr ""
msgstr "Пребаците се на другу инстанцу:"
#: searx/templates/simple/messages/no_results.html:24
msgid "Search for another query or select another category."
msgstr ""
msgstr "Потражите други упит или изаберите другу категорију."
#: searx/templates/simple/messages/no_results.html:25
msgid "Go back to the previous page using the previous page button."
msgstr ""
msgstr "Вратите се на претходну страницу помоћу дугмета за претходну страницу."
#: searx/templates/simple/preferences/answerers.html:4
#: searx/templates/simple/preferences/engines.html:17
@ -966,17 +969,19 @@ msgstr "Отворени приступ DOI решења"
#: searx/templates/simple/preferences/doi_resolver.html:14
msgid "Select service used by DOI rewrite"
msgstr ""
msgstr "Изаберите услугу коју користи ДОИ изновопис"
#: searx/templates/simple/preferences/engines.html:9
msgid ""
"This tab does not exists in the user interface, but you can search in "
"these engines by its !bangs."
msgstr ""
"Ова картица не постоји у корисничком интерфејсу, али можете претраживати у "
"овим машинама по његовим !bangs-има."
#: searx/templates/simple/preferences/engines.html:19
msgid "!bang"
msgstr ""
msgstr "!bang"
#: searx/templates/simple/preferences/engines.html:20
msgid "Supports selected language"
@ -984,7 +989,7 @@ msgstr "Подржава изабрани језик"
#: searx/templates/simple/preferences/engines.html:23
msgid "Weight"
msgstr ""
msgstr "Тежина"
#: searx/templates/simple/preferences/engines.html:27
msgid "Max time"
@ -1020,17 +1025,20 @@ msgstr "Назад"
#: searx/templates/simple/preferences/hotkeys.html:2
msgid "Hotkeys"
msgstr ""
msgstr "Пречаци"
#: searx/templates/simple/preferences/hotkeys.html:13
msgid "Vim-like"
msgstr ""
msgstr "Слично Вим-у"
#: searx/templates/simple/preferences/hotkeys.html:18
msgid ""
"Navigate search results with hotkeys (JavaScript required). Press \"h\" "
"key on main or result page to get help."
msgstr ""
"Крећите се кроз резултате претраге помоћу пречаћних тастера (потребан је "
"JavaScript). Притисните тастер \"х\" на главној страници или страници са "
"резултатима да бисте добили помоћ."
#: searx/templates/simple/preferences/image_proxy.html:2
msgid "Image proxy"
@ -1057,6 +1065,8 @@ msgstr "Који језик преферирате за претрагу?"
#: searx/templates/simple/preferences/language.html:25
msgid "Choose Auto-detect to let SearXNG detect the language of your query."
msgstr ""
"Одаберите Ауто-детецт да бисте дозволили SearXNG да открије језик вашег "
"упита."
#: searx/templates/simple/preferences/method.html:2
msgid "HTTP Method"
@ -1064,7 +1074,7 @@ msgstr "ХТТП метода"
#: searx/templates/simple/preferences/method.html:14
msgid "Change how forms are submitted"
msgstr ""
msgstr "Промените начин слања образаца"
#: searx/templates/simple/preferences/query_in_title.html:2
msgid "Query in the page's title"
@ -1099,6 +1109,8 @@ msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories"
msgstr ""
"Извршите претрагу одмах ако је одабрана категорија. Онемогућите да бисте "
"изабрали више категорија"
#: searx/templates/simple/preferences/theme.html:2
msgid "Theme"
@ -1678,4 +1690,3 @@ msgstr "сакриј видео"
#~ msgstr ""
#~ "нема никавих резултата претраге. Молимо "
#~ "покишајте другу претрагу или категорију."

View File

@ -1,5 +0,0 @@
export SEARXNG_URL=''
export SEARXNG_PORT='8888'
export SEARXNG_BIND_ADDRESS='127.0.0.1'
export GIT_URL='https://github.com/searxng/searxng'
export GIT_BRANCH='master'

32
utils/brand.sh Executable file
View File

@ -0,0 +1,32 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: AGPL-3.0-or-later
# shellcheck source=utils/lib.sh
. /dev/null
build.env.export() {
GIT_BRANCH="$(git branch | grep '\*' | cut -d' ' -f2-)"
GIT_REMOTE="$(git config "branch.${GIT_BRANCH}.remote")"
GIT_URL="$(git config --get "remote.${GIT_REMOTE}.url")"
if [[ "${GIT_URL}" == git@* ]]; then
GIT_URL="${GIT_URL/://}"
GIT_URL="${GIT_URL/git@/https://}"
fi
if [[ "${GIT_URL}" == *.git ]]; then
GIT_URL="${GIT_URL%.git}"
fi
SEARXNG_URL="$(python "${REPO_ROOT}/utils/get_setting.py" server.base_url)"
SEARXNG_PORT="$(python "${REPO_ROOT}/utils/get_setting.py" server.port)"
SEARXNG_BIND_ADDRESS="$(python "${REPO_ROOT}/utils/get_setting.py" server.bind_address)"
export GIT_URL
export GIT_BRANCH
export SEARXNG_URL
export SEARXNG_PORT
export SEARXNG_BIND_ADDRESS
}
pushd "${REPO_ROOT}" &> /dev/null
build.env.export
popd &> /dev/null

View File

@ -1,61 +0,0 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""build environment used by shell scripts
"""
# set path
import sys
import os
from os.path import realpath, dirname, join, sep, abspath
repo_root = realpath(dirname(realpath(__file__)) + sep + '..')
sys.path.insert(0, repo_root)
# Assure that the settings file from repository's working tree is used to
# generate the build_env, not from /etc/searxng/settings.yml.
os.environ['SEARXNG_SETTINGS_PATH'] = join(repo_root, 'etc', 'settings.yml')
def _env(*arg, **kwargs):
val = get_setting(*arg, **kwargs)
if val is True:
val = '1'
elif val is False:
val = ''
return val
# If you add or remove variables here, do not forget to update:
# - ./docs/admin/engines/settings.rst
# - ./docs/dev/makefile.rst (section make buildenv)
name_val = [
('SEARXNG_URL' , 'server.base_url'),
('SEARXNG_PORT' , 'server.port'),
('SEARXNG_BIND_ADDRESS' , 'server.bind_address'),
]
brand_env = 'utils' + sep + 'brand.env'
# Some defaults in the settings.yml are taken from the environment,
# e.g. SEARXNG_BIND_ADDRESS (:py:obj:`searx.settings_defaults.SHEMA`). When the
# 'brand.env' file is created these environment variables should be unset first::
_unset = object()
for name, option in name_val:
if not os.environ.get(name, _unset) is _unset:
del os.environ[name]
# After the variables are unset in the environ, we can import from the searx
# package (what will read the values from the settings.yml).
from searx.version import GIT_URL, GIT_BRANCH
from searx import get_setting
print('build %s (settings from: %s)' % (brand_env, os.environ['SEARXNG_SETTINGS_PATH']))
sys.path.insert(0, repo_root)
with open(repo_root + sep + brand_env, 'w', encoding='utf-8') as f:
for name, option in name_val:
print("export %s='%s'" % (name, _env(option)), file=f)
print(f"export GIT_URL='{GIT_URL}'", file=f)
print(f"export GIT_BRANCH='{GIT_BRANCH}'", file=f)

View File

@ -4,8 +4,6 @@
# shellcheck source=utils/lib.sh
source "$(dirname "${BASH_SOURCE[0]}")/lib.sh"
# shellcheck source=utils/brand.env
source "${REPO_ROOT}/utils/brand.env"
# ----------------------------------------------------------------------------
# config

123
utils/get_setting.py Normal file
View File

@ -0,0 +1,123 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""build environment used by shell scripts
"""
# set path
import sys
import importlib.util
import re
from pathlib import Path
repo_root = Path(__file__).resolve().parent.parent
def main(setting_name):
settings_path = repo_root / "searx" / "settings.yml"
with open(settings_path) as f:
settings = parse_yaml(f.read())
print(get_setting_value(settings, setting_name))
def get_setting_value(settings, name):
value = settings
for a in name.split("."):
value = value[a]
if value is True:
value = "1"
elif value is False:
value = ""
return value
def parse_yaml(yaml_str):
"""A simple YAML parser that converts a YAML string to a Python dictionary.
This parser can handle nested dictionaries, but does not handle list or JSON
like structures.
Good enough parser to get the values of server.base_url, server.port and
server.bind_address
"""
def get_type_and_value_without_comment(line):
"""Extract value without comment and quote
Returns a tuple:
1. str or None: str when the value is written inside quote, None otherwise
2. the value without quote if any
"""
match = re.search(r"\"(.*)\"(\s+#)?|\'(.*)\'(\s+#)?|([^#]*)(\s+#)?", line)
if match:
g = match.groups()
if g[0] is not None:
return str, g[0]
elif g[2] is not None:
return str, g[2]
elif g[4] is not None:
return None, g[4].strip()
return None, line.strip()
# fmt: off
true_values = ("y", "Y", "yes", "Yes", "YES", "true", "True", "TRUE", "on", "On", "ON",)
false_values = ("n", "N", "no", "No", "NO", "false", "False", "FALSE", "off", "Off", "OFF",)
# fmt: on
def process_line(line):
"""Extract key and value from a line, considering its indentation."""
if ": " in line:
key, value = line.split(": ", 1)
key = key.strip()
value_type, value = get_type_and_value_without_comment(value)
if value in true_values and value_type is None:
value = True
elif value in false_values and value_type is None:
value = False
elif value.replace(".", "").isdigit() and value_type is None:
for t in (int, float):
try:
value = t(value)
break
except ValueError:
continue
return key, value
return None, None
def get_indentation_level(line):
"""Determine the indentation level of a line."""
return len(line) - len(line.lstrip())
yaml_dict = {}
lines = yaml_str.split("\n")
stack = [yaml_dict]
for line in lines:
if not line.strip():
continue # Skip empty lines
indentation_level = get_indentation_level(line)
# Assuming 2 spaces per indentation level
# see .yamllint.yml
current_level = indentation_level // 2
# Adjust the stack based on the current indentation level
while len(stack) > current_level + 1:
stack.pop()
if line.endswith(":"):
key = line[0:-1].strip()
new_dict = {}
stack[-1][key] = new_dict
stack.append(new_dict)
else:
key, value = process_line(line)
if key is not None:
stack[-1][key] = value
return yaml_dict
if __name__ == "__main__":
main(sys.argv[1])

View File

@ -194,6 +194,7 @@ wait_key(){
[[ -n $FORCE_TIMEOUT ]] && _t=$FORCE_TIMEOUT
[[ -n $_t ]] && _t="-t $_t"
printf "$msg"
# shellcheck disable=SC2229
# shellcheck disable=SC2086
read -r -s -n1 $_t || true
echo
@ -227,7 +228,7 @@ ask_yn() {
while true; do
clean_stdin
printf "$1 ${choice} "
# shellcheck disable=SC2086
# shellcheck disable=SC2086,SC2229
read -r -n1 $_t
if [[ -z $REPLY ]]; then
printf "$default\n"; break
@ -261,7 +262,7 @@ tee_stderr () {
if [[ -n $1 ]] ; then _t="$1"; fi
(while read -r line; do
# shellcheck disable=SC2086
# shellcheck disable=SC2086,SC2229
sleep $_t
echo -e "$line" >&2
echo "$line"
@ -367,7 +368,7 @@ choose_one() {
printf "$1 [${_BGreen}$default${_creset}] "
if (( 10 > max )); then
# shellcheck disable=SC2086
# shellcheck disable=SC2086,SC2229
read -r -n1 $_t
else
# shellcheck disable=SC2086,SC2229
@ -708,6 +709,7 @@ pyenv.uninstall() {
pyenv.cmd python setup.py develop --uninstall 2>&1 \
| prefix_stdout "${_Blue}PYENV ${_creset}[pyenv.uninstall] "
else
# shellcheck disable=SC2086
pyenv.cmd python -m pip uninstall --yes ${PYOBJECTS} 2>&1 \
| prefix_stdout "${_Blue}PYENV ${_creset}[pyenv.uninstall] "
fi

View File

@ -37,7 +37,7 @@ is.static.build.commit() {
# check all files of the commit belongs to $STATIC_BUILT_PATHS
commit_files=$(git diff-tree --no-commit-id --name-only -r "${commit_sha}")
for i in ${STATIC_BUILT_PATHS[*]}; do
for i in "${STATIC_BUILT_PATHS[@]}"; do
# remove files of ${STATIC_BUILT_PATHS}
commit_files=$(echo "${commit_files}" | grep -v "^${i}")
done

View File

@ -4,8 +4,6 @@
# shellcheck source=utils/lib.sh
source "$(dirname "${BASH_SOURCE[0]}")/lib.sh"
# shellcheck source=utils/brand.env
source "${REPO_ROOT}/utils/brand.env"
# load environment of the LXC suite
LXC_ENV="${LXC_ENV:-${REPO_ROOT}/utils/lxc-searxng.env}"

View File

@ -3,8 +3,6 @@
# shellcheck source=utils/lib.sh
source "$(dirname "${BASH_SOURCE[0]}")/lib.sh"
# shellcheck source=utils/brand.env
source "${REPO_ROOT}/utils/brand.env"
# ----------------------------------------------------------------------------
# config

View File

@ -4,8 +4,6 @@
# shellcheck source=utils/lib.sh
source "$(dirname "${BASH_SOURCE[0]}")/lib.sh"
# shellcheck source=utils/brand.env
source "${REPO_ROOT}/utils/brand.env"
# ----------------------------------------------------------------------------
# config

View File

@ -9,8 +9,8 @@ SEARXNG_UWSGI_USE_SOCKET="${SEARXNG_UWSGI_USE_SOCKET:-true}"
source "$(dirname "${BASH_SOURCE[0]}")/lib.sh"
# shellcheck source=utils/lib_redis.sh
source "$(dirname "${BASH_SOURCE[0]}")/lib_redis.sh"
# shellcheck source=utils/brand.env
source "${REPO_ROOT}/utils/brand.env"
# shellcheck source=utils/brand.sh
source "${REPO_ROOT}/utils/brand.sh"
SERVICE_NAME="searxng"
SERVICE_USER="searxng"
@ -159,7 +159,7 @@ searxng.instance.env() {
echo " SEARXNG_INTERNAL_HTTP: ${SEARXNG_INTERNAL_HTTP}"
fi
cat <<EOF
environment ${SEARXNG_SRC}/utils/brand.env:
environment:
GIT_URL : ${GIT_URL}
GIT_BRANCH : ${GIT_BRANCH}
SEARXNG_URL : ${SEARXNG_URL}
@ -527,7 +527,6 @@ searxng.install.settings() {
if ! [[ -f "${SEARXNG_SRC}/.git/config" ]]; then
die "Before install settings, first install SearXNG."
exit 42
fi
mkdir -p "$(dirname "${SEARXNG_SETTINGS_PATH}")"
@ -608,8 +607,8 @@ searxng.install.uwsgi.http() {
searxng.install.uwsgi.socket() {
rst_para "Install ${SEARXNG_UWSGI_APP} using socket at: ${SEARXNG_UWSGI_SOCKET}"
mkdir -p "$(dirname ${SEARXNG_UWSGI_SOCKET})"
chown -R "${SERVICE_USER}:${SERVICE_GROUP}" "$(dirname ${SEARXNG_UWSGI_SOCKET})"
mkdir -p "$(dirname "${SEARXNG_UWSGI_SOCKET}")"
chown -R "${SERVICE_USER}:${SERVICE_GROUP}" "$(dirname "${SEARXNG_UWSGI_SOCKET}")"
case $DIST_ID-$DIST_VERS in
fedora-*)

View File

@ -7,6 +7,9 @@ import os
import sys
import logging
import warnings
from pathlib import Path
repo_root = Path(__file__).resolve().parent.parent
LOG_FORMAT_DEBUG = '%(levelname)-7s %(name)-30.30s: %(message)s'
logging.basicConfig(level=logging.getLevelName('DEBUG'), format=LOG_FORMAT_DEBUG)
@ -26,6 +29,12 @@ if os.path.isfile(OLD_SETTING):
))
warnings.warn(msg, DeprecationWarning)
OLD_BRAND_ENV = repo_root / 'utils' / 'brand.env'
if os.path.isfile(OLD_BRAND_ENV):
msg = ('%s is no longer needed, remove the file' % (OLD_BRAND_ENV))
warnings.warn(msg, DeprecationWarning)
from searx import redisdb, get_setting
if not redisdb.initialize():