diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 8836aeefd..27b698cb6 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -163,7 +163,6 @@ jobs: - name: Update transations id: update run: | - git restore utils/brand.env make V=1 weblate.push.translations dockers: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 748a7b53c..d3122e9d8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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 diff --git a/Makefile b/Makefile index fbed8a512..fa0753fff 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/docs/admin/settings/settings_server.rst b/docs/admin/settings/settings_server.rst index e4e66ee2f..b1b3a14f7 100644 --- a/docs/admin/settings/settings_server.rst +++ b/docs/admin/settings/settings_server.rst @@ -21,17 +21,13 @@ X-Robots-Tag : noindex, nofollow Referrer-Policy : no-referrer -``base_url`` : ``$SEARXNG_URL`` :ref:`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 `) -``port`` & ``bind_address``: ``$SEARXNG_PORT`` & ``$SEARXNG_BIND_ADDRESS`` :ref:`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 `) + services running behind a proxy and using socket communications. ``secret_key`` : ``$SEARXNG_SECRET`` Used for cryptography purpose. diff --git a/docs/dev/makefile.rst b/docs/dev/makefile.rst index 8f29dd252..3c3b2bf3b 100644 --- a/docs/dev/makefile.rst +++ b/docs/dev/makefile.rst @@ -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 `. - - 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 ` - 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 ` or -:ref:`make run `). - -Tasks running outside of an *installed instance*, especially :ref:`installation -and 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 ` (aka - ``PUBLIC_URL``) -- ``SEARXNG_BIND_ADDRESS`` from :ref:`server.bind_address ` -- ``SEARXNG_PORT`` from :ref:`server.port ` - -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 ` and -:ref:`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 `. - .. _make node.env: Node.js environment (``make node.env``) diff --git a/docs/dev/search_api.rst b/docs/dev/search_api.rst index 13858ae9e..56272d341 100644 --- a/docs/dev/search_api.rst +++ b/docs/dev/search_api.rst @@ -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. diff --git a/manage b/manage index 49bfca4b0..7e60cea3f 100755 --- a/manage +++ b/manage @@ -83,8 +83,6 @@ PYLINT_OPTIONS="-m pylint -j 0 --rcfile .pylintrc" help() { nvm.help cat <&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 diff --git a/requirements.txt b/requirements.txt index c95def6b1..15756d515 100644 --- a/requirements.txt +++ b/requirements.txt @@ -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 diff --git a/searx/autocomplete.py b/searx/autocomplete.py index 58655e26f..49e1eaa6a 100644 --- a/searx/autocomplete.py +++ b/searx/autocomplete.py @@ -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, diff --git a/searx/engines/stract.py b/searx/engines/stract.py new file mode 100644 index 000000000..c2497998f --- /dev/null +++ b/searx/engines/stract.py @@ -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 diff --git a/searx/settings.yml b/searx/settings.yml index 153574bbd..796779c52 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -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 diff --git a/searx/translations/af/LC_MESSAGES/messages.mo b/searx/translations/af/LC_MESSAGES/messages.mo index 6dd9f2fff..d30b039fc 100644 Binary files a/searx/translations/af/LC_MESSAGES/messages.mo and b/searx/translations/af/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/af/LC_MESSAGES/messages.po b/searx/translations/af/LC_MESSAGES/messages.po index bdde77cce..7b6c9f8ee 100644 --- a/searx/translations/af/LC_MESSAGES/messages.po +++ b/searx/translations/af/LC_MESSAGES/messages.po @@ -6,43 +6,44 @@ # Markus Heiser , 2022. # Sean Botha , 2022. # jestie , 2023. -# return42 , 2023. +# return42 , 2023, 2024. # APoniatowski , 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 \n" +"PO-Revision-Date: 2024-01-03 15:56+0000\n" +"Last-Translator: return42 \n" +"Language-Team: Afrikaans \n" "Language: af\n" -"Language-Team: Afrikaans " -"\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 "" - diff --git a/searx/translations/eu/LC_MESSAGES/messages.mo b/searx/translations/eu/LC_MESSAGES/messages.mo index ebffaa226..b84320da1 100644 Binary files a/searx/translations/eu/LC_MESSAGES/messages.mo and b/searx/translations/eu/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/eu/LC_MESSAGES/messages.po b/searx/translations/eu/LC_MESSAGES/messages.po index 7c9a14bbb..f3bd07c8b 100644 --- a/searx/translations/eu/LC_MESSAGES/messages.po +++ b/searx/translations/eu/LC_MESSAGES/messages.po @@ -13,18 +13,19 @@ # alexgabi , 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 \n" +"Language-Team: Basque \n" "Language: eu\n" -"Language-Team: Basque " -"\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." - diff --git a/searx/translations/he/LC_MESSAGES/messages.mo b/searx/translations/he/LC_MESSAGES/messages.mo index b80bd478b..ffc9c0ce4 100644 Binary files a/searx/translations/he/LC_MESSAGES/messages.mo and b/searx/translations/he/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/he/LC_MESSAGES/messages.po b/searx/translations/he/LC_MESSAGES/messages.po index b287150b4..da9d41239 100644 --- a/searx/translations/he/LC_MESSAGES/messages.po +++ b/searx/translations/he/LC_MESSAGES/messages.po @@ -11,23 +11,24 @@ # stf , 2014 # Markus Heiser , 2022, 2023. # Shopimisrel , 2022. -# return42 , 2023. +# return42 , 2023, 2024. # shoko , 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 \n" +"Language-Team: Hebrew \n" "Language: he\n" -"Language-Team: Hebrew " -"\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 "לא מצאנו תוצאות. אנא נסו שאילתא אחרת או חפשו בתוך יותר קטגוריות." - diff --git a/searx/translations/hr/LC_MESSAGES/messages.mo b/searx/translations/hr/LC_MESSAGES/messages.mo index 649414691..185c204dc 100644 Binary files a/searx/translations/hr/LC_MESSAGES/messages.mo and b/searx/translations/hr/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/hr/LC_MESSAGES/messages.po b/searx/translations/hr/LC_MESSAGES/messages.po index 2382e170d..ef60720a3 100644 --- a/searx/translations/hr/LC_MESSAGES/messages.po +++ b/searx/translations/hr/LC_MESSAGES/messages.po @@ -7,31 +7,32 @@ # Issa1552 , 2020 # Matija Kromar , 2022. # Markus Heiser , 2022. -# SecularSteve , 2022. +# SecularSteve , 2022, 2023. # prljav , 2022. # ptomljanovic , 2022. # return42 , 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 \n" +"PO-Revision-Date: 2023-12-29 14:09+0000\n" +"Last-Translator: SecularSteve \n" +"Language-Team: Croatian \n" "Language: hr\n" -"Language-Team: Croatian " -"\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." - diff --git a/searx/translations/it/LC_MESSAGES/messages.mo b/searx/translations/it/LC_MESSAGES/messages.mo index dfd19d545..6938b5296 100644 Binary files a/searx/translations/it/LC_MESSAGES/messages.mo and b/searx/translations/it/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/it/LC_MESSAGES/messages.po b/searx/translations/it/LC_MESSAGES/messages.po index 95863df04..06a8aced8 100644 --- a/searx/translations/it/LC_MESSAGES/messages.po +++ b/searx/translations/it/LC_MESSAGES/messages.po @@ -19,23 +19,24 @@ # random , 2022. # Franco Longo , 2022. # VaiTon , 2023. -# return42 , 2023. +# return42 , 2023, 2024. # SonoAX , 2023. # nicfab , 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 \n" +"Language-Team: Italian \n" "Language: it\n" -"Language-Team: Italian " -"\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 un’altra ricerca o seleziona un’altra 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." - diff --git a/searx/translations/ms/LC_MESSAGES/messages.mo b/searx/translations/ms/LC_MESSAGES/messages.mo index bfbc6d2c8..38dc43187 100644 Binary files a/searx/translations/ms/LC_MESSAGES/messages.mo and b/searx/translations/ms/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/ms/LC_MESSAGES/messages.po b/searx/translations/ms/LC_MESSAGES/messages.po index 3516dca21..7dcb0ed65 100644 --- a/searx/translations/ms/LC_MESSAGES/messages.po +++ b/searx/translations/ms/LC_MESSAGES/messages.po @@ -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 \n" "Language-Team: Malay \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" diff --git a/searx/translations/nl/LC_MESSAGES/messages.mo b/searx/translations/nl/LC_MESSAGES/messages.mo index 70ec04820..ea6dff3a2 100644 Binary files a/searx/translations/nl/LC_MESSAGES/messages.mo and b/searx/translations/nl/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/nl/LC_MESSAGES/messages.po b/searx/translations/nl/LC_MESSAGES/messages.po index 8b542ebcd..0039d9f8a 100644 --- a/searx/translations/nl/LC_MESSAGES/messages.po +++ b/searx/translations/nl/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ # Rejo Zenger , 2016-2017 # Markus Heiser , 2022. # Chris Capisce , 2022. -# SecularSteve , 2022. +# SecularSteve , 2022, 2023. # Sweder doc , 2022. # Peter Martin , 2022. # Max Westen , 2023. @@ -19,18 +19,19 @@ # microsoftocsharp , 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 \n" +"PO-Revision-Date: 2023-12-29 14:09+0000\n" +"Last-Translator: SecularSteve \n" +"Language-Team: Dutch \n" "Language: nl\n" -"Language-Team: Dutch " -"\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." - diff --git a/searx/translations/pt/LC_MESSAGES/messages.mo b/searx/translations/pt/LC_MESSAGES/messages.mo index 3d5a4efd1..156e15175 100644 Binary files a/searx/translations/pt/LC_MESSAGES/messages.mo and b/searx/translations/pt/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/pt/LC_MESSAGES/messages.po b/searx/translations/pt/LC_MESSAGES/messages.po index 42651499a..74d1554ff 100644 --- a/searx/translations/pt/LC_MESSAGES/messages.po +++ b/searx/translations/pt/LC_MESSAGES/messages.po @@ -10,23 +10,24 @@ # Ricardo Simões , 2022. # zaioti , 2022. # Alexandre Flament , 2022. -# return42 , 2023. +# return42 , 2023, 2024. # fabiosantoscode , 2023. # Coccocoas_Helper , 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 \n" +"Language-Team: Portuguese \n" "Language: pt\n" -"Language-Team: Portuguese " -"\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." - diff --git a/searx/translations/pt_BR/LC_MESSAGES/messages.mo b/searx/translations/pt_BR/LC_MESSAGES/messages.mo index dba59ca00..bc49be1d4 100644 Binary files a/searx/translations/pt_BR/LC_MESSAGES/messages.mo and b/searx/translations/pt_BR/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/pt_BR/LC_MESSAGES/messages.po b/searx/translations/pt_BR/LC_MESSAGES/messages.po index f1a1e5901..e61b07720 100644 --- a/searx/translations/pt_BR/LC_MESSAGES/messages.po +++ b/searx/translations/pt_BR/LC_MESSAGES/messages.po @@ -21,20 +21,22 @@ # lhostfree951 , 2023. # return42 , 2023. # Coccocoas_Helper , 2023. +# ETRB , 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 \n" +"PO-Revision-Date: 2023-12-29 14:09+0000\n" +"Last-Translator: ETRB \n" +"Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" -"Language-Team: Portuguese (Brazil) " -"\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." - diff --git a/searx/translations/ro/LC_MESSAGES/messages.mo b/searx/translations/ro/LC_MESSAGES/messages.mo index bcf6d0f55..f861fb0ca 100644 Binary files a/searx/translations/ro/LC_MESSAGES/messages.mo and b/searx/translations/ro/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/ro/LC_MESSAGES/messages.po b/searx/translations/ro/LC_MESSAGES/messages.po index ab59e40e0..5ce4081d7 100644 --- a/searx/translations/ro/LC_MESSAGES/messages.po +++ b/searx/translations/ro/LC_MESSAGES/messages.po @@ -15,19 +15,20 @@ # microsoftocsharp , 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 \n" +"Language-Team: Romanian \n" "Language: ro\n" -"Language-Team: Romanian " -"\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." - diff --git a/searx/translations/sr/LC_MESSAGES/messages.mo b/searx/translations/sr/LC_MESSAGES/messages.mo index 41a08ddab..790fb230f 100644 Binary files a/searx/translations/sr/LC_MESSAGES/messages.mo and b/searx/translations/sr/LC_MESSAGES/messages.mo differ diff --git a/searx/translations/sr/LC_MESSAGES/messages.po b/searx/translations/sr/LC_MESSAGES/messages.po index 2596df988..fb64b3ffa 100644 --- a/searx/translations/sr/LC_MESSAGES/messages.po +++ b/searx/translations/sr/LC_MESSAGES/messages.po @@ -7,23 +7,24 @@ # Marc Abonce Seguin, 2019 # jugi1, 2017 # Markus Heiser , 2022. -# SecularSteve , 2022. +# SecularSteve , 2022, 2023. # return42 , 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 \n" +"PO-Revision-Date: 2023-12-29 14:09+0000\n" +"Last-Translator: SecularSteve \n" +"Language-Team: Serbian \n" "Language: sr\n" -"Language-Team: Serbian " -"\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 "" #~ "нема никавих резултата претраге. Молимо " #~ "покишајте другу претрагу или категорију." - diff --git a/utils/brand.env b/utils/brand.env deleted file mode 100644 index 31afce53c..000000000 --- a/utils/brand.env +++ /dev/null @@ -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' diff --git a/utils/brand.sh b/utils/brand.sh new file mode 100755 index 000000000..1749efb31 --- /dev/null +++ b/utils/brand.sh @@ -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 diff --git a/utils/build_env.py b/utils/build_env.py deleted file mode 100644 index 1ef8ab700..000000000 --- a/utils/build_env.py +++ /dev/null @@ -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) diff --git a/utils/filtron.sh b/utils/filtron.sh index 7607bf6aa..2ac3b6dfd 100755 --- a/utils/filtron.sh +++ b/utils/filtron.sh @@ -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 diff --git a/utils/get_setting.py b/utils/get_setting.py new file mode 100644 index 000000000..94c894e3e --- /dev/null +++ b/utils/get_setting.py @@ -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]) diff --git a/utils/lib.sh b/utils/lib.sh index afc6ef19b..16bfb4398 100755 --- a/utils/lib.sh +++ b/utils/lib.sh @@ -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 diff --git a/utils/lib_sxng_static.sh b/utils/lib_sxng_static.sh index de34ea629..8271cc144 100755 --- a/utils/lib_sxng_static.sh +++ b/utils/lib_sxng_static.sh @@ -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 diff --git a/utils/lxc.sh b/utils/lxc.sh index 28cc30265..723451115 100755 --- a/utils/lxc.sh +++ b/utils/lxc.sh @@ -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}" diff --git a/utils/morty.sh b/utils/morty.sh index 33c5c0e73..52f0fec31 100755 --- a/utils/morty.sh +++ b/utils/morty.sh @@ -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 diff --git a/utils/searx.sh b/utils/searx.sh index 719cd2031..1d339cd68 100755 --- a/utils/searx.sh +++ b/utils/searx.sh @@ -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 diff --git a/utils/searxng.sh b/utils/searxng.sh index 197188a4a..8cabbb722 100755 --- a/utils/searxng.sh +++ b/utils/searxng.sh @@ -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 <