summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config.sh2
-rw-r--r--.github/workflows/integration.yml26
-rw-r--r--CHANGELOG.rst8
-rw-r--r--CONTRIBUTING.md4
-rw-r--r--Makefile6
-rw-r--r--README.rst16
-rw-r--r--dockerfiles/uwsgi.ini11
-rw-r--r--docs/_themes/searxng/static/searxng.css3
-rw-r--r--docs/admin/arch_public.dot8
-rw-r--r--docs/admin/engines/configured_engines.rst14
-rw-r--r--docs/admin/engines/settings.rst27
-rw-r--r--docs/admin/filtron.rst2
-rw-r--r--docs/conf.py17
-rw-r--r--docs/dev/makefile.rst19
-rw-r--r--docs/dev/quickstart.rst5
-rw-r--r--docs/dev/reST.rst2
-rw-r--r--docs/dev/searxng_extra/index.rst9
-rw-r--r--docs/dev/searxng_extra/update.rst88
-rw-r--r--docs/user/search_syntax.rst3
-rwxr-xr-xmanage50
-rw-r--r--requirements-dev.txt4
-rw-r--r--requirements.txt6
-rw-r--r--searx/data/engine_descriptions.json111
-rw-r--r--searx/engines/__init__.py43
-rw-r--r--searx/engines/apkmirror.py2
-rw-r--r--searx/engines/archlinux.py2
-rw-r--r--searx/engines/bing.py2
-rw-r--r--searx/engines/bing_images.py2
-rw-r--r--searx/engines/bing_videos.py2
-rw-r--r--searx/engines/duckduckgo.py2
-rw-r--r--searx/engines/duckduckgo_images.py2
-rw-r--r--searx/engines/duden.py2
-rw-r--r--searx/engines/etools.py58
-rw-r--r--searx/engines/fdroid.py2
-rw-r--r--searx/engines/genius.py2
-rw-r--r--searx/engines/gentoo.py2
-rw-r--r--searx/engines/gigablast.py2
-rw-r--r--searx/engines/github.py2
-rw-r--r--searx/engines/google.py2
-rw-r--r--searx/engines/google_images.py2
-rw-r--r--searx/engines/google_videos.py2
-rw-r--r--searx/engines/imdb.py4
-rw-r--r--searx/engines/microsoft_academic.py77
-rw-r--r--searx/engines/openverse.py (renamed from searx/engines/ccengine.py)10
-rw-r--r--searx/engines/searx_engine.py2
-rw-r--r--searx/engines/seznam.py1
-rw-r--r--searx/engines/sjp.py2
-rw-r--r--searx/engines/startpage.py2
-rw-r--r--searx/engines/translated.py2
-rw-r--r--searx/engines/yahoo.py2
-rw-r--r--searx/metrics/__init__.py12
-rw-r--r--searx/metrics/error_recorder.py6
-rw-r--r--searx/metrics/models.py17
-rw-r--r--searx/network/client.py105
-rw-r--r--searx/network/network.py45
-rw-r--r--searx/plugins/__init__.py12
-rw-r--r--searx/preferences.py257
-rw-r--r--searx/query.py4
-rw-r--r--searx/search/__init__.py4
-rw-r--r--searx/settings.yml104
-rw-r--r--searx/settings_defaults.py29
-rw-r--r--searx/static/themes/.gitattributes2
-rw-r--r--searx/static/themes/oscar/css/logicodev-dark.css2
-rw-r--r--searx/static/themes/oscar/css/logicodev.css2
-rw-r--r--searx/static/themes/oscar/css/pointhi.css2
-rw-r--r--searx/static/themes/oscar/src/generated/pygments-logicodev.less2
-rw-r--r--searx/static/themes/oscar/src/generated/pygments-pointhi.less2
-rw-r--r--searx/static/themes/simple/css/searxng-rtl.min.css2
-rw-r--r--searx/static/themes/simple/css/searxng-rtl.min.css.map2
-rw-r--r--searx/static/themes/simple/css/searxng.min.css2
-rw-r--r--searx/static/themes/simple/css/searxng.min.css.map2
-rw-r--r--searx/static/themes/simple/js/searxng.min.js2
-rw-r--r--searx/static/themes/simple/js/searxng.min.js.map2
-rw-r--r--searx/static/themes/simple/src/generated/pygments.less2
-rw-r--r--searx/static/themes/simple/src/js/main/search.js10
-rw-r--r--searx/static/themes/simple/src/less/definitions.less2
-rw-r--r--searx/static/themes/simple/src/less/preferences.less6
-rw-r--r--searx/templates/oscar/categories.html4
-rw-r--r--searx/templates/oscar/preferences.html20
-rw-r--r--searx/templates/simple/categories.html2
-rw-r--r--searx/templates/simple/preferences.html20
-rw-r--r--searx/translations/ar/LC_MESSAGES/messages.mobin10538 -> 10538 bytes
-rw-r--r--searx/translations/ar/LC_MESSAGES/messages.po297
-rw-r--r--searx/translations/bg/LC_MESSAGES/messages.mobin13642 -> 13642 bytes
-rw-r--r--searx/translations/bg/LC_MESSAGES/messages.po308
-rw-r--r--searx/translations/bo/LC_MESSAGES/messages.mobin13858 -> 13858 bytes
-rw-r--r--searx/translations/bo/LC_MESSAGES/messages.po295
-rw-r--r--searx/translations/ca/LC_MESSAGES/messages.mobin10349 -> 10349 bytes
-rw-r--r--searx/translations/ca/LC_MESSAGES/messages.po285
-rw-r--r--searx/translations/cs/LC_MESSAGES/messages.mobin11675 -> 11675 bytes
-rw-r--r--searx/translations/cs/LC_MESSAGES/messages.po301
-rw-r--r--searx/translations/cy/LC_MESSAGES/messages.mobin5776 -> 5776 bytes
-rw-r--r--searx/translations/cy/LC_MESSAGES/messages.po285
-rw-r--r--searx/translations/da/LC_MESSAGES/messages.mobin11170 -> 11170 bytes
-rw-r--r--searx/translations/da/LC_MESSAGES/messages.po295
-rw-r--r--searx/translations/de/LC_MESSAGES/messages.mobin15496 -> 16001 bytes
-rw-r--r--searx/translations/de/LC_MESSAGES/messages.po295
-rw-r--r--searx/translations/el_GR/LC_MESSAGES/messages.mobin7087 -> 7087 bytes
-rw-r--r--searx/translations/el_GR/LC_MESSAGES/messages.po285
-rw-r--r--searx/translations/en/LC_MESSAGES/messages.mobin443 -> 443 bytes
-rw-r--r--searx/translations/en/LC_MESSAGES/messages.po285
-rw-r--r--searx/translations/eo/LC_MESSAGES/messages.mobin9770 -> 9770 bytes
-rw-r--r--searx/translations/eo/LC_MESSAGES/messages.po301
-rw-r--r--searx/translations/es/LC_MESSAGES/messages.mobin11993 -> 11993 bytes
-rw-r--r--searx/translations/es/LC_MESSAGES/messages.po295
-rw-r--r--searx/translations/et/LC_MESSAGES/messages.mobin10447 -> 10447 bytes
-rw-r--r--searx/translations/et/LC_MESSAGES/messages.po295
-rw-r--r--searx/translations/eu/LC_MESSAGES/messages.mobin10758 -> 10758 bytes
-rw-r--r--searx/translations/eu/LC_MESSAGES/messages.po285
-rw-r--r--searx/translations/fa_IR/LC_MESSAGES/messages.mobin18269 -> 18269 bytes
-rw-r--r--searx/translations/fa_IR/LC_MESSAGES/messages.po336
-rw-r--r--searx/translations/fi/LC_MESSAGES/messages.mobin15088 -> 15088 bytes
-rw-r--r--searx/translations/fi/LC_MESSAGES/messages.po295
-rw-r--r--searx/translations/fil/LC_MESSAGES/messages.mobin9522 -> 9522 bytes
-rw-r--r--searx/translations/fil/LC_MESSAGES/messages.po297
-rw-r--r--searx/translations/fr/LC_MESSAGES/messages.mobin15798 -> 15798 bytes
-rw-r--r--searx/translations/fr/LC_MESSAGES/messages.po306
-rw-r--r--searx/translations/gl/LC_MESSAGES/messages.mobin10760 -> 10760 bytes
-rw-r--r--searx/translations/gl/LC_MESSAGES/messages.po285
-rw-r--r--searx/translations/he/LC_MESSAGES/messages.mobin10932 -> 10932 bytes
-rw-r--r--searx/translations/he/LC_MESSAGES/messages.po285
-rw-r--r--searx/translations/hr/LC_MESSAGES/messages.mobin10829 -> 10829 bytes
-rw-r--r--searx/translations/hr/LC_MESSAGES/messages.po301
-rw-r--r--searx/translations/hu/LC_MESSAGES/messages.mobin10545 -> 10545 bytes
-rw-r--r--searx/translations/hu/LC_MESSAGES/messages.po295
-rw-r--r--searx/translations/ia/LC_MESSAGES/messages.mobin9851 -> 9851 bytes
-rw-r--r--searx/translations/ia/LC_MESSAGES/messages.po295
-rw-r--r--searx/translations/id/LC_MESSAGES/messages.mobin15039 -> 15541 bytes
-rw-r--r--searx/translations/id/LC_MESSAGES/messages.po347
-rw-r--r--searx/translations/it/LC_MESSAGES/messages.mobin15238 -> 15238 bytes
-rw-r--r--searx/translations/it/LC_MESSAGES/messages.po299
-rw-r--r--searx/translations/ja/LC_MESSAGES/messages.mobin13141 -> 13319 bytes
-rw-r--r--searx/translations/ja/LC_MESSAGES/messages.po305
-rw-r--r--searx/translations/lt/LC_MESSAGES/messages.mobin11194 -> 11194 bytes
-rw-r--r--searx/translations/lt/LC_MESSAGES/messages.po299
-rw-r--r--searx/translations/messages.pot289
-rw-r--r--searx/translations/nb_NO/LC_MESSAGES/messages.mobin12967 -> 12967 bytes
-rw-r--r--searx/translations/nb_NO/LC_MESSAGES/messages.po285
-rw-r--r--searx/translations/nl/LC_MESSAGES/messages.mobin15144 -> 15144 bytes
-rw-r--r--searx/translations/nl/LC_MESSAGES/messages.po302
-rw-r--r--searx/translations/nl_BE/LC_MESSAGES/messages.mobin11924 -> 0 bytes
-rw-r--r--searx/translations/nl_BE/LC_MESSAGES/messages.po1371
-rw-r--r--searx/translations/oc/LC_MESSAGES/messages.mobin10252 -> 10252 bytes
-rw-r--r--searx/translations/oc/LC_MESSAGES/messages.po298
-rw-r--r--searx/translations/pl/LC_MESSAGES/messages.mobin13921 -> 13921 bytes
-rw-r--r--searx/translations/pl/LC_MESSAGES/messages.po307
-rw-r--r--searx/translations/pt/LC_MESSAGES/messages.mobin12163 -> 12163 bytes
-rw-r--r--searx/translations/pt/LC_MESSAGES/messages.po295
-rw-r--r--searx/translations/pt_BR/LC_MESSAGES/messages.mobin10823 -> 11289 bytes
-rw-r--r--searx/translations/pt_BR/LC_MESSAGES/messages.po305
-rw-r--r--searx/translations/ro/LC_MESSAGES/messages.mobin10463 -> 10463 bytes
-rw-r--r--searx/translations/ro/LC_MESSAGES/messages.po285
-rw-r--r--searx/translations/ru/LC_MESSAGES/messages.mobin19898 -> 19898 bytes
-rw-r--r--searx/translations/ru/LC_MESSAGES/messages.po299
-rw-r--r--searx/translations/sk/LC_MESSAGES/messages.mobin8743 -> 8743 bytes
-rw-r--r--searx/translations/sk/LC_MESSAGES/messages.po297
-rw-r--r--searx/translations/sl/LC_MESSAGES/messages.mobin9660 -> 9707 bytes
-rw-r--r--searx/translations/sl/LC_MESSAGES/messages.po309
-rw-r--r--searx/translations/sr/LC_MESSAGES/messages.mobin13317 -> 13317 bytes
-rw-r--r--searx/translations/sr/LC_MESSAGES/messages.po301
-rw-r--r--searx/translations/sv/LC_MESSAGES/messages.mobin10549 -> 10549 bytes
-rw-r--r--searx/translations/sv/LC_MESSAGES/messages.po295
-rw-r--r--searx/translations/ta/LC_MESSAGES/messages.mobin25296 -> 25296 bytes
-rw-r--r--searx/translations/ta/LC_MESSAGES/messages.po327
-rw-r--r--searx/translations/te/LC_MESSAGES/messages.mobin5927 -> 5927 bytes
-rw-r--r--searx/translations/te/LC_MESSAGES/messages.po285
-rw-r--r--searx/translations/tr/LC_MESSAGES/messages.mobin11023 -> 11023 bytes
-rw-r--r--searx/translations/tr/LC_MESSAGES/messages.po295
-rw-r--r--searx/translations/uk/LC_MESSAGES/messages.mobin11375 -> 11375 bytes
-rw-r--r--searx/translations/uk/LC_MESSAGES/messages.po285
-rw-r--r--searx/translations/vi/LC_MESSAGES/messages.mobin10947 -> 10947 bytes
-rw-r--r--searx/translations/vi/LC_MESSAGES/messages.po285
-rw-r--r--searx/translations/zh_Hans_CN/LC_MESSAGES/messages.mobin14294 -> 14294 bytes
-rw-r--r--searx/translations/zh_Hans_CN/LC_MESSAGES/messages.po295
-rw-r--r--searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mobin10029 -> 10029 bytes
-rw-r--r--searx/translations/zh_Hant_TW/LC_MESSAGES/messages.po285
-rw-r--r--searx/webadapter.py2
-rwxr-xr-xsearx/webapp.py34
-rw-r--r--searx/webutils.py30
-rwxr-xr-xsearxng_extra/update/update_ahmia_blacklist.py22
-rwxr-xr-xsearxng_extra/update/update_currencies.py13
-rwxr-xr-xsearxng_extra/update/update_engine_descriptions.py14
-rwxr-xr-xsearxng_extra/update/update_external_bangs.py13
-rwxr-xr-xsearxng_extra/update/update_firefox_version.py51
-rwxr-xr-xsearxng_extra/update/update_languages.py39
-rwxr-xr-xsearxng_extra/update/update_osm_keys_tags.py5
-rwxr-xr-xsearxng_extra/update/update_wikidata_units.py12
-rw-r--r--setup.py4
-rw-r--r--tests/robot/settings_robot.yml6
-rw-r--r--tests/unit/network/test_network.py6
-rw-r--r--tests/unit/test_preferences.py19
-rw-r--r--tests/unit/test_query.py14
-rwxr-xr-xutils/lxc.sh2
-rwxr-xr-xutils/morty.sh2
-rw-r--r--utils/templates/etc/searxng/settings.yml2
195 files changed, 8792 insertions, 8206 deletions
diff --git a/.config.sh b/.config.sh
index 9a3a0bbcb..cc7663648 100644
--- a/.config.sh
+++ b/.config.sh
@@ -26,7 +26,7 @@
# SEARXNG_SETTINGS_PATH : /etc/searxng/settings.yml
# SEARX_SRC : /usr/local/searx/searx-src
#
-# [1] https://searxng.github.io/searxng/admin/engines/settings.html
+# [1] https://docs.searxng.org/admin/engines/settings.html
# utils/filtron.sh
# ----------------
diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml
index 4e1f59a38..ea9dc0972 100644
--- a/.github/workflows/integration.yml
+++ b/.github/workflows/integration.yml
@@ -56,6 +56,17 @@ jobs:
uses: actions/checkout@v2
- name: Install Ubuntu packages
run: sudo ./utils/searx.sh install buildhost
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: '3.9'
+ architecture: 'x64'
+ - name: Cache Python dependencies
+ id: cache-python
+ uses: actions/cache@v2
+ with:
+ path: ./local
+ key: python-ubuntu-20.04-3.9-${{ hashFiles('requirements*.txt', 'setup.py') }}
- name: Install node dependencies
run: make V=1 node.env
- name: Build themes
@@ -68,6 +79,7 @@ jobs:
- name: Checkout
uses: actions/checkout@v2
with:
+ fetch-depth: '0'
persist-credentials: false
- name: Install Ubuntu packages
run: sudo ./utils/searx.sh install buildhost
@@ -76,6 +88,12 @@ jobs:
with:
python-version: '3.9'
architecture: 'x64'
+ - name: Cache Python dependencies
+ id: cache-python
+ uses: actions/cache@v2
+ with:
+ path: ./local
+ key: python-ubuntu-20.04-3.9-${{ hashFiles('requirements*.txt', 'setup.py') }}
- name: Build documentation
run: |
make V=1 docs.clean docs.html
@@ -138,7 +156,7 @@ jobs:
- documentation
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
- runs-on: ubuntu-18.04
+ runs-on: ubuntu-20.04
steps:
- name: Checkout
if: env.DOCKERHUB_USERNAME != null
@@ -151,6 +169,12 @@ jobs:
with:
python-version: '3.9'
architecture: 'x64'
+ - name: Cache Python dependencies
+ id: cache-python
+ uses: actions/cache@v2
+ with:
+ path: ./local
+ key: python-ubuntu-20.04-3.9-${{ hashFiles('requirements*.txt', 'setup.py') }}
- name: Set up QEMU
if: env.DOCKERHUB_USERNAME != null
uses: docker/setup-qemu-action@v1
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index c215f225e..95b4ad0e3 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -180,7 +180,7 @@ New settings.yml
- ``ui.advanced_search`` - add preference for displaying advanced settings ( #2327 )
- ``server.method: "POST"`` - Make default query submission method configurable ( #2130 )
- ``server.default_http_headers`` - add default http headers ( #2295 )
-- ``engines.*.proxies`` - Using proxy only for specific engines ( #1827 #2319 ), see https://searxng.github.io/searxng/dev/engine_overview.html#settings-yml
+- ``engines.*.proxies`` - Using proxy only for specific engines ( #1827 #2319 ), see https://docs.searxng.org/dev/engine_overview.html#settings-yml
- ``enabled_plugins`` - Enabled plugins ( a05c660e3036ad8d02072fc6731af54c2ed6151c )
- ``preferences.lock`` - Let admins lock user preferences ( #2270 )
@@ -296,8 +296,8 @@ Special thanks to `NLNet <https://nlnet.nl>`__ for sponsoring multiple features
- Wikivoyage
- Rubygems
- Engine fixes (google, google images, startpage, gigablast, yacy)
- - Private engines introduced - more details: https://searxng.github.io/searxng/blog/private-engines.html
- - Greatly improved documentation - check it at https://searxng.github.io/searxng
+ - Private engines introduced - more details: https://docs.searxng.org/blog/private-engines.html
+ - Greatly improved documentation - check it at https://docs.searxng.org
- Added autofocus to all search inputs
- CSP friendly oscar theme
- Added option to hide engine errors with `display_error_messages` engine option (true/false values, default is true)
@@ -595,7 +595,7 @@ News
News
~~~~
-New documentation page is available: https://searxng.github.io/searxng
+New documentation page is available: https://docs.searxng.org
0.8.0 2015.09.08
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 66adfb9fc..748a7b53c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -2,8 +2,8 @@
## Resources in the documentation
-* [Development quickstart](https://searxng.github.io/searxng/dev/contribution_guide.html)
-* [Contribution guide](https://searxng.github.io/searxng/dev/contribution_guide.html)
+* [Development quickstart](https://docs.searxng.org/dev/contribution_guide.html)
+* [Contribution guide](https://docs.searxng.org/dev/contribution_guide.html)
## Submitting PRs
diff --git a/Makefile b/Makefile
index c15a2345e..20f89a79b 100644
--- a/Makefile
+++ b/Makefile
@@ -25,11 +25,7 @@ help:
PHONY += run
run: install
- $(Q) ( \
- sleep 2 ; \
- xdg-open http://127.0.0.1:8888/ ; \
- ) &
- SEARXNG_DEBUG=1 ./manage pyenv.cmd python -m searx.webapp
+ $(Q)./manage webapp.run
PHONY += install uninstall
install uninstall:
diff --git a/README.rst b/README.rst
index e3c384019..becf7b989 100644
--- a/README.rst
+++ b/README.rst
@@ -1,7 +1,7 @@
.. SPDX-License-Identifier: AGPL-3.0-or-later
.. figure:: https://raw.githubusercontent.com/searxng/searxng/master/src/brand/searxng.svg
- :target: https://searxng.github.io/searxng/
+ :target: https://docs.searxng.org/
:alt: SearXNG
:width: 100%
:align: center
@@ -23,21 +23,21 @@ Otherwise jump to the user_, admin_ and developer_ handbooks you will find on
our homepage_.
.. _searx.space: https://searx.space
-.. _user: https://searxng.github.io/searxng/user
-.. _admin: https://searxng.github.io/searxng/admin
-.. _developer: https://searxng.github.io/searxng/dev
-.. _homepage: https://searxng.github.io/searxng
+.. _user: https://docs.searxng.org/user
+.. _admin: https://docs.searxng.org/user/admin
+.. _developer: https://docs.searxng.org/dev
+.. _homepage: https://docs.searxng.org/
.. _metasearch engine: https://en.wikipedia.org/wiki/Metasearch_engine
.. |SearXNG logo| image:: https://raw.githubusercontent.com/searxng/searxng/master/src/brand/searxng-wordmark.svg
- :target: https://searxng.github.io/searxng
+ :target: https://docs.searxng.org/
:width: 5%
.. |SearXNG install| image:: https://img.shields.io/badge/-install-blue
- :target: https://searxng.github.io/searxng/admin/installation.html
+ :target: https://docs.searxng.org/admin/installation.html
.. |SearXNG homepage| image:: https://img.shields.io/badge/-homepage-blue
- :target: https://searxng.github.io/searxng
+ :target: https://docs.searxng.org/
.. |SearXNG wiki| image:: https://img.shields.io/badge/-wiki-blue
:target: https://github.com/searxng/searxng/wiki
diff --git a/dockerfiles/uwsgi.ini b/dockerfiles/uwsgi.ini
index 00b17436d..fe518e887 100644
--- a/dockerfiles/uwsgi.ini
+++ b/dockerfiles/uwsgi.ini
@@ -4,7 +4,8 @@ uid = searxng
gid = searxng
# Number of workers (usually CPU count)
-workers = 4
+workers = %k
+threads = 4
# The right granted on the created socket
chmod-socket = 666
@@ -23,8 +24,14 @@ module = searx.webapp
pythonpath = /usr/local/searxng/
chdir = /usr/local/searxng/searx/
+# automatically set processes name to something meaningful
+auto-procname = true
+
# Disable logging for privacy
-disable-logging=True
+disable-logging = true
+
+# Set the max size of a request (request-body excluded)
+buffer-size = 8192
# But keep errors for 2 days
touch-logrotate = /run/uwsgi-logrotate
diff --git a/docs/_themes/searxng/static/searxng.css b/docs/_themes/searxng/static/searxng.css
index e6f93412d..64f6d4700 100644
--- a/docs/_themes/searxng/static/searxng.css
+++ b/docs/_themes/searxng/static/searxng.css
@@ -33,6 +33,9 @@ p.sidebar-title, .sidebar p {
list-style-type: disclosure-closed;
}
+.sphinxsidebar .current > a {
+ font-weight: bold;
+}
/* admonitions
*/
diff --git a/docs/admin/arch_public.dot b/docs/admin/arch_public.dot
index b838685e7..c4ee5f3c1 100644
--- a/docs/admin/arch_public.dot
+++ b/docs/admin/arch_public.dot
@@ -4,11 +4,11 @@ digraph G {
edge [fontname="Sans"];
browser [label="Browser", shape=Mdiamond];
- rp [label="Reverse Proxy", href="https://searxng.github.io/searxng/utils/filtron.sh.html#public-reverse-proxy"];
- filtron [label="Filtron", href="https://searxng.github.io/searxng/utils/filtron.sh.html"];
- morty [label="Morty", href="https://searxng.github.io/searxng/utils/morty.sh.html"];
+ rp [label="Reverse Proxy", href="https://docs.searxng.org/utils/filtron.sh.html#public-reverse-proxy"];
+ filtron [label="Filtron", href="https://docs.searxng.org/utils/filtron.sh.html"];
+ morty [label="Morty", href="https://docs.searxng.org/utils/morty.sh.html"];
static [label="Static files", href="url to configure static files"];
- uwsgi [label="uwsgi", href="https://searxng.github.io/searxng/utils/searx.sh.html"]
+ uwsgi [label="uwsgi", href="https://docs.searxng.org/utils/searx.sh.html"]
searx1 [label="Searx #1"];
searx2 [label="Searx #2"];
searx3 [label="Searx #3"];
diff --git a/docs/admin/engines/configured_engines.rst b/docs/admin/engines/configured_engines.rst
index 0060d1b74..c7b6a1f52 100644
--- a/docs/admin/engines/configured_engines.rst
+++ b/docs/admin/engines/configured_engines.rst
@@ -16,11 +16,18 @@ Explanation of the :ref:`general engine configuration` shown in the table
SearXNG supports {{engines | length}} search engines (of which {{enabled_engine_count}} are enabled by default).
- {% for category, engines in engines.items() | groupby('1.categories.0') %}
+ {% for category, engines in categories_as_tabs.items() %}
{{category}} search engines
---------------------------------------
+ {% for group, engines in engines | group_engines_in_tab %}
+
+ {% if loop.length > 1 %}
+ {{group}}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ {% endif %}
+
.. flat-table::
:header-rows: 2
:stub-columns: 1
@@ -39,9 +46,9 @@ Explanation of the :ref:`general engine configuration` shown in the table
- Safe search
- Time range
- {% for name, mod in engines | sort_engines %}
+ {% for mod in engines %}
- * - `{{name}} <{{mod.about and mod.about.website}}>`_
+ * - `{{mod.name}} <{{mod.about and mod.about.website}}>`_
- ``!{{mod.shortcut}}``
- {%- if 'searx.engines.' + mod.__name__ in documented_modules %}
:py:mod:`~searx.engines.{{mod.__name__}}`
@@ -65,3 +72,4 @@ Explanation of the :ref:`general engine configuration` shown in the table
{% endfor %}
{% endfor %}
+ {% endfor %}
diff --git a/docs/admin/engines/settings.rst b/docs/admin/engines/settings.rst
index 9f96a2b68..c96dd3329 100644
--- a/docs/admin/engines/settings.rst
+++ b/docs/admin/engines/settings.rst
@@ -46,7 +46,7 @@ Global Settings
brand:
issue_url: https://github.com/searxng/searxng/issues
- docs_url: https://searxng/searxng.github.io/searxng
+ docs_url: https://docs.searxng.org
public_instances: https://searx.space
wiki_url: https://github.com/searxng/searxng/wiki
@@ -81,6 +81,9 @@ Global Settings
``contact_url``:
Contact ``mailto:`` address or WEB form.
+``enable_metrics``:
+ Enabled by default. Record various anonymous metrics availabled at ``/stats``,
+ ``/stats/errors`` and ``/preferences``.
.. _settings global server:
@@ -249,6 +252,26 @@ Communication with search engines.
``max_redirects`` :
30 by default. Maximum redirect before it is an error.
+``categories_as_tabs:``
+-----------------------
+
+A list of the categories that are displayed as tabs in the user interface.
+Categories not listed here can still be searched with the :ref:`search-syntax`.
+
+.. code-block:: yaml
+
+ categories_as_tabs:
+ general:
+ images:
+ videos:
+ news:
+ map:
+ music:
+ it:
+ science:
+ files:
+ social media:
+
.. _settings engine:
Engine settings
@@ -309,7 +332,7 @@ engine is shown. Most of the options have a default value or even are optional.
search engine.
``shortcut`` :
- Code used to execute bang requests (in this case using ``!bi`` or ``?bi``)
+ Code used to execute bang requests (in this case using ``!bi``)
``base_url`` : optional
Part of the URL that should be stable across every request. Can be useful to
diff --git a/docs/admin/filtron.rst b/docs/admin/filtron.rst
index 9587d76cb..f08149ae9 100644
--- a/docs/admin/filtron.rst
+++ b/docs/admin/filtron.rst
@@ -23,7 +23,7 @@ it is advised to limit the number of requests processed by SearXNG.
An application firewall, filtron_ solves exactly this problem. Filtron is just
a middleware between your web server (nginx, apache, ...) and searx, we describe
-such infratructures in chapter: :ref:`architecture`.
+such infrastructures in chapter: :ref:`architecture`.
filtron & go
diff --git a/docs/conf.py b/docs/conf.py
index 628687b6a..ad7152a2b 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -3,6 +3,7 @@
import sys, os
from pallets_sphinx_themes import ProjectLink
+from flask import Flask
from searx import get_setting
from searx.version import VERSION_STRING, GIT_URL, GIT_BRANCH
@@ -39,7 +40,15 @@ exclude_patterns = ['build-templates/*.rst']
import searx.engines
import searx.plugins
+import searx.webutils
+
+# bypass a creepy check of the secret_key in searx.webapp
+searx.settings['server']['secret_key'] = ''
+from searx.webapp import application
+
searx.engines.load_engines(searx.settings['engines'])
+searx.plugins.initialize(application)
+
jinja_contexts = {
'searx': {
'engines': searx.engines.engines,
@@ -48,14 +57,12 @@ jinja_contexts = {
'node': os.getenv('NODE_MINIMUM_VERSION')
},
'enabled_engine_count': sum(not x.disabled for x in searx.engines.engines.values()),
+ 'categories': searx.engines.categories,
+ 'categories_as_tabs': {c: searx.engines.categories[c] for c in searx.settings['categories_as_tabs']},
},
}
jinja_filters = {
- 'sort_engines':
- lambda engines: sorted(
- engines,
- key=lambda engine: (engine[1].disabled, engine[1].about.get('language', ''), engine[0])
- )
+ 'group_engines_in_tab': searx.webutils.group_engines_in_tab,
}
# Let the Jinja template in configured_engines.rst access documented_modules
diff --git a/docs/dev/makefile.rst b/docs/dev/makefile.rst
index 66def0b3a..8c9058c34 100644
--- a/docs/dev/makefile.rst
+++ b/docs/dev/makefile.rst
@@ -13,7 +13,7 @@ Makefile
To install system requirements follow :ref:`buildhosts`.
-All relevant build tasks are implemented in :origin:`manage.sh` and for CI or
+All relevant build tasks are implemented in :origin:`manage` and for CI or
IDE integration a small ``Makefile`` wrapper is available. If you are not
familiar with Makefiles, we recommend to read gnu-make_ introduction.
@@ -173,14 +173,19 @@ Install latest Node.js_ LTS locally (uses nvm_)::
To get up a running a developer instance simply call ``make run``. This enables
*debug* option in :origin:`searx/settings.yml`, starts a ``./searx/webapp.py``
-instance, disables *debug* option again and opens the URL in your favorite WEB
-browser (:man:`xdg-open`)::
+instance and opens the URL in your favorite WEB browser (:man:`xdg-open`)::
$ make run
- PYENV OK
- SEARXNG_DEBUG=1 ./manage.sh pyenv.cmd python ./searx/webapp.py
- ...
- INFO:werkzeug: * Running on http://127.0.0.1:8888/ (Press CTRL+C to quit)
+
+Changes to theme's HTML templates (jinja2) are instant. Changes to the CSS & JS
+sources of the theme need to be rebuild. You can do that by running::
+
+ $ make themes.all
+
+Alternatively to ``themes.all`` you can run *live builds* of the theme you are
+modify::
+
+ $ LIVE_THEME=simple make run
.. _make clean:
diff --git a/docs/dev/quickstart.rst b/docs/dev/quickstart.rst
index d2b666c09..db52a2d80 100644
--- a/docs/dev/quickstart.rst
+++ b/docs/dev/quickstart.rst
@@ -40,10 +40,15 @@ JavaScript:
Alternatively you can also compile selective the theme you have modified,
e.g. the *simple* theme.
+
.. code:: sh
make themes.simple
+.. tip::
+
+ To get live builds while modifying CSS & JS use: ``LIVE_THEME=simple make run``
+
If you finished your *tests* you can start to commit your changes. To separate
the modified source code from the build products first run:
diff --git a/docs/dev/reST.rst b/docs/dev/reST.rst
index 4f17b1b2f..70d08adb5 100644
--- a/docs/dev/reST.rst
+++ b/docs/dev/reST.rst
@@ -320,7 +320,7 @@ To list all anchors of the inventory (e.g. ``python``) use:
$ python -m sphinx.ext.intersphinx https://docs.python.org/3/objects.inv
...
- $ python -m sphinx.ext.intersphinx https://searxng.github.io/searxng/objects.inv
+ $ python -m sphinx.ext.intersphinx https://docs.searxng.org/objects.inv
...
Literal blocks
diff --git a/docs/dev/searxng_extra/index.rst b/docs/dev/searxng_extra/index.rst
index f38bb3154..c2b5c312b 100644
--- a/docs/dev/searxng_extra/index.rst
+++ b/docs/dev/searxng_extra/index.rst
@@ -1,14 +1,15 @@
.. _searxng_extra:
-======================================================
-Tooling box ``searxng_extra`` for developers and users
-======================================================
+=============================
+Tooling box ``searxng_extra``
+=============================
-In the folder :origin:`searxng_extra/` we maintain some tools useful for
+In the folder :origin:`searxng_extra/` we maintain some tools useful for CI and
developers.
.. toctree::
:maxdepth: 2
:caption: Contents
+ update
standalone_searx.py
diff --git a/docs/dev/searxng_extra/update.rst b/docs/dev/searxng_extra/update.rst
new file mode 100644
index 000000000..d05c81409
--- /dev/null
+++ b/docs/dev/searxng_extra/update.rst
@@ -0,0 +1,88 @@
+=========================
+``searxng_extra/update/``
+=========================
+
+:origin:`[source] <searxng_extra/update/__init__.py>`
+
+Scripts to update static data in :origin:`searx/data/`
+
+.. _update_ahmia_blacklist.py:
+
+``update_ahmia_blacklist.py``
+=============================
+
+:origin:`[source] <searxng_extra/update/update_ahmia_blacklist.py>`
+
+.. automodule:: searxng_extra.update.update_ahmia_blacklist
+ :members:
+
+
+``update_currencies.py``
+========================
+
+:origin:`[source] <searxng_extra/update/update_currencies.py>`
+
+.. automodule:: searxng_extra.update.update_currencies
+ :members:
+
+``update_engine_descriptions.py``
+=================================
+
+:origin:`[source] <searxng_extra/update/update_engine_descriptions.py>`
+
+.. automodule:: searxng_extra.update.update_engine_descriptions
+ :members:
+
+
+``update_external_bangs.py``
+============================
+
+:origin:`[source] <searxng_extra/update/update_external_bangs.py>`
+
+.. automodule:: searxng_extra.update.update_external_bangs
+ :members:
+
+
+``update_firefox_version.py``
+=============================
+
+:origin:`[source] <searxng_extra/update/update_firefox_version.py>`
+
+.. automodule:: searxng_extra.update.update_firefox_version
+ :members:
+
+
+``update_languages.py``
+=======================
+
+:origin:`[source] <searxng_extra/update/update_languages.py>`
+
+.. automodule:: searxng_extra.update.update_languages
+ :members:
+
+
+``update_osm_keys_tags.py``
+===========================
+
+:origin:`[source] <searxng_extra/update/update_osm_keys_tags.py>`
+
+.. automodule:: searxng_extra.update.update_osm_keys_tags
+ :members:
+
+
+``update_pygments.py``
+======================
+
+:origin:`[source] <searxng_extra/update/update_pygments.py>`
+
+.. automodule:: searxng_extra.update.update_pygments
+ :members:
+
+
+``update_wikidata_units.py``
+============================
+
+:origin:`[source] <searxng_extra/update/update_wikidata_units.py>`
+
+.. automodule:: searxng_extra.update.update_wikidata_units
+ :members:
diff --git a/docs/user/search_syntax.rst b/docs/user/search_syntax.rst
index 50cd8fabb..e9ed3e870 100644
--- a/docs/user/search_syntax.rst
+++ b/docs/user/search_syntax.rst
@@ -14,9 +14,6 @@ Prefix ``!``
Prefix: ``:``
to set language
-Prefix: ``?``
- to add engines and categories to the currently selected categories
-
Abbrevations of the engines and languages are also accepted. Engine/category
modifiers are chainable and inclusive (e.g. with :search:`!it !ddg !wp qwer
<?q=%21it%20%21ddg%20%21wp%20qwer>` search in IT category **and** duckduckgo
diff --git a/manage b/manage
index 4323c9424..1643802f4 100755
--- a/manage
+++ b/manage
@@ -124,6 +124,21 @@ fi
# needed by sphinx-docs
export DOCS_BUILD
+webapp.run() {
+ local parent_proc="$$"
+ (
+ if [ "${LIVE_THEME}" ]; then
+ ( themes.live "${LIVE_THEME}" )
+ kill $parent_proc
+ fi
+ )&
+ (
+ sleep 3
+ xdg-open http://127.0.0.1:8888/
+ )&
+ SEARXNG_DEBUG=1 pyenv.cmd python -m searx.webapp
+}
+
buildenv() {
# settings file from repository's working tree are used by default
@@ -518,12 +533,15 @@ gecko.driver() {
dump_return $?
}
-node.env() {
+nodejs.ensure() {
if ! nvm.min_node "${NODE_MINIMUM_VERSION}"; then
info_msg "install Node.js by NVM"
nvm.nodejs
fi
+}
+node.env() {
+ nodejs.ensure
( set -e
build_msg INSTALL "searx/static/themes/oscar/package.json"
@@ -705,6 +723,30 @@ themes.all() {
dump_return $?
}
+themes.live() {
+ local LIVE_THEME="${LIVE_THEME:-${1}}"
+ case "${LIVE_THEME}" in
+ simple|oscar)
+ theme="searx/static/themes/${LIVE_THEME}"
+ ;;
+ '')
+ die_caller 42 "missing theme argument"
+ ;;
+ *)
+ die_caller 42 "unknown theme '${LIVE_THEME}' // [simple|oscar]'"
+ ;;
+ esac
+ build_msg GRUNT "theme: $1 (live build)"
+ nodejs.ensure
+ cd "${theme}"
+ {
+ npm install
+ npm run watch
+ } 2>&1 \
+ | prefix_stdout "${_Blue}THEME ${1} ${_creset} " \
+ | grep -E --ignore-case --color 'error[s]?[:]? |warning[s]?[:]? |'
+}
+
themes.oscar() {
build_msg GRUNT "theme: oscar"
npm --prefix searx/static/themes/oscar run build
@@ -712,7 +754,6 @@ themes.oscar() {
}
themes.simple() {
- local static="searx/static/themes/simple"
( set -e
build_msg GRUNT "theme: simple"
npm --prefix searx/static/themes/simple run build
@@ -722,10 +763,7 @@ themes.simple() {
themes.simple.test() {
build_msg TEST "theme: simple"
- if ! nvm.min_node "${NODE_MINIMUM_VERSION}"; then
- info_msg "install Node.js by NVM"
- nvm.nodejs
- fi
+ nodejs.ensure
npm --prefix searx/static/themes/simple install
npm --prefix searx/static/themes/simple run test
dump_return $?
diff --git a/requirements-dev.txt b/requirements-dev.txt
index 0fef51f24..cbf98ad2d 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -9,8 +9,8 @@ selenium==4.1.0
twine==3.7.1
Pallets-Sphinx-Themes==2.0.2
Sphinx==4.3.2
-sphinx-issues==1.2.0
-sphinx-jinja==1.2.1
+sphinx-issues==2.0.0
+sphinx-jinja==1.4.0
sphinx-tabs==3.2.0
sphinxcontrib-programoutput==0.17
sphinx-autobuild==2021.3.14
diff --git a/requirements.txt b/requirements.txt
index e7645bd9b..0f9c5aa04 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,13 +4,13 @@ flask-babel==2.0.0
flask==2.0.2
jinja2==3.0.3
lxml==4.7.1
-pygments==2.11.0
+pygments==2.11.2
python-dateutil==2.8.2
pyyaml==6.0
-httpx[http2]==0.19.0
+httpx[http2]==0.21.2
Brotli==1.0.9
uvloop==0.16.0
-httpx-socks[asyncio]==0.4.1
+httpx-socks[asyncio]==0.7.2
langdetect==1.0.9
setproctitle==1.2.2
redis==4.1.0
diff --git a/searx/data/engine_descriptions.json b/searx/data/engine_descriptions.json
index 810f13157..c1e8ff2b0 100644
--- a/searx/data/engine_descriptions.json
+++ b/searx/data/engine_descriptions.json
@@ -340,7 +340,7 @@
"startpage":"Ixquick és un metacercador web fundat per David Bodnick el 1998. Els seus servidors es troben a Nova York i als Països Baixos. Des de l'any 2000 forma part de l'empresa Surfboard Holding BV.",
"unsplash":"Unsplash és una pàgina web dedicada a compartir fotografia de stock sota llicència pròpia d'Unsplash. L'any 2021 fou adquirida per Getty Imatges. Les peticiones de la pàgina web s'eleven a 207.000 aportacions de fotògrafs i genera més de 17 bilions d'impressions de fotos per mes en la seva biblioteca que conté a una mida total de més de 2 milions de fotos. Unsplash ha estat citada com una de les pàgines web de fotografia davantera del món per Forbes, Entrepreneur Magazine, CNET, Medium i The Next Web.",
"yahoo news":"Yahoo! Inc. és una empresa global de mitjans amb seu als Estats Units d'Amèrica que té per missió: \"ser el servei global d'Internet més essencial per a consumidors i negocis\". Posseeix un portal d'Internet, un directori Web i una sèrie de serveis, incloent-hi el popular correu electrònic Yahoo!. Fou fundada el gener de 1994 per dos estudiants de postgrau de la Universitat de Stanford, Jerry Yang i David Filo. Yahoo! es va constituir com empresa el 2 de març de 1995 i va començar a cotitzar a borsa el 12 d'abril de 1996. L'empresa té la seu corporativa a Sunnyvale, Califòrnia, Estats Units.",
- "youtube":"YouTube és un lloc web en el qual els usuaris poden penjar i compartir vídeos. Va ser creat per tres extreballadors de PayPal el febrer de 2005. Va ser adquirit per Google Inc. l'octubre de 2006, a canvi de 1650 milions de dòlars, i ara opera com una de les seves filials. Ara YouTube és molt vist a tot el món i cada minut s'hi pengen 300 hores de vídeo. El primer vídeo es va penjar el 23 d'abril de 2005 \"Me at the Zoo\", on es mostra el cofundador Jawed Karim al Zoològic de San Diego.",
+ "youtube":"YouTube és un lloc web en el qual els usuaris poden penjar i compartir vídeos. Va ser creat per tres extreballadors de PayPal el febrer de 2005. Va ser adquirit per Google Inc. l'octubre de 2006, a canvi de 1.650 milions de dòlars, i ara opera com una de les seves filials. Ara YouTube és molt vist a tot el món i cada minut s'hi pengen 300 hores de vídeo. El primer vídeo es va penjar el 23 d'abril de 2005 \"Me at the Zoo\", on es mostra el cofundador Jawed Karim al Zoològic de San Diego.",
"dailymotion":"Dailymotion és un lloc web que dona un servei d'allotjament de vídeos a Internet. Té la seu a París, Illa de França (França). El seu nom de domini va ser registrat un mes després que YouTube, tot i que el lloc web va ser obert un mes abans. D'acord amb Comscore, Dailymotion és el segon lloc web pel que fa a tràfic d'Internet després de YouTube. A data d'octubre de 2010, el web rebia més de 72 milions de visitants únics mensuals i era un dels 50 llocs web més visitats de la xarxa.",
"vimeo":"Vimeo és una xarxa social d'Internet basada en vídeos, llançada el novembre del 2004 per la companyia InterActiveCorp (IAC). El web permet compartir i emmagatzemar vídeos digitals perquè els usuaris comentin a la pàgina de cadascun d'ells. Els usuaris han d'estar-hi registrats per poder carregar vídeos, crear el seu perfil, carregar els avatars, comentar i crear llistes de preferits.",
"wikibooks":"Viquillibres és un projecte de la Fundació Wikimedia, creat el 10 de juliol del 2003.",
@@ -364,7 +364,7 @@
"wikidata"
],
"wikipedia":"Wikipedie je mnohojazyčná online encyklopedie vytvořená a udržovaná jako projekt otevřené spolupráce se svobodným (otevřeným) obsahem, na jejíž tvorbě spolupracují dobrovolní přispěvatelé z celého světa. Využívá wiki redakční systém a je to největší a nejoblíbenější všeobecné referenční dílo na World Wide Webu; podle hodnocení služby Alexa Internet z června 2019 je jednou z nejpopulárnějších webových stránek vůbec. Obsahuje výhradně bezplatný obsah a neobsahuje jakékoliv komerční reklamy. Wikipedie je vlastněna a podporována, stejně jako další vzájemně propojené projekty, nadací Wikimedia Foundation, neziskovou organizací, která je financována především prostřednictvím darů.",
- "bing":"Bing s krycím jménem Kumo, je internetový vyhledávač provozovaný společností Microsoft. Podle firem StatCounter a CNBC, které se zabývají analýzou webových stránek, je v současnosti druhým největším vyhledávačem na internetu po vyhledávači společnosti Google. Je napsán v jazyce ASP.NET.",
+ "bing":"Microsoft Bing, zkráceně Bing s krycím jménem Kumo, je internetový vyhledávač provozovaný společností Microsoft. Podle firem StatCounter a CNBC, které se zabývají analýzou webových stránek, je v současnosti druhým největším vyhledávačem na internetu po vyhledávači společnosti Google. Je napsán v jazyce ASP.NET.",
"bing images":[
"bing:cs",
"ref"
@@ -486,10 +486,6 @@
"wikidata"
],
"library of congress":"Llyfrgell ymchwil Cyngres yr Unol Daleithiau yw Llyfrgell y Gyngres. Y llyfrgell yw'r sefydliad ffederal hynaf yn yr Unol Daleithiau. Fe'i lleolir mewn tri adeilad yn Washington, D.C., a dyma'r llyfrgell fwyaf yn y byd yn ôl gofod silff ac mae'n dal y nifer fwyaf o lyfrau.",
- "openstreetmap":[
- "OpenStreetMap is the free wiki world map.",
- "https://www.openstreetmap.org/"
- ],
"reddit":"Gwefan newyddion cymdeithasol yw reddit. Mae defnyddwyr yn postio dolenni at gynnwys ar y rhyngrwyd neu yn postio hunan-byst gyda thestun gwreiddiol ganddynt. Gall defnyddwyr eraill yna \"uwchbleidleisio\" neu \"lawrbleidleisio'r\" pyst, ac mae'r pyst sydd mwyaf poblogaidd yn dangos ar hafan y wefan. Yn ogystal, gall defnyddwyr drafod y pyst ac ymateb i byst ei gilydd, gan ffurfio cymuned ar-lein. Gall defnyddwyr reddit greu adrannau eu hunain o'r wefan o'r enw \"is-redditau\" sy'n canolbwyntio ar bynciau penodol.",
"startpage":"Peiriant metachwilio yw Ixquick, sy'n gweithio trwy harnesu sawl peiriant chwilio arall ar y rhyngrwyd. Lleolir Ixquick yn Ninas Efrog Newydd, UDA a'r Iseldiroedd ac mae wedi cyflenwi 120 miliwn o chwiliadau gwe ers 2004. Sefydlwyd Ixquick gan David Bodnick yn 1998, yn Efrog Newydd. Ers 2000 mae'n perthyn i gwmni Iseldiraidd, sef Surfboard Holding BV.",
"youtube":"Cwmni cynnal a rhannu fideos ar-lein ydy YouTube a grëwyd gan dri cynweithwyr cwmni bancio digidol PayPal yn Chwefror 2005. Gall defnyddwyr uwchlwytho a lawrlwytho fideos. Yn San Bruno, California, y lleolwyd pencadlys y cwmni a defnyddia Adobe Flash Video a thechnoleg HTML5 i arddangos ystod eang iawn o fideos a gynhyrchwyd gan y defnyddwyr neu wylwyr gan gynnwys clipiau byr, tameidiau o raglenni teledu a cherddoriaeth yn ogystal a ffilmiau a chlipiau amtaur a blogiau fideo.",
@@ -650,7 +646,6 @@
"kickass":"KickassTorrents, auch KAT, war ein Webverzeichnis für BitTorrent und Magnet-Links, bei welchem Nutzer Torrent-Dateien herunterladen und hinzufügen konnten um einen Peer-to-Peer-Datenaustausch zu ermöglichen. Die Seite war von November 2014, wo sie die schwedische Website The Pirate Bay überholte, bis zu ihrer Sperrung im Juli 2016 der weltweit beliebteste BitTorrent-Indizierer und zudem eine der meistbesuchten Websites der Welt.",
"library genesis":"Library Genesis oder LibGen ist eine Schattenbibliothek und Suchmaschine für Bücher und wissenschaftliche Aufsätze. Das Projekt gewährt auf seiner Website einen kostenlosen Zugang zu urheberrechtlich geschützter Literatur, die sonst nur hinter Bezahlschranken online verfügbar ist, und bietet diese zum Download an. Unter anderem bezieht Library Genesis PDFs von Elseviers Online-Datenbank ScienceDirect. Die Rechtmäßigkeit des Dienstes, der sich – ebenso wie das ähnliche Projekt Sci-Hub – zunehmend rechtlichen Streitigkeiten ausgesetzt sieht, ist umstritten.",
"library of congress":"Die Library of Congress ist die öffentlich zugängliche Forschungsbibliothek des Kongresses der Vereinigten Staaten. Sie befindet sich, auf mehrere Gebäude verteilt, in Washington, D.C. Die LoC ist beim Medienbestand die zweitgrößte, beim Bücherbestand die größte Bibliothek der Welt und insgesamt eine der bedeutendsten.",
- "microsoft academic":"Microsoft Academic ist eine kostenlose und frei zugängliche wissenschaftliche und semantische Suchmaschine mit Volltextsuche sowie Zitations- und Referenzdatenbank, die von dem Unternehmen Microsoft geführt wird. Die verlinkten Inhalte selbst können kostenpflichtig durch eine Paywall oder kostenlos sein.",
"mixcloud":"Mixcloud ist ein britischer Online-Musikdienst, auf dem speziell – im Gegensatz zu SoundCloud – Mixe gestreamt werden. Angemeldete Nutzer können DJ-Sets, Podcasts und Hörfunk-Sendungen streamen, welche man sich auch unangemeldet online anhören kann. Es werden sowohl Formate von Star-DJs als auch von Radio-DJs sowie auch von Amateuren gelistet. Aus rechtlichen Gründen werden die Mixe jedoch nicht zum Download angeboten; manche lizenzierten Mixe lassen sich auch nur exklusiv via bezahltem Subscribe-Abo des jeweiligen Kanals nutzen; diese können dann lediglich zum Offline-Hören in die zugehörige Mixcloud-App geladen werden.",
"npm":"npm ist ein Paketmanager für die JavaScript-Laufzeitumgebung Node.js. npm wurde 2010 von Isaac Schlueter als Mitarbeiter der kalifornischen Cloud-Plattform-Anbieters Joyent programmiert. 2014 gründete er die „npm, inc.“",
"openairedatasets":"OpenAIRE steht für ein pan-europäisches Forschungsinformationssystem zur Darstellung und Verknüpfung von Forschungsergebnissen, welches Metadaten aus Repositorien, Archiven, wissenschaftlichen Zeitschriften und anderen Infrastrukturen aggregiert.",
@@ -698,7 +693,7 @@
"youtube":"YouTube ist ein 2005 gegründetes Videoportal des US-amerikanischen Unternehmens YouTube, LLC, seit 2006 eine Tochtergesellschaft von Google LLC, mit Sitz im kalifornischen San Bruno. Die Benutzer können auf dem Portal kostenlos Videoclips ansehen, bewerten, kommentieren und selbst hochladen. 2019 erzielte YouTube einen Jahresumsatz von 15 Milliarden Dollar. Die Einnahmen werden zum Großteil durch das Abspielen von Werbespots generiert.",
"dailymotion":"Dailymotion ist ein Videoportal des gleichnamigen französischen Unternehmens, bei dem Videos hochgeladen und öffentlich angeschaut werden können. Dailymotion wurde 2005 in Paris gegründet und gehört heute zu den weltweit führenden Videoportalen im Internet. Heute gibt es mehrere Büros in Paris, Barcelona, London, Athen, Mumbai und New York City. Es gibt elf lokalisierte Portalseiten, die eine eigene Programmplanung enthalten. Insgesamt wurde bisher in 20 Sprachen übersetzt.",
"vimeo":"Vimeo ist ein 2004 gegründetes Videoportal des US-amerikanischen Unternehmens Vimeo LLC mit Sitz ursprünglich in White Plains im Bundesstaat New York und inzwischen am Hudson River in Manhattan. Es unterstützt seit 2007 das Streaming von Videos in HD und seit 2015 in 4K Ultra HD. Neben der kostenlosen Nutzung des Portals bietet es auch die Möglichkeit, kostenpflichtige Inhalte zu veröffentlichen.",
- "wikibooks":"Wikibooks [ˌvɪkiˈbʊks] ist ein Wiki zur Erstellung von Lehr-, Sach- und Fachbüchern unter der Creative Commons Attribution/Share-Alike Lizenz 3.0 und GNU-Lizenz für freie Dokumentation.",
+ "wikibooks":"Wikibooks [ˌvɪkiˈbʊks] ist ein so genanntes Wiki zur Erstellung von Lehr-, Sach- und Fachbüchern unter der Creative Commons Attribution/Share-Alike Lizenz 3.0 und GNU-Lizenz für freie Dokumentation.",
"wikinews":"Wikinews ist ein internationales Wikimedia-Projekt zur gemeinschaftlichen Erstellung einer freien und neutralen Nachrichtenquelle. Wikinews ermöglicht es jedem Internet-Nutzer, Nachrichten zu einem breiten Themenkreis zu veröffentlichen. Dazu setzt es wie seine Schwesterprojekte Wikipedia, Wiktionary, Wikibooks, Wikiquote, Wikispecies und Wikisource die Wiki-Software MediaWiki ein.",
"wikiquote":"Wikiquote [ˌvɪkiˈkwoʊt] ist ein freies Online-Projekt mit dem Ziel, auf Wiki-Basis eine freie Zitatensammlung mit Zitaten in jeder Sprache zu schaffen. Wikiquote basiert wie die Wikipedia auf der Software MediaWiki. Für zusätzliche Informationen sorgen Links in die Wikipedia und zu Wikimedia-Projekten wie den Wikimedia Commons, Wikisource oder dem Wiktionary.",
"wikisource":"Wikisource [ˌvɪkiˈsɔːɹs] ist ein freies Online-Projekt zur Sammlung und Edition von Texten, die entweder urheberrechtsfrei (gemeinfrei) sind oder unter einer freien Lizenz stehen. Wie das Schwesterprojekt Wikipedia wird Wikisource von der Wikimedia Foundation betrieben und nutzt als Software MediaWiki.",
@@ -727,7 +722,7 @@
"Entdecke das umfassende Online-Lexikon und -Wörterbuch Woxikon ▶ Synonyme & Antonyme ✓ Kreative Sprüche ✓ Geläufige Abkürzungen ✓ Passende Reime ✓ Konjugierte Verben & vieles mehr ✓ Schau vorbei!",
"https://www.woxikon.de/"
],
- "brave":"Brave Search ist eine Internet-Suchmaschine vom US-amerikanischen Browserhersteller Brave Software Inc. Die Suchmaschine legt dabei ähnlich wie der Webbrowser vom gleichen Unternehmen wert auf die Privatsphäre des Nutzers, so dass weder Tracking noch Werbung existiert. Im Gegensatz zu vergleichbaren Angeboten von beispielsweise DuckDuckGo setzt Brave Search dabei auf einen eigenen Index, um die Suchergebnisse auszugeben. DuckDuckGo nutzt den Index der Suchmaschine Microsoft Bing."
+ "brave":"Brave Search ist eine Internet-Suchmaschine des US-amerikanischen Browserherstellers Brave Software Inc. Die Suchmaschine legt dabei ähnlich wie der Webbrowser vom selben Unternehmen Wert auf die Privatsphäre des Nutzers, so dass Tracking und Werbung herausgefiltert werden. Brave Search setzt auf einen eigenen Index, um die Suchergebnisse auszugeben."
},
"el-GR":{
"archive is":[
@@ -820,7 +815,7 @@
"artic":"The Art Institute of Chicago in Chicago's Grant Park, founded in 1879, is one of the oldest and largest art museums in the world. Recognized for its curatorial efforts and popularity among visitors, the museum hosts approximately 1.5 million people annually. Its collection, stewarded by 11 curatorial departments, is encyclopedic, and includes iconic works such as Georges Seurat's A Sunday on La Grande Jatte, Pablo Picasso's The Old Guitarist, Edward Hopper's Nighthawks, and Grant Wood's American Gothic. Its permanent collection of nearly 300,000 works of art is augmented by more than 30 special exhibitions mounted yearly that illuminate aspects of the collection and present cutting-edge curatorial and scientific research.",
"arxiv":"arXiv is an open-access repository of electronic preprints and postprints approved for posting after moderation, but not peer review. It consists of scientific papers in the fields of mathematics, physics, astronomy, electrical engineering, computer science, quantitative biology, statistics, mathematical finance and economics, which can be accessed online. In many fields of mathematics and physics, almost all scientific papers are self-archived on the arXiv repository before publication in a peer-reviewed journal. Some publishers also grant permission for authors to archive the peer-reviewed postprint. Begun on August 14, 1991, arXiv.org passed the half-million-article milestone on October 3, 2008, and had hit a million by the end of 2014. As of April 2021, the submission rate is about 16,000 articles per month.",
"bandcamp":"Bandcamp is an internet music company founded in 2008 by Oddpost co-founder Ethan Diamond and programmers Shawn Grunberger, Joe Holt and Neal Tucker, with headquarters in Oakland, California, US.",
- "wikipedia":"Wikipedia is a free content, multilingual online encyclopedia written and maintained by a community of volunteers through a model of open collaboration, using a wiki-based editing system. Individual contributors, also called editors, are known as Wikipedians. It is the largest and most-read reference work in history, and consistently one of the 15 most popular websites ranked by Alexa; as of 2021, Wikipedia was ranked the 13th most popular site. A visitor spends an average time on Wikipedia of 3 minutes and 45 seconds each day. It is hosted by the Wikimedia Foundation, an American non-profit organization funded mainly through small donations.",
+ "wikipedia":"Wikipedia is a free content, multilingual online encyclopedia written and maintained by a community of volunteers through a model of open collaboration, using a wiki-based editing system. Individual contributors, also called editors, are known as Wikipedians. It is the largest and most-read reference work in history, and consistently one of the 15 most popular websites ranked by Alexa; as of 2021, Wikipedia was ranked the 13th most popular site. It is hosted by the Wikimedia Foundation, an American non-profit organization funded mainly through small donations.",
"bing":"Microsoft Bing is a web search engine owned and operated by Microsoft. The service has its origins in Microsoft's previous search engines: MSN Search, Windows Live Search and later Live Search. Bing provides a variety of search services, including web, video, image and map search products. It is developed using ASP.NET.",
"bing images":[
"bing:en",
@@ -837,9 +832,9 @@
"Video Streaming Portal of the Chaos Computer Club",
"wikidata"
],
- "ccengine":[
+ "openverse":[
"The search engine for openly licensed media. 500 million Creative Commons licensed images and more. | Openverse — WordPress.org",
- "https://search.creativecommons.org/"
+ "https://wordpress.org/openverse/"
],
"crossref":"Crossref is an official digital object identifier (DOI) Registration Agency of the International DOI Foundation. It is run by the Publishers International Linking Association Inc. (PILA) and was launched in early 2000 as a cooperative effort among publishers to enable persistent cross-publisher citation linking in online academic journals.",
"currency":"DuckDuckGo is an internet search engine that emphasizes protecting searchers' privacy and avoiding the filter bubble of personalized search results. DuckDuckGo does not show search results from content farms. It uses various APIs of other websites to show quick results to queries and for traditional links it uses the help of its partners and its own crawler.",
@@ -863,10 +858,6 @@
"currency:en",
"ref"
],
- "etools":[
- "Transparent metasearch engine in Swiss quality. Simultaneously queries major search engines with one click.",
- "https://www.etools.ch"
- ],
"etymonline":"The Online Etymology Dictionary is a free online dictionary, written and compiled by Douglas R. Harper, that describes the origins of English-language words.",
"1x":[
"1x.com is the world's biggest curated photo gallery online. Each photo is selected by professional curators. 1x.com • In Pursuit of the Sublime",
@@ -899,10 +890,6 @@
"free software",
"wikidata"
],
- "geektimes":[
- "collaborative blog",
- "wikidata"
- ],
"habrahabr":"Habr is a Russian collaborative blog about IT, Computer science and anything related to the Internet, owned by TechMedia. Habrahabr was founded in June 2006. The English section of Habr was launched in 2019.",
"hoogle":"Haskell is a general-purpose, statically typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research and industrial application, Haskell has pioneered a number of advanced programming language features such as type classes, which enable type-safe operator overloading. Haskell's main implementation is the Glasgow Haskell Compiler (GHC). It is named after logician Haskell Curry.",
"imdb":"IMDb is an online database of information related to films, television series, home videos, video games, and streaming content online – including cast, production crew and personal biographies, plot summaries, trivia, ratings, and fan and critical reviews. IMDb began as a fan-operated movie database on the Usenet group \"rec.arts.movies\" in 1990, and moved to the web in 1993. It is now owned and operated by IMDb.com, Inc., a subsidiary of Amazon.",
@@ -913,7 +900,7 @@
],
"kickass":"KickassTorrents was a website that provided a directory for torrent files and magnet links to facilitate peer-to-peer file sharing using the BitTorrent protocol. It was founded in 2008 and by November 2014, KAT became the most visited BitTorrent directory in the world, overtaking The Pirate Bay, according to the site's Alexa ranking. KAT went offline on 20 July 2016 when the domain was seized by the U.S. government. The site's proxy servers were shut down by its staff at the same time.",
"library genesis":"Library Genesis (Libgen) is a file-sharing based shadow library website for scholarly journal articles, academic and general-interest books, images, comics, audiobooks, and magazines. The site enables free access to content that is otherwise paywalled or not digitized elsewhere. Libgen describes itself as a \"links aggregator\", providing a searchable database of items \"collected from publicly available public Internet resources\" as well as files uploaded \"from users\".",
- "z-library":"Z-Library is a shadow library project for file-sharing access to scholarly journal articles, academic texts, and general-interest books,. Individuals can also contribute to the website's repository to make literature accessible to as many people as possible. As of 22 October, 2021, Z-lib states that it possesses more than 8,930,000 books and 84,830,000 articles. According to the project's page for academic articles, it is \"the world's largest e-book library\", as well as \"the world's largest scientific articles store\". Z-library also describes itself as a non-profit organization sustained by donations.",
+ "z-library":"Z-Library is a shadow library project for file-sharing access to scholarly journal articles, academic texts, and general-interest books,. Individuals can also contribute to the website's repository to make literature accessible to as many people as possible. As of 22 October, 2021, Z-lib states that it possesses more than 8,930,000 books and 84,830,000 articles. According to the project's page for academic articles, it claims to be \"the world's largest e-book library\", as well as \"the world's largest scientific articles store\". Z-library also describes itself as a non-profit organization sustained by donations.",
"library of congress":"The Library of Congress (LC) is the research library that officially serves the United States Congress and is the de facto national library of the United States. It is the oldest federal cultural institution in the United States. The library is housed in three buildings on Capitol Hill in Washington, D.C.; it also maintains a conservation center in Culpeper, Virginia. The library's functions are overseen by the Librarian of Congress, and its buildings are maintained by the Architect of the Capitol. The Library of Congress is one of the largest libraries in the world. Its \"collections are universal, not limited by subject, format, or national boundary, and include research materials from all parts of the world and in more than 450 languages.\"",
"lobste.rs":[
"social news website focused on computer engineering",
@@ -923,7 +910,6 @@
"AZLyrics - Song Lyrics from A to Z",
"https://azlyrics.com"
],
- "microsoft academic":"Microsoft Academic is a free public web search engine for academic publications and literature, developed by Microsoft Research. It profiles authors, organizations, keywords, and journals. The search engine currently indexes over 260 million publications, 88 million of which are journal articles.",
"mixcloud":"Mixcloud is a popular British online music streaming service that allows for the listening and distribution of radio shows, DJ mixes and podcasts, which are crowdsourced by its registered users.",
"npm":"npm is a package manager for the JavaScript programming language maintained by npm, Inc.",
"nyaa":[
@@ -959,7 +945,7 @@
"piratebay":"The Pirate Bay is an online index of digital content of entertainment media and software. Founded in 2003 by Swedish think tank Piratbyrån, The Pirate Bay allows visitors to search, download, and contribute magnet links and torrent files, which facilitate peer-to-peer (P2P) file sharing among users of the BitTorrent protocol.",
"pubmed":"MEDLINE is a bibliographic database of life sciences and biomedical information. It includes bibliographic information for articles from academic journals covering medicine, nursing, pharmacy, dentistry, veterinary medicine, and health care. MEDLINE also covers much of the literature in biology and biochemistry, as well as fields such as molecular evolution.",
"pypi":"The Python Package Index, abbreviated as PyPI and also known as the Cheese Shop, is the official third-party software repository for Python. It is analogous to the CPAN repository for Perl and to the CRAN repository for R. PyPI is run by the Python Software Foundation, a charity. Some package managers, including pip, use PyPI as the default source for packages and their dependencies.",
- "qwant":"Qwant is a French search engine, launched in July 2013 and operated from Paris. It is one of the few EU-based search engines and one that has its own indexing engine. It claims that it does not employ user tracking or personalize search results in order to avoid trapping users in a filter bubble. The search engine is available in 26 languages.",
+ "qwant":"Qwant is a French search engine, launched in July 2013 and operated from Paris. It is one of the few EU-based search engines that has its own indexing engine. It claims that it does not employ user tracking or personalize search results in order to avoid trapping users in a filter bubble. The search engine is available in 26 languages.",
"qwant news":[
"qwant:en",
"ref"
@@ -977,7 +963,7 @@
"A search engine of PeerTube videos, channels and playlists, developed by Framasoft",
"https://sepiasearch.org"
],
- "soundcloud":"SoundCloud is an online audio distribution platform and music sharing website based in Berlin, Germany that enables its users to upload, promote, and share audio, as well as a digital signal processor enabling listeners to stream audio. Started in 2007 by Alexander Ljung and Eric Wahlforss, SoundCloud has grown to be one of the largest music streaming services in the world. SoundCloud offers both free and paid memberships on the platform, available for mobile, desktop and Xbox devices.",
+ "soundcloud":"SoundCloud is an online audio distribution platform and music sharing website based in Berlin, Germany that was founded in 2007 by Alexander Ljung and Eric Wahlforss. SoundCloud enables its users to upload, promote, and share audio, as well as a digital signal processor enabling listeners to stream audio. Launched in 2008, SoundCloud has grown to become the world's open audio platform. Audience-wise, there are over 76 million active monthly users, with over 175 million global users that SoundCloud reaches, as of November 2021. Artist-wise, there are over 30 million creators in 190 countries, with over 265 million tracks uploaded to the platform, as of March 2021. SoundCloud offers both free and paid memberships on the platform, available for mobile, desktop and Xbox devices.",
"stackoverflow":"Stack Exchange is a network of question-and-answer (Q&A) websites on topics in diverse fields, each site covering a specific topic, where questions, answers, and users are subject to a reputation award process. The reputation system allows the sites to be self-moderating. As of August 2019, the three most actively-viewed sites in the network are Stack Overflow, Super User, and Ask Ubuntu.",
"askubuntu":[
"stackoverflow:en",
@@ -1011,7 +997,7 @@
"https://search.yahoo.com/"
],
"yahoo news":"Yahoo! News is a news website that originated as an internet-based news aggregator by Yahoo!. The site was created by a Yahoo! software engineer named Brad Clawsie in August 1996. Articles originally came from news services such as the Associated Press, Reuters, Fox News, Al Jazeera, ABC News, USA Today, CNN and BBC News.",
- "youtube":"YouTube is an American online video sharing and social media platform owned by Google. It was launched on February 14, 2005 by Steve Chen, Chad Hurley, and Jawed Karim. It is the second most visited website, right after Google itself. YouTube has more than one billion monthly users who collectively watch more than one billion hours of videos each day. As of May 2019, videos were being uploaded at a rate of more than 500 hours of content per minute.",
+ "youtube":"YouTube is an American online video sharing and social media platform owned by Google. It was launched on February 14, 2005, by Steve Chen, Chad Hurley, and Jawed Karim. It is the second most visited website, right after Google itself. YouTube has more than one billion monthly users who collectively watch more than one billion hours of videos each day. As of May 2019, videos were being uploaded at a rate of more than 500 hours of content per minute.",
"dailymotion":"Dailymotion is a French video-sharing technology platform primarily owned by Vivendi. North American launch partners included Vice Media, Bloomberg, and Hearst Digital Media. Dailymotion is available worldwide in 183 languages and 43 localised versions featuring local home pages and local content. It has more than 300 million monthly users.",
"vimeo":"Vimeo, Inc. is an American video hosting, sharing, and services platform provider headquartered in New York City. Vimeo focuses on the delivery of high-definition video across a range of devices. Vimeo's business model is through software as a service (SaaS). They derive revenue by providing subscription plans for businesses and video content producers. Vimeo provides its subscribers with tools for video creation, editing, and broadcasting, enterprise software solutions, as well as the means for video professionals to connect with clients and other professionals. As of 2021, the site has 200 million users, with around 1.6 million subscribers to its services.",
"wiby":[
@@ -1041,10 +1027,6 @@
],
"seznam":"Seznam.cz is a web portal and search engine in the Czech Republic. Founded in 1996 by Ivo Lukačovič in Prague as the first web portal in the Czech Republic. Seznam started with a search engine and an internet version of yellow pages. Today, Seznam runs almost 30 different web services and associated brands. Seznam had more than 6 million real users per month at the end of 2014. Among the most popular services, according to NetMonitor, are its homepage seznam.cz, email.cz, search.seznam.cz and its yellow pages firmy.cz.",
"mojeek":"Mojeek is a search engine based in the United Kingdom. The search results provided by Mojeek come from its own index of web pages, created by crawling the web.",
- "whaleslide":[
- "WhaleSlide is a search engine that protects your privacy, raises money for good causes and is completely ad free!",
- "https://whaleslide.com/"
- ],
"naver":"Naver is a South Korean online platform operated by the Naver Corporation. It debuted in 1999 as the first web portal in South Korea to develop and use its own search engine. It was also the world's first operator to introduce the comprehensive search feature, which compiles search results from various categories and presents them in a single page. Naver has since added a multitude of new services ranging from basic features such as e-mail and news to the world's first online Q&A platform Knowledge iN.",
"rubygems":"RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries, a tool designed to easily manage the installation of gems, and a server for distributing them. It was created by Chad Fowler, Jim Weirich, David Alan Black, Paul Brannan and Richard Kilmer during RubyConf 2004.",
"peertube":"PeerTube is a free and open-source, decentralized, federated video platform powered by ActivityPub and WebTorrent, that uses peer-to-peer technology to reduce load on individual servers when viewing videos.",
@@ -1158,7 +1140,7 @@
"arxiv":"arXiv es un archivo en línea para las prepublicaciones de artículos científicos en el campo de las matemáticas, física, ciencias de la computación y biología cuantitativa. En muchos campos de las matemáticas y la física, casi todos los artículos científicos se colocan en arXiv. A fecha 27 de julio de 2010, arXiv.org contenía más de 617.767 imprimibles, lo que supone que miles de ellos son añadidos cada mes.",
"bandcamp":"Bandcamp es una tienda de música en línea, además de una plataforma de lanzamiento y de promoción para artistas independientes. Abrió su web en septiembre de 2008, y en 2012 posee un catálogo de más de 5 millones de canciones, más de 600.000 álbumes procedentes de 183 países.",
"wikipedia":"Wikipedia es una enciclopedia libre, políglota y editada de manera colaborativa. Es un proyecto de crear una enciclopedia libre en la red. Cada uno puede aportar sus conocimientos sobre cualquier tema para crear una base de datos con toda la sabiduría humana. Es administrada por la Fundación Wikimedia, una organización sin ánimo de lucro cuya financiación está basada en donaciones. Sus más de 56 millones de artículos en 321 idiomas han sido redactados en conjunto por voluntarios de todo el mundo, lo que suma más de 2000 millones de ediciones, y permite que cualquier persona pueda sumarse al proyecto para editarlos, a menos que la página se encuentre protegida contra vandalismos para evitar problemas o disputas.",
- "bing":"Microsoft Bing es un buscador web de Microsoft. Presentado por el antiguo director ejecutivo de Microsoft, Steve Ballmer, el 28 de mayo de 2009 en la conferencia All Things Digital en San Diego, fue puesto en línea el 3 de junio de 2009 con una versión preliminar publicada el 1 de junio del 2009.",
+ "bing":"Microsoft Bing es un buscador web de Microsoft. Presentado por el antiguo director ejecutivo de Microsoft, Steve Ballmer, el 28 de mayo de 2009 en la conferencia All Things Digital en San Diego, fue puesto en línea el 3 de junio de 2009 con una versión preliminar publicada el 1 de junio de 2009.",
"bing images":[
"bing:es",
"ref"
@@ -1207,7 +1189,6 @@
"kickass":"KickassTorrents es un sitio web que proporciona un directorio de archivos torrent y enlaces magnéticos para facilitar el intercambio de archivos peer-to-peer mediante el protocolo BitTorrent. Fue fundada en 2008 y fue puesto fuera de línea el 20 de julio de 2016, cuando el dominio fue capturado por el gobierno de Estados Unidos. Los servidores proxy del sitio fueron cerrados por su personal, al mismo tiempo.",
"library genesis":"Library Genesis o LibGen es un motor de búsqueda que permite el libre acceso a artículos científicos y libros. Posee contenido libre en formatos PDF, EPUB, MOBI, DJVU, etc., accesible en portales de numerosas editoriales académicas, como Oxford UP, Cambridge UP, Elsevier ScienceDirect, Springer, etc.",
"library of congress":"La Biblioteca del Congreso de los Estados Unidos, situada en Washington D. C. y distribuida en tres edificios, es una de las mayores bibliotecas del mundo, con más de 158 millones de documentos. La colección de la Biblioteca del Congreso incluye más de 36,8 millones de libros en 470 idiomas, más de 68 millones de manuscritos y la colección más grande de libros raros y valiosos, incluyendo una de las únicas cuatro copias en perfecto estado de la Biblia de Gutenberg, y el borrador de la Declaración de Independencia. Además, guarda más de un millón de publicaciones del gobierno de Estados Unidos, un millón de números de periódicos de diferentes partes del mundo, de los últimos tres siglos, 500 000 rollos de microfilm, 6000 títulos de cómics, la colección más grande de documentos legales, películas, cerca de 5 millones de mapas, partituras, 2,7 millones de grabaciones sonoras, canciones y más de 13,7 millones de grabados y copias fotográficas. El documento más antiguo es una tablilla de piedra del año 2040 a. C. También alberga obras de arte, dibujos arquitectónicos, y valiosos instrumentos como el Stradivarius Betts y el Stradivarius Cassavetti.",
- "microsoft academic":"Microsoft Académico es un motor de búsqueda web público y libre para literatura y publicaciones científicas, desarrollado por Microsoft Research.",
"mixcloud":"Mixcloud es un servicio británico de transmisión de música en línea que permite escuchar y distribuir programas de radio, mezclas de DJ y podcasts, que son financiados por sus usuarios registrados.",
"npm":"npm es el sistema de gestión de paquetes por defecto para Node.js, un entorno de ejecución para JavaScript, bajo Artistic License 2.0.",
"openstreetmap":"OpenStreetMap es un proyecto colaborativo para crear mapas editables y libres. En lugar del mapa en sí, los datos generados por el proyecto se consideran su salida principal.",
@@ -1306,7 +1287,8 @@
"wikisource":"Vikitekstid on Vikipeedia sõsarprojekt, milles on vabad alliktekstid.",
"wiktionary":"Vikisõnastik on Wikimedia sihtasutuse projekt, mille eesmärk on luua Vikipeedia põhimõtteid järgiv ja sellega kaasas käiv vaba sõnaraamat ühes sõnaseletuste, tõlgete, häälduste, etümoloogiate ning kõige muu juurdekuuluvaga kõikvõimalike keelte tarvis.",
"wikiversity":"Vikiülikool on vaba ja avatud veebipõhine õpikeskkond, üks Wikimedia Foundationi projekte.",
- "wikivoyage":"Wikivoyage on vaba ja tasuta veebipõhine reisijuht, kus sihtkohtadest ja reisiteemadest kirjutavad vabatahtlikud kaastöölised. Portaali nimi koosneb ingliskeelsest sõnast wiki ning prantsuse sõnast voyage ('reis')."
+ "wikivoyage":"Wikivoyage on vaba ja tasuta veebipõhine reisijuht, kus sihtkohtadest ja reisiteemadest kirjutavad vabatahtlikud kaastöölised. Portaali nimi koosneb ingliskeelsest sõnast wiki ning prantsuse sõnast voyage ('reis').",
+ "wolframalpha":"WolframAlpha on arvutuslik teadmusmootor, mis genereerib ning visualiseerib faktilisi ja statistilisi vastuseid kõikvõimalikele päringutele. Selle töötas 2009. aastal välja Wolfram Research. Lisaandmeid kogutakse nii akadeemilistelt kui ka kommertslikelt veebisaitidelt."
},
"eu":{
"artic":"Chicagoko Arte Institutua, ingelesez: Art Institute of Chicago, AEBetako Chicago hirian dagoen arte-museo bat da. Munduko arte-museo garrantzitsuenetako bat da, eta ziurrenik AEBetako hiru arte-museo nabarmenetako bat, New Yorkeko Metropoliar Museoa eta Bostongo Arte Ederren Museoarekin batera.",
@@ -1544,7 +1526,7 @@
"library of congress":"Kongressin kirjasto on Yhdysvaltain tosiasiallinen kansalliskirjasto. Se sijaitsee kolmessa rakennuksessa Washingtonissa ja on hyllymetreiltään ja kirjamäärältään maailman suurin kirjasto.",
"openstreetmap":"OpenStreetMap on avoin yhteistyöprojekti vapaasti muokattavien karttojen luomiseksi. Vapaaehtoiset käyttäjät keräävät paikkatietodataa GPS-laitteiden avulla ja hyödyntävät satelliittikuvia karttojen piirtämiseksi.",
"piratebay":"The Pirate Bay (TPB) on maailman suurin BitTorrent magnet-linkkien indeksi. Sen perusti ruotsalainen tekijänoikeuksia vastustava järjestö Piratbyrån vuoden 2003 lopussa, mutta se on lokakuun 2004 jälkeen toiminut itsenäisenä organisaationa. Pirate Bayn sisältö koostuu suurimmaksi osaksi laittomista kopioista tekijänoikeuksien alaista materiaalia, kuten elokuvia, musiikkia ja pelejä. Pirate Bayn taustalla toimivat ylläpitäjät Gottfrid Svartholm, Carl Lundström, Fredrik Neij sekä Peter Sunde, pitävät tätä omien sanojensa mukaan harrastuksena.",
- "reddit":"Reddit on sosiaalinen verkkosivusto, jossa käyttäjät voivat jakaa linkkejä kiinnostaviin verkkosivustoihin.",
+ "reddit":"Reddit on sosiaalinen verkkosivusto, jossa käyttäjät voivat keskustella kiinnostavista ja ajankohtaisista aiheista",
"soundcloud":"SoundCloud on ruotsalainen musiikin sekä muiden äänitiedostojen levitykseen ja suoratoistoon keskittyvä internet-palvelu, joka mahdollistaa pääasiassa muusikoista koostuvalle käyttäjäkunnalleen musiikkitiedostojen lataamisen palvelimille, suoranauhoituksen sekä promootion. Ammattilais- ja harrastelijamuusikot käyttävät palvelua niin valmiiden kappaleiden, raakaversioiden, demojen, podcastien kuin DJ-miksausten jakamiseen. Tuoreet, uransa alkuvaiheessa tai koko kansalle tuntemattomat, muusikot käyttävät palvelua pääasiallisena jakelumedianaan.",
"stackoverflow":[
"kysymys ja vastaus -sivustojen verkosto",
@@ -1601,10 +1583,6 @@
"ref"
],
"imdb":"Ang Internet Movie Database (IMDb) at IMDB, ay isang online database ng impormasyon tungkol sa mga artista, pelikula, palatuntunan sa telebisyon at video games. Ang websayt ng IMDb ay nagsimula noong Setyembre 1993. Naging pagmamay-ari ito ng \"Amazon.com\" mula 1998.",
- "openstreetmap":[
- "openstreetmap:cy",
- "ref"
- ],
"youtube":"Ang YouTube ay isang website na nagbabahagi ng mga bidyo at nagbibigay-daan para sa mga tagagagamit o user nito na mag-upload, makita, at ibahagi ang mga bidyo clip. Ang mga bidyo na ito ay maaaring husgahan; ang dami ng husga at ng mga nakanood ay parehong nakalathala. Maaari ring mag-iwan ng komento ang mga manonood sa karamihan ng video.",
"vimeo":"Ang Vimeo ay isang Amerikan portal na websayt na bidyo punong abala at namamahagi ang himpilan nito ay matatagpuan sa Lungsod ng Bagong York, Bagong York noong Nobyembre 2004 na inilathala nina Zach Klein, Jake Lodwick katuwang si Anjali Sud (Indian-American), ang (CEO) ng Vimeo.",
"wikibooks":"Ang Wikibooks ay isang base ng wiki sa Wikimedia project na pag-aari ng Wikimedia Foundation, para sa lumikha ng malayang nilalaman na textbooks o aklat na pwedeng sa lahat na pagbabago.",
@@ -1678,7 +1656,6 @@
"kickass":"KickassTorrents est un annuaire web de fichiers torrent et de liens magnet destiné à faciliter le partage de fichiers. Le site a été fondé en 2008 et a été mis hors ligne le 20 juillet 2016, lorsque le domaine a été saisi par le gouvernement des États-Unis. Les sites proxy ont été fermés par les membres de son équipe le même jour. Le 16 décembre 2016, KickassTorrents est de retour en ligne sur une nouvelle adresse: KATcr.co créée par l'équipe originale.",
"library genesis":"Library Genesis ou LibGen est un moteur de recherche d'articles et de livres scientifiques qui facilite l'accès aux contenus soumis à un péage. Il diffuse notamment les fichiers PDF du portail Web ScienceDirect d'Elsevier.",
"library of congress":"La bibliothèque du Congrès, située à Washington D. C., assure la fonction de bibliothèque de recherche du Congrès des États-Unis et, de facto, constitue la bibliothèque nationale américaine.",
- "microsoft academic":"Microsoft Academic est un moteur de recherche public pour la littérature et les publications académiques, développé par Microsoft Research.",
"mixcloud":"Mixcloud est une plate-forme collaborative de partage et d'écoute de musique en ligne spécialement dédiée aux sessions de mixage enregistrées en studio diffusées en radio ou en podcast. The Guardian et TED utilisent la plate-forme.",
"npm":"npm est le gestionnaire de paquets officiel de Node.js. Depuis la version 0.6.3 de Node.js, npm fait partie de l'environnement et est donc automatiquement installé par défaut. npm fonctionne avec un terminal et gère les dépendances pour une application. Il permet également d'installer des applications Node.js disponibles sur le dépôt npm. En avril 2020, GitHub annonce l'acquisition de npm.",
"openstreetmap":"OpenStreetMap (OSM) est un projet collaboratif de cartographie en ligne qui vise à constituer une base de données géographiques libre du monde, en utilisant le système GPS et d'autres données libres. Il est mis en route en juillet 2004 par Steve Coast à l'University College de Londres.",
@@ -1738,6 +1715,7 @@
"wikimini":"Wikimini est une encyclopédie destinée aux enfants, accessible librement sur Internet. Elle a la particularité d'être écrite par des enfants et des adolescents. Son contenu s'adresse à de jeunes lecteurs de 8 à 13 ans environ et sa publication est faite sous les termes d'une licence libre, ce qui en facilite la diffusion et la réutilisation."
},
"gl":{
+ "archive is":"archive.today é unha páxina web de arquivo que almacena capturas de páxinas de web. Recupera unha páxina á vez de maneira semellante a WebCite, con capturas máis pequenas que 50MB, mais con apoio para JavaScript para páxinas de arquivos pesados como Google Maps e aplicacións de web progresivas como Twitter.",
"artic":"O Art Institute of Chicago é un museo e escola de arte situado en Grant Park, ao redor da costa do lago Michigan en Chicago. É un dos museos de arte máis importantes do mundo.",
"arxiv":"O arXiv é un repositorio de prepublicacións electrónicas, coñecidas como e-prints, de literatura científica nos campos das matemáticas, física, astronomía, ciencias da computación, bioloxía cuantitativa, estatística e finanzas, que poden ser consultadas en liña. En moitos campos das matemáticas e da física, a maioría das publicacións científicas son auto-arquivadas no repositorio de arXiv. Comezou o 14 de agosto de 1991, e arXiv.org superou o medio millón de artigos o 3 de outubro de 2008, e acadou o millón a finais de 2014. No 2014, a media de entradas novas medrou a máis de 8 000 ó mes.",
"bandcamp":"Bandcamp é unha compañía estadounidense de música en liña fundada no ano 2008 polo cofundador de Oddpost Ethan Diamond e os programadores Shawn Grunberger, Joe Holt e Neal Tucker. A empresa ten a súa sede en Oakland, California.",
@@ -1913,13 +1891,14 @@
"google play apps:hr",
"ref"
],
- "hoogle":"Haskell je standardizirani čisti funkcijski programski jezik sa nestriktnom semantikom, imenovan po logičaru Haskellu Curryu. Jedan je od najpopularnijih funkcijskih programskih jezika, i predstavlja lijeni programski jezik nad kojim se izvršava ponajviše istraživanja.",
+ "hoogle":"Haskell je standardizirani čisti funkcijski programski jezik s nestriktnom semantikom, imenovan po logičaru Haskellu Curryu. Jedan je od najpopularnijih funkcijskih programskih jezika, i predstavlja lijeni programski jezik nad kojim se izvršava ponajviše istraživanja.",
"imdb":"Internet Movie Database (IMDb) nalazi se na adresi www.imdb.com, a radi se o najvećoj bazi podataka o filmu na internetu koja sadrži mnoštvo podataka o filmovima, filmskim glumcima, redateljima, scenaristima, producentima, ali i o televizijskim voditeljima, serijama i emisijama.",
"kickass":"Kickass Hydra",
- "library of congress":"Kongresna knjižnica de facto je nacionalna knjižnica Sjedinjenih Američkih Država. Nalazi se u Washingtonu, D. C.. Osnovana je 1800. godine kao knjižnica Kongresa Sjedinjenih Američkih Država, kojemu i sada služi kao dokumentacijsko i informacijsko središte. Najveća je knjižnica u svijetu.",
+ "library of congress":"Kongresna knjižnica de facto je nacionalna knjižnica Sjedinjenih Američkih Država. Nalazi se u Washingtonu, D. C. Osnovana je 1800. godine kao knjižnica Kongresa Sjedinjenih Američkih Država, kojemu i sada služi kao dokumentacijsko i informacijsko središte. Najveća je knjižnica u svijetu.",
"openstreetmap":"OpenStreetMap (OSM) je projekt virtualne zajednice s ciljem stvaranja slobodne, svima dostupne karte koju svatko može sam i dorađivati.",
"piratebay":"The Pirate Bay trenutno je najveći svjetski BitTorrent tracker. Osnovala ga je švedska organizacija Piratbyrån u studenom 2003. godine, ali već u listopadu 2004. godine nastupa kao odvojena organizacija. Trenutno ga vode Gottfrid Svartholm, Fredrik Neij i Peter Sunde. Kako su u mnogim zemljama BitTorrent trackeri na kojima se za slobodno skidanje može pronaći glazba i računalni programi koji su zaštićeni autorskim pravima ilegalni, u Švedskoj se takvi BitTorrent trackeri ne smatraju ilegalnim. Upravo je iz tog razloga The Pirate Bay često na udarima organizacija za zaštitu autorskih prava.",
"reddit":"Reddit je američka internetska stranica odnosno internetski servis koji funkcionira kao križanac foruma i Useneta. Prema podacima iz ožujka 2021., Reddit je devetnaesta najposjećenija stranica na svijetu.",
+ "soundcloud":"SoundCloud je internetska stranica za online distribuciju glazbe.",
"youtube":"YouTube je popularna mrežna usluga za razmjenu videozapisa na kojoj korisnici mogu postavljati, pregledavati, komentirati i ocjenjivati videozapise. Za postavljanje sadržaja potrebna je registracija, dok za pregledavanje nije, osim sadržaja koji nije primjeren za osobe mlađe od 18 godina. Prema pravilima korištenja, korisnici mogu postavljati vlastite originalne uratke i uratke za koje imaju dopuštenje vlasnika autorskih prava, a zabranjeno je postavljanje pornografskog sadržaja, nasilja, sadržaja koji podržava kriminalne radnje, sadržaja s ciljem sramoćenja, klevete i reklama. YouTube zadržava pravo na korištenje, preinaku i brisanje postavljenoga materijala.",
"wikibooks":"Wikiknjige su Wikipedijin sestrinski projekt koji djeluje s ciljem stvaranja besplatnih udžbenika, zbirke knjiga iz raznih područja, slobodnog pristupa, korištenja i objavljivanja koje svako može uređivati. Wikiknjige su idealno mjesto gdje se sav postavljeni tekst, uz dogovor i radi točnosti, može ispraviti, obnoviti i nadograditi na zadovoljstvo svih zainteresiranih.",
"wikiquote":"Wikicitat je Wikipedijina podružnica. Temelji se na MediaWiki programskoj podršci. Dio je obitelji na wikiju objedinjenih u zakladi Wikimedija.",
@@ -2002,6 +1981,10 @@
"ia":{
"wikipedia":"Wikipedia [wikipeˈdia] es un projecto de Wikimedia sin scopo lucrative fundate le 15 de januario 2001 pro crear un encyclopedia in numerose linguas in le Internet per redaction collaborative utilisante un si appelate principio wiki. Secundo le demanda e le distribution public, Wikipedia es ora un del medias de massa.",
"wikidata":"Wikidata es un base de cognoscentia modificate in collaboration e implementate per le Fundation Wikimedia. Illo es concipite pro fornir un fonte commun de typos de datos secur que pote esser usate per projectos Wikimedia como Wikipedia. Isto es simile al maniera que Wikimedia Commons forni un immagazinage central pro files multimedial pro accesso ab omne projectos Wikimedia. Wikidata es actionate per le software Wikibase.",
+ "openstreetmap":[
+ "OpenStreetMap is the free wiki world map.",
+ "https://www.openstreetmap.org/"
+ ],
"youtube":"YouTube es un sito web, loco pro observar videos fundate in februario 2005 del cooperatores temporal del PayPal Chad Hurley, Steve Chen e Jawed Karim. Super iste sito web le usatores pote spectar parve filmes, como currente de datos transportate al computator del audiente, e supercargar proprie parve filmes. Le 9 de octobre 2006 Google annunciava su emption de YouTube.",
"wiktionary":"Wiktionario es un dictionario multilingue in linea, liberemente modificabile e distribuibile sub un licentia Creative Commons. Con su projectos-fratres includente Wikipedia, Wiktionario es sub gerentia del Fundation MediaWiki."
},
@@ -2028,7 +2011,7 @@
"currency:id",
"ref"
],
- "wikidata":"Wikidata Wikidata adalah Wiki multibahasa yang diedit secara kolaboratif, yang diselenggarakan oleh Yayadan Wikimedia. Situs ini adalah sumber untuk menyimpan data terbuka proyek Wikimedia seperti Wikipedia, dan siapa pun di bawah lisensi domain publik CC0. Wikidata adalah wiki yang didukung oleh perangkat lunak MediaWiki, dan juga didukung oleh kumpulan grafik pengetahuan ekstensi MediaWiki yang dikenal sebagai Wikibase.",
+ "wikidata":"Wikidata Wikidata adalah Wiki multibahasa yang diedit secara kolaboratif, yang diselenggarakan oleh Yayasan Wikimedia. Situs ini adalah sumber untuk menyimpan data terbuka proyek Wikimedia seperti Wikipedia, dan siapa pun di bawah lisensi domain publik CC0. Wikidata adalah wiki yang didukung oleh perangkat lunak MediaWiki, dan juga didukung oleh kumpulan grafik pengetahuan ekstensi MediaWiki yang dikenal sebagai Wikibase.",
"duckduckgo":[
"currency:id",
"ref"
@@ -2060,10 +2043,10 @@
"imdb":"IMDb adalah sebuah basis data daring informasi yang berkaitan dengan film, acara televisi, video rumahan, dan permainan video, dan acara internet, termasuk daftar pemeran, biografi kru produksi dan personil, ringkasan alur cerita, trivia, dan ulasan serta penilaian oleh penggemar. Sebuah fitur penggemar tambahan, papan pesan, telah dinonaktifkan pada Februari 2017. Awalnya situs ini dioperasikan oleh penggemar, lalu basis data kemudian dimiliki dan dioperasikan oleh IMDB.com Inc., sebuah anak perusahaan dari Amazon.",
"library genesis":"Library Genesis atau LibGen adalah mesin pencari artikel ilmiah dan buku yang menggratiskan akses ke konten berbayar. Selain itu, LibGen menyimpan berkas PDF dari portal web ScienceDirect Elsevier.",
"z-library":"Z-Library adalah proyek perpustakaan bayangan untuk akses berbagi file ke artikel jurnal ilmiah, teks akademik, dan berbagai buku yang umumnya merupakan bajakan. Per 15 September 2021, Z-Library mengklaim bahwa ia menyediakan akses ke lebih dari 8.533.000 buku dan 84.837.000 artikel. Z-library menggambarkan dirinya sebagai organisasi nirlaba yang didukung oleh donasi.",
- "library of congress":"Perpustakaan Kongres Amerika Serikat secara de facto adalah perpustakaan nasional Amerika Serikat dan pusat riset Kongres Amerika Serikat. Perpustakaan ini menempati 3 buah gedung di Washington, D.C.. Perpustakaan terbesar di dunia dari segi luas rak buku dan total koleksi buku. Katalog perpustakaan ini mendaftar lebih dari 32 juta judul bahan pustaka yang ditulis dalam 470 bahasa. Perpustakaan juga menyimpan koleksi 61 juta manuskrip, dan koleksi buku langka terbesar di Amerika Utara, termasuk naskah Deklarasi Kemerdekaan Amerika Serikat dan Kitab Gutenberg. Selain itu, perpustakaan menyimpan lebih dari 1 juta judul terbitan pemerintah Amerika Serikat, 1 juta terbitan surat kabar dari seluruh dunia selama 3 abad terakhir, 33.000 volume surat kabar yang dijilid, 500.000 gulung mikrofilm, lebih dari 6.000 judul buku komik, dan koleksi literatur hukum terbesar di dunia. Koleksi bahan nonbuku terdiri dari film, 4,8 juta judul peta, lembar musik, 2,7 juta judul rekaman suara, lebih dari 13,7 juta lembar foto, serta biola Betts Stradivarius dan Cassavetti Stradivarius.",
+ "library of congress":"Perpustakaan Kongres Amerika Serikat merupakan perpustakaan penelitian Amerika Serikat yang secara resmi melayani Kongres Amerika Serikat dan secara de facto merupakan perpustakaan nasional Amerika Serikat. Lembaga ini merupakan lembaga kultural federal tertua di Amerika Serikat. Perpustakaan ini bertempat pada tiga gedung Capitol Hill di Washington, D.C.; dan merupakan penyokong bagi pusat konservasi di Culpeper, Virginia. Fungsi dari perpustakaan diawasi oleh Pustakawan Kongres, dan bangunannya dikelola oleh Arsitek Capitol. Perpustakaan Kongres Amerika Serikat merupakan salah satu perpustakaan terbesar di dunia.Kepala perpustakaan disebut Librarian of Congress. \"Koleksinya bersifat universal, tidak dibatasi oleh subjek, format, atau batas negara, dan mencakup bahan penelitian dari seluruh belahan dunia serta lebih dari 450 bahasa.\" Katalog perpustakaan ini mendaftar lebih dari 32 juta judul bahan pustaka yang ditulis dalam 470 bahasa. Perpustakaan juga menyimpan koleksi 61 juta manuskrip, dan koleksi buku langka terbesar di Amerika Utara, termasuk naskah Deklarasi Kemerdekaan Amerika Serikat dan Kitab Gutenberg. Selain itu, perpustakaan menyimpan lebih dari 1 juta judul terbitan pemerintah Amerika Serikat, 1 juta terbitan surat kabar dari seluruh dunia selama 3 abad terakhir, 33.000 volume surat kabar yang dijilid, 500.000 gulung mikrofilm, lebih dari 6.000 judul buku komik, dan koleksi literatur hukum terbesar di dunia. Koleksi bahan nonbuku terdiri dari film, 4,8 juta judul peta, lembar musik, 2,7 juta judul rekaman suara, lebih dari 13,7 juta lembar foto, serta biola Betts Stradivarius dan Cassavetti Stradivarius.",
"npm":"npm adalah sebuah manajer paket untuk bahasa pemrograman JavaScript yang menjadi manajer baku untuk lingkungan runtime Node.js. npm terdiri dari klien baris perintah yang disebut npm, dan sebuah pangkalan data daring yang berisi paket publik dan paket pribadi berbayar, yang disebut npm registry. Registry dapat diakses melalui klien, dan ketersediaan paket dapat dicari melalui situs web npm. Manajer paket dan registry dikelola oleh npm, Inc.",
"openstreetmap":"OpenStreetMap (OSM) adalah proyek kolaborasi pembuatan peta dunia yang bebas disunting. Dua penggerak utama di balik perintisan dan pertumbuhan OSM adalah terbatasnya penggunaan atau ketersediaan informasi peta di sebagian besar wilayah dunia dan maraknya perangkat navigasi satelit portabel yang terjangkau.",
- "piratebay":"The Pirate Bay adalah website asal Swedia yang melakukan hosting file torrent. TPB merupakan “situs Bittorent yang paling elastis di dunia” dan berada pada posisi ke-85 sebagai situs paling populer di dunia dan posisi ke-17 di Swedia oleh Alexa Internet sejak 2008. Situs ini didirikan pada bulan November 2003 oleh organisasi anti-hak cipta milik Swedish, Piratbyrån, situs ini dijalankan oleh organisasi yang berbeda sejak bulan Oktober 2004. Situs ini dijalankan oleh Gottfrid Syartholm dan Fredrik Neij yang dikenal sebagai anakata dan TiAMO. Mereka bertanggung jawab untuk membuat konten yang memiliki hak cipta tersedia, sehubungan dengan keikutsertaan mereka dalam The Pirate Bay.",
+ "piratebay":"The Pirate Bay (TPB) adalah pengindeks konten digital media hiburan dan perangkat lunak berbasis BitTorrent. Didirikan pada tahun 2003 oleh wadah pemikir Swedia Piratbyrån, TPB ditujukan bagi setiap pengguna yang hendak mencari, mengunduh, dan menyumbangkan pranala ke berkas torrent, serta memfasilitasi berbagi berkas secara peer-to-peer di antara pengguna protokol BitTorrent.",
"pypi":"Python Package Index, disingkat PyPI dan juga dikenal sebagai Cheese Shop, adalah repositori perangkat lunak pihak ketiga resmi untuk Python. PyPI dapat disamakan dengan CPAN, repositori untuk Perl. Beberapa manajer paket, termasuk pip, menggunakan PyPI sebagai sumber standar untuk paket dan dependensinya. Lebih dari 113.000 paket Python yang dapat diakses melalui PyPI.",
"reddit":"Reddit adalah situs web hiburan dan juga berita tempat pengunjung yang telah terdaftar dapat berkontribusi dalam bentuk memberikan posting pranala atau teks. Pengunjung lain dapat memberikan suara \"atas\" atau \"bawah\", yang kemudian akan dihitung untuk memberikan peringkat posting tersebut, yang menentukan posisinya dalam halaman situs web. Isi situs dibagi berdasarkan tema, yang dinamakan \"subreddit\".",
"soundcloud":"SoundCloud adalah platform distribusi audio online dan situs web berbagi musik yang didirikan di Swedia yang berbasis di Berlin, Jerman yang memungkinkan penggunanya untuk mengunggah, mempromosikan, dan berbagi audio. Dimulai pada tahun 2007 oleh Alexander Ljung dan Eric Wahlforss, SoundCloud telah berkembang menjadi salah satu layanan streaming musik terbesar. SoundCloud menawarkan keanggotaan gratis dan berbayar di platform, tersedia untuk desktop dan perangkat seluler.",
@@ -2166,7 +2149,6 @@
"kickass":"KickassTorrents è stato un sito web, fondato nel 2008, che ospitava file torrent e magnet link per facilitare il file sharing peer-to-peer con il protocollo BitTorrent. All'agosto 2015, secondo Alexa, KAT è l'indice di file torrent più visitato al mondo e si stima riceva ogni mese più di 319 milioni di accessi. Il 20 luglio 2016 il sito è stato sequestrato dal governo degli Stati Uniti, successivamente chiuso e l'autore del sito è stato arrestato.",
"library genesis":"Library Genesis o LibGen è un motore di ricerca di articoli e libri su vari argomenti, che consente l'accesso gratuito a contenuti normalmente a pagamento o non digitalizzati altrove. Tra gli altri, veicola contenuti in formato PDF dal portale web di Elsevier di ScienceDirect.",
"library of congress":"La Biblioteca del Congresso, nota con gli acronimi LOC o Loc, è di fatto la biblioteca nazionale degli Stati Uniti d'America. Grazie agli oltre 158 milioni di documenti in essa custoditi è la più grande biblioteca al mondo.",
- "microsoft academic":"Microsoft Academic è un motore di ricerca web, pubblico e gratuito, sviluppato da Microsoft Research per le ricerche nell'ambito delle pubblicazioni e della letteratura accademica. Dal 2016 sostituisce Microsoft Academic Search, dismesso quattro anni prima. Il rilancio del servizio presenta un nuovo modello dei dati e un nuovo motore di ricerca semantica.",
"mixcloud":"Mixcloud è un servizio musicale di streaming via internet che permette l'ascolto e la distribuzione di spettacoli radiofonici, mix di disc jockey e podcast, che sono caricati dai suoi utenti registrati.",
"npm":"npm è un gestore di pacchetti per il linguaggio di programmazione JavaScript. È il gestore di pacchetti predefinito per l'ambiente di runtime JavaScript Node.js. Consiste in un client da linea di comando, chiamato anch'esso npm, e un database online di pacchetti pubblici e privati, chiamato npm registry.",
"openstreetmap":"OpenStreetMap (OSM) è un progetto collaborativo finalizzato a creare mappe del mondo a contenuto libero. Il progetto punta ad una raccolta mondiale di dati geografici, con scopo principale la creazione di mappe e cartografie.",
@@ -2234,7 +2216,7 @@
"archive is":"archive.today は、Webページのスナップショットを保存できるアーカイブサイト。",
"artic":"シカゴ美術館 は、アメリカ合衆国イリノイ州シカゴ市内にある美術館である。ニューヨークのメトロポリタン美術館、ボストン市にあるボストン美術館とともにアメリカの三大美術館の1つに数えられる。館名は日本語では「シカゴ美術研究所」、「シカゴ・アート・インスティテュート」などと表記される場合もある。",
"arxiv":"arXiv(アーカイヴ、archiveと同じ発音)は、物理学、数学、計算機科学、数量生物学、数量ファイナンス、統計学、電子工学・システム科学、経済学の、プレプリントを含む様々な論文が保存・公開されているウェブサイトである。論文のアップロード(投稿)、ダウンロード(閲覧)ともに無料で、論文はPDF形式である。1991年にスタートして、プレプリント・サーバーの先駆けとなったウェブサイトである。大文字の X をギリシャ文字のカイ(Χ)にかけて archive と読ませている。",
- "wikipedia":"ウィキペディア は、世界中のボランティアの共同作業によって執筆されるフリーの多言語インターネット百科事典である。収録されている全ての内容がオープンコンテントで商業広告が存在しないことを特徴とし、主に寄付に依って活動している非営利団体「ウィキメディア財団」が所有・運営している。「ウィキペディア(Wikipedia)」という名前は、ウェブブラウザ上でウェブページを編集することができる「ウィキ(Wiki)」というシステムを使用した「百科事典」 であることに由来する造語である。設立者の1人であるラリー・サンガーにより命名された。",
+ "wikipedia":"ウィキペディア とは、世界中のボランティアの共同作業によって執筆されるフリーの多言語インターネット百科事典である。収録されている全ての内容がオープンコンテントで商業広告が存在しないことを特徴とし、主に寄付に依って活動している非営利団体「ウィキメディア財団」が所有・運営している。「ウィキペディア(Wikipedia)」という名前は、ウェブブラウザ上でウェブページを編集することができる「ウィキ(Wiki)」というシステムを使用した「百科事典」 であることに由来する造語である。設立者の1人であるラリー・サンガーにより命名された。",
"bing":"Microsoft Bing(マイクロソフト・ビング)は、Microsoftが提供するポータルサイトである。「意思決定を支援する検索エンジン」というコンセプトを掲げ、他の検索エンジンとの差別化を図っている。",
"bing images":[
"bing:ja",
@@ -2270,7 +2252,7 @@
"free software directory":"Free Software Directoryとは、フリーソフトウェア財団 のプロジェクトである。フリーなオペレーティングシステム、とりわけGNUオペレーティングシステム とLinuxで稼動するフリーソフトウェアを一覧化するプロジェクトである。",
"gitlab":"GitLab(ギットラブ)とはGitLab Inc.が開発したウェブ型のGitリポジトリマネージャーでオープンソースソフトウェアライセンスのウィキと問題追跡システムが使われている。",
"github":"GitHub(ギットハブ)は、ソフトウェア開発のプラットフォームであり、ソースコードをホスティングする。コードのバージョン管理システムにはGitを使用する。Ruby on RailsおよびErlangで記述されており、アメリカのカリフォルニア州サンフランシスコ市に拠点を置くGitHub社によって保守されている。主な開発者はクリス・ワンストラス、P.J.ハイエット、トム・プレストン・ワーナーである。",
- "google":"Google 検索 またはGoogle ウェブ検索 はGoogleが提供する検索エンジンで、World Wide Web上で最も多く使われている検索エンジンである。 https://www.google.com/?hl=ja Googleは様々なサービスを通して毎日数億件の検索クエリを受け付けている。Google 画像検索などとは異なり、Google検索はウェブページ内のテキストデータを探し出すことを主な目的としている。1997年、ラリー・ペイジとセルゲイ・ブリンが開発したのが始まりである。",
+ "google":"Google 検索 またはGoogle ウェブ検索 はGoogleが提供する検索エンジンで、World Wide Web上で最も多く使われている検索エンジンである。Googleは様々なサービスを通して毎日数億件の検索クエリを受け付けている。Google 画像検索などとは異なり、Google検索はウェブページ内のテキストデータを探し出すことを主な目的としている。1997年、ラリー・ペイジとセルゲイ・ブリンが開発したのが始まりである。",
"google images":"Google 画像検索 は、Webにある画像を検索するためにGoogleが提供している検索サービスである。2001年にサービスが開始された。切っ掛けはジェニファー・ロペスが着用した緑のヴェルサーチドレスの写真が見たいという需要に通常のGoogle検索では応え切れなかったことによる。2011年に逆画像検索が追加された。",
"google news":"Google ニュース は、Googleが提供するニュースアグリゲーター。Googleのページランクに関連して、Googleの主任研究者である Krishna Bharat が2001年に開発したストーリーランクをベースとして始まった。人間はアグリゲーションのアルゴリズムを調節するだけで、掲載する記事の選択は全て自動的に行われる。2006年1月、Google News ベータ版が登場した。",
"google videos":"Google ビデオ は、Googleの動画検索エンジンである。かつては無料の動画共有サイトであり、YouTubeのように選択した動画をリモートのウェブページに埋め込むためのHTMLコードを提供し、帯域幅が狭くストレージ容量も少ないウェブサイトで動画を豊富に利用できるものだった。",
@@ -2301,10 +2283,7 @@
"ref"
],
"startpage":"Startpage とはニューヨークとオランダを拠点にしているメタ検索エンジンで、1998年にデビッド・ボドニックが設立し2000年にオランダのサーフボード・ホールディングBVが買収した。2015年2月2日にIxquickと姉妹プロジェクトのStartpage.comは(28日平均で)1日直接クエリ数が5,700万に達したとしている。",
- "yahoo news":[
- "Yahoo! JAPANのサービスの一つ",
- "wikidata"
- ],
+ "yahoo news":"Yahoo!ニュース(ヤフーニュース)は、日本の企業ヤフーが運営するポータルサイト『Yahoo! JAPAN』のニュースサイト。日本国内や海外のニュース・話題を多岐にわたり提供するウェブサイトである。1996年7月サービス開始。iOS・Androidスマートフォン用の専用アプリ「Yahoo!ニュースアプリ」もある。",
"youtube":[
"YouTube でお気に入りの動画や音楽を楽しみ、オリジナルのコンテンツをアップロードして友だちや家族、世界中の人たちと共有しましょう。",
"https://www.youtube.com/"
@@ -2404,6 +2383,10 @@
"google play apps:nb-NO",
"ref"
],
+ "openstreetmap":[
+ "openstreetmap:ia",
+ "ref"
+ ],
"youtube":[
"Med YouTube kan du se populære videoer, kose deg med favorittmusikken din og laste opp ditt eget innhold – og dele det med familie, venner og resten av verden.",
"https://www.youtube.com/"
@@ -2729,7 +2712,7 @@
"mixcloud":"MixCloud – społeczność internetowa dla artystów tworzących i dystrybuujących audycje radiowe, mikstejpy i podkasty.",
"npm":"npm – domyślny manager pakietów dla środowiska Node.js, może być także używany do zarządzania warstwą front-end aplikacji WWW. NPM to także repozytorium pakietów oraz nazwa firmy która nim zarządza. Istnieją także inne managery pakietów, które korzystają z repozytorium npm, np. Yarn.",
"openstreetmap":"OpenStreetMap (OSM) – projekt społeczności internetowej mający na celu stworzenie darmowej, swobodnie dostępnej mapy całej kuli ziemskiej. Jest ona edytowalna przez zarejestrowanych użytkowników. Stworzenie i rozwój OSM było motywowane ograniczeniami w dostępności i wykorzystywaniu map oraz pojawieniem się niedrogich przenośnych urządzeń do nawigacji satelitarnej.",
- "piratebay":"The Pirate Bay (TPB) – strona internetowa, będąca wyszukiwarką plików w sieci peer-to-peer korzystająca z protokołu BitTorrenta oraz magnet link. Strona została założona w 2003 roku przez Gottfrida Svartholma, Fredrika Neij i Petera Sunde'a. TPB nie hostuje żadnych plików – również tych, których rozpowszechnianie może naruszać prawo autorskie, a udostępnia jedynie odnośniki do danych zasobów, w postaci Magnet linków.",
+ "piratebay":"The Pirate Bay (TPB) – strona internetowa do wyszukiwania plików w sieci peer-to-peer, wykorzystująca protokół BitTorrenta oraz magnet link. Strona została założona w 2003 roku przez Gottfrida Svartholma, Fredrika Neij i Petera Sunde’a. TPB nie hostuje żadnych plików – również tych, których rozpowszechnianie może naruszać prawo autorskie, a udostępnia jedynie odnośniki do danych zasobów, w postaci Magnet linków.",
"qwant":"Qwant – francuska wyszukiwarka internetowa z siedzibą w Paryżu, utworzona w lipcu 2013 roku. Wyszukiwarka skupia się na prywatności swoich użytkowników, a tym samym nie stosuje śledzenia oraz personalizacji wyników osób z niej korzystających, aby uniknąć tak zwanej bańki filtrującej.",
"qwant news":[
"qwant:pl",
@@ -2831,7 +2814,6 @@
"library genesis":"Library Genesis ou LibGen é um motor de busca de artigos científicos e livros que permite o acesso livre a conteúdos que só seriam acessíveis através de pagamentos e, também, a conteúdos que não são facilmente encontrados em formato digital. Entre outros, esse site carrega conteúdos dos portais de informação da Elsevier e ScienceDirect. LibGen é um site de biblioteca de compartilhamento de arquivos não apenas para artigos de periódicos acadêmicos, mas também para livros de interesse geral, imagens, quadrinhos, audiolivros e revistas.",
"z-library":"Z-Library é uma shadow-library e um projeto de compartilhamento de arquivos para artigos de jornais acadêmicos, livros acadêmicos e livros de interesse geral. A Z-Library diz que o projeto fornece acesso a mais de 6.754.720 livros e 80.759.561 artigos. A Z-Library também afirma ser \"A maior biblioteca de e-books do mundo\" na página do projeto para livros digitais, bem como \"A maior loja de artigos científicos do mundo\" na página equivalente do projeto para artigos acadêmicos (booksc.org).",
"library of congress":"A Biblioteca do Congresso é a biblioteca de pesquisa do Congresso dos Estados Unidos, sendo de facto a biblioteca nacional dos Estados Unidos e a instituição cultural mais antiga daquele país.",
- "microsoft academic":"O Microsoft Academic é um mecanismo de pesquisa público gratuito para publicações e literatura acadêmica, desenvolvido pela Microsoft Research. Relançada em 2016, a ferramenta apresenta uma estrutura de dados e mecanismo de pesquisa totalmente novos usando tecnologias de pesquisa semântica. Atualmente indexa mais de 220 milhões de publicações, 88 milhões das quais são artigos de periódicos. A API de conhecimento acadêmico oferece recuperação de informações do banco de dados subjacente usando terminais REST para fins de pesquisa avançada.",
"npm":"npm é um gerenciador de pacotes para o Node.JS",
"openstreetmap":"OpenStreetMap (OSM) é um projeto de mapeamento colaborativo para criar um mapa livre e editável do mundo, inspirado por sites como a Wikipédia. Traduzindo para português o nome significa Mapa Aberto de Ruas. Ele fornece dados a centenas de sites na internet, aplicações de celular e outros dispositivos.",
"pdbe":[
@@ -2867,7 +2849,7 @@
"wikisource":"A Wikisource — a biblioteca livre — é um projeto da Wikimedia Foundation que, de forma colaborativa, reúne um conjunto de textos que possuam valor histórico-cultural e que sejam compatíveis com a licença GFDL.",
"wiktionary":"Wikcionário é um projeto web multílingue pertencente à Fundação Wikimedia com a finalidade de criar um dicionário eletrônico de conteúdo livre, disponível em mais de 172 línguas diferentes. Ao contrário do padrão normal de dicionários, este é escrito colaborativamente por voluntários que usam o software wiki, permitindo que os artigos possam ser alterados e modificados por quase todas as pessoas de acesso ao site.",
"wikiversity":"Wikiversidade é um projeto da Wikimedia Foundation independente. Após vários meses de ter estado como proposta, Jimmy Wales, durante a Wikimania de 2006, anunciou a aprovação de tal projeto em fase de desenvolvimento, que tem como meta ser um ambiente livre e aberto para educação em todos os níveis mediada pela web e estudos gerais em uma comunidade de pesquisa.",
- "wikivoyage":"Wikivoyage é um guia de viagens livre, parte da Wikimedia, s da construção colaborativa feita por voluntários, sob os mesmos princípios da Wikipédia. O nome é uma mistura das palavras wiki e Voyage, a palavra francesa para viagem.Notas e Referências",
+ "wikivoyage":"Wikivoyage é um guia de viagens livre, parte da Wikimedia, s da construção colaborativa feita por voluntários, sob os mesmos princípios da Wikipédia. O nome é uma mistura das palavras wiki e Voyage, a palavra francesa para viagem.",
"wolframalpha":"Wolfram|Alpha é um mecanismo de conhecimento computacional(computational knowledge engine, em inglês) desenvolvido pela Wolfram Research. É um serviço on-line que responde às perguntas diretamente, mediante o processamento da resposta extraída de base de dados estruturados, em lugar de proporcionar uma lista dos documentos ou páginas web que poderiam conter a resposta, tal como faziam os mecanismos de busca.",
"1337x":"1337x é um site, fundado em 2007, que fornece arquivos torrent e links magnéticos para facilitar o compartilhamento de arquivos ponto-a-ponto usando o protocolo BitTorrent.",
"naver":"Naver é um popular portal de busca da Coreia do Sul, com um market share superior a 70%, comparado com 2% do Google. O Naver foi lançado em junho de 1999 por ex-funcionários da Samsung, e estreou como o primeiro portal da Coreia do Sul a usar seu próprio motor de busca. Entre os recursos do Naver está a \"Comprehensive Search\", lançada em 2000, que fornece resultados de várias categorias em uma única página. Desde então, tem agregado novos serviços, como a \"Knowledge Search\", lançada em 2002. Ele também oferece serviços de Internet, incluindo um serviço de notícias, um serviço de e-mail, um serviço de busca de teses acadêmicas e um portal para crianças. Em 2005, Naver lançou Happybean, o primeiro portal de doações online do mundo, que permite aos usuários encontrar informações e fazer doações para mais de 20.000 organizações da sociedade civil e de assistência social.Referências",
@@ -3036,10 +3018,6 @@
"library of congress:pt",
"ref"
],
- "microsoft academic":[
- "microsoft academic:pt",
- "ref"
- ],
"npm":[
"npm:pt",
"ref"
@@ -3279,10 +3257,6 @@
"ref"
],
"gpodder":"gPodder — кросплатформенная компьютерная программа для управления подкастами, RSS-агрегатор с открытым исходным кодом, написанный на языке программирования Python.",
- "geektimes":[
- "коллективный блог",
- "wikidata"
- ],
"habrahabr":"Хабр — русскоязычный веб-сайт в формате системы тематических коллективных блогов с элементами новостного сайта, созданный для публикации новостей, аналитических статей, мыслей, связанных с информационными технологиями, бизнесом и интернетом. Основан Денисом Крючковым в июне 2006 года.",
"hoogle":"Haskell — стандартизированный чистый функциональный язык программирования общего назначения. Является одним из самых распространённых языков программирования с поддержкой отложенных вычислений. Система типов — полная, сильная, статическая, с автоматическим выводом типов, основанная на системе типов Хиндли — Милнера. Поскольку язык функциональный, то основная управляющая структура — это функция.",
"imdb":"Internet Movie Database — веб-сайт со свободно редактируемой и крупнейшей в мире базой данных о кинематографе. По состоянию на январь 2021 года, в базе собрана информация о более чем 6,5 млн кинофильмов, телесериалов и отдельных их серий, а также о 10,4 млн персоналий, связанных с кино и телевидением, — актёрах, режиссёрах, сценаристах и других.",
@@ -3294,7 +3268,6 @@
"library genesis":"Library Genesis — веб-сайт, поисковая система и онлайн-хранилище, предоставляющее бесплатный доступ к пиратским коллекциям и защищённым авторским правом произведениям, в основном научной тематики. LibGen также называют «теневой библиотекой». Портал был создан в 2008 году, предположительно, группой российских учёных. До 2011 года коллекция LibGen росла в основном благодаря копированию других российских интернет-архивов и интеграции около полумиллиона англоязычных работ интернет-библиотеки Library.nu, закрытой в 2012 году. Начиная с 2013 года коллекция LibGen пополняется за счет интеграции созданных издателями электронных текстовых репозиториев. До 2013 года большая часть коллекции была представлена на русском и английском языках, позднее начали добавлять работы и на немецком, итальянском, испанском и французском.",
"z-library":"Z-library — теневая библиотека научной, технической и научно-популярной литературы, предположительно одна из крупнейших. Согласно данным, предоставленным сайтом, на февраль 2021 года коллекция портала состояла из более чем 6,5 млн книг и более 80 млн статей. Только за июнь 2020 года сайт посетили 2,84 млн человек, из которых 14,76 % составили пользователи из США.",
"library of congress":"Библиотека Конгресса — исследовательская библиотека, которая официально обслуживает Конгресс США и является де-факто национальной библиотекой США. Это старейшее федеральное учреждение культуры в Соединённых Штатах. Библиотека расположена в трёх зданиях в районе Капитолийского холма в Вашингтоне, округ Колумбия; она также поддерживает Национальный центр аудиовизуальной консервации в Калпепер (Виргиния). Функции библиотеки контролирует библиотекарь Конгресса, а её здания обслуживает архитектор Капитолия. Библиотека Конгресса претендует на звание самой большой библиотеки в мире. Её «коллекции универсальны, не ограничены предметом, форматом или национальной границей и включают исследовательские материалы со всех частей света и на более чем 450 языках».",
- "microsoft academic":"Microsoft Academic — открытая общедоступная поисковая система для научных публикаций и литературы, разработанная Microsoft Research.",
"mixcloud":"Mixcloud — британская онлайн-платформа для распространения звуковой информации. Платформа позволяет размещать радиошоу, диджейские миксы и подкасты.",
"npm":"npm — менеджер пакетов, входящий в состав Node.js.",
"openstreetmap":"OpenStreetMap, сокращённо OSM — некоммерческий веб-картографический проект по созданию силами сообщества участников — пользователей Интернета подробной свободной и бесплатной географической карты мира.",
@@ -3314,7 +3287,7 @@
"qwant:ru",
"ref"
],
- "reddit":"Reddit — сайт, сочетающий черты социальной сети и форума, на котором зарегистрированные пользователи могут размещать ссылки на какую-либо понравившуюся информацию в интернете и обсуждать её. Как и многие другие подобные сайты, Reddit поддерживает систему голосования за понравившиеся сообщения — наиболее популярные из них оказываются на заглавной странице сайта. Один из наиболее популярных сайтов в мире — 19-е место по посещаемости по данным Alexa Internet и SimilarWeb.",
+ "reddit":"Reddit — сайт, сочетающий черты социальной сети и форума, на котором зарегистрированные пользователи могут размещать ссылки на какую-либо понравившуюся информацию в интернете и обсуждать её. Как и многие другие подобные сайты, Reddit поддерживает систему голосования за понравившиеся сообщения — наиболее популярные из них оказываются на заглавной странице сайта. Один из наиболее популярных сайтов в мире — 20-е место по посещаемости по данным Alexa Internet и SimilarWeb.",
"soundcloud":"SoundCloud — онлайн-платформа и сайт для распространения оцифрованной звуковой информации обладающая функциями социальной сети, а также одноимённая компания.",
"stackoverflow":"Stack Exchange — сеть веб-сайтов для работы с вопросами и ответами в различных областях. Первый сайт сети, Stack Overflow, был запущен Джоэлем Спольски и Джеффом Этвудом в 2008 году, а в 2010 году ими были открыты ещё несколько разделов и была организована сеть Stack Exchange. К осени 2012 года сеть выросла до 90 разделов, с 2 миллионами пользователей, 5 миллионами вопросов и 7 миллионами ответов",
"askubuntu":[
@@ -3446,7 +3419,6 @@
"hoogle":"Haskell je popolnoma funkcijski programski jezik s polimorfičnimi tipi, ki omogoča izjemno elegantno implementacijo matematičnih struktur, predvsem neskončnih. Imenuje se po ameriškem matematiku in logiku Haskellu Brooksu Curryju.",
"imdb":"Internet Movie Database (IMDb) je spletna podatkovna baza o filmih in televizijskih programih ter fimskih igralcih. Spletišče je od leta 1998 v lasti Amazona, deluje pa od leta 1990. Decembra 2006 je IMDb imel podatke o 889.844 filmih in 2.283.287 ljudeh iz filmskega sveta.",
"library of congress":"Kongresna knjižnica je študijska knjižnica s sedežem v Washingtonu, ZDA, ki uradno deluje v podporo Kongresa Združenih držav Amerike, a je odprta tudi za javnost in velja za de facto nacionalno knjižnico ZDA. Poleg tega ima vloge centra bibliografskih informacij, ameriške agencije za avtorske pravice in nacionalne knjižnice za slepe in invalidne.",
- "microsoft academic":"Microsoft Academic je brezplačen javni spletni iskalnik za akademske publikacije in literaturo, ki ga je razvil Microsoft Research. Orodje, ki je bilo ponovno zagnano leta 2016, vsebuje povsem novo strukturo podatkov in iskalnik z uporabo semantičnih iskalnih tehnologij. Trenutno indeksira več kot 220 milijonov publikacij, od tega je 88 milijonov člankov.",
"openstreetmap":"OpenStreetMap (OSM) je projekt, kjer uporabniki sami ustvarjajo prosto dostopen zemljevid sveta. Zemljevidi so narejeni na podlagi podatkov, zbranih s prenosnimi GPS sprejemniki in drugimi prosto dostopnimi viri.",
"piratebay":"The Pirate Bay je spletni katalog digitalnih vsebin zabavnih medijev in programske opreme.. The Pirate Bay, ki ga je leta 2003 ustanovilo švedsko podjetje Piratbyrån, obiskovalcem omogoča iskanje, prenos in prispevanje magnetnih povezav in hudourniških datotek, kar olajša skupno rabo datotek med uporabniki protokola BitTorrent.",
"reddit":"Reddit je ameriška zabavna, družbena in novičarska spletna stran, ki je bila ustanovljena 23. junija 2005 v Menfordu, Massachusettsu.",
@@ -3470,10 +3442,6 @@
"bing:sr",
"ref"
],
- "bing news":[
- "Вести из светских, националних и локалних извора, организоване тако да добијате детаљне вести о спорту, забави, послу, политици, времену и о многим другим областима.",
- "https://www.bing.com/news"
- ],
"deezer":"francuski je onlajn muzički striming servis. Omogućava korisnicima da slušaju muzički sadržaj od većine svetskih izdavačkih kuća, uključujući i — na raznim uređajima, onlajn i oflajn. Sadrži i mnogo otpremljenih pesama starih/istorijskih izvođača. Nastao je u Parizu (Francuska), a ima preko 53 miliona licenciranih numera (2019) u svojoj biblioteci, s preko 30.000 radijskih kanala, 14 miliona mesečno aktivnih korisnika i 6 miliona plaćenih pratilaca. Servis je dosputan za veb, i.",
"deviantart":"DeviantArt je onlajn zajednica za umetnička dela, videografiju i fotografiju. Sajt je 7. avgusta 2000. pokrenuo Angelo Sotira, Scott Jarkoff, Matthev Stephens i drugi. Radovi su organizovani u strukturu kategorije, uključujući fotografiju, digitalnu umetnost, tradicionalnu umetnost, književnost, Fleš, snimanje filmova, skinove za aplikacije, uslužne programe za prilagođavanje operativnog sistema i druge, zajedno sa resursima za preuzimanje kao što su tutorijali i fotografije. Dodatne funkcije uključuju \"časopise\", \"ankete\", \"grupe\" i \"portfolije\".",
"wikidata":"Википодаци је база знања коју колаборативно уређују корисници и коју одржава Фондација Викимедија. Сврха јој је да буде заједнички извор одређених врста података, које користе други Викимедијини пројекти као што је Википедија. У том смислу је слична Викимедијиној остави где се складиште медијске датотеке којима се приступа са других Викимедијиних пројекта.",
@@ -3602,7 +3570,7 @@
},
"ta":{
"artic":"ஆர்ட் இன்ஸ்டியூட் ஆப் சிகாகோ என்பது ஐக்கிய அமெரிக்காவின் சிகாகோ நகரில் அமைந்துள்ள கலைக்களஞ்சிய அருங்காட்சியகம் ஆகும். இவ்வருங்காட்சியகம் மிகப்பிரம்மாண்டமான மூன்று கட்டடங்களில் இயங்குகிறது. இம்மூன்று கட்டடங்களும் முதல் தளத்துடன் இணைக்கப்பட்டுள்ளன.",
- "wikipedia":"விக்கிப்பீடியா என்பது, வணிக நோக்கற்ற விக்கிமீடியா நிறுவனத்தின் உதவியுடன் நடத்தப்படும், கூட்டாகத் தொகுக்கப்படும், பன்மொழி, கட்டற்ற இணையக் கலைக்களஞ்சியமாகும். தமிழ் விக்கிப்பீடியாவின் 1,00,000க்கும் மேற்பட்ட கட்டுரைகளுடன் சேர்த்து இதன் மொத்தக் கட்டுரைகளான 24 மில்லியன் கட்டுரைகளும் உலகெங்கிலுமுள்ள தன்னார்வலர்களால் கூட்டாக எழுதப்படுகின்றன. பெரும்பாலும் இதன் எல்லாக் கட்டுரைகளும், இதனைப் பயன்படுத்தும் எவராலும், தொகுக்கப்படக் கூடுவன. மேலும் இது கிட்டத்தட்ட 100,000 முனைப்பான பங்களிப்பாளர்களையும் கொண்டுள்ளது. நவம்பர் 2021 வரையில், விக்கிப்பீடியா 285 மொழிகளில் செயற்படுகிறது. இது இணையத்தளத்தில் இயங்கும் உசாத்துணைப் பகுதிகளிலேயே மிகவும் பெரியதும், அதிகப் புகழ்பெற்றதுமாகும். மேலும், இது அலெக்சா இணையத்தளத்தில் காணப்படும் இணையத்தளங்களின் தரவரிசையில் ஆறாவது இடத்தில் உள்ளதோடு, உலகளவில் அண்ணளவாக 365 மில்லியன் வாசகர்களையும் கொண்டுள்ளது.",
+ "wikipedia":"விக்கிப்பீடியா என்பது, வணிக நோக்கற்ற விக்கிமீடியா நிறுவனத்தின் உதவியுடன் நடத்தப்படும், கூட்டாகத் தொகுக்கப்படும், பன்மொழி, கட்டற்ற இணையக் கலைக்களஞ்சியமாகும். தமிழ் விக்கிப்பீடியாவின் 1,00,000க்கும் மேற்பட்ட கட்டுரைகளுடன் சேர்த்து இதன் மொத்தக் கட்டுரைகளான 24 மில்லியன் கட்டுரைகளும் உலகெங்கிலுமுள்ள தன்னார்வலர்களால் கூட்டாக எழுதப்படுகின்றன. பெரும்பாலும் இதன் எல்லாக் கட்டுரைகளும், இதனைப் பயன்படுத்தும் எவராலும், தொகுக்கப்படக் கூடுவன. மேலும் இது கிட்டத்தட்ட 100,000 முனைப்பான பங்களிப்பாளர்களையும் கொண்டுள்ளது. திசம்பர் 2021 வரையில், விக்கிப்பீடியா 285 மொழிகளில் செயற்படுகிறது. இது இணையத்தளத்தில் இயங்கும் உசாத்துணைப் பகுதிகளிலேயே மிகவும் பெரியதும், அதிகப் புகழ்பெற்றதுமாகும். மேலும், இது அலெக்சா இணையத்தளத்தில் காணப்படும் இணையத்தளங்களின் தரவரிசையில் ஆறாவது இடத்தில் உள்ளதோடு, உலகளவில் அண்ணளவாக 365 மில்லியன் வாசகர்களையும் கொண்டுள்ளது.",
"bing":"பிங் (Bing) என்பது மைக்ரோசாப்ட் நிறுவத்திற்குச் சொந்தமான வலைத் தேடல் பொறி ஆகும். இத்தேடல் பொறியானது முன்னர் லைவ் சேர்ச், வின்டோசு லைவ் சேர்ச், எம்எஸ்என் சேர்ச் ஆகிய பெயர்களைக் கொண்டு அமைந்திருந்தது. இத்தேடல் பொறி மைக்ரோசாப்ட் நிறுவனத்தினால் முடிவெடுக்கும் பொறியாக விளம்பரப்படுத்தப்பட்டது. 2009 ஆம் ஆண்டு மே மாதம் 28 ஆம் திகதியன்று சான் டியேகோ நகரில் இடம்பெற்ற ஆல் திங்ஸ் டிஜிட்டல் (All Things Digital) மாநாட்டின் போது மைக்ரோசாப்ட் நிறுவனத்தின் முன்னாள் தலைமை நிர்வாக அதிகாரி இசுட்டீவ் பால்மரால் இத்தேடல் பொறி அறிமுகப்படுத்தப்பட்டு சூன் 1 இல் வெளியிடப்படும் எனவும் அறிவிக்கப்பட்டது.. 2009 ஆம் ஆண்டு சூன், 29 ஆம் திகதியன்று யாகூ! தேடல் பொறியினை பிங் தேடல் பொறி நிர்வகிக்கும் என அறிவிக்கப்பட்டது.",
"bing images":[
"bing:ta",
@@ -3643,7 +3611,6 @@
],
"imdb":"ஐ. எம். டி. பி (IMDb) இவ்விணையத்தளம் ஆனது உலக திரைப்படங்களினைப் பற்றிய அனைத்துத் தகவல்களையும் வழங்கும் தளமாக விளங்குகின்றது. மேலும் இவ்விணையத்தளத்தினை இலவசமாகப் பயனர் பகுதியை ஏற்படுத்திக் கொள்ள வாய்ப்புகளும் உண்டு. உலகளவில் திரைப்படங்களிற்காகப் பார்க்கப்படும் தளங்களில் இத்தளம் முதலிடத்தில் இருப்பது குறிப்பிடத்தக்கது. மிகப் பெரிய பட விநியோக நிறுவனங்களான பாராமவுண்ட், யுனிவெர்சல், ஃபாக்ஸ் பிக்சர்ஸ், வார்னர் ப்ரதர்ஸ், கொலம்பியா பிக்சர்ஸ் போன்றவை தங்களது படங்களைப் பற்றி அவர்களே தகவல்களை இந்த தரவுத் தளத்தில் உள்ளீடு செய்வார்கள்.",
"library of congress":"காங்கிரசு நூலகம் என்பது அமெரிக்கக் காங்கிரசின் நூலகத்தைக் குறிக்கிறது. நடைமுறையில் ஐக்கிய அமெரிக்காவின் தேசிய நூலகமாகச் செயற்படும் இது, அமெரிக்கக் காங்கிரசின் ஆய்வுப் பிரிவாகவும் தொழிற்படுகிறது. வாசிங்டன் டி. சி. இல் அமைந்துள்ள இந் நூலகம் பரப்பளவிலும், நூல்களின் எண்ணிக்கையிலும் உலகிலேயே மிகவும் பெரியது ஆகும். 2007 ஆம் ஆண்டின் கணக்கின் படி இந்நூலகத்தில் 32,332,832 நூல்களும், மொத்தமாக 138,313,427 உருப்படிகளும் உள்ளன",
- "microsoft academic":"மைக்ரோசாப்ட் அகாடமிக் என்பது மைக்ரோசாப்ட் ஆய்வு உருவாக்கிய கல்வி வெளியீடுகள் மற்றும் இலக்கியங்களுக்கான இலவச பொது வலை தேடுபொறி ஆகும். முன்பிருந்த இந்த 2016ஆம் ஆண்டில் மீண்டும் தொடங்கப்பட்டது. இதில் கருவி சொற்பொருள் தேடல் முதலியவற்றில் புதிய தொழில்நுட்பங்களைப் பயன்படுத்தி முற்றிலும் புதிய தரவு அமைப்பாகவும் தேடுபொறியுடன் கூடியது. இதில் தற்போது 220 மில்லியனுக்கும் அதிகமான வெளியீடுகளைக் கொண்டுள்ளது. இவற்றில் 88 மில்லியன் ஆய்விதழில் வெளியான கட்டுரைகள் உள்ளன. மேம்பட்ட அறிவு நோக்கங்களுக்காக ரெஸ்ட் (REST) இறுதி புள்ளிகளைப் பயன்படுத்தி அடிப்படை தரவுத்தளத்திலிருந்து தகவல்களை மீட்டெடுப்பதைக் கல்வி அறிவு ஏபிஐ (API) வழங்குகிறது.",
"openstreetmap":[
"அனைவரும் தொகுக்கக்கூடிய கட்டற்ற உலக வரைபடம்",
"wikidata"
@@ -3783,7 +3750,7 @@
"ref"
],
"startpage":"Startpage, Hollanda merkezli, gizlilik odaklı bir arama motoru şirketidir. Web sitesi, kullanıcıların verilerinin depolanmadan ve izleyiciler tarafından takip edilmeden Google Arama sonuçlarına erişmesine olanak sağlar. Startpage.com ayrıca, kullanıcıların daha fazla anonimlik için proxy aracılığıyla arama sonuçlarını açmasına olanak tanıyan bir Anonim Görünüm tarama özelliği içerir. Şirketin merkezi Hollanda'da olduğundan, Hollanda ve Avrupa Birliği gizlilik yasaları tarafından korunmaktadır ve bu nedenle PRISM gibi Amerika Birleşik Devletleri gözetim programlarına tabi değildir.",
- "youtube":"YouTube, video barındırma web sitesi. Merkezi Amerika Birleşik Devletleri'ndeki San Bruno, Kaliforniya şehrindedir. 15 Şubat 2005'te 3 eski PayPal çalışanı tarafından kurulmuştur. Kasım 2006'da Google tarafından 1,65 milyar dolara satın alınmıştır. Günümüzde Google'ın yan kuruluşlarından biri olarak faaliyetine devam etmektedir. Site, kullanıcılarına video yükleme, izleme ve paylaşma imkânı sunmaktadır. Medya şirketleri ve kullanıcı üretimi videoların gösterimi için WebM, H.264 ve Adobe Flash Video teknolojilerini kullanır. Genel olarak video klipler, televizyon klipleri, müzik videoları, video bloglar, kısa özgün videolar ve eğitim videoları gibi içerikler yayınlanmaktadır.",
+ "youtube":"YouTube, Google'a ait bir Amerikan çevrimiçi video paylaşım ve sosyal medya platformudur. Merkezi San Bruno, Kaliforniya'da olan platform, 15 Şubat 2005'te 3 eski PayPal çalışanı tarafından kurulmuştur. Platform, kullanıcılarına video yükleme, izleme ve paylaşma imkânı sunmakta olup, medya şirketleri ve kullanıcı üretimi videoların gösterimi için WebM, H.264 ve Adobe Flash Video teknolojilerini kullanır. Genel olarak video klipler, televizyon klipleri, müzik videoları, video bloglar, kısa özgün videolar ve eğitim videoları gibi içerikler yayınlanmaktadır.",
"dailymotion":"Dailymotion, 2005 yılının Mart ayında, Benjamin Bejbaum ve Olivier Poitrey tarafından Fransa'nın Paris şehrinde kurulmuş olan bir video barındırma web sitesidir. Sitenin yapımına Poitrey'nin evinin oturma odasında başlamışlardır. 15 Mart 2005'te yayına girmiştir ve kısa sürede popüler bir video paylaşım sitesi olmuştur.",
"vimeo":"Vimeo, ABD tabanlı video paylaşım sitesidir. Zach Klein ve Jake Lodwick tarafından Kasım 2004'te kurulmuştur. Vimeo, Youtube'a doğrudan bir rakip olarak hizmet vermektedir. Ancak Youtube'a göre odağında daha çok film gibi uzun videolar vardır.",
"wikibooks":"Vikikitap (Wikibooks), Wikimedia Vakfı'nın projelerinden biridir. Burada kullanıcıların katkıları ile özgür, açık içerikli kitaplar, kılavuzlar, çeşitli yazılar hazırlanmaktadır. Türkçe VikiKitap21 Mayıs 2008 tarihinde Wayback Machine sitesinde arşivlendi.'ta 25 Aralık 2016'ya kadar 1.152 kitap maddesi ve yaklaşık 85 kitap hazırlanmıştır.",
@@ -3889,7 +3856,7 @@
"wikiversity":"Віківерсите́т — проєкт Фонду «Вікімедіа», що позиціонує себе як нова форма інтерактивної освіти і ведення відкритих наукових проєктів. Освіта та звершення відкриттів — необхідні сторони життя будь-якої людини і суспільства в цілому. Віківерситет Фонду «Вікімедіа» покликаний сприяти навчальним здобуткам зацікавлених в тому людей та поширенню ними знань найприроднішим шляхом: допомагаючи іншим людям навчатися і ділитися освітніми матеріалами.",
"wikivoyage":"Вікімандри — інтернет-портал, присвячений туризму. Використовує вікі-технології і вільні ліцензії. Створюється добровольцями, зацікавленими в цій темі.",
"wolframalpha":"Wolfram|Alpha — база знань і набір обчислювальних алгоритмів. Не є пошуковою системою. Запущено 15 травня 2009.",
- "seznam":"Seznam.cz — веб-портал та пошукова система в Чеській Республіці.",
+ "seznam":"Seznam.cz — веб-портал та пошукова система в Чехії.",
"naver":"Навіер або Найвер, ориг. Naver від англ. navigate – направляти — найбільший інтернет-портал і найпопулярніша пошукова система в Південній Кореї, що належить корпорації Naver Corporation. Був запущений у червні 1999 року групою колишніх співробітників Samsung. Дебютував в якості першого порталу який використовував свої власні алгоритми пошуку. Займав у 2011 році – 70%, 77% в 2015 р. а в 2017 вже 74,7% пошукового ринку країни.",
"rubygems":[
"система керування пакунками",
diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py
index a3dd7a95a..b762c0dd9 100644
--- a/searx/engines/__init__.py
+++ b/searx/engines/__init__.py
@@ -13,6 +13,7 @@ usage::
import sys
import copy
+from typing import Dict, List, Optional
from os.path import realpath, dirname
from babel.localedata import locale_identifiers
@@ -43,11 +44,34 @@ ENGINE_DEFAULT_ARGS = {
"enable_http": False,
"display_error_messages": True,
"tokens": [],
+ "about": {},
}
-"""Defaults for the namespace of an engine module, see :py:func:`load_engine`"""
+# set automatically when an engine does not have any tab category
+OTHER_CATEGORY = 'other'
+
+
+class Engine: # pylint: disable=too-few-public-methods
+ """This class is currently never initialized and only used for type hinting."""
+
+ name: str
+ engine: str
+ shortcut: str
+ categories: List[str]
+ supported_languages: List[str]
+ about: dict
+ inactive: bool
+ disabled: bool
+ language_support: bool
+ paging: bool
+ safesearch: bool
+ time_range_support: bool
+ timeout: float
+
+
+# Defaults for the namespace of an engine module, see :py:func:`load_engine`
categories = {'general': []}
-engines = {}
+engines: Dict[str, Engine] = {}
engine_shortcuts = {}
"""Simple map of registered *shortcuts* to name of the engine (or ``None``).
@@ -58,7 +82,7 @@ engine_shortcuts = {}
"""
-def load_engine(engine_data):
+def load_engine(engine_data: dict) -> Optional[Engine]:
"""Load engine from ``engine_data``.
:param dict engine_data: Attributes from YAML ``settings:engines/<engine>``
@@ -113,6 +137,9 @@ def load_engine(engine_data):
set_loggers(engine, engine_name)
+ if not any(cat in settings['categories_as_tabs'] for cat in engine.categories):
+ engine.categories.append(OTHER_CATEGORY)
+
return engine
@@ -131,13 +158,15 @@ def set_loggers(engine, engine_name):
module.logger = logger.getChild(module_engine_name)
-def update_engine_attributes(engine, engine_data):
+def update_engine_attributes(engine: Engine, engine_data):
# set engine attributes from engine_data
for param_name, param_value in engine_data.items():
if param_name == 'categories':
if isinstance(param_value, str):
param_value = list(map(str.strip, param_value.split(',')))
engine.categories = param_value
+ elif hasattr(engine, 'about') and param_name == 'about':
+ engine.about = {**engine.about, **engine_data['about']}
else:
setattr(engine, param_name, param_value)
@@ -147,7 +176,7 @@ def update_engine_attributes(engine, engine_data):
setattr(engine, arg_name, copy.deepcopy(arg_value))
-def set_language_attributes(engine):
+def set_language_attributes(engine: Engine):
# assign supported languages from json file
if engine.name in ENGINES_LANGUAGES:
engine.supported_languages = ENGINES_LANGUAGES[engine.name]
@@ -220,7 +249,7 @@ def is_missing_required_attributes(engine):
return missing
-def is_engine_active(engine):
+def is_engine_active(engine: Engine):
# check if engine is inactive
if engine.inactive is True:
return False
@@ -232,7 +261,7 @@ def is_engine_active(engine):
return True
-def register_engine(engine):
+def register_engine(engine: Engine):
if engine.name in engines:
logger.error('Engine config error: ambigious name: {0}'.format(engine.name))
sys.exit(1)
diff --git a/searx/engines/apkmirror.py b/searx/engines/apkmirror.py
index da84bc79e..ac7cd7431 100644
--- a/searx/engines/apkmirror.py
+++ b/searx/engines/apkmirror.py
@@ -24,7 +24,7 @@ about = {
}
# engine dependent config
-categories = ['files']
+categories = ['files', 'apps']
paging = True
time_range_support = False
diff --git a/searx/engines/archlinux.py b/searx/engines/archlinux.py
index 1cfb3983f..b5e426107 100644
--- a/searx/engines/archlinux.py
+++ b/searx/engines/archlinux.py
@@ -20,7 +20,7 @@ about = {
}
# engine dependent config
-categories = ['it']
+categories = ['it', 'software wikis']
paging = True
base_url = 'https://wiki.archlinux.org'
diff --git a/searx/engines/bing.py b/searx/engines/bing.py
index 1170227ad..9744b1800 100644
--- a/searx/engines/bing.py
+++ b/searx/engines/bing.py
@@ -20,7 +20,7 @@ about = {
}
# engine dependent config
-categories = ['general']
+categories = ['general', 'web']
paging = True
time_range_support = False
safesearch = False
diff --git a/searx/engines/bing_images.py b/searx/engines/bing_images.py
index f07d07144..cb69dc172 100644
--- a/searx/engines/bing_images.py
+++ b/searx/engines/bing_images.py
@@ -27,7 +27,7 @@ about = {
}
# engine dependent config
-categories = ['images']
+categories = ['images', 'web']
paging = True
safesearch = True
time_range_support = True
diff --git a/searx/engines/bing_videos.py b/searx/engines/bing_videos.py
index 184f564df..ae8e8d49a 100644
--- a/searx/engines/bing_videos.py
+++ b/searx/engines/bing_videos.py
@@ -26,7 +26,7 @@ about = {
"results": 'HTML',
}
-categories = ['videos']
+categories = ['videos', 'web']
paging = True
safesearch = True
time_range_support = True
diff --git a/searx/engines/duckduckgo.py b/searx/engines/duckduckgo.py
index 0d2a524df..71da72677 100644
--- a/searx/engines/duckduckgo.py
+++ b/searx/engines/duckduckgo.py
@@ -27,7 +27,7 @@ about = {
}
# engine dependent config
-categories = ['general']
+categories = ['general', 'web']
paging = True
supported_languages_url = 'https://duckduckgo.com/util/u588.js'
time_range_support = True
diff --git a/searx/engines/duckduckgo_images.py b/searx/engines/duckduckgo_images.py
index 2f75e16f1..7d844b543 100644
--- a/searx/engines/duckduckgo_images.py
+++ b/searx/engines/duckduckgo_images.py
@@ -27,7 +27,7 @@ about = {
}
# engine dependent config
-categories = ['images']
+categories = ['images', 'web']
paging = True
safesearch = True
diff --git a/searx/engines/duden.py b/searx/engines/duden.py
index 600b61f3c..da4c4f7da 100644
--- a/searx/engines/duden.py
+++ b/searx/engines/duden.py
@@ -19,7 +19,7 @@ about = {
"language": 'de',
}
-categories = ['general']
+categories = ['dictionaries']
paging = True
# search-url
diff --git a/searx/engines/etools.py b/searx/engines/etools.py
deleted file mode 100644
index 347463291..000000000
--- a/searx/engines/etools.py
+++ /dev/null
@@ -1,58 +0,0 @@
-# SPDX-License-Identifier: AGPL-3.0-or-later
-"""
- eTools (Web)
-"""
-
-from lxml import html
-from urllib.parse import quote
-from searx.utils import extract_text, eval_xpath
-
-# about
-about = {
- "website": 'https://www.etools.ch',
- "wikidata_id": None,
- "official_api_documentation": None,
- "use_official_api": False,
- "require_api_key": False,
- "results": 'HTML',
-}
-
-categories = ['general']
-paging = False
-safesearch = True
-
-base_url = 'https://www.etools.ch'
-search_path = (
- # fmt: off
- '/searchAdvancedSubmit.do'
- '?query={search_term}'
- '&pageResults=20'
- '&safeSearch={safesearch}'
- # fmt: on
-)
-
-
-def request(query, params):
- if params['safesearch']:
- safesearch = 'true'
- else:
- safesearch = 'false'
-
- params['url'] = base_url + search_path.format(search_term=quote(query), safesearch=safesearch)
-
- return params
-
-
-def response(resp):
- results = []
-
- dom = html.fromstring(resp.text)
-
- for result in eval_xpath(dom, '//table[@class="result"]//td[@class="record"]'):
- url = eval_xpath(result, './a/@href')[0]
- title = extract_text(eval_xpath(result, './a//text()'))
- content = extract_text(eval_xpath(result, './/div[@class="text"]//text()'))
-
- results.append({'url': url, 'title': title, 'content': content})
-
- return results
diff --git a/searx/engines/fdroid.py b/searx/engines/fdroid.py
index c381b25d4..b5f004e7b 100644
--- a/searx/engines/fdroid.py
+++ b/searx/engines/fdroid.py
@@ -18,7 +18,7 @@ about = {
}
# engine dependent config
-categories = ['files']
+categories = ['files', 'apps']
paging = True
# search-url
diff --git a/searx/engines/genius.py b/searx/engines/genius.py
index b0fcb09a8..1f4b4b03e 100644
--- a/searx/engines/genius.py
+++ b/searx/engines/genius.py
@@ -20,7 +20,7 @@ about = {
}
# engine dependent config
-categories = ['music']
+categories = ['music', 'lyrics']
paging = True
page_size = 5
diff --git a/searx/engines/gentoo.py b/searx/engines/gentoo.py
index 5b9edafe0..856c93710 100644
--- a/searx/engines/gentoo.py
+++ b/searx/engines/gentoo.py
@@ -18,7 +18,7 @@ about = {
}
# engine dependent config
-categories = ['it']
+categories = ['it', 'software wikis']
paging = True
base_url = 'https://wiki.gentoo.org'
diff --git a/searx/engines/gigablast.py b/searx/engines/gigablast.py
index c657dca30..1c40ff331 100644
--- a/searx/engines/gigablast.py
+++ b/searx/engines/gigablast.py
@@ -22,7 +22,7 @@ about = {
}
# engine dependent config
-categories = ['general']
+categories = ['general', 'web']
# gigablast's pagination is totally damaged, don't use it
paging = False
safesearch = True
diff --git a/searx/engines/github.py b/searx/engines/github.py
index 1d12d296a..343f3793d 100644
--- a/searx/engines/github.py
+++ b/searx/engines/github.py
@@ -17,7 +17,7 @@ about = {
}
# engine dependent config
-categories = ['it']
+categories = ['it', 'repos']
# search-url
search_url = 'https://api.github.com/search/repositories?sort=stars&order=desc&{query}' # noqa
diff --git a/searx/engines/google.py b/searx/engines/google.py
index 685697d29..ed4381f47 100644
--- a/searx/engines/google.py
+++ b/searx/engines/google.py
@@ -41,7 +41,7 @@ about = {
}
# engine dependent config
-categories = ['general']
+categories = ['general', 'web']
paging = True
time_range_support = True
safesearch = True
diff --git a/searx/engines/google_images.py b/searx/engines/google_images.py
index 203df404a..2855860d8 100644
--- a/searx/engines/google_images.py
+++ b/searx/engines/google_images.py
@@ -45,7 +45,7 @@ about = {
}
# engine dependent config
-categories = ['images']
+categories = ['images', 'web']
paging = False
use_locale_domain = True
time_range_support = True
diff --git a/searx/engines/google_videos.py b/searx/engines/google_videos.py
index 049f9138c..06aac8ae1 100644
--- a/searx/engines/google_videos.py
+++ b/searx/engines/google_videos.py
@@ -54,7 +54,7 @@ about = {
# engine dependent config
-categories = ['videos']
+categories = ['videos', 'web']
paging = False
language_support = True
use_locale_domain = True
diff --git a/searx/engines/imdb.py b/searx/engines/imdb.py
index bb6258cf4..0897b8dca 100644
--- a/searx/engines/imdb.py
+++ b/searx/engines/imdb.py
@@ -27,9 +27,7 @@ about = {
"results": 'HTML',
}
-categories = [
- 'general',
-]
+categories = []
paging = False
# suggestion_url = "https://sg.media-imdb.com/suggestion/{letter}/{query}.json"
diff --git a/searx/engines/microsoft_academic.py b/searx/engines/microsoft_academic.py
deleted file mode 100644
index a869daf2f..000000000
--- a/searx/engines/microsoft_academic.py
+++ /dev/null
@@ -1,77 +0,0 @@
-# SPDX-License-Identifier: AGPL-3.0-or-later
-"""
- Microsoft Academic (Science)
-"""
-
-from json import dumps, loads
-from searx.utils import html_to_text
-
-# about
-about = {
- "website": 'https://academic.microsoft.com',
- "wikidata_id": 'Q28136779',
- "official_api_documentation": 'http://ma-graph.org/',
- "use_official_api": False,
- "require_api_key": False,
- "results": 'JSON',
-}
-
-categories = ['images']
-paging = True
-search_url = 'https://academic.microsoft.com/api/search'
-_paper_url = 'https://academic.microsoft.com/paper/{id}/reference'
-
-
-def request(query, params):
- params['url'] = search_url
- params['method'] = 'POST'
- params['headers']['content-type'] = 'application/json; charset=utf-8'
- params['data'] = dumps(
- {
- 'query': query,
- 'queryExpression': '',
- 'filters': [],
- 'orderBy': 0,
- 'skip': (params['pageno'] - 1) * 10,
- 'sortAscending': True,
- 'take': 10,
- 'includeCitationContexts': False,
- 'profileId': '',
- }
- )
-
- return params
-
-
-def response(resp):
- results = []
- response_data = loads(resp.text)
- if not response_data:
- return results
-
- for result in response_data.get('pr', {}):
- if 'dn' not in result['paper']:
- continue
-
- title = result['paper']['dn']
- content = _get_content(result['paper'])
- url = _paper_url.format(id=result['paper']['id'])
- results.append(
- {
- 'url': url,
- 'title': html_to_text(title),
- 'content': html_to_text(content),
- }
- )
-
- return results
-
-
-def _get_content(result):
- if 'd' in result:
- content = result['d']
- if len(content) > 300:
- return content[:300] + '...'
- return content
-
- return ''
diff --git a/searx/engines/ccengine.py b/searx/engines/openverse.py
index 93ac30c86..9f4636e41 100644
--- a/searx/engines/ccengine.py
+++ b/searx/engines/openverse.py
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""
- Creative Commons search engine (Images)
+ Openverse (formerly known as: Creative Commons search engine) [Images]
"""
@@ -10,9 +10,9 @@ from urllib.parse import urlencode
about = {
- "website": 'https://search.creativecommons.org/',
+ "website": 'https://wordpress.org/openverse/',
"wikidata_id": None,
- "official_api_documentation": 'https://api.creativecommons.engineering/v1/',
+ "official_api_documentation": 'https://api.openverse.engineering/v1/',
"use_official_api": True,
"require_api_key": False,
"results": 'JSON',
@@ -23,8 +23,8 @@ categories = ['images']
paging = True
nb_per_page = 20
-base_url = 'https://api.creativecommons.engineering/v1/images?'
-search_string = '&page={page}&page_size={nb_per_page}&format=json&{query}'
+base_url = 'https://api.openverse.engineering/v1/images/'
+search_string = '?page={page}&page_size={nb_per_page}&format=json&{query}'
def request(query, params):
diff --git a/searx/engines/searx_engine.py b/searx/engines/searx_engine.py
index 3e9035d6f..84a8e6449 100644
--- a/searx/engines/searx_engine.py
+++ b/searx/engines/searx_engine.py
@@ -10,7 +10,7 @@ from searx.engines import categories as searx_categories
about = {
"website": 'https://github.com/searxng/searxng',
"wikidata_id": 'Q17639196',
- "official_api_documentation": 'https://searxng.github.io/searxng/dev/search_api.html',
+ "official_api_documentation": 'https://docs.searxng.org/dev/search_api.html',
"use_official_api": True,
"require_api_key": False,
"results": 'JSON',
diff --git a/searx/engines/seznam.py b/searx/engines/seznam.py
index 2e95b4769..48a167ce0 100644
--- a/searx/engines/seznam.py
+++ b/searx/engines/seznam.py
@@ -25,6 +25,7 @@ about = {
"language": "cz",
}
+categories = ['general', 'web']
base_url = 'https://search.seznam.cz/'
diff --git a/searx/engines/sjp.py b/searx/engines/sjp.py
index ad498b847..8342a2819 100644
--- a/searx/engines/sjp.py
+++ b/searx/engines/sjp.py
@@ -21,7 +21,7 @@ about = {
"language": 'pl',
}
-categories = ['general']
+categories = ['dictionaries']
paging = False
URL = 'https://sjp.pwn.pl'
diff --git a/searx/engines/startpage.py b/searx/engines/startpage.py
index 65d90debe..97891921c 100644
--- a/searx/engines/startpage.py
+++ b/searx/engines/startpage.py
@@ -23,7 +23,7 @@ about = {
}
# engine dependent config
-categories = ['general']
+categories = ['general', 'web']
# there is a mechanism to block "bot" search
# (probably the parameter qid), require
# storing of qid's between mulitble search-calls
diff --git a/searx/engines/translated.py b/searx/engines/translated.py
index 62ade49e2..9900c017b 100644
--- a/searx/engines/translated.py
+++ b/searx/engines/translated.py
@@ -14,7 +14,7 @@ about = {
}
engine_type = 'online_dictionary'
-categories = ['general']
+categories = ['dictionaries']
url = 'https://api.mymemory.translated.net/get?q={query}&langpair={from_lang}|{to_lang}{key}'
web_url = 'https://mymemory.translated.net/en/{from_lang}/{to_lang}/{query}'
weight = 100
diff --git a/searx/engines/yahoo.py b/searx/engines/yahoo.py
index 08bde6665..6bf1932e4 100644
--- a/searx/engines/yahoo.py
+++ b/searx/engines/yahoo.py
@@ -31,7 +31,7 @@ about = {
}
# engine dependent config
-categories = ['general']
+categories = ['general', 'web']
paging = True
time_range_support = True
supported_languages_url = 'https://search.yahoo.com/preferences/languages'
diff --git a/searx/metrics/__init__.py b/searx/metrics/__init__.py
index 37f0ba121..bc755b96b 100644
--- a/searx/metrics/__init__.py
+++ b/searx/metrics/__init__.py
@@ -9,7 +9,7 @@ from timeit import default_timer
from operator import itemgetter
from searx.engines import engines
-from .models import HistogramStorage, CounterStorage
+from .models import HistogramStorage, CounterStorage, VoidHistogram, VoidCounterStorage
from .error_recorder import count_error, count_exception, errors_per_engines
__all__ = [
@@ -69,14 +69,18 @@ def counter(*args):
return counter_storage.get(*args)
-def initialize(engine_names=None):
+def initialize(engine_names=None, enabled=True):
"""
Initialize metrics
"""
global counter_storage, histogram_storage # pylint: disable=global-statement
- counter_storage = CounterStorage()
- histogram_storage = HistogramStorage()
+ if enabled:
+ counter_storage = CounterStorage()
+ histogram_storage = HistogramStorage()
+ else:
+ counter_storage = VoidCounterStorage()
+ histogram_storage = HistogramStorage(histogram_class=VoidHistogram)
# max_timeout = max of all the engine.timeout
max_timeout = 2
diff --git a/searx/metrics/error_recorder.py b/searx/metrics/error_recorder.py
index 76d27f64f..1d0d6e7a3 100644
--- a/searx/metrics/error_recorder.py
+++ b/searx/metrics/error_recorder.py
@@ -9,7 +9,7 @@ from searx.exceptions import (
SearxEngineAPIException,
SearxEngineAccessDeniedException,
)
-from searx import searx_parent_dir
+from searx import searx_parent_dir, settings
from searx.engines import engines
@@ -165,6 +165,8 @@ def get_error_context(framerecords, exception_classname, log_message, log_parame
def count_exception(engine_name: str, exc: Exception, secondary: bool = False) -> None:
+ if not settings['general']['enable_metrics']:
+ return
framerecords = inspect.trace()
try:
exception_classname = get_exception_classname(exc)
@@ -178,6 +180,8 @@ def count_exception(engine_name: str, exc: Exception, secondary: bool = False) -
def count_error(
engine_name: str, log_message: str, log_parameters: typing.Optional[typing.Tuple] = None, secondary: bool = False
) -> None:
+ if not settings['general']['enable_metrics']:
+ return
framerecords = list(reversed(inspect.stack()[1:]))
try:
error_context = get_error_context(framerecords, None, log_message, log_parameters or (), secondary)
diff --git a/searx/metrics/models.py b/searx/metrics/models.py
index d42569b7f..900a7fa93 100644
--- a/searx/metrics/models.py
+++ b/searx/metrics/models.py
@@ -102,16 +102,17 @@ class Histogram:
class HistogramStorage:
- __slots__ = 'measures'
+ __slots__ = 'measures', 'histogram_class'
- def __init__(self):
+ def __init__(self, histogram_class=Histogram):
self.clear()
+ self.histogram_class = histogram_class
def clear(self):
self.measures = {}
def configure(self, width, size, *args):
- measure = Histogram(width, size)
+ measure = self.histogram_class(width, size)
self.measures[args] = measure
return measure
@@ -154,3 +155,13 @@ class CounterStorage:
logger.debug("Counters:")
for k in ks:
logger.debug("- %-60s %s", '|'.join(k), self.counters[k])
+
+
+class VoidHistogram(Histogram):
+ def observe(self, value):
+ pass
+
+
+class VoidCounterStorage(CounterStorage):
+ def add(self, value, *args):
+ pass
diff --git a/searx/network/client.py b/searx/network/client.py
index cd1e41460..6858ac05b 100644
--- a/searx/network/client.py
+++ b/searx/network/client.py
@@ -6,8 +6,6 @@ import asyncio
import logging
import threading
-import anyio
-import httpcore
import httpx
from httpx_socks import AsyncProxyTransport
from python_socks import parse_proxy_url, ProxyConnectionError, ProxyTimeoutError, ProxyError
@@ -27,31 +25,10 @@ logger = logger.getChild('searx.network.client')
LOOP = None
SSLCONTEXTS = {}
TRANSPORT_KWARGS = {
- # use anyio :
- # * https://github.com/encode/httpcore/issues/344
- # * https://github.com/encode/httpx/discussions/1511
- 'backend': 'anyio',
'trust_env': False,
}
-# pylint: disable=protected-access
-async def close_connections_for_url(connection_pool: httpcore.AsyncConnectionPool, url: httpcore._utils.URL):
-
- origin = httpcore._utils.url_to_origin(url)
- logger.debug('Drop connections for %r', origin)
- connections_to_close = connection_pool._connections_for_origin(origin)
- for connection in connections_to_close:
- await connection_pool._remove_from_pool(connection)
- try:
- await connection.aclose()
- except httpx.NetworkError as e:
- logger.warning('Error closing an existing connection', exc_info=e)
-
-
-# pylint: enable=protected-access
-
-
def get_sslcontexts(proxy_url=None, cert=None, verify=True, trust_env=True, http2=False):
key = (proxy_url, cert, verify, trust_env, http2)
if key not in SSLCONTEXTS:
@@ -62,75 +39,25 @@ def get_sslcontexts(proxy_url=None, cert=None, verify=True, trust_env=True, http
class AsyncHTTPTransportNoHttp(httpx.AsyncHTTPTransport):
"""Block HTTP request"""
- async def handle_async_request(self, method, url, headers=None, stream=None, extensions=None):
+ async def handle_async_request(self, request):
raise httpx.UnsupportedProtocol('HTTP protocol is disabled')
class AsyncProxyTransportFixed(AsyncProxyTransport):
"""Fix httpx_socks.AsyncProxyTransport
- Map python_socks exceptions to httpx.ProxyError / httpx.ConnectError
-
- Map socket.gaierror to httpx.ConnectError
-
- Note: AsyncProxyTransport inherit from AsyncConnectionPool
+ Map python_socks exceptions to httpx.ProxyError exceptions
"""
- async def handle_async_request(self, method, url, headers=None, stream=None, extensions=None):
- retry = 2
- while retry > 0:
- retry -= 1
- try:
- return await super().handle_async_request(
- method, url, headers=headers, stream=stream, extensions=extensions
- )
- except (ProxyConnectionError, ProxyTimeoutError, ProxyError) as e:
- raise httpx.ProxyError from e
- except OSError as e:
- # socket.gaierror when DNS resolution fails
- raise httpx.ConnectError from e
- except httpx.NetworkError as e:
- # httpx.WriteError on HTTP/2 connection leaves a new opened stream
- # then each new request creates a new stream and raise the same WriteError
- await close_connections_for_url(self, url)
- raise e
- except anyio.ClosedResourceError as e:
- await close_connections_for_url(self, url)
- raise httpx.CloseError from e
- except httpx.RemoteProtocolError as e:
- # in case of httpx.RemoteProtocolError: Server disconnected
- await close_connections_for_url(self, url)
- logger.warning('httpx.RemoteProtocolError: retry', exc_info=e)
- # retry
-
-
-class AsyncHTTPTransportFixed(httpx.AsyncHTTPTransport):
- """Fix httpx.AsyncHTTPTransport"""
-
- async def handle_async_request(self, method, url, headers=None, stream=None, extensions=None):
- retry = 2
- while retry > 0:
- retry -= 1
- try:
- return await super().handle_async_request(
- method, url, headers=headers, stream=stream, extensions=extensions
- )
- except OSError as e:
- # socket.gaierror when DNS resolution fails
- raise httpx.ConnectError from e
- except httpx.NetworkError as e:
- # httpx.WriteError on HTTP/2 connection leaves a new opened stream
- # then each new request creates a new stream and raise the same WriteError
- await close_connections_for_url(self._pool, url)
- raise e
- except anyio.ClosedResourceError as e:
- await close_connections_for_url(self._pool, url)
- raise httpx.CloseError from e
- except httpx.RemoteProtocolError as e:
- # in case of httpx.RemoteProtocolError: Server disconnected
- await close_connections_for_url(self._pool, url)
- logger.warning('httpx.RemoteProtocolError: retry', exc_info=e)
- # retry
+ async def handle_async_request(self, request):
+ try:
+ return await super().handle_async_request(request)
+ except ProxyConnectionError as e:
+ raise httpx.ProxyError("ProxyConnectionError: " + e.strerror, request=request) from e
+ except ProxyTimeoutError as e:
+ raise httpx.ProxyError("ProxyTimeoutError: " + e.args[0], request=request) from e
+ except ProxyError as e:
+ raise httpx.ProxyError("ProxyError: " + e.args[0], request=request) from e
def get_transport_for_socks_proxy(verify, http2, local_address, proxy_url, limit, retries):
@@ -157,9 +84,7 @@ def get_transport_for_socks_proxy(verify, http2, local_address, proxy_url, limit
verify=verify,
http2=http2,
local_address=local_address,
- max_connections=limit.max_connections,
- max_keepalive_connections=limit.max_keepalive_connections,
- keepalive_expiry=limit.keepalive_expiry,
+ limits=limit,
retries=retries,
**TRANSPORT_KWARGS,
)
@@ -167,13 +92,13 @@ def get_transport_for_socks_proxy(verify, http2, local_address, proxy_url, limit
def get_transport(verify, http2, local_address, proxy_url, limit, retries):
verify = get_sslcontexts(None, None, True, False, http2) if verify is True else verify
- return AsyncHTTPTransportFixed(
+ return httpx.AsyncHTTPTransport(
# pylint: disable=protected-access
verify=verify,
http2=http2,
- local_address=local_address,
- proxy=httpx._config.Proxy(proxy_url) if proxy_url else None,
limits=limit,
+ proxy=httpx._config.Proxy(proxy_url) if proxy_url else None,
+ local_address=local_address,
retries=retries,
**TRANSPORT_KWARGS,
)
diff --git a/searx/network/network.py b/searx/network/network.py
index 9e14e14bd..43140b44d 100644
--- a/searx/network/network.py
+++ b/searx/network/network.py
@@ -213,15 +213,18 @@ class Network:
await asyncio.gather(*[close_client(client) for client in self._clients.values()], return_exceptions=False)
@staticmethod
- def get_kwargs_clients(kwargs):
+ def extract_kwargs_clients(kwargs):
kwargs_clients = {}
if 'verify' in kwargs:
kwargs_clients['verify'] = kwargs.pop('verify')
if 'max_redirects' in kwargs:
kwargs_clients['max_redirects'] = kwargs.pop('max_redirects')
+ if 'allow_redirects' in kwargs:
+ # see https://github.com/encode/httpx/pull/1808
+ kwargs['follow_redirects'] = kwargs.pop('allow_redirects')
return kwargs_clients
- def is_valid_respones(self, response):
+ def is_valid_response(self, response):
# pylint: disable=too-many-boolean-expressions
if (
(self.retry_on_http_error is True and 400 <= response.status_code <= 599)
@@ -231,34 +234,40 @@ class Network:
return False
return True
- async def request(self, method, url, **kwargs):
+ async def call_client(self, stream, method, url, **kwargs):
retries = self.retries
+ was_disconnected = False
+ kwargs_clients = Network.extract_kwargs_clients(kwargs)
while retries >= 0: # pragma: no cover
- kwargs_clients = Network.get_kwargs_clients(kwargs)
client = await self.get_client(**kwargs_clients)
try:
- response = await client.request(method, url, **kwargs)
- if self.is_valid_respones(response) or retries <= 0:
+ if stream:
+ response = client.stream(method, url, **kwargs)
+ else:
+ response = await client.request(method, url, **kwargs)
+ if self.is_valid_response(response) or retries <= 0:
return response
- except (httpx.RequestError, httpx.HTTPStatusError) as e:
+ except httpx.RemoteProtocolError as e:
+ if not was_disconnected:
+ # the server has closed the connection:
+ # try again without decreasing the retries variable & with a new HTTP client
+ was_disconnected = True
+ await client.aclose()
+ self._logger.warning('httpx.RemoteProtocolError: the server has disconnected, retrying')
+ continue
if retries <= 0:
raise e
- retries -= 1
-
- async def stream(self, method, url, **kwargs):
- retries = self.retries
- while retries >= 0: # pragma: no cover
- kwargs_clients = Network.get_kwargs_clients(kwargs)
- client = await self.get_client(**kwargs_clients)
- try:
- response = client.stream(method, url, **kwargs)
- if self.is_valid_respones(response) or retries <= 0:
- return response
except (httpx.RequestError, httpx.HTTPStatusError) as e:
if retries <= 0:
raise e
retries -= 1
+ async def request(self, method, url, **kwargs):
+ return await self.call_client(False, method, url, **kwargs)
+
+ async def stream(self, method, url, **kwargs):
+ return await self.call_client(True, method, url, **kwargs)
+
@classmethod
async def aclose_all(cls):
await asyncio.gather(*[network.aclose() for network in NETWORKS.values()], return_exceptions=False)
diff --git a/searx/plugins/__init__.py b/searx/plugins/__init__.py
index 7815c2099..6c1bea8d0 100644
--- a/searx/plugins/__init__.py
+++ b/searx/plugins/__init__.py
@@ -10,10 +10,20 @@ from os.path import abspath, basename, dirname, exists, join
from shutil import copyfile
from pkgutil import iter_modules
from logging import getLogger
+from typing import List
from searx import logger, settings
+class Plugin: # pylint: disable=too-few-public-methods
+ """This class is currently never initialized and only used for type hinting."""
+
+ id: str
+ name: str
+ description: str
+ default_on: bool
+
+
logger = logger.getChild("plugins")
required_attrs = (
@@ -175,7 +185,7 @@ def load_and_initialize_plugin(plugin_module_name, external, init_args):
class PluginStore:
def __init__(self):
- self.plugins = []
+ self.plugins: List[Plugin] = []
def __iter__(self):
for plugin in self.plugins:
diff --git a/searx/preferences.py b/searx/preferences.py
index 2a9b0af0c..223858a5b 100644
--- a/searx/preferences.py
+++ b/searx/preferences.py
@@ -8,43 +8,36 @@
from base64 import urlsafe_b64encode, urlsafe_b64decode
from zlib import compress, decompress
from urllib.parse import parse_qs, urlencode
+from typing import Iterable, Dict, List
+
+import flask
from searx import settings, autocomplete
+from searx.engines import Engine
+from searx.plugins import Plugin
from searx.locales import LOCALE_NAMES
from searx.webutils import VALID_LANGUAGE_CODE
+from searx.engines import OTHER_CATEGORY
COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5 # 5 years
-DISABLED = 0
-ENABLED = 1
DOI_RESOLVERS = list(settings['doi_resolvers'])
-class MissingArgumentException(Exception):
- """Exption from ``cls._post_init`` when a argument is missed."""
-
-
class ValidationException(Exception):
- """Exption from ``cls._post_init`` when configuration value is invalid."""
+ """Exption from ``cls.__init__`` when configuration value is invalid."""
class Setting:
"""Base class of user settings"""
- def __init__(self, default_value, locked=False, **kwargs):
+ def __init__(self, default_value, locked: bool = False):
super().__init__()
self.value = default_value
self.locked = locked
- for key, value in kwargs.items():
- setattr(self, key, value)
- self._post_init()
-
- def _post_init(self):
- pass
-
- def parse(self, data):
+ def parse(self, data: str):
"""Parse ``data`` and store the result at ``self.value``
If needed, its overwritten in the inheritance.
@@ -58,7 +51,7 @@ class Setting:
"""
return self.value
- def save(self, name, resp):
+ def save(self, name: str, resp: flask.Response):
"""Save cookie ``name`` in the HTTP reponse obect
If needed, its overwritten in the inheritance."""
@@ -72,35 +65,35 @@ class StringSetting(Setting):
class EnumStringSetting(Setting):
"""Setting of a value which can only come from the given choices"""
- def _post_init(self):
- if not hasattr(self, 'choices'):
- raise MissingArgumentException('Missing argument: choices')
+ def __init__(self, default_value: str, choices: Iterable[str], locked=False):
+ super().__init__(default_value, locked)
+ self.choices = choices
self._validate_selection(self.value)
- def _validate_selection(self, selection):
- if selection not in self.choices: # pylint: disable=no-member
+ def _validate_selection(self, selection: str):
+ if selection not in self.choices:
raise ValidationException('Invalid value: "{0}"'.format(selection))
- def parse(self, data):
+ def parse(self, data: str):
"""Parse and validate ``data`` and store the result at ``self.value``"""
self._validate_selection(data)
self.value = data
-class MultipleChoiceSetting(EnumStringSetting):
+class MultipleChoiceSetting(Setting):
"""Setting of values which can only come from the given choices"""
- def _validate_selections(self, selections):
+ def __init__(self, default_value: List[str], choices: Iterable[str], locked=False):
+ super().__init__(default_value, locked)
+ self.choices = choices
+ self._validate_selections(self.value)
+
+ def _validate_selections(self, selections: List[str]):
for item in selections:
- if item not in self.choices: # pylint: disable=no-member
+ if item not in self.choices:
raise ValidationException('Invalid value: "{0}"'.format(selections))
- def _post_init(self):
- if not hasattr(self, 'choices'):
- raise MissingArgumentException('Missing argument: choices')
- self._validate_selections(self.value)
-
- def parse(self, data):
+ def parse(self, data: str):
"""Parse and validate ``data`` and store the result at ``self.value``"""
if data == '':
self.value = []
@@ -110,16 +103,16 @@ class MultipleChoiceSetting(EnumStringSetting):
self._validate_selections(elements)
self.value = elements
- def parse_form(self, data):
+ def parse_form(self, data: List[str]):
if self.locked:
return
self.value = []
for choice in data:
- if choice in self.choices and choice not in self.value: # pylint: disable=no-member
+ if choice in self.choices and choice not in self.value:
self.value.append(choice)
- def save(self, name, resp):
+ def save(self, name: str, resp: flask.Response):
"""Save cookie ``name`` in the HTTP reponse obect"""
resp.set_cookie(name, ','.join(self.value), max_age=COOKIE_MAX_AGE)
@@ -127,32 +120,32 @@ class MultipleChoiceSetting(EnumStringSetting):
class SetSetting(Setting):
"""Setting of values of type ``set`` (comma separated string)"""
- def _post_init(self):
- if not hasattr(self, 'values'):
- self.values = set()
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ self.values = set()
def get_value(self):
"""Returns a string with comma separated values."""
return ','.join(self.values)
- def parse(self, data):
+ def parse(self, data: str):
"""Parse and validate ``data`` and store the result at ``self.value``"""
if data == '':
- self.values = set() # pylint: disable=attribute-defined-outside-init
+ self.values = set()
return
elements = data.split(',')
for element in elements:
self.values.add(element)
- def parse_form(self, data):
+ def parse_form(self, data: str):
if self.locked:
return
elements = data.split(',')
- self.values = set(elements) # pylint: disable=attribute-defined-outside-init
+ self.values = set(elements)
- def save(self, name, resp):
+ def save(self, name: str, resp: flask.Response):
"""Save cookie ``name`` in the HTTP reponse obect"""
resp.set_cookie(name, ','.join(self.values), max_age=COOKIE_MAX_AGE)
@@ -164,13 +157,13 @@ class SearchLanguageSetting(EnumStringSetting):
if selection != '' and not VALID_LANGUAGE_CODE.match(selection):
raise ValidationException('Invalid language code: "{0}"'.format(selection))
- def parse(self, data):
+ def parse(self, data: str):
"""Parse and validate ``data`` and store the result at ``self.value``"""
- if data not in self.choices and data != self.value: # pylint: disable=no-member
+ if data not in self.choices and data != self.value:
# hack to give some backwards compatibility with old language cookies
data = str(data).replace('_', '-')
lang = data.split('-', maxsplit=1)[0]
- # pylint: disable=no-member
+
if data in self.choices:
pass
elif lang in self.choices:
@@ -184,34 +177,34 @@ class SearchLanguageSetting(EnumStringSetting):
class MapSetting(Setting):
"""Setting of a value that has to be translated in order to be storable"""
- def _post_init(self):
- if not hasattr(self, 'map'):
- raise MissingArgumentException('missing argument: map')
- if self.value not in self.map.values(): # pylint: disable=no-member
+ def __init__(self, default_value, map: Dict[str, object], locked=False): # pylint: disable=redefined-builtin
+ super().__init__(default_value, locked)
+ self.map = map
+
+ if self.value not in self.map.values():
raise ValidationException('Invalid default value')
- def parse(self, data):
+ def parse(self, data: str):
"""Parse and validate ``data`` and store the result at ``self.value``"""
- # pylint: disable=no-member
+
if data not in self.map:
raise ValidationException('Invalid choice: {0}'.format(data))
self.value = self.map[data]
self.key = data # pylint: disable=attribute-defined-outside-init
- def save(self, name, resp):
+ def save(self, name: str, resp: flask.Response):
"""Save cookie ``name`` in the HTTP reponse obect"""
if hasattr(self, 'key'):
resp.set_cookie(name, self.key, max_age=COOKIE_MAX_AGE)
-class SwitchableSetting(Setting):
- """Base class for settings that can be turned on && off"""
+class BooleanChoices:
+ """Maps strings to booleans that are either true or false."""
- def _post_init(self):
- self.disabled = set()
- self.enabled = set()
- if not hasattr(self, 'choices'):
- raise MissingArgumentException('missing argument: choices')
+ def __init__(self, name: str, choices: Dict[str, bool], locked: bool = False):
+ self.name = name
+ self.choices = choices
+ self.locked = locked
def transform_form_items(self, items):
# pylint: disable=no-self-use
@@ -221,61 +214,54 @@ class SwitchableSetting(Setting):
# pylint: disable=no-self-use
return values
- def parse_cookie(self, data):
- # pylint: disable=attribute-defined-outside-init
- if data[DISABLED] != '':
- self.disabled = set(data[DISABLED].split(','))
- if data[ENABLED] != '':
- self.enabled = set(data[ENABLED].split(','))
+ def parse_cookie(self, data_disabled: str, data_enabled: str):
+ for disabled in data_disabled.split(','):
+ if disabled in self.choices:
+ self.choices[disabled] = False
- def parse_form(self, items):
+ for enabled in data_enabled.split(','):
+ if enabled in self.choices:
+ self.choices[enabled] = True
+
+ def parse_form(self, items: List[str]):
if self.locked:
return
- items = self.transform_form_items(items)
- self.disabled = set() # pylint: disable=attribute-defined-outside-init
- self.enabled = set() # pylint: disable=attribute-defined-outside-init
- for choice in self.choices: # pylint: disable=no-member
- if choice['default_on']:
- if choice['id'] in items:
- self.disabled.add(choice['id'])
- else:
- if choice['id'] not in items:
- self.enabled.add(choice['id'])
+ disabled = self.transform_form_items(items)
+ for setting in self.choices:
+ self.choices[setting] = setting not in disabled
+
+ @property
+ def enabled(self):
+ return (k for k, v in self.choices.items() if v)
- def save(self, resp): # pylint: disable=arguments-differ
+ @property
+ def disabled(self):
+ return (k for k, v in self.choices.items() if not v)
+
+ def save(self, resp: flask.Response):
"""Save cookie in the HTTP reponse obect"""
- resp.set_cookie('disabled_{0}'.format(self.value), ','.join(self.disabled), max_age=COOKIE_MAX_AGE)
- resp.set_cookie('enabled_{0}'.format(self.value), ','.join(self.enabled), max_age=COOKIE_MAX_AGE)
+ resp.set_cookie('disabled_{0}'.format(self.name), ','.join(self.disabled), max_age=COOKIE_MAX_AGE)
+ resp.set_cookie('enabled_{0}'.format(self.name), ','.join(self.enabled), max_age=COOKIE_MAX_AGE)
def get_disabled(self):
- disabled = self.disabled
- for choice in self.choices: # pylint: disable=no-member
- if not choice['default_on'] and choice['id'] not in self.enabled:
- disabled.add(choice['id'])
- return self.transform_values(disabled)
+ return self.transform_values(list(self.disabled))
def get_enabled(self):
- enabled = self.enabled
- for choice in self.choices: # pylint: disable=no-member
- if choice['default_on'] and choice['id'] not in self.disabled:
- enabled.add(choice['id'])
- return self.transform_values(enabled)
+ return self.transform_values(list(self.enabled))
-class EnginesSetting(SwitchableSetting):
+class EnginesSetting(BooleanChoices):
"""Engine settings"""
- def _post_init(self):
- super()._post_init()
- transformed_choices = []
- for engine_name, engine in self.choices.items(): # pylint: disable=no-member,access-member-before-definition
+ def __init__(self, default_value, engines: Iterable[Engine]):
+ choices = {}
+ for engine in engines:
for category in engine.categories:
- transformed_choice = {}
- transformed_choice['default_on'] = not engine.disabled
- transformed_choice['id'] = '{}__{}'.format(engine_name, category)
- transformed_choices.append(transformed_choice)
- self.choices = transformed_choices
+ if not category in list(settings['categories_as_tabs'].keys()) + [OTHER_CATEGORY]:
+ continue
+ choices['{}__{}'.format(engine.name, category)] = not engine.disabled
+ super().__init__(default_value, choices)
def transform_form_items(self, items):
return [item[len('engine_') :].replace('_', ' ').replace(' ', '__') for item in items]
@@ -290,18 +276,11 @@ class EnginesSetting(SwitchableSetting):
return transformed_values
-class PluginsSetting(SwitchableSetting):
+class PluginsSetting(BooleanChoices):
"""Plugin settings"""
- def _post_init(self):
- super()._post_init()
- transformed_choices = []
- for plugin in self.choices: # pylint: disable=access-member-before-definition
- transformed_choice = {}
- transformed_choice['default_on'] = plugin.default_on
- transformed_choice['id'] = plugin.id
- transformed_choices.append(transformed_choice)
- self.choices = transformed_choices
+ def __init__(self, default_value, plugins: Iterable[Plugin]):
+ super().__init__(default_value, {plugin.id: plugin.default_on for plugin in plugins})
def transform_form_items(self, items):
return [item[len('plugin_') :] for item in items]
@@ -310,34 +289,34 @@ class PluginsSetting(SwitchableSetting):
class Preferences:
"""Validates and saves preferences to cookies"""
- def __init__(self, themes, categories, engines, plugins):
+ def __init__(self, themes: List[str], categories: List[str], engines: Dict[str, Engine], plugins: Iterable[Plugin]):
super().__init__()
- self.key_value_settings = {
+ self.key_value_settings: Dict[str, Setting] = {
# fmt: off
'categories': MultipleChoiceSetting(
['general'],
- is_locked('categories'),
+ locked=is_locked('categories'),
choices=categories + ['none']
),
'language': SearchLanguageSetting(
settings['search']['default_lang'],
- is_locked('language'),
+ locked=is_locked('language'),
choices=settings['search']['languages'] + ['']
),
'locale': EnumStringSetting(
settings['ui']['default_locale'],
- is_locked('locale'),
+ locked=is_locked('locale'),
choices=list(LOCALE_NAMES.keys()) + ['']
),
'autocomplete': EnumStringSetting(
settings['search']['autocomplete'],
- is_locked('autocomplete'),
+ locked=is_locked('autocomplete'),
choices=list(autocomplete.backends.keys()) + ['']
),
'image_proxy': MapSetting(
settings['server']['image_proxy'],
- is_locked('image_proxy'),
+ locked=is_locked('image_proxy'),
map={
'': settings['server']['image_proxy'],
'0': False,
@@ -348,12 +327,12 @@ class Preferences:
),
'method': EnumStringSetting(
settings['server']['method'],
- is_locked('method'),
+ locked=is_locked('method'),
choices=('GET', 'POST')
),
'safesearch': MapSetting(
settings['search']['safe_search'],
- is_locked('safesearch'),
+ locked=is_locked('safesearch'),
map={
'0': 0,
'1': 1,
@@ -362,12 +341,12 @@ class Preferences:
),
'theme': EnumStringSetting(
settings['ui']['default_theme'],
- is_locked('theme'),
+ locked=is_locked('theme'),
choices=themes
),
'results_on_new_tab': MapSetting(
settings['ui']['results_on_new_tab'],
- is_locked('results_on_new_tab'),
+ locked=is_locked('results_on_new_tab'),
map={
'0': False,
'1': True,
@@ -377,22 +356,22 @@ class Preferences:
),
'doi_resolver': MultipleChoiceSetting(
[settings['default_doi_resolver'], ],
- is_locked('doi_resolver'),
+ locked=is_locked('doi_resolver'),
choices=DOI_RESOLVERS
),
'oscar-style': EnumStringSetting(
settings['ui']['theme_args']['oscar_style'],
- is_locked('oscar-style'),
+ locked=is_locked('oscar-style'),
choices=['', 'logicodev', 'logicodev-dark', 'pointhi']
),
'simple_style': EnumStringSetting(
settings['ui']['theme_args']['simple_style'],
- is_locked('simple_style'),
+ locked=is_locked('simple_style'),
choices=['', 'auto', 'light', 'dark']
),
'advanced_search': MapSetting(
settings['ui']['advanced_search'],
- is_locked('advanced_search'),
+ locked=is_locked('advanced_search'),
map={
'0': False,
'1': True,
@@ -403,7 +382,7 @@ class Preferences:
),
'query_in_title': MapSetting(
settings['ui']['query_in_title'],
- is_locked('query_in_title'),
+ locked=is_locked('query_in_title'),
map={
'': settings['ui']['query_in_title'],
'0': False,
@@ -415,10 +394,10 @@ class Preferences:
# fmt: on
}
- self.engines = EnginesSetting('engines', choices=engines)
- self.plugins = PluginsSetting('plugins', choices=plugins)
+ self.engines = EnginesSetting('engines', engines=engines.values())
+ self.plugins = PluginsSetting('plugins', plugins=plugins)
self.tokens = SetSetting('tokens')
- self.unknown_params = {}
+ self.unknown_params: Dict[str, str] = {}
def get_as_url_params(self):
"""Return preferences as URL parameters"""
@@ -441,7 +420,7 @@ class Preferences:
return urlsafe_b64encode(compress(urlencode(settings_kv).encode())).decode()
- def parse_encoded_data(self, input_data):
+ def parse_encoded_data(self, input_data: str):
"""parse (base64) preferences from request (``flask.request.form['preferences']``)"""
bin_data = decompress(urlsafe_b64decode(input_data))
dict_data = {}
@@ -449,7 +428,7 @@ class Preferences:
dict_data[x] = y[0]
self.parse_dict(dict_data)
- def parse_dict(self, input_data):
+ def parse_dict(self, input_data: Dict[str, str]):
"""parse preferences from request (``flask.request.form``)"""
for user_setting_name, user_setting in input_data.items():
if user_setting_name in self.key_value_settings:
@@ -457,13 +436,9 @@ class Preferences:
continue
self.key_value_settings[user_setting_name].parse(user_setting)
elif user_setting_name == 'disabled_engines':
- self.engines.parse_cookie(
- (input_data.get('disabled_engines', ''), input_data.get('enabled_engines', ''))
- )
+ self.engines.parse_cookie(input_data.get('disabled_engines', ''), input_data.get('enabled_engines', ''))
elif user_setting_name == 'disabled_plugins':
- self.plugins.parse_cookie(
- (input_data.get('disabled_plugins', ''), input_data.get('enabled_plugins', ''))
- )
+ self.plugins.parse_cookie(input_data.get('disabled_plugins', ''), input_data.get('enabled_plugins', ''))
elif user_setting_name == 'tokens':
self.tokens.parse(user_setting)
elif not any(
@@ -471,7 +446,7 @@ class Preferences:
):
self.unknown_params[user_setting_name] = user_setting
- def parse_form(self, input_data):
+ def parse_form(self, input_data: Dict[str, str]):
"""Parse formular (``<input>``) data from a ``flask.request.form``"""
disabled_engines = []
enabled_categories = []
@@ -494,7 +469,7 @@ class Preferences:
self.plugins.parse_form(disabled_plugins)
# cannot be used in case of engines or plugins
- def get_value(self, user_setting_name):
+ def get_value(self, user_setting_name: str):
"""Returns the value for ``user_setting_name``"""
ret_val = None
if user_setting_name in self.key_value_settings:
@@ -503,7 +478,7 @@ class Preferences:
ret_val = self.unknown_params[user_setting_name]
return ret_val
- def save(self, resp):
+ def save(self, resp: flask.Response):
"""Save cookie in the HTTP reponse obect"""
for user_setting_name, user_setting in self.key_value_settings.items():
# pylint: disable=unnecessary-dict-index-lookup
@@ -529,7 +504,7 @@ class Preferences:
return valid
-def is_locked(setting_name):
+def is_locked(setting_name: str):
"""Checks if a given setting name is locked by settings.yml"""
if 'preferences' not in settings:
return False
diff --git a/searx/query.py b/searx/query.py
index b7f64fe82..f5f628823 100644
--- a/searx/query.py
+++ b/searx/query.py
@@ -177,7 +177,7 @@ class ExternalBangParser(QueryPartParser):
class BangParser(QueryPartParser):
@staticmethod
def check(raw_value):
- return raw_value[0] == '!' or raw_value[0] == '?'
+ return raw_value[0] == '!'
def __call__(self, raw_value):
value = raw_value[1:].replace('-', ' ').replace('_', ' ')
@@ -222,7 +222,7 @@ class BangParser(QueryPartParser):
# check if query starts with categorie name
for category in categories:
if category.startswith(value):
- self._add_autocomplete(first_char + category)
+ self._add_autocomplete(first_char + category.replace(' ', '_'))
# check if query starts with engine name
for engine in engines:
diff --git a/searx/search/__init__.py b/searx/search/__init__.py
index d66f3362d..e790bd05e 100644
--- a/searx/search/__init__.py
+++ b/searx/search/__init__.py
@@ -24,13 +24,13 @@ from searx.search.checker import initialize as initialize_checker
logger = logger.getChild('search')
-def initialize(settings_engines=None, enable_checker=False, check_network=False):
+def initialize(settings_engines=None, enable_checker=False, check_network=False, enable_metrics=True):
settings_engines = settings_engines or settings['engines']
load_engines(settings_engines)
initialize_network(settings_engines, settings['outgoing'])
if check_network:
check_network_configuration()
- initialize_metrics([engine['name'] for engine in settings_engines])
+ initialize_metrics([engine['name'] for engine in settings_engines], enable_metrics)
initialize_processors(settings_engines)
if enable_checker:
initialize_checker()
diff --git a/searx/settings.yml b/searx/settings.yml
index 0105c7939..0ea69007a 100644
--- a/searx/settings.yml
+++ b/searx/settings.yml
@@ -2,10 +2,11 @@ general:
debug: false # Debug mode, only for development
instance_name: "SearXNG" # displayed name
contact_url: false # mailto:contact@example.com
+ enable_metrics: true # record stats
brand:
new_issue_url: https://github.com/searxng/searxng/issues/new
- docs_url: https://searxng.github.io/searxng
+ docs_url: https://docs.searxng.org/
public_instances: https://searx.space
wiki_url: https://github.com/searxng/searxng/wiki
issue_url: https://github.com/searxng/searxng/issues
@@ -85,12 +86,6 @@ ui:
simple_style: auto
# Open result links in a new tab by default
# results_on_new_tab: false
- # categories_order :
- # - general
- # - files
- # - map
- # - it
- # - science
# Lock arbitrary settings on the preferences page. To find the ID of the user
# setting you want to lock, check the ID of the form on the page "preferences".
@@ -155,7 +150,7 @@ outgoing:
# - fe80::/126
# External plugin configuration, for more details see
-# https://searxng.github.io/searxng/dev/plugins.html
+# https://docs.searxng.org/dev/plugins.html
#
# plugins:
# - plugin1
@@ -237,6 +232,18 @@ checker:
result_container:
- has_infobox
+categories_as_tabs:
+ general:
+ images:
+ videos:
+ news:
+ map:
+ music:
+ it:
+ science:
+ files:
+ social media:
+
engines:
- name: apk mirror
engine: apkmirror
@@ -323,7 +330,7 @@ engines:
url_xpath: //article[@class="repo-summary"]//a[@class="repo-link"]/@href
title_xpath: //article[@class="repo-summary"]//a[@class="repo-link"]
content_xpath: //article[@class="repo-summary"]/p
- categories: it
+ categories: [it, repos]
timeout: 4.0
disabled: true
shortcut: bb
@@ -360,10 +367,10 @@ engines:
# for a German audience. It contains many English videos and many
# German videos have English subtitles.
- - name: ccengine
- engine: ccengine
+ - name: openverse
+ engine: openverse
categories: images
- shortcut: cce
+ shortcut: opv
# - name: core.ac.uk
# engine: core
@@ -422,7 +429,7 @@ engines:
- name: docker hub
engine: docker_hub
shortcut: dh
- categories: it
+ categories: [it, packages]
- name: erowid
engine: xpath
@@ -433,7 +440,7 @@ engines:
url_xpath: //dl[@class="results-list"]/dt[@class="result-title"]/a/@href
title_xpath: //dl[@class="results-list"]/dt[@class="result-title"]/a/text()
content_xpath: //dl[@class="results-list"]/dd[@class="result-details"]
- categories: general
+ categories: []
shortcut: ew
disabled: true
about:
@@ -476,13 +483,6 @@ engines:
timeout: 3.0
disabled: true
- - name: etools
- engine: etools
- shortcut: eto
- disabled: true
- additional_tests:
- rosebud: *test_rosebud
-
- name: etymonline
engine: xpath
paging: true
@@ -492,7 +492,8 @@ engines:
content_xpath: //section[contains(@class, "word__defination")]
first_page_num: 1
shortcut: et
- disabled: true
+ categories: [dictionaries]
+ disabled: false
about:
website: https://www.etymonline.com/
wikidata_id: Q1188617
@@ -531,7 +532,7 @@ engines:
- name: free software directory
engine: mediawiki
shortcut: fsd
- categories: it
+ categories: [it, software wikis]
base_url: https://directory.fsf.org/
number_of_results: 5
# what part of a page matches the query string: title, text, nearmatch
@@ -582,7 +583,7 @@ engines:
title_query: name_with_namespace
content_query: description
page_size: 20
- categories: it
+ categories: [it, repos]
shortcut: gl
timeout: 10.0
disabled: true
@@ -608,7 +609,7 @@ engines:
url_query: html_url
title_query: name
content_query: description
- categories: it
+ categories: [it, repos]
shortcut: cb
disabled: true
about:
@@ -622,7 +623,7 @@ engines:
- name: google
engine: google
shortcut: go
- # see https://searxng.github.io/searxng/src/searx.engines.google.html#module-searx.engines.google
+ # see https://docs.searxng.org/src/searx.engines.google.html#module-searx.engines.google
use_mobile_ui: false
# additional_tests:
# android: *test_android
@@ -674,7 +675,7 @@ engines:
url_xpath: './/div[@class="RZEgze"]//div[@class="kCSSQe"]//a/@href'
content_xpath: './/div[@class="RZEgze"]//a[@class="mnKHRc"]'
thumbnail_xpath: './/div[@class="uzcko"]/div/span[1]//img/@data-src'
- categories: files
+ categories: [files, apps]
shortcut: gpa
disabled: true
about:
@@ -752,7 +753,7 @@ engines:
url_xpath: './/div[@class="ans"]//a/@href'
content_xpath: './/div[@class="from"]'
page_size: 20
- categories: it
+ categories: [it, packages]
shortcut: ho
about:
website: https://hoogle.haskell.org/
@@ -847,7 +848,7 @@ engines:
engine: xpath
timeout: 4.0
disabled: true
- categories: music
+ categories: [music, lyrics]
paging: true
search_url: https://search.azlyrics.com/search.php?q={query}&w=lyrics&p={pageno}
url_xpath: //td[@class="text-left visitedlyr"]/a/@href
@@ -868,12 +869,6 @@ engines:
# base_url: http://localhost:7700
# index: my-index
- - name: microsoft academic
- engine: microsoft_academic
- categories: science
- shortcut: ma
- timeout: 6.0
-
- name: mixcloud
engine: mixcloud
shortcut: mc
@@ -902,7 +897,7 @@ engines:
title_query: package/name
content_query: package/description
page_size: 25
- categories: it
+ categories: [it, packages]
disabled: true
timeout: 5.0
shortcut: npm
@@ -1011,7 +1006,7 @@ engines:
url_query: url
title_query: name
content_query: description
- categories: it
+ categories: [it, packages]
disabled: true
timeout: 5.0
shortcut: pack
@@ -1068,7 +1063,7 @@ engines:
content_xpath: ./p
suggestion_xpath: /html/body/main/div/div/div/form/div/div[@class="callout-block"]/p/span/a[@class="link"]
first_page_num: 1
- categories: it
+ categories: [it, packages]
about:
website: https://pypi.org
wikidata_id: Q2984686
@@ -1080,7 +1075,7 @@ engines:
- name: qwant
engine: qwant
shortcut: qw
- categories: general
+ categories: [general, web]
disabled: false
additional_tests:
rosebud: *test_rosebud
@@ -1095,14 +1090,14 @@ engines:
- name: qwant images
engine: qwant
shortcut: qwi
- categories: images
+ categories: [images, web]
disabled: false
network: qwant
- name: qwant videos
engine: qwant
shortcut: qwv
- categories: videos
+ categories: [videos, web]
disabled: false
network: qwant
@@ -1162,19 +1157,19 @@ engines:
engine: stackexchange
shortcut: st
api_site: 'stackoverflow'
- categories: it
+ categories: [it, q&a]
- name: askubuntu
engine: stackexchange
shortcut: ubuntu
api_site: 'askubuntu'
- categories: it
+ categories: [it, q&a]
- name: superuser
engine: stackexchange
shortcut: su
api_site: 'superuser'
- categories: it
+ categories: [it, q&a]
- name: searchcode code
engine: searchcode_code
@@ -1357,7 +1352,7 @@ engines:
url_query: URL
title_query: Title
content_query: Snippet
- categories: general
+ categories: [general, web]
shortcut: wib
disabled: true
about:
@@ -1416,11 +1411,11 @@ engines:
- name: wiktionary
engine: mediawiki
shortcut: wt
- categories: general
+ categories: [dictionaries]
base_url: "https://{language}.wiktionary.org/"
number_of_results: 5
search_type: text
- disabled: true
+ disabled: false
about:
website: https://www.wiktionary.org/
wikidata_id: Q151
@@ -1470,7 +1465,7 @@ engines:
engine: translated
shortcut: tl
timeout: 5.0
- disabled: true
+ disabled: false
# You can use without an API key, but you are limited to 1000 words/day
# See: https://mymemory.translated.net/doc/usagelimits.php
# api_key: ''
@@ -1504,6 +1499,7 @@ engines:
shortcut: mjk
engine: xpath
paging: true
+ categories: [general, web]
search_url: https://www.mojeek.com/search?q={query}&s={pageno}
results_xpath: /html/body//div[@class="results"]/ul[@class="results-standard"]/li
url_xpath: ./h2/a/@href
@@ -1523,6 +1519,7 @@ engines:
- name: naver
shortcut: nvr
+ categories: [general, web]
engine: xpath
paging: true
search_url: https://search.naver.com/search.naver?where=webkr&sm=osp_hty&ie=UTF-8&query={query}&start={pageno}
@@ -1552,7 +1549,7 @@ engines:
content_xpath: ./span/p
suggestion_xpath: /html/body/main/div/div[@class="search__suggestions"]/p/a
first_page_num: 1
- categories: it
+ categories: [it, packages]
disabled: true
about:
website: https://rubygems.org/
@@ -1596,14 +1593,14 @@ engines:
engine: wordnik
shortcut: def
base_url: https://www.wordnik.com/
- categories: general
+ categories: [dictionaries]
timeout: 5.0
- disabled: true
+ disabled: false
- name: woxikon.de synonyme
engine: xpath
shortcut: woxi
- categories: general
+ categories: [dictionaries]
timeout: 5.0
disabled: true
search_url: https://synonyme.woxikon.de/synonyme/{query}.php
@@ -1622,7 +1619,6 @@ engines:
engine: sjp
shortcut: sjp
base_url: https://sjp.pwn.pl/
- categories: general
timeout: 5.0
disabled: true
@@ -1655,7 +1651,7 @@ engines:
title_xpath: //span[@class="snippet-title"]
content_xpath: //p[1][@class="snippet-description"]
suggestion_xpath: //div[@class="text-gray h6"]/a
- categories: general
+ categories: [general, web]
about:
website: https://brave.com/search/
wikidata_id: Q107355971
diff --git a/searx/settings_defaults.py b/searx/settings_defaults.py
index 669f2fa87..ff556e3bb 100644
--- a/searx/settings_defaults.py
+++ b/searx/settings_defaults.py
@@ -20,18 +20,18 @@ OUTPUT_FORMATS = ['html', 'csv', 'json', 'rss']
LANGUAGE_CODES = ['all'] + list(l[0] for l in languages)
OSCAR_STYLE = ('logicodev', 'logicodev-dark', 'pointhi')
SIMPLE_STYLE = ('auto', 'light', 'dark')
-CATEGORY_ORDER = [
- 'general',
- 'images',
- 'videos',
- 'news',
- 'map',
- 'music',
- 'it',
- 'science',
- 'files',
- 'social media',
-]
+CATEGORIES_AS_TABS = {
+ 'general': {},
+ 'images': {},
+ 'videos': {},
+ 'news': {},
+ 'map': {},
+ 'music': {},
+ 'it': {},
+ 'science': {},
+ 'files': {},
+ 'social media': {},
+}
STR_TO_BOOL = {
'0': False,
'false': False,
@@ -142,11 +142,12 @@ SCHEMA = {
'debug': SettingsValue(bool, False, 'SEARXNG_DEBUG'),
'instance_name': SettingsValue(str, 'SearXNG'),
'contact_url': SettingsValue((None, False, str), None),
+ 'enable_metrics': SettingsValue(bool, True),
},
'brand': {
'issue_url': SettingsValue(str, 'https://github.com/searxng/searxng/issues'),
'new_issue_url': SettingsValue(str, 'https://github.com/searxng/searxng/issues/new'),
- 'docs_url': SettingsValue(str, 'https://searxng.github.io/searxng'),
+ 'docs_url': SettingsValue(str, 'https://docs.searxng.org'),
'public_instances': SettingsValue(str, 'https://searx.space'),
'wiki_url': SettingsValue(str, 'https://github.com/searxng/searxng/wiki'),
},
@@ -184,7 +185,6 @@ SCHEMA = {
'results_on_new_tab': SettingsValue(bool, False),
'advanced_search': SettingsValue(bool, False),
'query_in_title': SettingsValue(bool, False),
- 'categories_order': SettingsValue(list, CATEGORY_ORDER),
},
'preferences': {
'lock': SettingsValue(list, []),
@@ -215,6 +215,7 @@ SCHEMA = {
'checker': {
'off_when_debug': SettingsValue(bool, True),
},
+ 'categories_as_tabs': SettingsValue(dict, CATEGORIES_AS_TABS),
'engines': SettingsValue(list, []),
'doi_resolvers': {},
}
diff --git a/searx/static/themes/.gitattributes b/searx/static/themes/.gitattributes
new file mode 100644
index 000000000..dc8d7a30e
--- /dev/null
+++ b/searx/static/themes/.gitattributes
@@ -0,0 +1,2 @@
+leaflet.css -diff
+leaflet.js -diff
diff --git a/searx/static/themes/oscar/css/logicodev-dark.css b/searx/static/themes/oscar/css/logicodev-dark.css
index 7ffd12490..8d5e16be2 100644
--- a/searx/static/themes/oscar/css/logicodev-dark.css
+++ b/searx/static/themes/oscar/css/logicodev-dark.css
@@ -384,7 +384,7 @@
}
/*
this file is generated automatically by searxng_extra/update/update_pygments.py
- using pygments version 2.11.0
+ using pygments version 2.11.2
*/
.code-highlight .linenos {
-webkit-touch-callout: none;
diff --git a/searx/static/themes/oscar/css/logicodev.css b/searx/static/themes/oscar/css/logicodev.css
index b5ef0e729..dcfcd2b8c 100644
--- a/searx/static/themes/oscar/css/logicodev.css
+++ b/searx/static/themes/oscar/css/logicodev.css
@@ -384,7 +384,7 @@
}
/*
this file is generated automatically by searxng_extra/update/update_pygments.py
- using pygments version 2.11.0
+ using pygments version 2.11.2
*/
.code-highlight .linenos {
-webkit-touch-callout: none;
diff --git a/searx/static/themes/oscar/css/pointhi.css b/searx/static/themes/oscar/css/pointhi.css
index f25630303..26eaa17e6 100644
--- a/searx/static/themes/oscar/css/pointhi.css
+++ b/searx/static/themes/oscar/css/pointhi.css
@@ -384,7 +384,7 @@
}
/*
this file is generated automatically by searxng_extra/update/update_pygments.py
- using pygments version 2.11.0
+ using pygments version 2.11.2
*/
.code-highlight .linenos {
-webkit-touch-callout: none;
diff --git a/searx/static/themes/oscar/src/generated/pygments-logicodev.less b/searx/static/themes/oscar/src/generated/pygments-logicodev.less
index c61681752..43bee74f2 100644
--- a/searx/static/themes/oscar/src/generated/pygments-logicodev.less
+++ b/searx/static/themes/oscar/src/generated/pygments-logicodev.less
@@ -1,6 +1,6 @@
/*
this file is generated automatically by searxng_extra/update/update_pygments.py
- using pygments version 2.11.0
+ using pygments version 2.11.2
*/
.code-highlight .linenos {
diff --git a/searx/static/themes/oscar/src/generated/pygments-pointhi.less b/searx/static/themes/oscar/src/generated/pygments-pointhi.less
index 0f21d0280..f9b20c592 100644
--- a/searx/static/themes/oscar/src/generated/pygments-pointhi.less
+++ b/searx/static/themes/oscar/src/generated/pygments-pointhi.less
@@ -1,6 +1,6 @@
/*
this file is generated automatically by searxng_extra/update/update_pygments.py
- using pygments version 2.11.0
+ using pygments version 2.11.2
*/
.code-highlight .linenos {
diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css b/searx/static/themes/simple/css/searxng-rtl.min.css
index 36f587bc9..6bd1c16b4 100644
--- a/searx/static/themes/simple/css/searxng-rtl.min.css
+++ b/searx/static/themes/simple/css/searxng-rtl.min.css
@@ -1 +1 @@
-.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-url-font:#29314d;--color-url-visited-font:#80b;--color-header-background:#f7f7f7;--color-header-border:#ddd;--color-footer-background:#f7f7f7;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-search-border:#bbb;--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#f7f7f7;--color-answer-border:#ddd;--color-answer-font:#444;--color-answer-background:#f7f7f7;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#80b;--color-result-publishdate-font:#777;--color-result-engines-font:#777;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#f7f7f7;--color-settings-engine-description-font:#909090;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#f7f7f7;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-background:#ddd;--color-toolkit-checkbox-onoff-label-background:#3050ff;--color-toolkit-checkbox-onoff-checked-background:#aaa;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0)}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222;--color-url-font:#8af;--color-url-visited-font:#96b;--color-header-background:#181818;--color-header-border:#333;--color-footer-background:#181818;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#181818;--color-btn-background:#58f;--color-btn-font:#222;--color-search-border:#555;--color-search-background:#222;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-background:#222;--color-autocomplete-background-hover:#181818;--color-answer-border:#333;--color-answer-font:#bbb;--color-answer-background:#181818;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#181818;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#96b;--color-result-publishdate-font:#888;--color-result-engines-font:#888;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#222;--color-settings-tr-hover:#2d2d2d;--color-settings-engine-description-font:#909090;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#222;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#3c3b31;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#333;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-background:#3c3b31;--color-toolkit-checkbox-onoff-label-background:#58f;--color-toolkit-checkbox-onoff-checked-background:#ddd;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0)}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222;--color-url-font:#8af;--color-url-visited-font:#96b;--color-header-background:#181818;--color-header-border:#333;--color-footer-background:#181818;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#181818;--color-btn-background:#58f;--color-btn-font:#222;--color-search-border:#555;--color-search-background:#222;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-background:#222;--color-autocomplete-background-hover:#181818;--color-answer-border:#333;--color-answer-font:#bbb;--color-answer-background:#181818;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#181818;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#96b;--color-result-publishdate-font:#888;--color-result-engines-font:#888;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#222;--color-settings-tr-hover:#2d2d2d;--color-settings-engine-description-font:#909090;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#222;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#3c3b31;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#333;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-background:#3c3b31;--color-toolkit-checkbox-onoff-label-background:#58f;--color-toolkit-checkbox-onoff-checked-background:#ddd;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0)}.code-highlight pre{overflow:auto;background-color:inherit;color:inherit;border:inherit}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#f8f8f8}.code-highlight .c{color:#3D7B7B;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3D7B7B;font-style:italic}.code-highlight .cm{color:#3D7B7B;font-style:italic}.code-highlight .cp{color:#9C6500}.code-highlight .cpf{color:#3D7B7B;font-style:italic}.code-highlight .c1{color:#3D7B7B;font-style:italic}.code-highlight .cs{color:#3D7B7B;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:#E40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04D}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#B00040}.code-highlight .m{color:#666}.code-highlight .s{color:#BA2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00F;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#CB3F38;font-weight:700}.code-highlight .nf{color:#00F}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00F;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177C}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.code-highlight .dl{color:#BA2121}.code-highlight .sd{color:#BA2121;font-style:italic}.code-highlight .s2{color:#BA2121}.code-highlight .se{color:#AA5D1F;font-weight:700}.code-highlight .sh{color:#BA2121}.code-highlight .si{color:#A45A77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#A45A77}.code-highlight .s1{color:#BA2121}.code-highlight .ss{color:#19177C}.code-highlight .bp{color:green}.code-highlight .fm{color:#00F}.code-highlight .vc{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin:0 1rem 0 0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:var(--color-toolkit-checkbox-onoff-background);margin:8px 1rem;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;transition:all .4s ease;left:27px;background-color:var(--color-toolkit-checkbox-onoff-label-background)}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:var(--color-toolkit-checkbox-onoff-checked-background)}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:var(--color-toolkit-checkbox-label-background);border-radius:10px}.checkbox label::after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:8px 0 8px 8px}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);border:1px solid var(--color-autocomplete-border);max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{border-bottom:1px solid var(--color-result-top-border);text-align:left}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:7.75rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);max-height:16rem;min-height:16rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding:.4rem .5rem .4rem .3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:80em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}#main_index{margin-top:26vh}#main_index #linkto_preferences{right:1.8rem}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:80em){div.title h1{font-size:1em}#main_index{margin-top:6em}}@media screen and (max-width:50em){#main_index{margin-top:0}}#tab-contentquery table td,#tab-contentquery table th{text-align:left!important;height:3rem}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin:0 1rem 0 0}#main_preferences .value select{width:14rem}#main_preferences .value input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences .value input[type=text]:focus,#main_preferences .value input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences table{border-collapse:collapse}#main_preferences table td{text-align:center}#main_preferences table.cookies{width:100%}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences div.selectable_url pre{width:100%}#main_preferences th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences th.name .engine-tooltip .engine-description{margin-top:.5rem}@media screen and (max-width:80em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding:1.5em 2em 0 7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;column-gap:1.2rem;row-gap:1rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category{display:inline-block;position:relative;margin-right:1rem;padding:0}.category input{display:none}.category label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category label svg{padding-right:.2rem}.category label div.category_name{margin:auto 0}.category input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_box{margin:0;padding:0;grid-area:search;display:inline-flex;flex-direction:row;white-space:nowrap}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8em;margin:0;padding:8px 2px;background:none repeat scroll 0 0 var(--color-search-background);border-top:1px solid var(--color-search-border);border-bottom:1px solid var(--color-search-border);border-right:none;border-left:none;border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}#q,#send_search{display:block!important;border-collapse:separate;box-sizing:border-box;margin:0;padding:10px;background:none repeat scroll 0 0 var(--color-search-background);border:1px solid var(--color-search-border);border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:2}#q{outline:medium none;padding-left:12px;padding-right:0!important;border-right:none;width:40rem;border-radius:10px 0 0 10px}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-left:none;border-radius:0 10px 10px 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border);padding:10px}.search_filters{margin:.6rem 0 0 10.6rem}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:80em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin:.6rem 0 0 3.5rem}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto;margin-top:2px}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;column-gap:0;row-gap:0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:99%;display:flex;flex-direction:row}#q{width:100%;flex:1}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin-right .1s}.search_filters{margin:0}.category{display:block;width:100%;margin:0}.category label{padding:.8rem!important;margin:0!important}.category label svg{display:none}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}#main_about,#main_preferences,#main_stats{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}#main_preferences h1,#main_stats h1{background:url(../img/searxng.png) no-repeat;background-size:contain;min-height:40px;margin:0 auto}#main_preferences h1 span,#main_stats h1 span{visibility:hidden}#results button[type=submit],input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_wrapper{display:flex;font-size:1rem;color:var(--color-result-url-font);flex-wrap:nowrap;overflow:hidden;flex-direction:row;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex-basis:content;flex-grow:0;flex-shrink:1;text-align:right}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date{font-size:.8em;color:var(--color-result-publishdate-font)}.result img.thumbnail{float:left;padding:.6rem 1rem 0 0;width:20rem;height:unset}.result img.image{float:left;padding:.6rem 1rem 0 0;width:7rem;max-height:7rem;object-fit:scale-down;object-position:right top}.result .break{clear:both}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:1rem 0;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin:0 .5em 0 0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{display:inline-block;margin:0;padding:0;position:relative;max-height:200px;border:none!important}.result-images img{float:inherit;margin:.125rem;padding:0;border:none;max-height:200px;background:var(--color-result-image-background)}.result-images span.title{display:none;color:var(--color-result-image-span-font)}.result-images:hover span.title{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:var(--color-result-image-span-background-hover);font-size:.7em}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin:1rem 2rem 0 10rem;display:grid;grid-template-columns:45rem 25rem;grid-template-rows:min-content min-content 1fr min-content;gap:0 5rem;grid-template-areas:"corrections sidebar" "answers sidebar" "urls sidebar" "pagination sidebar"}#results #sidebar :first-child,#results #urls :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}#answers{grid-area:answers;border:1px solid var(--color-answer-border);background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#search_url{margin-top:8px}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:2.2rem;padding:0;border:0;display:block;font-size:1.2em;color:var(--color-search-font)}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1}@media screen and (max-width:80em){#main_about,#main_preferences,#main_stats{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{margin-bottom:.125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}#apis{display:none}#search_url{display:none}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;padding:0 0 3px 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:1rem auto 0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template-columns:100%;grid-template-rows:min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "urls" "answers" "sidebar" "pagination"}#main_results div#results.only_template_images #urls{width:inherit;margin:0}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width:50em){#main_results div#results{grid-template-columns:100%;margin:2rem .5rem 0 .5rem}#linkto_preferences{top:.8rem;right:.7rem}#main_index #linkto_preferences{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{border:1px solid var(--color-result-border);margin:1rem 0;border-radius:10px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#search_submit{left:1px;right:auto}/*# sourceMappingURL=searxng-rtl.min.css.map */ \ No newline at end of file
+.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-url-font:#29314d;--color-url-visited-font:#80b;--color-header-background:#f7f7f7;--color-header-border:#ddd;--color-footer-background:#f7f7f7;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-search-border:#bbb;--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#f7f7f7;--color-answer-border:#ddd;--color-answer-font:#444;--color-answer-background:#f7f7f7;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#80b;--color-result-publishdate-font:#777;--color-result-engines-font:#777;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#f7f7f7;--color-settings-engine-description-font:#909090;--color-settings-engine-group-background:#0001;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#f7f7f7;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-background:#ddd;--color-toolkit-checkbox-onoff-label-background:#3050ff;--color-toolkit-checkbox-onoff-checked-background:#aaa;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0)}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222;--color-url-font:#8af;--color-url-visited-font:#96b;--color-header-background:#181818;--color-header-border:#333;--color-footer-background:#181818;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#181818;--color-btn-background:#58f;--color-btn-font:#222;--color-search-border:#555;--color-search-background:#222;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-background:#222;--color-autocomplete-background-hover:#181818;--color-answer-border:#333;--color-answer-font:#bbb;--color-answer-background:#181818;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#181818;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#96b;--color-result-publishdate-font:#888;--color-result-engines-font:#888;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#222;--color-settings-tr-hover:#2d2d2d;--color-settings-engine-description-font:#909090;--color-settings-engine-group-background:#1a1919;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#222;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#3c3b31;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#333;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-background:#3c3b31;--color-toolkit-checkbox-onoff-label-background:#58f;--color-toolkit-checkbox-onoff-checked-background:#ddd;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0)}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222;--color-url-font:#8af;--color-url-visited-font:#96b;--color-header-background:#181818;--color-header-border:#333;--color-footer-background:#181818;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#181818;--color-btn-background:#58f;--color-btn-font:#222;--color-search-border:#555;--color-search-background:#222;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-background:#222;--color-autocomplete-background-hover:#181818;--color-answer-border:#333;--color-answer-font:#bbb;--color-answer-background:#181818;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#181818;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#96b;--color-result-publishdate-font:#888;--color-result-engines-font:#888;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#222;--color-settings-tr-hover:#2d2d2d;--color-settings-engine-description-font:#909090;--color-settings-engine-group-background:#1a1919;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#222;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#3c3b31;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#333;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-background:#3c3b31;--color-toolkit-checkbox-onoff-label-background:#58f;--color-toolkit-checkbox-onoff-checked-background:#ddd;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0)}.code-highlight pre{overflow:auto;background-color:inherit;color:inherit;border:inherit}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#f8f8f8}.code-highlight .c{color:#3D7B7B;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3D7B7B;font-style:italic}.code-highlight .cm{color:#3D7B7B;font-style:italic}.code-highlight .cp{color:#9C6500}.code-highlight .cpf{color:#3D7B7B;font-style:italic}.code-highlight .c1{color:#3D7B7B;font-style:italic}.code-highlight .cs{color:#3D7B7B;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:#E40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04D}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#B00040}.code-highlight .m{color:#666}.code-highlight .s{color:#BA2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00F;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#CB3F38;font-weight:700}.code-highlight .nf{color:#00F}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00F;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177C}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.code-highlight .dl{color:#BA2121}.code-highlight .sd{color:#BA2121;font-style:italic}.code-highlight .s2{color:#BA2121}.code-highlight .se{color:#AA5D1F;font-weight:700}.code-highlight .sh{color:#BA2121}.code-highlight .si{color:#A45A77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#A45A77}.code-highlight .s1{color:#BA2121}.code-highlight .ss{color:#19177C}.code-highlight .bp{color:green}.code-highlight .fm{color:#00F}.code-highlight .vc{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin:0 1rem 0 0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:var(--color-toolkit-checkbox-onoff-background);margin:8px 1rem;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;transition:all .4s ease;left:27px;background-color:var(--color-toolkit-checkbox-onoff-label-background)}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:var(--color-toolkit-checkbox-onoff-checked-background)}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:var(--color-toolkit-checkbox-label-background);border-radius:10px}.checkbox label::after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:8px 0 8px 8px}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);border:1px solid var(--color-autocomplete-border);max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{border-bottom:1px solid var(--color-result-top-border);text-align:left}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:7.75rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);max-height:16rem;min-height:16rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding:.4rem .5rem .4rem .3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:80em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}#main_index{margin-top:26vh}#main_index #linkto_preferences{right:1.8rem}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:80em){div.title h1{font-size:1em}#main_index{margin-top:6em}}@media screen and (max-width:50em){#main_index{margin-top:0}}#tab-contentquery table td,#tab-contentquery table th{text-align:left!important;height:3rem}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin:0 1rem 0 0}#main_preferences .value select{width:14rem}#main_preferences .value input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences .value input[type=text]:focus,#main_preferences .value input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences table{border-collapse:collapse}#main_preferences table td{text-align:center}#main_preferences table.cookies{width:100%}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences div.selectable_url pre{width:100%}#main_preferences th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences .engine-group{text-align:left;font-weight:400;background:var(--color-settings-engine-group-background)}@media screen and (max-width:80em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding:1.5em 2em 0 7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;column-gap:1.2rem;row-gap:1rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category{display:inline-block;position:relative;margin-right:1rem;padding:0}.category input{display:none}.category label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category label svg{padding-right:.2rem}.category label div.category_name{margin:auto 0}.category input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_box{margin:0;padding:0;grid-area:search;display:inline-flex;flex-direction:row;white-space:nowrap}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8em;margin:0;padding:8px 2px;background:none repeat scroll 0 0 var(--color-search-background);border-top:1px solid var(--color-search-border);border-bottom:1px solid var(--color-search-border);border-right:none;border-left:none;border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}#q,#send_search{display:block!important;border-collapse:separate;box-sizing:border-box;margin:0;padding:10px;background:none repeat scroll 0 0 var(--color-search-background);border:1px solid var(--color-search-border);border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:2}#q{outline:medium none;padding-left:12px;padding-right:0!important;border-right:none;width:40rem;border-radius:10px 0 0 10px}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-left:none;border-radius:0 10px 10px 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border);padding:10px}.search_filters{margin:.6rem 0 0 10.6rem}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:80em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin:.6rem 0 0 3.5rem}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto;margin-top:2px}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;column-gap:0;row-gap:0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:99%;display:flex;flex-direction:row}#q{width:100%;flex:1}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin-right .1s}.search_filters{margin:0}.category{display:block;width:100%;margin:0}.category label{padding:.8rem!important;margin:0!important}.category label svg{display:none}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}#main_about,#main_preferences,#main_stats{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}#main_preferences h1,#main_stats h1{background:url(../img/searxng.png) no-repeat;background-size:contain;min-height:40px;margin:0 auto}#main_preferences h1 span,#main_stats h1 span{visibility:hidden}#results button[type=submit],input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_wrapper{display:flex;font-size:1rem;color:var(--color-result-url-font);flex-wrap:nowrap;overflow:hidden;flex-direction:row;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex-basis:content;flex-grow:0;flex-shrink:1;text-align:right}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date{font-size:.8em;color:var(--color-result-publishdate-font)}.result img.thumbnail{float:left;padding:.6rem 1rem 0 0;width:20rem;height:unset}.result img.image{float:left;padding:.6rem 1rem 0 0;width:7rem;max-height:7rem;object-fit:scale-down;object-position:right top}.result .break{clear:both}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:1rem 0;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin:0 .5em 0 0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{display:inline-block;margin:0;padding:0;position:relative;max-height:200px;border:none!important}.result-images img{float:inherit;margin:.125rem;padding:0;border:none;max-height:200px;background:var(--color-result-image-background)}.result-images span.title{display:none;color:var(--color-result-image-span-font)}.result-images:hover span.title{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:var(--color-result-image-span-background-hover);font-size:.7em}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin:1rem 2rem 0 10rem;display:grid;grid-template-columns:45rem 25rem;grid-template-rows:min-content min-content 1fr min-content;gap:0 5rem;grid-template-areas:"corrections sidebar" "answers sidebar" "urls sidebar" "pagination sidebar"}#results #sidebar :first-child,#results #urls :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}#answers{grid-area:answers;border:1px solid var(--color-answer-border);background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#search_url{margin-top:8px}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:2.2rem;padding:0;border:0;display:block;font-size:1.2em;color:var(--color-search-font)}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1}@media screen and (max-width:80em){#main_about,#main_preferences,#main_stats{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{margin-bottom:.125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}#apis{display:none}#search_url{display:none}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;padding:0 0 3px 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:1rem auto 0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template-columns:100%;grid-template-rows:min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "urls" "answers" "sidebar" "pagination"}#main_results div#results.only_template_images #urls{width:inherit;margin:0}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width:50em){#main_results div#results{grid-template-columns:100%;margin:2rem .5rem 0 .5rem}#linkto_preferences{top:.8rem;right:.7rem}#main_index #linkto_preferences{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{border:1px solid var(--color-result-border);margin:1rem 0;border-radius:10px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#search_submit{left:1px;right:auto}/*# sourceMappingURL=searxng-rtl.min.css.map */ \ No newline at end of file
diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css.map b/searx/static/themes/simple/css/searxng-rtl.min.css.map
index d8635563b..55efb8fda 100644
--- a/searx/static/themes/simple/css/searxng-rtl.min.css.map
+++ b/searx/static/themes/simple/css/searxng-rtl.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../__common__/less/new_issue.less","../__common__/less/stats.less","src/generated/pygments.less","../__common__/less/result_templates.less","node_modules/normalize.css/normalize.css","src/less/definitions.less","src/less/code.less","src/less/toolkit.less","src/less/mixins.less","src/less/autocomplete.less","src/less/detail.less","src/less/animations.less","src/less/index.less","src/less/preferences.less","src/less/search.less","src/less/style.less","src/less/style-rtl.less"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,8ECOJ,KACE,YAAa,KACb,yBAAqC,KAUvC,KACE,OAAQ,EAOV,K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","sourcesContent":[".github-issue-button {\n display: block;\n padding: 8px 16px;\n font-family: sans-serif;\n font-size: 16px;\n color: white;\n background-color: #238636 !important; /* important is needed cause to an !important in logicodev-dark */\n border: #2ea043;\n border-radius: 10px !important;\n box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;\n}\n\n.github-issue-button:hover {\n background-color: #2ea043;\n}\n\n.issue-hide {\n display: none;\n}\n",".engine-stats {\n\n .engine-name {\n width: 20rem;\n }\n\n .engine-score {\n width: 7rem;\n text-align: right;\n }\n\n .result-count {\n }\n\n .response-time {\n }\n\n .engine-reliability {\n text-align: right;\n }\n\n table.engine-error {\n max-width: 1280px;\n margin: 1rem;\n border: 1px solid gray;\n }\n\n table.engine-error th.engine-error-type,\n table.engine-error td.engine-error-type,\n failed-test {\n width: 10rem;\n }\n\n table.engine-error span.log_parameters\n {\n border-right: 1px solid gray;\n padding: 0 1rem 0 0;\n margin: 0 0 0 0.5rem;\n }\n}\n\n.bar-chart-value {\n width: 3em;\n display: inline-block;\n text-align: right;\n padding-right: 0.5rem;\n}\n\n.bar-chart-graph {\n width: calc(100% - 5rem);\n display: inline-block;\n}\n\n.bar-chart-bar {\n border: 3px solid #5bc0de;\n margin: 1px 0;\n}\n\n.bar-chart-serie1 {\n border: 3px solid #5bc0de;\n margin: 1px 0;\n float: left;\n}\n\n.bar-chart-serie2 {\n border: 3px solid #deb15b;\n margin: 1px 0;\n float: left;\n}\n\n.bar0{\n width: 0;\n border: 0;\n}\n\n.generate-bar(100);\n\n.generate-bar(@n, @i: 1) when (@i =< @n) {\n .bar@{i} {\n width: (@i * 100% / @n);\n }\n .generate-bar(@n, (@i + 1));\n}\n","/*\n this file is generated automatically by searxng_extra/update/update_pygments.py\n using pygments version 2.11.0\n*/\n\n.code-highlight .linenos {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n\n &::selection {\n background: transparent; /* WebKit/Blink Browsers */\n }\n &::-moz-selection {\n background: transparent; /* Gecko Browsers */\n }\n\n margin-right: 8px;\n text-align: right;\n}\n\n.code-highlight pre { line-height: 125%; }\n.code-highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n.code-highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n.code-highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n.code-highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n.code-highlight .hll { background-color: #ffffcc }\n.code-highlight { background: #f8f8f8; }\n.code-highlight .c { color: #3D7B7B; font-style: italic } /* Comment */\n.code-highlight .err { border: 1px solid #FF0000 } /* Error */\n.code-highlight .k { color: #008000; font-weight: bold } /* Keyword */\n.code-highlight .o { color: #666666 } /* Operator */\n.code-highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n.code-highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n.code-highlight .cp { color: #9C6500 } /* Comment.Preproc */\n.code-highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n.code-highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n.code-highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n.code-highlight .gd { color: #A00000 } /* Generic.Deleted */\n.code-highlight .ge { font-style: italic } /* Generic.Emph */\n.code-highlight .gr { color: #E40000 } /* Generic.Error */\n.code-highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n.code-highlight .gi { color: #008400 } /* Generic.Inserted */\n.code-highlight .go { color: #717171 } /* Generic.Output */\n.code-highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n.code-highlight .gs { font-weight: bold } /* Generic.Strong */\n.code-highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n.code-highlight .gt { color: #0044DD } /* Generic.Traceback */\n.code-highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n.code-highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n.code-highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n.code-highlight .kp { color: #008000 } /* Keyword.Pseudo */\n.code-highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n.code-highlight .kt { color: #B00040 } /* Keyword.Type */\n.code-highlight .m { color: #666666 } /* Literal.Number */\n.code-highlight .s { color: #BA2121 } /* Literal.String */\n.code-highlight .na { color: #687822 } /* Name.Attribute */\n.code-highlight .nb { color: #008000 } /* Name.Builtin */\n.code-highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n.code-highlight .no { color: #880000 } /* Name.Constant */\n.code-highlight .nd { color: #AA22FF } /* Name.Decorator */\n.code-highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */\n.code-highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n.code-highlight .nf { color: #0000FF } /* Name.Function */\n.code-highlight .nl { color: #767600 } /* Name.Label */\n.code-highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n.code-highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */\n.code-highlight .nv { color: #19177C } /* Name.Variable */\n.code-highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n.code-highlight .w { color: #bbbbbb } /* Text.Whitespace */\n.code-highlight .mb { color: #666666 } /* Literal.Number.Bin */\n.code-highlight .mf { color: #666666 } /* Literal.Number.Float */\n.code-highlight .mh { color: #666666 } /* Literal.Number.Hex */\n.code-highlight .mi { color: #666666 } /* Literal.Number.Integer */\n.code-highlight .mo { color: #666666 } /* Literal.Number.Oct */\n.code-highlight .sa { color: #BA2121 } /* Literal.String.Affix */\n.code-highlight .sb { color: #BA2121 } /* Literal.String.Backtick */\n.code-highlight .sc { color: #BA2121 } /* Literal.String.Char */\n.code-highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */\n.code-highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n.code-highlight .s2 { color: #BA2121 } /* Literal.String.Double */\n.code-highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n.code-highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */\n.code-highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n.code-highlight .sx { color: #008000 } /* Literal.String.Other */\n.code-highlight .sr { color: #A45A77 } /* Literal.String.Regex */\n.code-highlight .s1 { color: #BA2121 } /* Literal.String.Single */\n.code-highlight .ss { color: #19177C } /* Literal.String.Symbol */\n.code-highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */\n.code-highlight .fm { color: #0000FF } /* Name.Function.Magic */\n.code-highlight .vc { color: #19177C } /* Name.Variable.Class */\n.code-highlight .vg { color: #19177C } /* Name.Variable.Global */\n.code-highlight .vi { color: #19177C } /* Name.Variable.Instance */\n.code-highlight .vm { color: #19177C } /* Name.Variable.Magic */\n.code-highlight .il { color: #666666 } /* Literal.Number.Integer.Long */\n",".osm-map-box {\n height:300px;\n width:100%;\n margin: 10px 0;\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/*\n * SearXNG, A privacy-respecting, hackable metasearch engine\n *\n * To change the colors of the site, simple edit this variables\n */\n\n/// Light Theme\n:root {\n /// Base Colors\n --color-base-font: #444;\n --color-base-font-rgb: 68, 68, 68;\n --color-base-background: #fff;\n --color-url-font: #29314d;\n --color-url-visited-font: #80b;\n /// Header Colors\n --color-header-background: #f7f7f7;\n --color-header-border: #ddd;\n /// Footer Colors\n --color-footer-background: #f7f7f7;\n --color-footer-border: #ddd;\n /// Sidebar Colors\n --color-sidebar-border: #ddd;\n --color-sidebar-font: #000;\n /// BackToTop Colors\n --color-backtotop-font: #444;\n --color-backtotop-border: #ddd;\n --color-backtotop-background: #fff;\n /// Button Colors\n --color-btn-background: #3050ff;\n --color-btn-font: #fff;\n /// Search Input Colors\n --color-search-border: #bbb;\n --color-search-background: #fff;\n --color-search-font: #222;\n --color-search-background-hover: #3050ff;\n /// Modal Colors\n --color-error: #db3434;\n --color-error-background: lighten(#db3434, 40%);\n --color-warning: #dbba34;\n --color-warning-background: lighten(#dbba34, 40%);\n --color-success: #42db34;\n --color-success-background: lighten(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #3050ff;\n --color-categories-item-border-selected: #3050ff;\n /// Autocomplete Colors\n --color-autocomplete-font: #000;\n --color-autocomplete-border: #bbb;\n --color-autocomplete-background: #fff;\n --color-autocomplete-background-hover: #f7f7f7;\n /// Answer Colors\n --color-answer-border: #ddd; // same as --color-header-border\n --color-answer-font: #444; // same as --color-base-font\n --color-answer-background: #f7f7f7; // same as --color-header-background:\n /// Results Colors\n --color-result-border: #ddd;\n --color-result-url-font: #000;\n --color-result-vim-selected: #f7f7f7;\n --color-result-vim-arrow: #000bbb;\n --color-result-description-highlight-font: #000;\n --color-result-link-font: #000bbb;\n --color-result-link-font-highlight: #000bbb;\n --color-result-link-visited-font: #80b;\n --color-result-publishdate-font: #777;\n --color-result-engines-font: #777;\n --color-result-search-url-border: #ddd;\n --color-result-search-url-font: #000;\n // Images Colors\n --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6);\n --color-result-image-span-font: #fff;\n --color-result-image-background: #fff;\n /// Settings Colors\n --color-settings-tr-hover: #f7f7f7;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n /// Detail modal\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #000;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgba(255, 255, 255, 0.2);\n --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #777;\n --color-toolkit-kbd-font: #fff;\n --color-toolkit-kbd-background: #000;\n --color-toolkit-dialog-border: #ddd;\n --color-toolkit-dialog-background: #fff;\n --color-toolkit-tabs-label-border: #fff;\n --color-toolkit-tabs-section-border: #ddd;\n --color-toolkit-select-background: #f7f7f7;\n --color-toolkit-select-border: #ddd;\n --color-toolkit-select-background-hover: #bbb;\n --color-toolkit-input-text-font: #222;\n --color-toolkit-checkbox-onoff-background: #ddd;\n --color-toolkit-checkbox-onoff-label-background: #3050ff;\n --color-toolkit-checkbox-onoff-checked-background: #aaa;\n --color-toolkit-checkbox-label-background: #fff;\n --color-toolkit-checkbox-label-border: #ddd;\n --color-toolkit-checkbox-input-border: #3050ff;\n --color-toolkit-engine-tooltip-border: #ddd;\n --color-toolkit-engine-tooltip-background: #fff;\n --color-toolkit-loader-border: rgba(0, 0, 0, 0.2);\n --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0);\n}\n\n.dark-themes() {\n /// Base Colors\n --color-base-font: #bbb;\n --color-base-font-rgb: 187, 187, 187;\n --color-base-background: #222;\n --color-url-font: #8af;\n --color-url-visited-font: #96b;\n /// Header Colors\n --color-header-background: #181818;\n --color-header-border: #333;\n /// Footer Colors\n --color-footer-background: #181818;\n --color-footer-border: #333;\n /// Sidebar Colors\n --color-sidebar-border: #555;\n --color-sidebar-font: #fff;\n /// BackToTop Colors\n --color-backtotop-font: #bbb;\n --color-backtotop-border: #333;\n --color-backtotop-background: #181818;\n /// Button Colors\n --color-btn-background: #58f;\n --color-btn-font: #222;\n /// Search Input Colors\n --color-search-border: #555;\n --color-search-background: #222;\n --color-search-font: #fff;\n --color-search-background-hover: #58f;\n /// Modal Colors\n --color-error: #f55b5b;\n --color-error-background: darken(#db3434, 40%);\n --color-warning: #f1d561;\n --color-warning-background: darken(#dbba34, 40%);\n --color-success: #79f56e;\n --color-success-background: darken(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #58f;\n --color-categories-item-border-selected: #58f;\n /// Autocomplete Colors\n --color-autocomplete-font: #fff;\n --color-autocomplete-border: #555;\n --color-autocomplete-background: #222;\n --color-autocomplete-background-hover: #181818;\n /// Answer Colors\n --color-answer-border: #333; // same as --color-header-border\n --color-answer-font: #bbb; // same as --color-base-font\n --color-answer-background: #181818; // same as --color-header-background:\n /// Results Colors\n --color-result-border: #333;\n --color-result-url-font: #fff;\n --color-result-vim-selected: #181818;\n --color-result-vim-arrow: #8af;\n --color-result-description-highlight-font: #fff;\n --color-result-link-font: #8af;\n --color-result-link-font-highlight: #8af;\n --color-result-link-visited-font: #96b;\n --color-result-publishdate-font: #888;\n --color-result-engines-font: #888;\n --color-result-search-url-border: #555;\n --color-result-search-url-font: #fff;\n /// Detail modal : same as the light version\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #000;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgba(255, 255, 255, 0.2);\n --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);\n // Images Colors\n --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6);\n --color-result-image-span-font: #fff;\n --color-result-image-background: #222;\n /// Settings Colors\n --color-settings-tr-hover: #2d2d2d;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #777;\n --color-toolkit-kbd-font: #000;\n --color-toolkit-kbd-background: #fff;\n --color-toolkit-dialog-border: #555;\n --color-toolkit-dialog-background: #222;\n --color-toolkit-tabs-label-border: #222;\n --color-toolkit-tabs-section-border: #555;\n --color-toolkit-select-background: #3c3b31;\n --color-toolkit-select-border: #555;\n --color-toolkit-select-background-hover: #333;\n --color-toolkit-input-text-font: #fff;\n --color-toolkit-checkbox-onoff-background: #3c3b31;\n --color-toolkit-checkbox-onoff-label-background: #58f;\n --color-toolkit-checkbox-onoff-checked-background: #ddd;\n --color-toolkit-checkbox-label-background: #fff;\n --color-toolkit-checkbox-label-border: #333;\n --color-toolkit-checkbox-input-border: #58f;\n --color-toolkit-engine-tooltip-border: #333;\n --color-toolkit-engine-tooltip-background: #222;\n --color-toolkit-loader-border: rgba(255, 255, 255, 0.2);\n --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);\n}\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .dark-themes();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .dark-themes();\n}\n\n/// General Size\n@results-width: 45rem;\n@results-offset: 10rem;\n@results-tablet-offset: 0.5rem;\n@results-gap: 5rem;\n@results-margin: 0.125rem;\n@result-padding: 1rem;\n@search-width: 40rem;\n// heigh of #search, see detail.less\n@search-height: 7.75rem;\n\n/// Device Size\n/// @desktop > @tablet\n@tablet: 80em;\n@phone: 50em;\n@small-phone: 35em;\n@ultra-small-phone: 20rem;\n\n/// From style.less\n@stacked-bar-chart: rgb(0, 0, 0);\n\n/// Load fonts from this directory.\n@icon-font-path: \"../../../fonts/\";\n//** File name for all font files.\n@icon-font-name: \"glyphicons-halflings-regular\";\n//** Element ID within SVG icon file.\n@icon-font-svg-id: \"glyphicons_halflingsregular\";\n\n// decoration of the select HTML elements\n@select-light-svg-path: \"../svg/select-light.svg\";\n@select-dark-svg-path: \"../svg/select-dark.svg\";\n",".code-highlight pre {\n overflow: auto;\n background-color: inherit;\n color: inherit;\n border: inherit;\n}\n\n// stylelint-disable no-invalid-position-at-import-rule\n@import \"../generated/pygments.less\";\n","// other solution : http://stackoverflow.com/questions/1577598/how-to-hide-parts-of-html-when-javascript-is-disabled/13857783#13857783\n\n// stylelint-disable no-descending-specificity\n\nhtml.no-js .hide_if_nojs {\n display: none;\n}\n\nhtml.js .show_if_nojs {\n display: none;\n}\n\n.center {\n text-align: center;\n}\n\n.right {\n float: right;\n}\n\n.left {\n float: left;\n}\n\n.invisible {\n display: none !important;\n}\n\n.list-unstyled {\n list-style-type: none;\n\n li {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n}\n\n.danger {\n background-color: var(--color-error-background);\n}\n\n.warning {\n background: var(--color-warning-background);\n}\n\n.success {\n background: var(--color-success-background);\n}\n\n.badge {\n display: inline-block;\n color: var(--color-toolkit-badge-font);\n background-color: var(--color-toolkit-badge-background);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n min-width: 10px;\n padding: 1px 5px;\n border-radius: 5px;\n}\n\n// kbd\nkbd {\n padding: 2px 4px;\n margin: 1px;\n font-size: 90%;\n color: var(--color-toolkit-kbd-font);\n background: var(--color-toolkit-kbd-background);\n}\n\n// table\ntable {\n width: 100%;\n\n &.striped {\n tr {\n border-bottom: 1px solid var(--color-settings-tr-hover);\n }\n }\n}\n\nth {\n padding: 0.4em;\n}\n\ntd {\n padding: 0 4px;\n}\n\ntr {\n &:hover {\n background: var(--color-settings-tr-hover) !important;\n }\n}\n\n// pre\n.pre() {\n display: block;\n font-size: 0.8em;\n word-break: break-all;\n margin: 0.1em;\n user-select: all;\n}\n\ndiv.selectable_url {\n display: block;\n border: 1px solid var(--color-result-search-url-border);\n padding: 4px;\n color: var(--color-result-search-url-font);\n margin: 0.1em;\n overflow: hidden;\n height: 1.2em;\n line-height: 1.2em;\n .rounded-corners-tiny;\n\n pre {\n .pre();\n }\n}\n\n// dialog\n.dialog() {\n position: relative;\n display: flex;\n padding: 1rem;\n margin: 0 0 1em 0;\n border: 1px solid var(--color-toolkit-dialog-border);\n text-align: left;\n .rounded-corners;\n\n .close {\n float: right;\n position: relative;\n top: -3px;\n color: inherit;\n font-size: 1.5em;\n }\n\n ul,\n ol,\n p {\n margin: 1px 0 0 0;\n }\n\n table {\n width: auto;\n }\n\n tr {\n vertical-align: text-top;\n\n &:hover {\n background: transparent !important;\n }\n }\n\n td {\n padding: 0 1em 0 0;\n }\n\n h4 {\n margin-top: 0.3em;\n margin-bottom: 0.3em;\n }\n}\n\n.dialog-error {\n .dialog();\n\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-warning {\n .dialog();\n\n color: var(--color-warning);\n background: var(--color-warning-background);\n border-color: var(--color-warning);\n}\n\n.dialog-modal {\n .dialog();\n\n display: block;\n background: var(--color-toolkit-dialog-background);\n position: fixed;\n top: 50%;\n left: 50%;\n margin: 0 auto;\n transform: translate(-50%, -50%);\n z-index: 10000000;\n\n h3 {\n margin-top: 0;\n }\n}\n\n// btn-collapse\n.btn-collapse {\n cursor: pointer;\n}\n\n//\n.scrollx {\n overflow-x: auto;\n overflow-y: hidden;\n display: block;\n padding: 0;\n margin: 0;\n border: none;\n}\n\n/* -- tabs -- */\n.tabs .tabs > label {\n font-size: 90%;\n}\n\n.tabs {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n min-width: 100%;\n\n & > * {\n order: 2;\n }\n\n & > input[type=radio] {\n display: none;\n }\n\n & > label {\n order: 1;\n padding: 0.7em;\n margin: 0 0.7em;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n border: solid var(--color-toolkit-tabs-label-border);\n border-width: 0 0 2px 0;\n\n .disable-user-select();\n\n cursor: pointer;\n }\n\n & > label:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n\n & > section {\n min-width: 100%;\n padding: 0.7rem 0;\n box-sizing: border-box;\n border-top: 1px solid var(--color-toolkit-tabs-section-border);\n display: none;\n }\n\n // default selection\n & > label:last-of-type {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n letter-spacing: -0.1px;\n }\n\n & > section:last-of-type {\n display: block;\n }\n}\n\nhtml body .tabs > input:checked {\n ~ section {\n display: none;\n }\n\n ~ label {\n position: inherited;\n background: inherit;\n border-bottom: 2px solid transparent;\n font-weight: normal;\n color: inherit;\n\n &:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n }\n\n + label {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n\n + label + section {\n display: block;\n }\n}\n\n/* -- select -- */\nselect {\n height: 2.4rem;\n margin: 0 1rem 0 0;\n padding: 0.2rem !important;\n color: var(--color-search-font);\n font-size: 0.9rem;\n z-index: 2;\n\n &:hover,\n &:focus {\n cursor: pointer;\n }\n}\n\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border-width: 0 2rem 0 0;\n border-color: transparent;\n background: data-uri('image/svg+xml;charset=UTF-8', @select-light-svg-path) no-repeat;\n background-position-x: calc(100% + 2rem);\n background-size: 2rem;\n background-origin: content-box;\n background-color: var(--color-toolkit-select-background);\n outline: medium none;\n text-overflow: ellipsis;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n\n option {\n background-color: var(--color-base-background);\n }\n }\n\n @media (prefers-color-scheme: dark) {\n html.theme-auto select,\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n }\n\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n}\n\n/* -- checkbox-onoff -- */\n@supports (border-radius: 50px) {\n .checkbox-onoff {\n display: inline-block;\n width: 40px;\n height: 10px;\n background: var(--color-toolkit-checkbox-onoff-background);\n margin: 8px 1rem;\n position: relative;\n border-radius: 50px;\n\n label {\n display: block;\n width: 20px;\n height: 20px;\n position: absolute;\n top: -5px;\n cursor: pointer;\n border-radius: 50px;\n transition: all 0.4s ease;\n left: 27px;\n background-color: var(--color-toolkit-checkbox-onoff-label-background);\n }\n\n input[type=checkbox] {\n visibility: hidden;\n\n &:checked + label {\n left: -5px;\n background: var(--color-toolkit-checkbox-onoff-checked-background);\n }\n }\n }\n}\n\n/* -- checkbox -- */\n@supports (transform: rotate(-45deg)) {\n .checkbox {\n width: 20px;\n position: relative;\n margin: 20px auto;\n\n label {\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n background: var(--color-toolkit-checkbox-label-background);\n .rounded-corners;\n\n &::after {\n content: '';\n width: 9px;\n height: 5px;\n position: absolute;\n top: 4px;\n left: 4px;\n border: 3px solid var(--color-toolkit-checkbox-label-border);\n border-top: none;\n border-right: none;\n background: transparent;\n opacity: 0;\n transform: rotate(-45deg);\n }\n }\n\n input[type=checkbox] {\n visibility: hidden;\n\n &:checked + label::after {\n border-color: var(--color-toolkit-checkbox-input-border);\n opacity: 1;\n }\n }\n\n // disabled : can''t be focused, show only the check mark\n input[disabled] + label {\n background-color: transparent !important;\n cursor: inherit;\n }\n\n // if not checked and possible to checked then display a \"light\" check mark on hover\n input:not(:checked):not([readonly]):not([disabled]) + label:hover::after {\n opacity: 0.5;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .tabs > label {\n width: 100%;\n }\n}\n\n/* -- loader -- */\n.loader,\n.loader::after {\n border-radius: 50%;\n width: 2em;\n height: 2em;\n}\n\n.loader {\n margin: 1em auto;\n font-size: 10px;\n position: relative;\n text-indent: -9999em;\n border-top: 0.5em solid var(--color-toolkit-loader-border);\n border-right: 0.5em solid var(--color-toolkit-loader-border);\n border-bottom: 0.5em solid var(--color-toolkit-loader-border);\n border-left: 0.5em solid var(--color-toolkit-loader-borderleft);\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-animation: load8 1.2s infinite linear;\n animation: load8 1.2s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* -- engine-tooltip -- */\n.engine-tooltip {\n display: none;\n position: absolute;\n padding: 0.5rem 1rem;\n margin: 0 0 0 2rem;\n border: 1px solid var(--color-toolkit-engine-tooltip-border);\n background: var(--color-toolkit-engine-tooltip-background);\n font-size: 14px;\n font-weight: normal;\n z-index: 1000000;\n text-align: left;\n .rounded-corners;\n}\n\nth:hover .engine-tooltip,\ntd:hover .engine-tooltip,\n.engine-tooltip:hover {\n display: inline-block;\n}\n\n/* -- stacked bar chart -- */\n.stacked-bar-chart {\n margin: 0;\n padding: 0 0.125rem 0 4rem;\n width: 100%;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: center;\n display: inline-flex;\n}\n\n.stacked-bar-chart-value {\n width: 3rem;\n display: inline-block;\n position: absolute;\n padding: 0 0.5rem;\n text-align: right;\n}\n\n.stacked-bar-chart-base {\n display: flex;\n flex-shrink: 0;\n flex-grow: 0;\n flex-basis: unset;\n}\n\n.stacked-bar-chart-median {\n .stacked-bar-chart-base();\n\n background: var(--color-base-font);\n border: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate80 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border: 1px solid rgba(var(--color-base-font-rgb), 0.3);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate95 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5);\n padding: 0;\n}\n\n.stacked-bar-chart-rate100 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.4rem 0;\n width: 1px;\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n// Mixins\n.text-size-adjust (@property: 100%) {\n -webkit-text-size-adjust: @property;\n -ms-text-size-adjust: @property;\n -moz-text-size-adjust: @property;\n text-size-adjust: @property;\n}\n\n.rounded-corners (@radius: 10px) {\n border-radius: @radius;\n}\n\n.rounded-right-corners (@radius: 0 10px 10px 0) {\n border-radius: @radius;\n}\n\n.rounded-corners-tiny (@radius: 5px) {\n border-radius: @radius;\n}\n\n// disable user selection\n.disable-user-select () {\n -webkit-touch-callout: none;\n user-select: none;\n}\n","/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */\n\n.autocomplete {\n position: absolute;\n max-height: 0;\n overflow-y: hidden;\n text-align: left;\n .rounded-corners;\n\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background);\n }\n\n &:empty {\n display: none;\n }\n\n > ul {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n cursor: pointer;\n padding: 8px 0 8px 8px;\n\n &.active,\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background-hover);\n\n a:active,\n a:focus,\n a:hover {\n text-decoration: none;\n }\n }\n\n &.locked {\n cursor: inherit;\n }\n }\n }\n\n &.open {\n display: block;\n background-color: var(--color-autocomplete-background);\n color: var(--color-autocomplete-font);\n border: 1px solid var(--color-autocomplete-border);\n max-height: 500px;\n overflow-y: auto;\n z-index: 100;\n\n &:empty {\n display: none;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .autocomplete {\n bottom: 0;\n }\n\n .autocomplete > ul > li {\n border-bottom: 1px solid var(--color-result-top-border);\n text-align: left;\n }\n}\n","#main_results #results.image-detail-open.only_template_images {\n width: min(98%, 59.25rem) !important;\n}\n\n#main_results #results.only_template_images.image-detail-open #backToTop {\n left: 56.75rem !important;\n right: inherit;\n}\n\narticle.result-images .detail {\n display: none;\n}\n\n#results.image-detail-open article.result-images[data-vim-selected] .detail {\n display: flex;\n flex-direction: column;\n position: fixed;\n left: 60rem;\n right: 0;\n top: @search-height;\n transition: top 0.064s ease-in 0s;\n bottom: 0;\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-background);\n z-index: 10000;\n padding: 4rem 3rem 3rem 3rem;\n\n a.result-images-source {\n display: block;\n flex: 1;\n text-align: left;\n width: 100%;\n border: none;\n text-decoration: none;\n\n img {\n padding: 0;\n margin: 0;\n border: none;\n object-fit: contain;\n width: inherit;\n max-width: 100%;\n min-height: inherit;\n max-height: calc(100vh - 25rem - 7rem);\n background: inherit;\n }\n }\n\n .result-images-labels {\n color: var(--color-result-detail-font);\n max-height: 16rem;\n min-height: 16rem;\n\n hr {\n border-top: 1px solid var(--color-result-detail-hr);\n border-bottom: none;\n }\n\n h4 {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 0.9rem;\n }\n\n p {\n color: var(--color-result-detail-label-font);\n font-size: 0.9rem;\n\n span {\n display: inline-block;\n width: 12rem;\n }\n }\n\n h4,\n p,\n a {\n text-align: left;\n }\n\n p.result-content {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-url {\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-content:hover,\n p.result-url:hover {\n position: relative;\n overflow: inherit !important;\n background: var(--color-result-detail-background);\n text-overflow: inherit !important;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-result-detail-link);\n }\n\n a:hover {\n text-decoration: underline;\n }\n }\n\n a.result-detail-close {\n top: 1rem;\n left: 1rem;\n padding: 0.4rem;\n }\n\n a.result-detail-previous {\n top: 1rem;\n right: 6rem;\n // center the icon by moving it slightly on the left\n padding: 0.4rem 0.5rem 0.4rem 0.3rem;\n }\n\n a.result-detail-next {\n top: 1rem;\n right: 2rem;\n padding: 0.4rem;\n }\n\n a.result-detail-close,\n a.result-detail-next,\n a.result-detail-previous {\n border-radius: 50%;\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n position: absolute;\n filter: opacity(40%);\n z-index: 2000002;\n\n span {\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n text-align: center;\n }\n }\n\n a.result-detail-next,\n a.result-detail-previous {\n span::before {\n // vertical center small icons\n vertical-align: sub;\n }\n }\n\n a.result-detail-close,\n a.result-detail-close:visited,\n a.result-detail-close:hover,\n a.result-detail-close:active,\n a.result-detail-previous,\n a.result-detail-previous:visited,\n a.result-detail-previous:hover,\n a.result-detail-previous:active,\n a.result-detail-next,\n a.result-detail-next:visited,\n a.result-detail-next:hover,\n a.result-detail-next:active {\n color: var(--color-result-detail-font);\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-font);\n }\n\n a.result-detail-close:focus,\n a.result-detail-close:hover,\n a.result-detail-previous:focus,\n a.result-detail-previous:hover,\n a.result-detail-next:focus,\n a.result-detail-next:hover {\n filter: opacity(80%);\n }\n\n .loader {\n position: absolute;\n top: 1rem;\n right: 50%;\n border-top: 0.5em solid var(--color-result-detail-loader-border);\n border-right: 0.5em solid var(--color-result-detail-loader-border);\n border-bottom: 0.5em solid var(--color-result-detail-loader-border);\n border-left: 0.5em solid var(--color-result-detail-loader-borderleft);\n }\n}\n\n#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail {\n top: 0;\n\n a.result-images-source img {\n max-height: calc(100vh - 25rem);\n }\n}\n\n@media screen and (max-width: @tablet) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n left: 0;\n\n a.result-images-source {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n img {\n width: 100%;\n max-height: calc(100vh - 24rem);\n }\n }\n\n a.result-detail-next {\n right: 1rem;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n left: 0;\n padding: 1rem;\n\n a.result-images-source img {\n width: 100%;\n max-height: calc(100vh - 20rem);\n margin: 0;\n }\n\n .result-images-labels p span {\n width: inherit;\n margin-right: 1rem;\n }\n }\n}\n",".dialog-modal {\n animation-name: dialogmodal;\n animation-duration: 0.13s;\n\n @keyframes dialogmodal {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0.5;\n transform: translate(-50%, -50%) scale(1.05);\n }\n }\n}\n","#main_index {\n margin-top: 26vh;\n\n #linkto_preferences {\n right: 1.8rem;\n }\n}\n\n.index {\n text-align: center;\n\n .title {\n background: url('../img/searxng.png') no-repeat;\n min-height: 4rem;\n margin: 4rem auto;\n background-position: center;\n background-size: contain;\n }\n\n h1 {\n font-size: 4em;\n visibility: hidden;\n }\n\n #search,\n #search_header {\n margin: 0 auto;\n background: inherit;\n border: inherit;\n padding: 0;\n display: block;\n }\n\n .search_filters {\n display: block;\n margin: 1em 0;\n }\n\n .category label {\n padding: 6px 10px;\n border-bottom: initial !important;\n }\n}\n\n@media screen and (max-width: @tablet) {\n div.title {\n h1 {\n font-size: 1em;\n }\n }\n\n #main_index {\n margin-top: 6em;\n }\n}\n\n@media screen and (max-width: @phone) {\n #main_index {\n margin-top: 0;\n }\n}\n","#tab-contentquery table td,\n#tab-contentquery table th {\n text-align: left !important;\n height: 3rem;\n}\n\n#main_preferences {\n form {\n width: 100%;\n }\n\n fieldset {\n margin: 8px;\n border: none;\n }\n\n legend {\n margin: 0;\n padding: 5px 0 0 0;\n display: block;\n float: left;\n width: 300px;\n }\n\n .value {\n margin: 0;\n padding: 0;\n float: left;\n width: 15em;\n\n select,\n input[type=\"text\"] {\n font-size: inherit !important;\n margin: 0 1rem 0 0;\n }\n\n select {\n width: 14rem;\n }\n\n input[type=\"text\"] {\n width: 13.25rem;\n color: var(--color-toolkit-input-text-font);\n border: none;\n background: none repeat scroll 0 0 var(--color-toolkit-select-background);\n padding: 0.2rem 0.4rem;\n height: 2rem;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n }\n\n select:focus,\n input:focus {\n outline: none;\n box-shadow: 0 0 1px 1px var(--color-btn-background);\n }\n }\n\n .description {\n margin: 0;\n padding: 5px 0 0 0;\n float: left;\n width: 50%;\n color: var(--color-settings-engine-description-font);\n font-size: 90%;\n }\n\n table {\n border-collapse: collapse;\n }\n\n table td {\n text-align: center;\n }\n\n table.cookies {\n width: 100%;\n\n th,\n td {\n text-align: left;\n font-family: monospace;\n font-size: 1rem;\n padding: 0.5em;\n vertical-align: top;\n }\n\n td:first-child {\n word-break: keep-all;\n width: 14rem;\n padding-right: 1rem;\n }\n\n td:last-child {\n word-break: break-all;\n }\n\n & > tbody > tr:nth-child(even) > th,\n & > tbody > tr:nth-child(even) > td {\n background-color: var(--color-settings-tr-hover);\n }\n }\n\n .category {\n margin-right: 0.5rem;\n\n label {\n border: 2px solid transparent;\n padding: 0.2rem 0.4rem;\n .rounded-corners-tiny;\n }\n }\n\n .category input[type=\"checkbox\"]:checked + label {\n border: 2px solid var(--color-categories-item-border-selected);\n }\n\n .name,\n .shortcut {\n text-align: left;\n }\n\n .preferences_back {\n background: none repeat scroll 0 0 var(--color-btn-background);\n color: var(--color-btn-font);\n border: 0 none;\n .rounded-corners;\n\n cursor: pointer;\n display: inline-block;\n margin: 2px 4px;\n padding: 0.7em;\n\n a {\n color: var(--color-settings-return-font);\n }\n\n a::first-letter {\n text-transform: uppercase;\n }\n }\n\n div.selectable_url {\n pre {\n width: 100%;\n }\n }\n\n th.name {\n .engine-tooltip {\n margin-top: 1.8rem;\n left: calc((100% - 85em) / 2 + 10em);\n max-width: 40rem;\n\n .engine-description {\n margin-top: 0.5rem;\n }\n }\n }\n}\n\n@media screen and (max-width: @tablet) {\n .preferences_back {\n clear: both;\n }\n\n .engine-tooltip {\n left: 10em !important;\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*/\n\n#search {\n padding: 0;\n margin: 0;\n}\n\n#search_header {\n padding: 1.5em 2em 0 @results-offset - 3rem;\n margin: 0;\n background: var(--color-header-background);\n border-bottom: 1px solid var(--color-header-border);\n display: grid;\n column-gap: 1.2rem;\n row-gap: 1rem;\n grid-template-columns: 3rem 1fr;\n grid-template-areas:\n \"logo search\"\n \"spacer categories\";\n}\n\n.category {\n display: inline-block;\n position: relative;\n margin-right: 1rem;\n padding: 0;\n\n input {\n display: none;\n }\n\n label {\n svg {\n padding-right: 0.2rem;\n }\n\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n text-transform: capitalize;\n font-size: 0.9em;\n border-bottom: 2px solid transparent;\n .disable-user-select;\n\n div.category_name {\n margin: auto 0;\n }\n }\n\n input[type=\"checkbox\"]:checked + label {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n#search_logo {\n grid-area: logo;\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n flex: 1;\n width: 30px;\n height: 30px;\n margin: 0.5rem 0 auto 0;\n }\n}\n\n.search_categories {\n grid-area: categories;\n}\n\n.search_box {\n margin: 0;\n padding: 0;\n grid-area: search;\n display: inline-flex;\n flex-direction: row;\n white-space: nowrap;\n}\n\n#clear_search {\n display: block;\n border-collapse: separate;\n box-sizing: border-box;\n width: 1.8em;\n margin: 0;\n padding: 8px 2px;\n background: none repeat scroll 0 0 var(--color-search-background);\n border-top: 1px solid var(--color-search-border);\n border-bottom: 1px solid var(--color-search-border);\n border-right: none;\n border-left: none;\n border-radius: 0;\n outline: none;\n color: var(--color-search-font);\n font-size: 16px;\n z-index: 10000;\n\n &:hover {\n color: var(--color-search-background-hover);\n }\n\n &.empty * {\n display: none;\n }\n}\n\n#q,\n#send_search {\n display: block !important;\n border-collapse: separate;\n box-sizing: border-box;\n margin: 0;\n padding: 10px;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: 1px solid var(--color-search-border);\n border-radius: 0;\n outline: none;\n color: var(--color-search-font);\n font-size: 16px;\n z-index: 2;\n}\n\n#q {\n outline: medium none;\n padding-left: 12px;\n padding-right: 0 !important;\n border-right: none;\n width: @search-width;\n border-radius: 10px 0 0 10px;\n}\n\n#q::-ms-clear,\n#q::-webkit-search-cancel-button {\n display: none;\n}\n\n#send_search {\n border-left: none;\n border-radius: 0 10px 10px 0;\n\n &:hover {\n cursor: pointer;\n background-color: var(--color-search-background-hover);\n color: var(--color-search-background);\n }\n}\n\n.no-js #clear_search,\n.no-js #send_search {\n width: auto !important;\n border-left: 1px solid var(--color-search-border);\n padding: 10px;\n}\n\n.search_filters {\n margin: 0.6rem 0 0 @results-offset + 0.6rem;\n\n select {\n background-color: inherit;\n\n &:hover,\n &:focus {\n color: var(--color-base-font);\n }\n }\n}\n\n@media screen and (max-width: @tablet) {\n #search_header {\n padding: 1.5em @results-tablet-offset 0 @results-tablet-offset;\n column-gap: @results-tablet-offset;\n }\n\n .search_filters {\n margin: 0.6rem 0 0 @results-tablet-offset + 3rem;\n }\n\n #categories {\n font-size: 90%;\n clear: both;\n\n .checkbox_container {\n margin: auto;\n margin-top: 2px;\n }\n }\n\n html.touch {\n #main_index,\n #main_results {\n #categories_container {\n width: max-content;\n\n .category {\n display: inline-block;\n width: auto;\n }\n }\n\n #categories {\n width: 100%;\n text-align: left;\n overflow-x: scroll;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n }\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #search_header {\n width: 100%;\n margin: 0;\n padding: 0.1rem 0 0 0;\n column-gap: 0;\n row-gap: 0;\n grid-template-areas:\n \"logo search\"\n \"categories categories\";\n }\n\n .search_logo {\n padding: 0;\n }\n\n .search_box {\n // hack, should be 100% ?\n width: 99%;\n display: flex;\n flex-direction: row;\n }\n\n #q {\n width: 100%;\n flex: 1;\n }\n\n #main_results #q:placeholder-shown ~ #send_search {\n margin-right: 2.6rem;\n transition: margin-right 0.1s;\n }\n\n .search_filters {\n margin: 0;\n }\n\n .category {\n display: block;\n width: 100%;\n margin: 0;\n\n label {\n padding: 0.8rem !important;\n margin: 0 !important;\n\n svg {\n display: none;\n }\n }\n }\n}\n\n@media screen and (max-width: @ultra-small-phone) {\n #search_header {\n grid-template-areas:\n \"search search\"\n \"categories categories\";\n }\n\n #search_logo {\n display: none;\n }\n}\n\n#categories {\n .disable-user-select;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n}\n\n#categories_container {\n position: relative;\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*\n* To convert \"style.less\" to \"style.css\" run: $make styles\n*/\n\n// stylelint-disable no-descending-specificity\n\n@import \"../../__common__/less/new_issue.less\";\n@import \"../../__common__/less/stats.less\";\n@import \"../../__common__/less/result_templates.less\";\n@import (inline) \"../../node_modules/normalize.css/normalize.css\";\n@import \"definitions.less\";\n@import \"mixins.less\";\n@import \"code.less\";\n@import \"toolkit.less\";\n@import \"autocomplete.less\";\n@import \"detail.less\";\n@import \"animations.less\";\n\n// for index.html template\n@import \"index.less\";\n\n// for preferences.html template\n@import \"preferences.less\";\n\n// Search-Field\n@import \"search.less\";\n\n// ion-icon\n.ion-icon {\n display: inline-block;\n vertical-align: bottom;\n line-height: 1;\n text-decoration: inherit;\n}\n\n.ion-icon-small {\n width: 1rem;\n height: 1rem;\n .ion-icon;\n}\n\n.ion-icon-big {\n width: 1.5rem;\n height: 1.5rem;\n .ion-icon;\n}\n\n// Main LESS-Code\nhtml {\n font-family: sans-serif;\n font-size: 0.9em;\n .text-size-adjust;\n\n color: var(--color-base-font);\n background-color: var(--color-base-background);\n padding: 0;\n margin: 0;\n}\n\nbody,\nmain {\n padding: 0;\n margin: 0;\n}\n\nbody {\n display: flex;\n flex-direction: column;\n height: 100vh;\n margin: 0;\n}\n\nmain {\n width: 100%;\n margin-bottom: 2rem;\n flex: 1;\n}\n\n#main_preferences,\n#main_about,\n#main_stats {\n margin: 2em auto;\n width: 85em;\n}\n\nfooter {\n clear: both;\n min-height: 4rem;\n padding: 1rem 0;\n width: 100%;\n text-align: center;\n background-color: var(--color-footer-background);\n border-top: 1px solid var(--color-footer-border);\n overflow: hidden;\n\n p {\n font-size: 0.9em;\n }\n}\n\n#main_preferences h1,\n#main_stats h1 {\n background: url('../img/searxng.png') no-repeat;\n background-size: contain;\n min-height: 40px;\n margin: 0 auto;\n\n span {\n visibility: hidden;\n }\n}\n\ninput[type=\"submit\"],\n#results button[type=\"submit\"] {\n padding: 0.7rem;\n display: inline-block;\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n .rounded-corners;\n\n border: 0;\n cursor: pointer;\n}\n\na {\n text-decoration: none;\n color: var(--color-url-font);\n\n &:visited {\n color: var(--color-url-visited-font);\n\n .highlight {\n color: var(--color-url-visited-font);\n }\n }\n}\n\narticle[data-vim-selected] {\n background: var(--color-result-vim-selected);\n border-left: 0.2rem solid var(--color-result-vim-arrow);\n .rounded-right-corners;\n}\n\narticle.result-images[data-vim-selected] {\n background: var(--color-result-vim-arrow);\n border: none;\n .rounded-corners;\n\n .image_thumbnail {\n filter: opacity(60%);\n }\n}\n\narticle[data-vim-selected].category-videos,\narticle[data-vim-selected].category-news,\narticle[data-vim-selected].category-map,\narticle[data-vim-selected].category-music,\narticle[data-vim-selected].category-files,\narticle[data-vim-selected].category-social {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n}\n\n.result {\n margin: @results-margin 0;\n padding: @result-padding;\n border-left: 0.2rem solid transparent;\n\n h3 {\n font-size: 1.2rem;\n word-wrap: break-word;\n margin: 0.4rem 0 0.4rem 0;\n padding: 0;\n\n a {\n color: var(--color-result-link-font);\n font-weight: normal;\n font-size: 1.1em;\n\n &:visited {\n color: var(--color-result-link-visited-font);\n }\n\n &:focus,\n &:hover {\n text-decoration: underline;\n border: none;\n outline: none;\n }\n }\n }\n\n .cache_link,\n .proxyfied_link {\n font-size: 0.9em !important;\n }\n\n .content,\n .stat,\n .altlink {\n font-size: 0.9em;\n margin: 0;\n padding: 0;\n max-width: 54em;\n word-wrap: break-word;\n line-height: 1.24;\n\n .highlight {\n color: var(--color-result-description-highlight-font);\n background: inherit;\n font-weight: bold;\n }\n }\n\n .codelines {\n .highlight {\n color: inherit;\n background: inherit;\n font-weight: normal;\n }\n }\n\n .url_wrapper {\n display: flex;\n font-size: 1rem;\n color: var(--color-result-url-font);\n flex-wrap: nowrap;\n overflow: hidden;\n flex-direction: row;\n margin: 0;\n padding: 0;\n\n .url_o1 {\n white-space: nowrap;\n flex-shrink: 1;\n }\n\n .url_o1::after {\n content: \" \";\n width: 1ch;\n display: inline-block;\n }\n\n .url_o2 {\n overflow: hidden;\n white-space: nowrap;\n flex-basis: content;\n flex-grow: 0;\n flex-shrink: 1;\n text-align: right;\n\n .url_i2 {\n float: right;\n }\n }\n }\n\n .published_date {\n font-size: 0.8em;\n color: var(--color-result-publishdate-font);\n }\n\n img {\n &.thumbnail {\n float: left;\n padding: 0.6rem 1rem 0 0;\n width: 20rem;\n height: unset; // remove heigth value that was needed for lazy loading\n }\n\n &.image {\n float: left;\n padding: 0.6rem 1rem 0 0;\n width: 7rem;\n max-height: 7rem;\n object-fit: scale-down;\n object-position: right top;\n }\n }\n\n .break {\n clear: both;\n }\n}\n\n.category-videos,\n.category-news,\n.category-map,\n.category-music,\n.category-files,\n.category-social {\n border: 1px solid var(--color-result-border);\n margin: 1rem 0;\n .rounded-corners;\n}\n\n.category-social .image {\n width: auto !important;\n min-width: 48px;\n min-height: 48px;\n padding: 0 5px 25px 0 !important;\n}\n\n.result-videos .content {\n overflow: hidden;\n}\n\n.engines {\n float: right;\n color: var(--color-result-engines-font);\n\n span {\n font-size: smaller;\n margin: 0 0.5em 0 0;\n }\n}\n\n.small_font {\n font-size: 0.8em;\n}\n\n.highlight {\n color: var(--color-result-link-font-highlight);\n background: inherit;\n}\n\n.empty_element {\n font-style: italic;\n}\n\n.result-images {\n display: inline-block;\n margin: 0;\n padding: 0;\n position: relative;\n max-height: 200px;\n border: none !important;\n\n img {\n float: inherit;\n margin: 0.125rem;\n padding: 0;\n border: none;\n max-height: 200px;\n background: var(--color-result-image-background);\n }\n\n span.title {\n display: none;\n color: var(--color-result-image-span-font);\n }\n\n &:hover span.title {\n display: block;\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 4px;\n margin: 0 0 4px 4px;\n // color: @color-result-image-span-font;\n background-color: var(--color-result-image-span-background-hover);\n font-size: 0.7em;\n }\n}\n\n.result-map {\n img.image {\n float: right !important;\n height: 100px !important;\n width: auto !important;\n }\n\n table {\n font-size: 0.9em;\n width: auto;\n border-collapse: separate;\n border-spacing: 0 0.35rem;\n\n th {\n font-weight: inherit;\n width: 17rem;\n vertical-align: top;\n text-align: left;\n }\n\n td {\n vertical-align: top;\n text-align: left;\n }\n }\n}\n\n.hidden {\n display: none !important;\n}\n\n#results {\n margin: 1rem 2rem 0 @results-offset;\n display: grid;\n grid-template-columns: @results-width 25rem;\n grid-template-rows: min-content min-content 1fr min-content;\n gap: 0 @results-gap;\n grid-template-areas:\n \"corrections sidebar\"\n \"answers sidebar\"\n \"urls sidebar\"\n \"pagination sidebar\";\n}\n\n#results #sidebar *:first-child,\n#results #urls *:first-child {\n margin-top: 0;\n}\n\n#urls {\n padding: 0;\n grid-area: urls;\n}\n\n#suggestions {\n .wrapper {\n display: flex;\n flex-flow: row wrap;\n justify-content: flex-end;\n\n form {\n display: inline-block;\n flex: 1 1 50%;\n }\n }\n}\n\n#suggestions,\n#infoboxes {\n input {\n padding: 0;\n margin: 3px;\n font-size: 0.9em;\n display: inline-block;\n background: transparent;\n color: var(--color-result-search-url-font);\n cursor: pointer;\n }\n\n input[type=\"submit\"],\n .infobox .url a {\n color: var(--color-result-link-font);\n text-decoration: none;\n font-size: 0.9rem;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n#corrections {\n grid-area: corrections;\n display: flex;\n flex-flow: row wrap;\n margin: 0 0 1em 0;\n\n h4,\n input[type=\"submit\"] {\n display: inline-block;\n padding: 0.5rem;\n margin: 0.5rem;\n }\n\n input[type=\"submit\"] {\n font-size: 0.8rem;\n .rounded-corners-tiny;\n }\n}\n\n#suggestions .title,\n#search_url .title,\n#apis .title {\n margin: 2em 0 0.5em 0;\n color: var(--color-base-font);\n}\n\n#answers {\n grid-area: answers;\n border: 1px solid var(--color-answer-border);\n background: var(--color-answer-background);\n padding: @result-padding;\n margin: 1rem 0;\n margin-top: 0;\n color: var(--color-answer-font);\n .rounded-corners;\n\n h4 {\n display: none;\n }\n}\n\n#infoboxes {\n form {\n min-width: 210px;\n }\n}\n\n#sidebar {\n grid-area: sidebar;\n word-wrap: break-word;\n color: var(--color-sidebar-font);\n\n .infobox {\n margin: 10px 0 10px;\n border: 1px solid var(--color-sidebar-border);\n padding: 1rem;\n font-size: 0.9em;\n .rounded-corners;\n\n h2 {\n margin: 0 0 0.5em 0;\n }\n\n img {\n max-width: 100%;\n max-height: 12em;\n display: block;\n margin: 0 auto;\n padding: 0;\n }\n\n dl {\n margin: 0.5em 0;\n }\n\n dt {\n display: inline;\n margin: 0.5em 0.25em 0.5em 0;\n padding: 0;\n font-weight: bold;\n }\n\n dd {\n display: inline;\n margin: 0.5em 0;\n padding: 0;\n }\n\n input {\n font-size: 1em;\n }\n\n br {\n clear: both;\n }\n\n .attributes,\n .urls {\n clear: both;\n }\n }\n}\n\n#search_url {\n margin-top: 8px;\n\n div.selectable_url {\n pre {\n width: 200em;\n }\n }\n}\n\n#linkto_preferences {\n position: absolute;\n right: 10px;\n top: 2.2rem;\n padding: 0;\n border: 0;\n display: block;\n font-size: 1.2em;\n color: var(--color-search-font);\n\n a:link *,\n a:hover *,\n a:visited *,\n a:active * {\n color: var(--color-search-font);\n }\n}\n\n#pagination {\n grid-area: pagination;\n\n br {\n clear: both;\n }\n}\n\n#apis {\n margin-top: 8px;\n clear: both;\n}\n\n#backToTop {\n border: 1px solid var(--color-backtotop-border);\n margin: 0;\n padding: 0;\n font-size: 1em;\n background: var(--color-backtotop-background);\n position: fixed;\n bottom: 8rem;\n left: @results-width + @results-offset + (0.5 * @results-gap - 1.2em);\n transition: opacity 0.5s;\n opacity: 0;\n .rounded-corners;\n\n a {\n display: block;\n margin: 0;\n padding: 0.7em;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-backtotop-font);\n }\n}\n\n#results.scrolling #backToTop {\n opacity: 1;\n}\n\n@media screen and (max-width: @tablet) {\n #main_preferences,\n #main_about,\n #main_stats {\n margin: 2rem 0.5rem;\n width: auto;\n }\n\n #infoboxes {\n position: inherit;\n max-width: inherit;\n\n .infobox {\n clear: both;\n\n img {\n float: left;\n max-width: 10em;\n margin: 0.5em 0.5em 0.5em 0;\n }\n }\n }\n\n #sidebar {\n margin-bottom: @results-margin;\n padding: 0;\n float: none;\n border: none;\n width: auto;\n\n input {\n border: 0;\n }\n }\n\n #apis {\n display: none;\n }\n\n #search_url {\n display: none;\n }\n\n .result {\n .thumbnail {\n max-width: 98%;\n }\n\n .url {\n span.url {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 100%;\n }\n }\n\n .engines {\n float: right;\n padding: 0 0 3px 0;\n }\n }\n\n .result-images {\n border-bottom: none !important;\n }\n\n .image_result {\n max-width: 98%;\n\n img {\n max-width: 98%;\n }\n }\n\n #backToTop {\n display: none;\n }\n\n #pagination {\n margin: 2rem 0 0 0 !important;\n }\n\n #main_results div#results {\n margin: 1rem auto 0 auto;\n justify-content: center;\n display: grid;\n grid-template-columns: @results-width;\n grid-template-rows: min-content min-content min-content 1fr min-content min-content;\n gap: 0;\n grid-template-areas:\n \"corrections\"\n \"answers\"\n \"sidebar\"\n \"urls\"\n \"pagination\";\n }\n}\n\n#main_results div#results.only_template_images {\n margin: 1rem @results-tablet-offset 0 @results-tablet-offset;\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: min-content min-content 1fr min-content min-content;\n gap: 0;\n grid-template-areas:\n \"corrections\"\n \"urls\"\n \"answers\"\n \"sidebar\"\n \"pagination\";\n\n #urls {\n width: inherit;\n margin: 0;\n }\n\n #backToTop {\n left: auto;\n right: 1rem;\n }\n\n #pagination {\n margin-right: 4rem;\n }\n}\n\n@media screen and (max-width: @phone) {\n #main_results div#results {\n grid-template-columns: 100%;\n margin: 2rem @results-tablet-offset 0 @results-tablet-offset;\n }\n\n #linkto_preferences {\n top: 0.8rem;\n right: 0.7rem;\n }\n\n #main_index #linkto_preferences {\n top: 0.5rem;\n right: 0.5rem;\n }\n\n #results {\n margin: 0;\n padding: 0;\n }\n\n #pagination {\n margin: 2rem 1rem 0 1rem !important;\n }\n\n article[data-vim-selected] {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n }\n\n .result {\n border: 1px solid var(--color-result-border);\n margin: 1rem 0;\n .rounded-corners;\n }\n\n .result-images {\n margin: 0;\n padding: 0;\n border: none;\n }\n}\n\n@media screen and (max-width: @small-phone) {\n .result-videos {\n img.thumbnail {\n float: none !important;\n }\n\n .content {\n overflow: inherit;\n }\n }\n}\n\npre code {\n white-space: pre-wrap;\n}\n","@import \"style.less\";\n\n#search_submit {\n left: 1px;\n right: auto;\n}\n"]} \ No newline at end of file
+{"version":3,"sources":["../__common__/less/new_issue.less","../__common__/less/stats.less","src/generated/pygments.less","../__common__/less/result_templates.less","node_modules/normalize.css/normalize.css","src/less/definitions.less","src/less/code.less","src/less/toolkit.less","src/less/mixins.less","src/less/autocomplete.less","src/less/detail.less","src/less/animations.less","src/less/index.less","src/less/preferences.less","src/less/search.less","src/less/style.less","src/less/style-rtl.less"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,8ECOJ,KACE,YAAa,KACb,yBAAqC,KAUvC,KACE,OAAQ,EAOV,K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","sourcesContent":[".github-issue-button {\n display: block;\n padding: 8px 16px;\n font-family: sans-serif;\n font-size: 16px;\n color: white;\n background-color: #238636 !important; /* important is needed cause to an !important in logicodev-dark */\n border: #2ea043;\n border-radius: 10px !important;\n box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;\n}\n\n.github-issue-button:hover {\n background-color: #2ea043;\n}\n\n.issue-hide {\n display: none;\n}\n",".engine-stats {\n\n .engine-name {\n width: 20rem;\n }\n\n .engine-score {\n width: 7rem;\n text-align: right;\n }\n\n .result-count {\n }\n\n .response-time {\n }\n\n .engine-reliability {\n text-align: right;\n }\n\n table.engine-error {\n max-width: 1280px;\n margin: 1rem;\n border: 1px solid gray;\n }\n\n table.engine-error th.engine-error-type,\n table.engine-error td.engine-error-type,\n failed-test {\n width: 10rem;\n }\n\n table.engine-error span.log_parameters\n {\n border-right: 1px solid gray;\n padding: 0 1rem 0 0;\n margin: 0 0 0 0.5rem;\n }\n}\n\n.bar-chart-value {\n width: 3em;\n display: inline-block;\n text-align: right;\n padding-right: 0.5rem;\n}\n\n.bar-chart-graph {\n width: calc(100% - 5rem);\n display: inline-block;\n}\n\n.bar-chart-bar {\n border: 3px solid #5bc0de;\n margin: 1px 0;\n}\n\n.bar-chart-serie1 {\n border: 3px solid #5bc0de;\n margin: 1px 0;\n float: left;\n}\n\n.bar-chart-serie2 {\n border: 3px solid #deb15b;\n margin: 1px 0;\n float: left;\n}\n\n.bar0{\n width: 0;\n border: 0;\n}\n\n.generate-bar(100);\n\n.generate-bar(@n, @i: 1) when (@i =< @n) {\n .bar@{i} {\n width: (@i * 100% / @n);\n }\n .generate-bar(@n, (@i + 1));\n}\n","/*\n this file is generated automatically by searxng_extra/update/update_pygments.py\n using pygments version 2.11.2\n*/\n\n.code-highlight .linenos {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n\n &::selection {\n background: transparent; /* WebKit/Blink Browsers */\n }\n &::-moz-selection {\n background: transparent; /* Gecko Browsers */\n }\n\n margin-right: 8px;\n text-align: right;\n}\n\n.code-highlight pre { line-height: 125%; }\n.code-highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n.code-highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n.code-highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n.code-highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n.code-highlight .hll { background-color: #ffffcc }\n.code-highlight { background: #f8f8f8; }\n.code-highlight .c { color: #3D7B7B; font-style: italic } /* Comment */\n.code-highlight .err { border: 1px solid #FF0000 } /* Error */\n.code-highlight .k { color: #008000; font-weight: bold } /* Keyword */\n.code-highlight .o { color: #666666 } /* Operator */\n.code-highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n.code-highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n.code-highlight .cp { color: #9C6500 } /* Comment.Preproc */\n.code-highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n.code-highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n.code-highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n.code-highlight .gd { color: #A00000 } /* Generic.Deleted */\n.code-highlight .ge { font-style: italic } /* Generic.Emph */\n.code-highlight .gr { color: #E40000 } /* Generic.Error */\n.code-highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n.code-highlight .gi { color: #008400 } /* Generic.Inserted */\n.code-highlight .go { color: #717171 } /* Generic.Output */\n.code-highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n.code-highlight .gs { font-weight: bold } /* Generic.Strong */\n.code-highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n.code-highlight .gt { color: #0044DD } /* Generic.Traceback */\n.code-highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n.code-highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n.code-highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n.code-highlight .kp { color: #008000 } /* Keyword.Pseudo */\n.code-highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n.code-highlight .kt { color: #B00040 } /* Keyword.Type */\n.code-highlight .m { color: #666666 } /* Literal.Number */\n.code-highlight .s { color: #BA2121 } /* Literal.String */\n.code-highlight .na { color: #687822 } /* Name.Attribute */\n.code-highlight .nb { color: #008000 } /* Name.Builtin */\n.code-highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n.code-highlight .no { color: #880000 } /* Name.Constant */\n.code-highlight .nd { color: #AA22FF } /* Name.Decorator */\n.code-highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */\n.code-highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n.code-highlight .nf { color: #0000FF } /* Name.Function */\n.code-highlight .nl { color: #767600 } /* Name.Label */\n.code-highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n.code-highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */\n.code-highlight .nv { color: #19177C } /* Name.Variable */\n.code-highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n.code-highlight .w { color: #bbbbbb } /* Text.Whitespace */\n.code-highlight .mb { color: #666666 } /* Literal.Number.Bin */\n.code-highlight .mf { color: #666666 } /* Literal.Number.Float */\n.code-highlight .mh { color: #666666 } /* Literal.Number.Hex */\n.code-highlight .mi { color: #666666 } /* Literal.Number.Integer */\n.code-highlight .mo { color: #666666 } /* Literal.Number.Oct */\n.code-highlight .sa { color: #BA2121 } /* Literal.String.Affix */\n.code-highlight .sb { color: #BA2121 } /* Literal.String.Backtick */\n.code-highlight .sc { color: #BA2121 } /* Literal.String.Char */\n.code-highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */\n.code-highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n.code-highlight .s2 { color: #BA2121 } /* Literal.String.Double */\n.code-highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n.code-highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */\n.code-highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n.code-highlight .sx { color: #008000 } /* Literal.String.Other */\n.code-highlight .sr { color: #A45A77 } /* Literal.String.Regex */\n.code-highlight .s1 { color: #BA2121 } /* Literal.String.Single */\n.code-highlight .ss { color: #19177C } /* Literal.String.Symbol */\n.code-highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */\n.code-highlight .fm { color: #0000FF } /* Name.Function.Magic */\n.code-highlight .vc { color: #19177C } /* Name.Variable.Class */\n.code-highlight .vg { color: #19177C } /* Name.Variable.Global */\n.code-highlight .vi { color: #19177C } /* Name.Variable.Instance */\n.code-highlight .vm { color: #19177C } /* Name.Variable.Magic */\n.code-highlight .il { color: #666666 } /* Literal.Number.Integer.Long */\n",".osm-map-box {\n height:300px;\n width:100%;\n margin: 10px 0;\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/*\n * SearXNG, A privacy-respecting, hackable metasearch engine\n *\n * To change the colors of the site, simple edit this variables\n */\n\n/// Light Theme\n:root {\n /// Base Colors\n --color-base-font: #444;\n --color-base-font-rgb: 68, 68, 68;\n --color-base-background: #fff;\n --color-url-font: #29314d;\n --color-url-visited-font: #80b;\n /// Header Colors\n --color-header-background: #f7f7f7;\n --color-header-border: #ddd;\n /// Footer Colors\n --color-footer-background: #f7f7f7;\n --color-footer-border: #ddd;\n /// Sidebar Colors\n --color-sidebar-border: #ddd;\n --color-sidebar-font: #000;\n /// BackToTop Colors\n --color-backtotop-font: #444;\n --color-backtotop-border: #ddd;\n --color-backtotop-background: #fff;\n /// Button Colors\n --color-btn-background: #3050ff;\n --color-btn-font: #fff;\n /// Search Input Colors\n --color-search-border: #bbb;\n --color-search-background: #fff;\n --color-search-font: #222;\n --color-search-background-hover: #3050ff;\n /// Modal Colors\n --color-error: #db3434;\n --color-error-background: lighten(#db3434, 40%);\n --color-warning: #dbba34;\n --color-warning-background: lighten(#dbba34, 40%);\n --color-success: #42db34;\n --color-success-background: lighten(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #3050ff;\n --color-categories-item-border-selected: #3050ff;\n /// Autocomplete Colors\n --color-autocomplete-font: #000;\n --color-autocomplete-border: #bbb;\n --color-autocomplete-background: #fff;\n --color-autocomplete-background-hover: #f7f7f7;\n /// Answer Colors\n --color-answer-border: #ddd; // same as --color-header-border\n --color-answer-font: #444; // same as --color-base-font\n --color-answer-background: #f7f7f7; // same as --color-header-background:\n /// Results Colors\n --color-result-border: #ddd;\n --color-result-url-font: #000;\n --color-result-vim-selected: #f7f7f7;\n --color-result-vim-arrow: #000bbb;\n --color-result-description-highlight-font: #000;\n --color-result-link-font: #000bbb;\n --color-result-link-font-highlight: #000bbb;\n --color-result-link-visited-font: #80b;\n --color-result-publishdate-font: #777;\n --color-result-engines-font: #777;\n --color-result-search-url-border: #ddd;\n --color-result-search-url-font: #000;\n // Images Colors\n --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6);\n --color-result-image-span-font: #fff;\n --color-result-image-background: #fff;\n /// Settings Colors\n --color-settings-tr-hover: #f7f7f7;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n --color-settings-engine-group-background: #0001;\n /// Detail modal\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #000;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgba(255, 255, 255, 0.2);\n --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #777;\n --color-toolkit-kbd-font: #fff;\n --color-toolkit-kbd-background: #000;\n --color-toolkit-dialog-border: #ddd;\n --color-toolkit-dialog-background: #fff;\n --color-toolkit-tabs-label-border: #fff;\n --color-toolkit-tabs-section-border: #ddd;\n --color-toolkit-select-background: #f7f7f7;\n --color-toolkit-select-border: #ddd;\n --color-toolkit-select-background-hover: #bbb;\n --color-toolkit-input-text-font: #222;\n --color-toolkit-checkbox-onoff-background: #ddd;\n --color-toolkit-checkbox-onoff-label-background: #3050ff;\n --color-toolkit-checkbox-onoff-checked-background: #aaa;\n --color-toolkit-checkbox-label-background: #fff;\n --color-toolkit-checkbox-label-border: #ddd;\n --color-toolkit-checkbox-input-border: #3050ff;\n --color-toolkit-engine-tooltip-border: #ddd;\n --color-toolkit-engine-tooltip-background: #fff;\n --color-toolkit-loader-border: rgba(0, 0, 0, 0.2);\n --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0);\n}\n\n.dark-themes() {\n /// Base Colors\n --color-base-font: #bbb;\n --color-base-font-rgb: 187, 187, 187;\n --color-base-background: #222;\n --color-url-font: #8af;\n --color-url-visited-font: #96b;\n /// Header Colors\n --color-header-background: #181818;\n --color-header-border: #333;\n /// Footer Colors\n --color-footer-background: #181818;\n --color-footer-border: #333;\n /// Sidebar Colors\n --color-sidebar-border: #555;\n --color-sidebar-font: #fff;\n /// BackToTop Colors\n --color-backtotop-font: #bbb;\n --color-backtotop-border: #333;\n --color-backtotop-background: #181818;\n /// Button Colors\n --color-btn-background: #58f;\n --color-btn-font: #222;\n /// Search Input Colors\n --color-search-border: #555;\n --color-search-background: #222;\n --color-search-font: #fff;\n --color-search-background-hover: #58f;\n /// Modal Colors\n --color-error: #f55b5b;\n --color-error-background: darken(#db3434, 40%);\n --color-warning: #f1d561;\n --color-warning-background: darken(#dbba34, 40%);\n --color-success: #79f56e;\n --color-success-background: darken(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #58f;\n --color-categories-item-border-selected: #58f;\n /// Autocomplete Colors\n --color-autocomplete-font: #fff;\n --color-autocomplete-border: #555;\n --color-autocomplete-background: #222;\n --color-autocomplete-background-hover: #181818;\n /// Answer Colors\n --color-answer-border: #333; // same as --color-header-border\n --color-answer-font: #bbb; // same as --color-base-font\n --color-answer-background: #181818; // same as --color-header-background:\n /// Results Colors\n --color-result-border: #333;\n --color-result-url-font: #fff;\n --color-result-vim-selected: #181818;\n --color-result-vim-arrow: #8af;\n --color-result-description-highlight-font: #fff;\n --color-result-link-font: #8af;\n --color-result-link-font-highlight: #8af;\n --color-result-link-visited-font: #96b;\n --color-result-publishdate-font: #888;\n --color-result-engines-font: #888;\n --color-result-search-url-border: #555;\n --color-result-search-url-font: #fff;\n /// Detail modal : same as the light version\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #000;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgba(255, 255, 255, 0.2);\n --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);\n // Images Colors\n --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6);\n --color-result-image-span-font: #fff;\n --color-result-image-background: #222;\n /// Settings Colors\n --color-settings-tr-hover: #2d2d2d;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n --color-settings-engine-group-background: #1a1919;\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #777;\n --color-toolkit-kbd-font: #000;\n --color-toolkit-kbd-background: #fff;\n --color-toolkit-dialog-border: #555;\n --color-toolkit-dialog-background: #222;\n --color-toolkit-tabs-label-border: #222;\n --color-toolkit-tabs-section-border: #555;\n --color-toolkit-select-background: #3c3b31;\n --color-toolkit-select-border: #555;\n --color-toolkit-select-background-hover: #333;\n --color-toolkit-input-text-font: #fff;\n --color-toolkit-checkbox-onoff-background: #3c3b31;\n --color-toolkit-checkbox-onoff-label-background: #58f;\n --color-toolkit-checkbox-onoff-checked-background: #ddd;\n --color-toolkit-checkbox-label-background: #fff;\n --color-toolkit-checkbox-label-border: #333;\n --color-toolkit-checkbox-input-border: #58f;\n --color-toolkit-engine-tooltip-border: #333;\n --color-toolkit-engine-tooltip-background: #222;\n --color-toolkit-loader-border: rgba(255, 255, 255, 0.2);\n --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);\n}\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .dark-themes();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .dark-themes();\n}\n\n/// General Size\n@results-width: 45rem;\n@results-offset: 10rem;\n@results-tablet-offset: 0.5rem;\n@results-gap: 5rem;\n@results-margin: 0.125rem;\n@result-padding: 1rem;\n@search-width: 40rem;\n// heigh of #search, see detail.less\n@search-height: 7.75rem;\n\n/// Device Size\n/// @desktop > @tablet\n@tablet: 80em;\n@phone: 50em;\n@small-phone: 35em;\n@ultra-small-phone: 20rem;\n\n/// From style.less\n@stacked-bar-chart: rgb(0, 0, 0);\n\n/// Load fonts from this directory.\n@icon-font-path: \"../../../fonts/\";\n//** File name for all font files.\n@icon-font-name: \"glyphicons-halflings-regular\";\n//** Element ID within SVG icon file.\n@icon-font-svg-id: \"glyphicons_halflingsregular\";\n\n// decoration of the select HTML elements\n@select-light-svg-path: \"../svg/select-light.svg\";\n@select-dark-svg-path: \"../svg/select-dark.svg\";\n",".code-highlight pre {\n overflow: auto;\n background-color: inherit;\n color: inherit;\n border: inherit;\n}\n\n// stylelint-disable no-invalid-position-at-import-rule\n@import \"../generated/pygments.less\";\n","// other solution : http://stackoverflow.com/questions/1577598/how-to-hide-parts-of-html-when-javascript-is-disabled/13857783#13857783\n\n// stylelint-disable no-descending-specificity\n\nhtml.no-js .hide_if_nojs {\n display: none;\n}\n\nhtml.js .show_if_nojs {\n display: none;\n}\n\n.center {\n text-align: center;\n}\n\n.right {\n float: right;\n}\n\n.left {\n float: left;\n}\n\n.invisible {\n display: none !important;\n}\n\n.list-unstyled {\n list-style-type: none;\n\n li {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n}\n\n.danger {\n background-color: var(--color-error-background);\n}\n\n.warning {\n background: var(--color-warning-background);\n}\n\n.success {\n background: var(--color-success-background);\n}\n\n.badge {\n display: inline-block;\n color: var(--color-toolkit-badge-font);\n background-color: var(--color-toolkit-badge-background);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n min-width: 10px;\n padding: 1px 5px;\n border-radius: 5px;\n}\n\n// kbd\nkbd {\n padding: 2px 4px;\n margin: 1px;\n font-size: 90%;\n color: var(--color-toolkit-kbd-font);\n background: var(--color-toolkit-kbd-background);\n}\n\n// table\ntable {\n width: 100%;\n\n &.striped {\n tr {\n border-bottom: 1px solid var(--color-settings-tr-hover);\n }\n }\n}\n\nth {\n padding: 0.4em;\n}\n\ntd {\n padding: 0 4px;\n}\n\ntr {\n &:hover {\n background: var(--color-settings-tr-hover) !important;\n }\n}\n\n// pre\n.pre() {\n display: block;\n font-size: 0.8em;\n word-break: break-all;\n margin: 0.1em;\n user-select: all;\n}\n\ndiv.selectable_url {\n display: block;\n border: 1px solid var(--color-result-search-url-border);\n padding: 4px;\n color: var(--color-result-search-url-font);\n margin: 0.1em;\n overflow: hidden;\n height: 1.2em;\n line-height: 1.2em;\n .rounded-corners-tiny;\n\n pre {\n .pre();\n }\n}\n\n// dialog\n.dialog() {\n position: relative;\n display: flex;\n padding: 1rem;\n margin: 0 0 1em 0;\n border: 1px solid var(--color-toolkit-dialog-border);\n text-align: left;\n .rounded-corners;\n\n .close {\n float: right;\n position: relative;\n top: -3px;\n color: inherit;\n font-size: 1.5em;\n }\n\n ul,\n ol,\n p {\n margin: 1px 0 0 0;\n }\n\n table {\n width: auto;\n }\n\n tr {\n vertical-align: text-top;\n\n &:hover {\n background: transparent !important;\n }\n }\n\n td {\n padding: 0 1em 0 0;\n }\n\n h4 {\n margin-top: 0.3em;\n margin-bottom: 0.3em;\n }\n}\n\n.dialog-error {\n .dialog();\n\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-warning {\n .dialog();\n\n color: var(--color-warning);\n background: var(--color-warning-background);\n border-color: var(--color-warning);\n}\n\n.dialog-modal {\n .dialog();\n\n display: block;\n background: var(--color-toolkit-dialog-background);\n position: fixed;\n top: 50%;\n left: 50%;\n margin: 0 auto;\n transform: translate(-50%, -50%);\n z-index: 10000000;\n\n h3 {\n margin-top: 0;\n }\n}\n\n// btn-collapse\n.btn-collapse {\n cursor: pointer;\n}\n\n//\n.scrollx {\n overflow-x: auto;\n overflow-y: hidden;\n display: block;\n padding: 0;\n margin: 0;\n border: none;\n}\n\n/* -- tabs -- */\n.tabs .tabs > label {\n font-size: 90%;\n}\n\n.tabs {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n min-width: 100%;\n\n & > * {\n order: 2;\n }\n\n & > input[type=radio] {\n display: none;\n }\n\n & > label {\n order: 1;\n padding: 0.7em;\n margin: 0 0.7em;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n border: solid var(--color-toolkit-tabs-label-border);\n border-width: 0 0 2px 0;\n\n .disable-user-select();\n\n cursor: pointer;\n }\n\n & > label:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n\n & > section {\n min-width: 100%;\n padding: 0.7rem 0;\n box-sizing: border-box;\n border-top: 1px solid var(--color-toolkit-tabs-section-border);\n display: none;\n }\n\n // default selection\n & > label:last-of-type {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n letter-spacing: -0.1px;\n }\n\n & > section:last-of-type {\n display: block;\n }\n}\n\nhtml body .tabs > input:checked {\n ~ section {\n display: none;\n }\n\n ~ label {\n position: inherited;\n background: inherit;\n border-bottom: 2px solid transparent;\n font-weight: normal;\n color: inherit;\n\n &:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n }\n\n + label {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n\n + label + section {\n display: block;\n }\n}\n\n/* -- select -- */\nselect {\n height: 2.4rem;\n margin: 0 1rem 0 0;\n padding: 0.2rem !important;\n color: var(--color-search-font);\n font-size: 0.9rem;\n z-index: 2;\n\n &:hover,\n &:focus {\n cursor: pointer;\n }\n}\n\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border-width: 0 2rem 0 0;\n border-color: transparent;\n background: data-uri('image/svg+xml;charset=UTF-8', @select-light-svg-path) no-repeat;\n background-position-x: calc(100% + 2rem);\n background-size: 2rem;\n background-origin: content-box;\n background-color: var(--color-toolkit-select-background);\n outline: medium none;\n text-overflow: ellipsis;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n\n option {\n background-color: var(--color-base-background);\n }\n }\n\n @media (prefers-color-scheme: dark) {\n html.theme-auto select,\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n }\n\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n}\n\n/* -- checkbox-onoff -- */\n@supports (border-radius: 50px) {\n .checkbox-onoff {\n display: inline-block;\n width: 40px;\n height: 10px;\n background: var(--color-toolkit-checkbox-onoff-background);\n margin: 8px 1rem;\n position: relative;\n border-radius: 50px;\n\n label {\n display: block;\n width: 20px;\n height: 20px;\n position: absolute;\n top: -5px;\n cursor: pointer;\n border-radius: 50px;\n transition: all 0.4s ease;\n left: 27px;\n background-color: var(--color-toolkit-checkbox-onoff-label-background);\n }\n\n input[type=checkbox] {\n visibility: hidden;\n\n &:checked + label {\n left: -5px;\n background: var(--color-toolkit-checkbox-onoff-checked-background);\n }\n }\n }\n}\n\n/* -- checkbox -- */\n@supports (transform: rotate(-45deg)) {\n .checkbox {\n width: 20px;\n position: relative;\n margin: 20px auto;\n\n label {\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n background: var(--color-toolkit-checkbox-label-background);\n .rounded-corners;\n\n &::after {\n content: '';\n width: 9px;\n height: 5px;\n position: absolute;\n top: 4px;\n left: 4px;\n border: 3px solid var(--color-toolkit-checkbox-label-border);\n border-top: none;\n border-right: none;\n background: transparent;\n opacity: 0;\n transform: rotate(-45deg);\n }\n }\n\n input[type=checkbox] {\n visibility: hidden;\n\n &:checked + label::after {\n border-color: var(--color-toolkit-checkbox-input-border);\n opacity: 1;\n }\n }\n\n // disabled : can''t be focused, show only the check mark\n input[disabled] + label {\n background-color: transparent !important;\n cursor: inherit;\n }\n\n // if not checked and possible to checked then display a \"light\" check mark on hover\n input:not(:checked):not([readonly]):not([disabled]) + label:hover::after {\n opacity: 0.5;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .tabs > label {\n width: 100%;\n }\n}\n\n/* -- loader -- */\n.loader,\n.loader::after {\n border-radius: 50%;\n width: 2em;\n height: 2em;\n}\n\n.loader {\n margin: 1em auto;\n font-size: 10px;\n position: relative;\n text-indent: -9999em;\n border-top: 0.5em solid var(--color-toolkit-loader-border);\n border-right: 0.5em solid var(--color-toolkit-loader-border);\n border-bottom: 0.5em solid var(--color-toolkit-loader-border);\n border-left: 0.5em solid var(--color-toolkit-loader-borderleft);\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-animation: load8 1.2s infinite linear;\n animation: load8 1.2s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* -- engine-tooltip -- */\n.engine-tooltip {\n display: none;\n position: absolute;\n padding: 0.5rem 1rem;\n margin: 0 0 0 2rem;\n border: 1px solid var(--color-toolkit-engine-tooltip-border);\n background: var(--color-toolkit-engine-tooltip-background);\n font-size: 14px;\n font-weight: normal;\n z-index: 1000000;\n text-align: left;\n .rounded-corners;\n}\n\nth:hover .engine-tooltip,\ntd:hover .engine-tooltip,\n.engine-tooltip:hover {\n display: inline-block;\n}\n\n/* -- stacked bar chart -- */\n.stacked-bar-chart {\n margin: 0;\n padding: 0 0.125rem 0 4rem;\n width: 100%;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: center;\n display: inline-flex;\n}\n\n.stacked-bar-chart-value {\n width: 3rem;\n display: inline-block;\n position: absolute;\n padding: 0 0.5rem;\n text-align: right;\n}\n\n.stacked-bar-chart-base {\n display: flex;\n flex-shrink: 0;\n flex-grow: 0;\n flex-basis: unset;\n}\n\n.stacked-bar-chart-median {\n .stacked-bar-chart-base();\n\n background: var(--color-base-font);\n border: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate80 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border: 1px solid rgba(var(--color-base-font-rgb), 0.3);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate95 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5);\n padding: 0;\n}\n\n.stacked-bar-chart-rate100 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.4rem 0;\n width: 1px;\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n// Mixins\n.text-size-adjust (@property: 100%) {\n -webkit-text-size-adjust: @property;\n -ms-text-size-adjust: @property;\n -moz-text-size-adjust: @property;\n text-size-adjust: @property;\n}\n\n.rounded-corners (@radius: 10px) {\n border-radius: @radius;\n}\n\n.rounded-right-corners (@radius: 0 10px 10px 0) {\n border-radius: @radius;\n}\n\n.rounded-corners-tiny (@radius: 5px) {\n border-radius: @radius;\n}\n\n// disable user selection\n.disable-user-select () {\n -webkit-touch-callout: none;\n user-select: none;\n}\n","/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */\n\n.autocomplete {\n position: absolute;\n max-height: 0;\n overflow-y: hidden;\n text-align: left;\n .rounded-corners;\n\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background);\n }\n\n &:empty {\n display: none;\n }\n\n > ul {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n cursor: pointer;\n padding: 8px 0 8px 8px;\n\n &.active,\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background-hover);\n\n a:active,\n a:focus,\n a:hover {\n text-decoration: none;\n }\n }\n\n &.locked {\n cursor: inherit;\n }\n }\n }\n\n &.open {\n display: block;\n background-color: var(--color-autocomplete-background);\n color: var(--color-autocomplete-font);\n border: 1px solid var(--color-autocomplete-border);\n max-height: 500px;\n overflow-y: auto;\n z-index: 100;\n\n &:empty {\n display: none;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .autocomplete {\n bottom: 0;\n }\n\n .autocomplete > ul > li {\n border-bottom: 1px solid var(--color-result-top-border);\n text-align: left;\n }\n}\n","#main_results #results.image-detail-open.only_template_images {\n width: min(98%, 59.25rem) !important;\n}\n\n#main_results #results.only_template_images.image-detail-open #backToTop {\n left: 56.75rem !important;\n right: inherit;\n}\n\narticle.result-images .detail {\n display: none;\n}\n\n#results.image-detail-open article.result-images[data-vim-selected] .detail {\n display: flex;\n flex-direction: column;\n position: fixed;\n left: 60rem;\n right: 0;\n top: @search-height;\n transition: top 0.064s ease-in 0s;\n bottom: 0;\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-background);\n z-index: 10000;\n padding: 4rem 3rem 3rem 3rem;\n\n a.result-images-source {\n display: block;\n flex: 1;\n text-align: left;\n width: 100%;\n border: none;\n text-decoration: none;\n\n img {\n padding: 0;\n margin: 0;\n border: none;\n object-fit: contain;\n width: inherit;\n max-width: 100%;\n min-height: inherit;\n max-height: calc(100vh - 25rem - 7rem);\n background: inherit;\n }\n }\n\n .result-images-labels {\n color: var(--color-result-detail-font);\n max-height: 16rem;\n min-height: 16rem;\n\n hr {\n border-top: 1px solid var(--color-result-detail-hr);\n border-bottom: none;\n }\n\n h4 {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 0.9rem;\n }\n\n p {\n color: var(--color-result-detail-label-font);\n font-size: 0.9rem;\n\n span {\n display: inline-block;\n width: 12rem;\n }\n }\n\n h4,\n p,\n a {\n text-align: left;\n }\n\n p.result-content {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-url {\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-content:hover,\n p.result-url:hover {\n position: relative;\n overflow: inherit !important;\n background: var(--color-result-detail-background);\n text-overflow: inherit !important;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-result-detail-link);\n }\n\n a:hover {\n text-decoration: underline;\n }\n }\n\n a.result-detail-close {\n top: 1rem;\n left: 1rem;\n padding: 0.4rem;\n }\n\n a.result-detail-previous {\n top: 1rem;\n right: 6rem;\n // center the icon by moving it slightly on the left\n padding: 0.4rem 0.5rem 0.4rem 0.3rem;\n }\n\n a.result-detail-next {\n top: 1rem;\n right: 2rem;\n padding: 0.4rem;\n }\n\n a.result-detail-close,\n a.result-detail-next,\n a.result-detail-previous {\n border-radius: 50%;\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n position: absolute;\n filter: opacity(40%);\n z-index: 2000002;\n\n span {\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n text-align: center;\n }\n }\n\n a.result-detail-next,\n a.result-detail-previous {\n span::before {\n // vertical center small icons\n vertical-align: sub;\n }\n }\n\n a.result-detail-close,\n a.result-detail-close:visited,\n a.result-detail-close:hover,\n a.result-detail-close:active,\n a.result-detail-previous,\n a.result-detail-previous:visited,\n a.result-detail-previous:hover,\n a.result-detail-previous:active,\n a.result-detail-next,\n a.result-detail-next:visited,\n a.result-detail-next:hover,\n a.result-detail-next:active {\n color: var(--color-result-detail-font);\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-font);\n }\n\n a.result-detail-close:focus,\n a.result-detail-close:hover,\n a.result-detail-previous:focus,\n a.result-detail-previous:hover,\n a.result-detail-next:focus,\n a.result-detail-next:hover {\n filter: opacity(80%);\n }\n\n .loader {\n position: absolute;\n top: 1rem;\n right: 50%;\n border-top: 0.5em solid var(--color-result-detail-loader-border);\n border-right: 0.5em solid var(--color-result-detail-loader-border);\n border-bottom: 0.5em solid var(--color-result-detail-loader-border);\n border-left: 0.5em solid var(--color-result-detail-loader-borderleft);\n }\n}\n\n#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail {\n top: 0;\n\n a.result-images-source img {\n max-height: calc(100vh - 25rem);\n }\n}\n\n@media screen and (max-width: @tablet) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n left: 0;\n\n a.result-images-source {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n img {\n width: 100%;\n max-height: calc(100vh - 24rem);\n }\n }\n\n a.result-detail-next {\n right: 1rem;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n left: 0;\n padding: 1rem;\n\n a.result-images-source img {\n width: 100%;\n max-height: calc(100vh - 20rem);\n margin: 0;\n }\n\n .result-images-labels p span {\n width: inherit;\n margin-right: 1rem;\n }\n }\n}\n",".dialog-modal {\n animation-name: dialogmodal;\n animation-duration: 0.13s;\n\n @keyframes dialogmodal {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0.5;\n transform: translate(-50%, -50%) scale(1.05);\n }\n }\n}\n","#main_index {\n margin-top: 26vh;\n\n #linkto_preferences {\n right: 1.8rem;\n }\n}\n\n.index {\n text-align: center;\n\n .title {\n background: url('../img/searxng.png') no-repeat;\n min-height: 4rem;\n margin: 4rem auto;\n background-position: center;\n background-size: contain;\n }\n\n h1 {\n font-size: 4em;\n visibility: hidden;\n }\n\n #search,\n #search_header {\n margin: 0 auto;\n background: inherit;\n border: inherit;\n padding: 0;\n display: block;\n }\n\n .search_filters {\n display: block;\n margin: 1em 0;\n }\n\n .category label {\n padding: 6px 10px;\n border-bottom: initial !important;\n }\n}\n\n@media screen and (max-width: @tablet) {\n div.title {\n h1 {\n font-size: 1em;\n }\n }\n\n #main_index {\n margin-top: 6em;\n }\n}\n\n@media screen and (max-width: @phone) {\n #main_index {\n margin-top: 0;\n }\n}\n","#tab-contentquery table td,\n#tab-contentquery table th {\n text-align: left !important;\n height: 3rem;\n}\n\n#main_preferences {\n form {\n width: 100%;\n }\n\n fieldset {\n margin: 8px;\n border: none;\n }\n\n legend {\n margin: 0;\n padding: 5px 0 0 0;\n display: block;\n float: left;\n width: 300px;\n }\n\n .value {\n margin: 0;\n padding: 0;\n float: left;\n width: 15em;\n\n select,\n input[type=\"text\"] {\n font-size: inherit !important;\n margin: 0 1rem 0 0;\n }\n\n select {\n width: 14rem;\n }\n\n input[type=\"text\"] {\n width: 13.25rem;\n color: var(--color-toolkit-input-text-font);\n border: none;\n background: none repeat scroll 0 0 var(--color-toolkit-select-background);\n padding: 0.2rem 0.4rem;\n height: 2rem;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n }\n\n select:focus,\n input:focus {\n outline: none;\n box-shadow: 0 0 1px 1px var(--color-btn-background);\n }\n }\n\n .description {\n margin: 0;\n padding: 5px 0 0 0;\n float: left;\n width: 50%;\n color: var(--color-settings-engine-description-font);\n font-size: 90%;\n }\n\n table {\n border-collapse: collapse;\n }\n\n table td {\n text-align: center;\n }\n\n table.cookies {\n width: 100%;\n\n th,\n td {\n text-align: left;\n font-family: monospace;\n font-size: 1rem;\n padding: 0.5em;\n vertical-align: top;\n }\n\n td:first-child {\n word-break: keep-all;\n width: 14rem;\n padding-right: 1rem;\n }\n\n td:last-child {\n word-break: break-all;\n }\n\n & > tbody > tr:nth-child(even) > th,\n & > tbody > tr:nth-child(even) > td {\n background-color: var(--color-settings-tr-hover);\n }\n }\n\n .category {\n margin-right: 0.5rem;\n\n label {\n border: 2px solid transparent;\n padding: 0.2rem 0.4rem;\n .rounded-corners-tiny;\n }\n }\n\n .category input[type=\"checkbox\"]:checked + label {\n border: 2px solid var(--color-categories-item-border-selected);\n }\n\n .name,\n .shortcut {\n text-align: left;\n }\n\n .preferences_back {\n background: none repeat scroll 0 0 var(--color-btn-background);\n color: var(--color-btn-font);\n border: 0 none;\n .rounded-corners;\n\n cursor: pointer;\n display: inline-block;\n margin: 2px 4px;\n padding: 0.7em;\n\n a {\n color: var(--color-settings-return-font);\n }\n\n a::first-letter {\n text-transform: uppercase;\n }\n }\n\n div.selectable_url {\n pre {\n width: 100%;\n }\n }\n\n th.name {\n .engine-tooltip {\n margin-top: 1.8rem;\n left: calc((100% - 85em) / 2 + 10em);\n max-width: 40rem;\n\n .engine-description {\n margin-top: 0.5rem;\n }\n }\n }\n\n .engine-group {\n text-align: left;\n font-weight: normal;\n background: var(--color-settings-engine-group-background);\n }\n}\n\n@media screen and (max-width: @tablet) {\n .preferences_back {\n clear: both;\n }\n\n .engine-tooltip {\n left: 10em !important;\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*/\n\n#search {\n padding: 0;\n margin: 0;\n}\n\n#search_header {\n padding: 1.5em 2em 0 @results-offset - 3rem;\n margin: 0;\n background: var(--color-header-background);\n border-bottom: 1px solid var(--color-header-border);\n display: grid;\n column-gap: 1.2rem;\n row-gap: 1rem;\n grid-template-columns: 3rem 1fr;\n grid-template-areas:\n \"logo search\"\n \"spacer categories\";\n}\n\n.category {\n display: inline-block;\n position: relative;\n margin-right: 1rem;\n padding: 0;\n\n input {\n display: none;\n }\n\n label {\n svg {\n padding-right: 0.2rem;\n }\n\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n text-transform: capitalize;\n font-size: 0.9em;\n border-bottom: 2px solid transparent;\n .disable-user-select;\n\n div.category_name {\n margin: auto 0;\n }\n }\n\n input[type=\"checkbox\"]:checked + label {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n#search_logo {\n grid-area: logo;\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n flex: 1;\n width: 30px;\n height: 30px;\n margin: 0.5rem 0 auto 0;\n }\n}\n\n.search_categories {\n grid-area: categories;\n}\n\n.search_box {\n margin: 0;\n padding: 0;\n grid-area: search;\n display: inline-flex;\n flex-direction: row;\n white-space: nowrap;\n}\n\n#clear_search {\n display: block;\n border-collapse: separate;\n box-sizing: border-box;\n width: 1.8em;\n margin: 0;\n padding: 8px 2px;\n background: none repeat scroll 0 0 var(--color-search-background);\n border-top: 1px solid var(--color-search-border);\n border-bottom: 1px solid var(--color-search-border);\n border-right: none;\n border-left: none;\n border-radius: 0;\n outline: none;\n color: var(--color-search-font);\n font-size: 16px;\n z-index: 10000;\n\n &:hover {\n color: var(--color-search-background-hover);\n }\n\n &.empty * {\n display: none;\n }\n}\n\n#q,\n#send_search {\n display: block !important;\n border-collapse: separate;\n box-sizing: border-box;\n margin: 0;\n padding: 10px;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: 1px solid var(--color-search-border);\n border-radius: 0;\n outline: none;\n color: var(--color-search-font);\n font-size: 16px;\n z-index: 2;\n}\n\n#q {\n outline: medium none;\n padding-left: 12px;\n padding-right: 0 !important;\n border-right: none;\n width: @search-width;\n border-radius: 10px 0 0 10px;\n}\n\n#q::-ms-clear,\n#q::-webkit-search-cancel-button {\n display: none;\n}\n\n#send_search {\n border-left: none;\n border-radius: 0 10px 10px 0;\n\n &:hover {\n cursor: pointer;\n background-color: var(--color-search-background-hover);\n color: var(--color-search-background);\n }\n}\n\n.no-js #clear_search,\n.no-js #send_search {\n width: auto !important;\n border-left: 1px solid var(--color-search-border);\n padding: 10px;\n}\n\n.search_filters {\n margin: 0.6rem 0 0 @results-offset + 0.6rem;\n\n select {\n background-color: inherit;\n\n &:hover,\n &:focus {\n color: var(--color-base-font);\n }\n }\n}\n\n@media screen and (max-width: @tablet) {\n #search_header {\n padding: 1.5em @results-tablet-offset 0 @results-tablet-offset;\n column-gap: @results-tablet-offset;\n }\n\n .search_filters {\n margin: 0.6rem 0 0 @results-tablet-offset + 3rem;\n }\n\n #categories {\n font-size: 90%;\n clear: both;\n\n .checkbox_container {\n margin: auto;\n margin-top: 2px;\n }\n }\n\n html.touch {\n #main_index,\n #main_results {\n #categories_container {\n width: max-content;\n\n .category {\n display: inline-block;\n width: auto;\n }\n }\n\n #categories {\n width: 100%;\n text-align: left;\n overflow-x: scroll;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n }\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #search_header {\n width: 100%;\n margin: 0;\n padding: 0.1rem 0 0 0;\n column-gap: 0;\n row-gap: 0;\n grid-template-areas:\n \"logo search\"\n \"categories categories\";\n }\n\n .search_logo {\n padding: 0;\n }\n\n .search_box {\n // hack, should be 100% ?\n width: 99%;\n display: flex;\n flex-direction: row;\n }\n\n #q {\n width: 100%;\n flex: 1;\n }\n\n #main_results #q:placeholder-shown ~ #send_search {\n margin-right: 2.6rem;\n transition: margin-right 0.1s;\n }\n\n .search_filters {\n margin: 0;\n }\n\n .category {\n display: block;\n width: 100%;\n margin: 0;\n\n label {\n padding: 0.8rem !important;\n margin: 0 !important;\n\n svg {\n display: none;\n }\n }\n }\n}\n\n@media screen and (max-width: @ultra-small-phone) {\n #search_header {\n grid-template-areas:\n \"search search\"\n \"categories categories\";\n }\n\n #search_logo {\n display: none;\n }\n}\n\n#categories {\n .disable-user-select;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n}\n\n#categories_container {\n position: relative;\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*\n* To convert \"style.less\" to \"style.css\" run: $make styles\n*/\n\n// stylelint-disable no-descending-specificity\n\n@import \"../../__common__/less/new_issue.less\";\n@import \"../../__common__/less/stats.less\";\n@import \"../../__common__/less/result_templates.less\";\n@import (inline) \"../../node_modules/normalize.css/normalize.css\";\n@import \"definitions.less\";\n@import \"mixins.less\";\n@import \"code.less\";\n@import \"toolkit.less\";\n@import \"autocomplete.less\";\n@import \"detail.less\";\n@import \"animations.less\";\n\n// for index.html template\n@import \"index.less\";\n\n// for preferences.html template\n@import \"preferences.less\";\n\n// Search-Field\n@import \"search.less\";\n\n// ion-icon\n.ion-icon {\n display: inline-block;\n vertical-align: bottom;\n line-height: 1;\n text-decoration: inherit;\n}\n\n.ion-icon-small {\n width: 1rem;\n height: 1rem;\n .ion-icon;\n}\n\n.ion-icon-big {\n width: 1.5rem;\n height: 1.5rem;\n .ion-icon;\n}\n\n// Main LESS-Code\nhtml {\n font-family: sans-serif;\n font-size: 0.9em;\n .text-size-adjust;\n\n color: var(--color-base-font);\n background-color: var(--color-base-background);\n padding: 0;\n margin: 0;\n}\n\nbody,\nmain {\n padding: 0;\n margin: 0;\n}\n\nbody {\n display: flex;\n flex-direction: column;\n height: 100vh;\n margin: 0;\n}\n\nmain {\n width: 100%;\n margin-bottom: 2rem;\n flex: 1;\n}\n\n#main_preferences,\n#main_about,\n#main_stats {\n margin: 2em auto;\n width: 85em;\n}\n\nfooter {\n clear: both;\n min-height: 4rem;\n padding: 1rem 0;\n width: 100%;\n text-align: center;\n background-color: var(--color-footer-background);\n border-top: 1px solid var(--color-footer-border);\n overflow: hidden;\n\n p {\n font-size: 0.9em;\n }\n}\n\n#main_preferences h1,\n#main_stats h1 {\n background: url('../img/searxng.png') no-repeat;\n background-size: contain;\n min-height: 40px;\n margin: 0 auto;\n\n span {\n visibility: hidden;\n }\n}\n\ninput[type=\"submit\"],\n#results button[type=\"submit\"] {\n padding: 0.7rem;\n display: inline-block;\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n .rounded-corners;\n\n border: 0;\n cursor: pointer;\n}\n\na {\n text-decoration: none;\n color: var(--color-url-font);\n\n &:visited {\n color: var(--color-url-visited-font);\n\n .highlight {\n color: var(--color-url-visited-font);\n }\n }\n}\n\narticle[data-vim-selected] {\n background: var(--color-result-vim-selected);\n border-left: 0.2rem solid var(--color-result-vim-arrow);\n .rounded-right-corners;\n}\n\narticle.result-images[data-vim-selected] {\n background: var(--color-result-vim-arrow);\n border: none;\n .rounded-corners;\n\n .image_thumbnail {\n filter: opacity(60%);\n }\n}\n\narticle[data-vim-selected].category-videos,\narticle[data-vim-selected].category-news,\narticle[data-vim-selected].category-map,\narticle[data-vim-selected].category-music,\narticle[data-vim-selected].category-files,\narticle[data-vim-selected].category-social {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n}\n\n.result {\n margin: @results-margin 0;\n padding: @result-padding;\n border-left: 0.2rem solid transparent;\n\n h3 {\n font-size: 1.2rem;\n word-wrap: break-word;\n margin: 0.4rem 0 0.4rem 0;\n padding: 0;\n\n a {\n color: var(--color-result-link-font);\n font-weight: normal;\n font-size: 1.1em;\n\n &:visited {\n color: var(--color-result-link-visited-font);\n }\n\n &:focus,\n &:hover {\n text-decoration: underline;\n border: none;\n outline: none;\n }\n }\n }\n\n .cache_link,\n .proxyfied_link {\n font-size: 0.9em !important;\n }\n\n .content,\n .stat,\n .altlink {\n font-size: 0.9em;\n margin: 0;\n padding: 0;\n max-width: 54em;\n word-wrap: break-word;\n line-height: 1.24;\n\n .highlight {\n color: var(--color-result-description-highlight-font);\n background: inherit;\n font-weight: bold;\n }\n }\n\n .codelines {\n .highlight {\n color: inherit;\n background: inherit;\n font-weight: normal;\n }\n }\n\n .url_wrapper {\n display: flex;\n font-size: 1rem;\n color: var(--color-result-url-font);\n flex-wrap: nowrap;\n overflow: hidden;\n flex-direction: row;\n margin: 0;\n padding: 0;\n\n .url_o1 {\n white-space: nowrap;\n flex-shrink: 1;\n }\n\n .url_o1::after {\n content: \" \";\n width: 1ch;\n display: inline-block;\n }\n\n .url_o2 {\n overflow: hidden;\n white-space: nowrap;\n flex-basis: content;\n flex-grow: 0;\n flex-shrink: 1;\n text-align: right;\n\n .url_i2 {\n float: right;\n }\n }\n }\n\n .published_date {\n font-size: 0.8em;\n color: var(--color-result-publishdate-font);\n }\n\n img {\n &.thumbnail {\n float: left;\n padding: 0.6rem 1rem 0 0;\n width: 20rem;\n height: unset; // remove heigth value that was needed for lazy loading\n }\n\n &.image {\n float: left;\n padding: 0.6rem 1rem 0 0;\n width: 7rem;\n max-height: 7rem;\n object-fit: scale-down;\n object-position: right top;\n }\n }\n\n .break {\n clear: both;\n }\n}\n\n.category-videos,\n.category-news,\n.category-map,\n.category-music,\n.category-files,\n.category-social {\n border: 1px solid var(--color-result-border);\n margin: 1rem 0;\n .rounded-corners;\n}\n\n.category-social .image {\n width: auto !important;\n min-width: 48px;\n min-height: 48px;\n padding: 0 5px 25px 0 !important;\n}\n\n.result-videos .content {\n overflow: hidden;\n}\n\n.engines {\n float: right;\n color: var(--color-result-engines-font);\n\n span {\n font-size: smaller;\n margin: 0 0.5em 0 0;\n }\n}\n\n.small_font {\n font-size: 0.8em;\n}\n\n.highlight {\n color: var(--color-result-link-font-highlight);\n background: inherit;\n}\n\n.empty_element {\n font-style: italic;\n}\n\n.result-images {\n display: inline-block;\n margin: 0;\n padding: 0;\n position: relative;\n max-height: 200px;\n border: none !important;\n\n img {\n float: inherit;\n margin: 0.125rem;\n padding: 0;\n border: none;\n max-height: 200px;\n background: var(--color-result-image-background);\n }\n\n span.title {\n display: none;\n color: var(--color-result-image-span-font);\n }\n\n &:hover span.title {\n display: block;\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 4px;\n margin: 0 0 4px 4px;\n // color: @color-result-image-span-font;\n background-color: var(--color-result-image-span-background-hover);\n font-size: 0.7em;\n }\n}\n\n.result-map {\n img.image {\n float: right !important;\n height: 100px !important;\n width: auto !important;\n }\n\n table {\n font-size: 0.9em;\n width: auto;\n border-collapse: separate;\n border-spacing: 0 0.35rem;\n\n th {\n font-weight: inherit;\n width: 17rem;\n vertical-align: top;\n text-align: left;\n }\n\n td {\n vertical-align: top;\n text-align: left;\n }\n }\n}\n\n.hidden {\n display: none !important;\n}\n\n#results {\n margin: 1rem 2rem 0 @results-offset;\n display: grid;\n grid-template-columns: @results-width 25rem;\n grid-template-rows: min-content min-content 1fr min-content;\n gap: 0 @results-gap;\n grid-template-areas:\n \"corrections sidebar\"\n \"answers sidebar\"\n \"urls sidebar\"\n \"pagination sidebar\";\n}\n\n#results #sidebar *:first-child,\n#results #urls *:first-child {\n margin-top: 0;\n}\n\n#urls {\n padding: 0;\n grid-area: urls;\n}\n\n#suggestions {\n .wrapper {\n display: flex;\n flex-flow: row wrap;\n justify-content: flex-end;\n\n form {\n display: inline-block;\n flex: 1 1 50%;\n }\n }\n}\n\n#suggestions,\n#infoboxes {\n input {\n padding: 0;\n margin: 3px;\n font-size: 0.9em;\n display: inline-block;\n background: transparent;\n color: var(--color-result-search-url-font);\n cursor: pointer;\n }\n\n input[type=\"submit\"],\n .infobox .url a {\n color: var(--color-result-link-font);\n text-decoration: none;\n font-size: 0.9rem;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n#corrections {\n grid-area: corrections;\n display: flex;\n flex-flow: row wrap;\n margin: 0 0 1em 0;\n\n h4,\n input[type=\"submit\"] {\n display: inline-block;\n padding: 0.5rem;\n margin: 0.5rem;\n }\n\n input[type=\"submit\"] {\n font-size: 0.8rem;\n .rounded-corners-tiny;\n }\n}\n\n#suggestions .title,\n#search_url .title,\n#apis .title {\n margin: 2em 0 0.5em 0;\n color: var(--color-base-font);\n}\n\n#answers {\n grid-area: answers;\n border: 1px solid var(--color-answer-border);\n background: var(--color-answer-background);\n padding: @result-padding;\n margin: 1rem 0;\n margin-top: 0;\n color: var(--color-answer-font);\n .rounded-corners;\n\n h4 {\n display: none;\n }\n}\n\n#infoboxes {\n form {\n min-width: 210px;\n }\n}\n\n#sidebar {\n grid-area: sidebar;\n word-wrap: break-word;\n color: var(--color-sidebar-font);\n\n .infobox {\n margin: 10px 0 10px;\n border: 1px solid var(--color-sidebar-border);\n padding: 1rem;\n font-size: 0.9em;\n .rounded-corners;\n\n h2 {\n margin: 0 0 0.5em 0;\n }\n\n img {\n max-width: 100%;\n max-height: 12em;\n display: block;\n margin: 0 auto;\n padding: 0;\n }\n\n dl {\n margin: 0.5em 0;\n }\n\n dt {\n display: inline;\n margin: 0.5em 0.25em 0.5em 0;\n padding: 0;\n font-weight: bold;\n }\n\n dd {\n display: inline;\n margin: 0.5em 0;\n padding: 0;\n }\n\n input {\n font-size: 1em;\n }\n\n br {\n clear: both;\n }\n\n .attributes,\n .urls {\n clear: both;\n }\n }\n}\n\n#search_url {\n margin-top: 8px;\n\n div.selectable_url {\n pre {\n width: 200em;\n }\n }\n}\n\n#linkto_preferences {\n position: absolute;\n right: 10px;\n top: 2.2rem;\n padding: 0;\n border: 0;\n display: block;\n font-size: 1.2em;\n color: var(--color-search-font);\n\n a:link *,\n a:hover *,\n a:visited *,\n a:active * {\n color: var(--color-search-font);\n }\n}\n\n#pagination {\n grid-area: pagination;\n\n br {\n clear: both;\n }\n}\n\n#apis {\n margin-top: 8px;\n clear: both;\n}\n\n#backToTop {\n border: 1px solid var(--color-backtotop-border);\n margin: 0;\n padding: 0;\n font-size: 1em;\n background: var(--color-backtotop-background);\n position: fixed;\n bottom: 8rem;\n left: @results-width + @results-offset + (0.5 * @results-gap - 1.2em);\n transition: opacity 0.5s;\n opacity: 0;\n .rounded-corners;\n\n a {\n display: block;\n margin: 0;\n padding: 0.7em;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-backtotop-font);\n }\n}\n\n#results.scrolling #backToTop {\n opacity: 1;\n}\n\n@media screen and (max-width: @tablet) {\n #main_preferences,\n #main_about,\n #main_stats {\n margin: 2rem 0.5rem;\n width: auto;\n }\n\n #infoboxes {\n position: inherit;\n max-width: inherit;\n\n .infobox {\n clear: both;\n\n img {\n float: left;\n max-width: 10em;\n margin: 0.5em 0.5em 0.5em 0;\n }\n }\n }\n\n #sidebar {\n margin-bottom: @results-margin;\n padding: 0;\n float: none;\n border: none;\n width: auto;\n\n input {\n border: 0;\n }\n }\n\n #apis {\n display: none;\n }\n\n #search_url {\n display: none;\n }\n\n .result {\n .thumbnail {\n max-width: 98%;\n }\n\n .url {\n span.url {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 100%;\n }\n }\n\n .engines {\n float: right;\n padding: 0 0 3px 0;\n }\n }\n\n .result-images {\n border-bottom: none !important;\n }\n\n .image_result {\n max-width: 98%;\n\n img {\n max-width: 98%;\n }\n }\n\n #backToTop {\n display: none;\n }\n\n #pagination {\n margin: 2rem 0 0 0 !important;\n }\n\n #main_results div#results {\n margin: 1rem auto 0 auto;\n justify-content: center;\n display: grid;\n grid-template-columns: @results-width;\n grid-template-rows: min-content min-content min-content 1fr min-content min-content;\n gap: 0;\n grid-template-areas:\n \"corrections\"\n \"answers\"\n \"sidebar\"\n \"urls\"\n \"pagination\";\n }\n}\n\n#main_results div#results.only_template_images {\n margin: 1rem @results-tablet-offset 0 @results-tablet-offset;\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: min-content min-content 1fr min-content min-content;\n gap: 0;\n grid-template-areas:\n \"corrections\"\n \"urls\"\n \"answers\"\n \"sidebar\"\n \"pagination\";\n\n #urls {\n width: inherit;\n margin: 0;\n }\n\n #backToTop {\n left: auto;\n right: 1rem;\n }\n\n #pagination {\n margin-right: 4rem;\n }\n}\n\n@media screen and (max-width: @phone) {\n #main_results div#results {\n grid-template-columns: 100%;\n margin: 2rem @results-tablet-offset 0 @results-tablet-offset;\n }\n\n #linkto_preferences {\n top: 0.8rem;\n right: 0.7rem;\n }\n\n #main_index #linkto_preferences {\n top: 0.5rem;\n right: 0.5rem;\n }\n\n #results {\n margin: 0;\n padding: 0;\n }\n\n #pagination {\n margin: 2rem 1rem 0 1rem !important;\n }\n\n article[data-vim-selected] {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n }\n\n .result {\n border: 1px solid var(--color-result-border);\n margin: 1rem 0;\n .rounded-corners;\n }\n\n .result-images {\n margin: 0;\n padding: 0;\n border: none;\n }\n}\n\n@media screen and (max-width: @small-phone) {\n .result-videos {\n img.thumbnail {\n float: none !important;\n }\n\n .content {\n overflow: inherit;\n }\n }\n}\n\npre code {\n white-space: pre-wrap;\n}\n","@import \"style.less\";\n\n#search_submit {\n left: 1px;\n right: auto;\n}\n"]} \ No newline at end of file
diff --git a/searx/static/themes/simple/css/searxng.min.css b/searx/static/themes/simple/css/searxng.min.css
index 623c72dc2..5334189c1 100644
--- a/searx/static/themes/simple/css/searxng.min.css
+++ b/searx/static/themes/simple/css/searxng.min.css
@@ -1 +1 @@
-.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-url-font:#29314d;--color-url-visited-font:#80b;--color-header-background:#f7f7f7;--color-header-border:#ddd;--color-footer-background:#f7f7f7;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-search-border:#bbb;--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#f7f7f7;--color-answer-border:#ddd;--color-answer-font:#444;--color-answer-background:#f7f7f7;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#80b;--color-result-publishdate-font:#777;--color-result-engines-font:#777;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#f7f7f7;--color-settings-engine-description-font:#909090;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#f7f7f7;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-background:#ddd;--color-toolkit-checkbox-onoff-label-background:#3050ff;--color-toolkit-checkbox-onoff-checked-background:#aaa;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0)}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222;--color-url-font:#8af;--color-url-visited-font:#96b;--color-header-background:#181818;--color-header-border:#333;--color-footer-background:#181818;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#181818;--color-btn-background:#58f;--color-btn-font:#222;--color-search-border:#555;--color-search-background:#222;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-background:#222;--color-autocomplete-background-hover:#181818;--color-answer-border:#333;--color-answer-font:#bbb;--color-answer-background:#181818;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#181818;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#96b;--color-result-publishdate-font:#888;--color-result-engines-font:#888;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#222;--color-settings-tr-hover:#2d2d2d;--color-settings-engine-description-font:#909090;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#222;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#3c3b31;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#333;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-background:#3c3b31;--color-toolkit-checkbox-onoff-label-background:#58f;--color-toolkit-checkbox-onoff-checked-background:#ddd;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0)}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222;--color-url-font:#8af;--color-url-visited-font:#96b;--color-header-background:#181818;--color-header-border:#333;--color-footer-background:#181818;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#181818;--color-btn-background:#58f;--color-btn-font:#222;--color-search-border:#555;--color-search-background:#222;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-background:#222;--color-autocomplete-background-hover:#181818;--color-answer-border:#333;--color-answer-font:#bbb;--color-answer-background:#181818;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#181818;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#96b;--color-result-publishdate-font:#888;--color-result-engines-font:#888;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#222;--color-settings-tr-hover:#2d2d2d;--color-settings-engine-description-font:#909090;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#222;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#3c3b31;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#333;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-background:#3c3b31;--color-toolkit-checkbox-onoff-label-background:#58f;--color-toolkit-checkbox-onoff-checked-background:#ddd;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0)}.code-highlight pre{overflow:auto;background-color:inherit;color:inherit;border:inherit}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#f8f8f8}.code-highlight .c{color:#3D7B7B;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3D7B7B;font-style:italic}.code-highlight .cm{color:#3D7B7B;font-style:italic}.code-highlight .cp{color:#9C6500}.code-highlight .cpf{color:#3D7B7B;font-style:italic}.code-highlight .c1{color:#3D7B7B;font-style:italic}.code-highlight .cs{color:#3D7B7B;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:#E40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04D}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#B00040}.code-highlight .m{color:#666}.code-highlight .s{color:#BA2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00F;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#CB3F38;font-weight:700}.code-highlight .nf{color:#00F}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00F;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177C}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.code-highlight .dl{color:#BA2121}.code-highlight .sd{color:#BA2121;font-style:italic}.code-highlight .s2{color:#BA2121}.code-highlight .se{color:#AA5D1F;font-weight:700}.code-highlight .sh{color:#BA2121}.code-highlight .si{color:#A45A77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#A45A77}.code-highlight .s1{color:#BA2121}.code-highlight .ss{color:#19177C}.code-highlight .bp{color:green}.code-highlight .fm{color:#00F}.code-highlight .vc{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin:0 1rem 0 0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:var(--color-toolkit-checkbox-onoff-background);margin:8px 1rem;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;transition:all .4s ease;left:27px;background-color:var(--color-toolkit-checkbox-onoff-label-background)}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:var(--color-toolkit-checkbox-onoff-checked-background)}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:var(--color-toolkit-checkbox-label-background);border-radius:10px}.checkbox label::after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:8px 0 8px 8px}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);border:1px solid var(--color-autocomplete-border);max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{border-bottom:1px solid var(--color-result-top-border);text-align:left}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:7.75rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);max-height:16rem;min-height:16rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding:.4rem .5rem .4rem .3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:80em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}#main_index{margin-top:26vh}#main_index #linkto_preferences{right:1.8rem}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:80em){div.title h1{font-size:1em}#main_index{margin-top:6em}}@media screen and (max-width:50em){#main_index{margin-top:0}}#tab-contentquery table td,#tab-contentquery table th{text-align:left!important;height:3rem}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin:0 1rem 0 0}#main_preferences .value select{width:14rem}#main_preferences .value input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences .value input[type=text]:focus,#main_preferences .value input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences table{border-collapse:collapse}#main_preferences table td{text-align:center}#main_preferences table.cookies{width:100%}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences div.selectable_url pre{width:100%}#main_preferences th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences th.name .engine-tooltip .engine-description{margin-top:.5rem}@media screen and (max-width:80em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding:1.5em 2em 0 7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;column-gap:1.2rem;row-gap:1rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category{display:inline-block;position:relative;margin-right:1rem;padding:0}.category input{display:none}.category label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category label svg{padding-right:.2rem}.category label div.category_name{margin:auto 0}.category input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_box{margin:0;padding:0;grid-area:search;display:inline-flex;flex-direction:row;white-space:nowrap}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8em;margin:0;padding:8px 2px;background:none repeat scroll 0 0 var(--color-search-background);border-top:1px solid var(--color-search-border);border-bottom:1px solid var(--color-search-border);border-right:none;border-left:none;border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}#q,#send_search{display:block!important;border-collapse:separate;box-sizing:border-box;margin:0;padding:10px;background:none repeat scroll 0 0 var(--color-search-background);border:1px solid var(--color-search-border);border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:2}#q{outline:medium none;padding-left:12px;padding-right:0!important;border-right:none;width:40rem;border-radius:10px 0 0 10px}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-left:none;border-radius:0 10px 10px 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border);padding:10px}.search_filters{margin:.6rem 0 0 10.6rem}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:80em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin:.6rem 0 0 3.5rem}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto;margin-top:2px}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;column-gap:0;row-gap:0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:99%;display:flex;flex-direction:row}#q{width:100%;flex:1}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin-right .1s}.search_filters{margin:0}.category{display:block;width:100%;margin:0}.category label{padding:.8rem!important;margin:0!important}.category label svg{display:none}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}#main_about,#main_preferences,#main_stats{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}#main_preferences h1,#main_stats h1{background:url(../img/searxng.png) no-repeat;background-size:contain;min-height:40px;margin:0 auto}#main_preferences h1 span,#main_stats h1 span{visibility:hidden}#results button[type=submit],input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_wrapper{display:flex;font-size:1rem;color:var(--color-result-url-font);flex-wrap:nowrap;overflow:hidden;flex-direction:row;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex-basis:content;flex-grow:0;flex-shrink:1;text-align:right}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date{font-size:.8em;color:var(--color-result-publishdate-font)}.result img.thumbnail{float:left;padding:.6rem 1rem 0 0;width:20rem;height:unset}.result img.image{float:left;padding:.6rem 1rem 0 0;width:7rem;max-height:7rem;object-fit:scale-down;object-position:right top}.result .break{clear:both}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:1rem 0;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin:0 .5em 0 0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{display:inline-block;margin:0;padding:0;position:relative;max-height:200px;border:none!important}.result-images img{float:inherit;margin:.125rem;padding:0;border:none;max-height:200px;background:var(--color-result-image-background)}.result-images span.title{display:none;color:var(--color-result-image-span-font)}.result-images:hover span.title{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:var(--color-result-image-span-background-hover);font-size:.7em}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin:1rem 2rem 0 10rem;display:grid;grid-template-columns:45rem 25rem;grid-template-rows:min-content min-content 1fr min-content;gap:0 5rem;grid-template-areas:"corrections sidebar" "answers sidebar" "urls sidebar" "pagination sidebar"}#results #sidebar :first-child,#results #urls :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}#answers{grid-area:answers;border:1px solid var(--color-answer-border);background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#search_url{margin-top:8px}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:2.2rem;padding:0;border:0;display:block;font-size:1.2em;color:var(--color-search-font)}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1}@media screen and (max-width:80em){#main_about,#main_preferences,#main_stats{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{margin-bottom:.125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}#apis{display:none}#search_url{display:none}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;padding:0 0 3px 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:1rem auto 0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template-columns:100%;grid-template-rows:min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "urls" "answers" "sidebar" "pagination"}#main_results div#results.only_template_images #urls{width:inherit;margin:0}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width:50em){#main_results div#results{grid-template-columns:100%;margin:2rem .5rem 0 .5rem}#linkto_preferences{top:.8rem;right:.7rem}#main_index #linkto_preferences{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{border:1px solid var(--color-result-border);margin:1rem 0;border-radius:10px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}/*# sourceMappingURL=searxng.min.css.map */ \ No newline at end of file
+.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-url-font:#29314d;--color-url-visited-font:#80b;--color-header-background:#f7f7f7;--color-header-border:#ddd;--color-footer-background:#f7f7f7;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-search-border:#bbb;--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#f7f7f7;--color-answer-border:#ddd;--color-answer-font:#444;--color-answer-background:#f7f7f7;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#80b;--color-result-publishdate-font:#777;--color-result-engines-font:#777;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#f7f7f7;--color-settings-engine-description-font:#909090;--color-settings-engine-group-background:#0001;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#f7f7f7;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-background:#ddd;--color-toolkit-checkbox-onoff-label-background:#3050ff;--color-toolkit-checkbox-onoff-checked-background:#aaa;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0)}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222;--color-url-font:#8af;--color-url-visited-font:#96b;--color-header-background:#181818;--color-header-border:#333;--color-footer-background:#181818;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#181818;--color-btn-background:#58f;--color-btn-font:#222;--color-search-border:#555;--color-search-background:#222;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-background:#222;--color-autocomplete-background-hover:#181818;--color-answer-border:#333;--color-answer-font:#bbb;--color-answer-background:#181818;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#181818;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#96b;--color-result-publishdate-font:#888;--color-result-engines-font:#888;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#222;--color-settings-tr-hover:#2d2d2d;--color-settings-engine-description-font:#909090;--color-settings-engine-group-background:#1a1919;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#222;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#3c3b31;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#333;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-background:#3c3b31;--color-toolkit-checkbox-onoff-label-background:#58f;--color-toolkit-checkbox-onoff-checked-background:#ddd;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0)}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222;--color-url-font:#8af;--color-url-visited-font:#96b;--color-header-background:#181818;--color-header-border:#333;--color-footer-background:#181818;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#181818;--color-btn-background:#58f;--color-btn-font:#222;--color-search-border:#555;--color-search-background:#222;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-background:#222;--color-autocomplete-background-hover:#181818;--color-answer-border:#333;--color-answer-font:#bbb;--color-answer-background:#181818;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#181818;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#96b;--color-result-publishdate-font:#888;--color-result-engines-font:#888;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#000;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-background-hover:rgba(0, 0, 0, 0.6);--color-result-image-span-font:#fff;--color-result-image-background:#222;--color-settings-tr-hover:#2d2d2d;--color-settings-engine-description-font:#909090;--color-settings-engine-group-background:#1a1919;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#777;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#222;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#3c3b31;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#333;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-background:#3c3b31;--color-toolkit-checkbox-onoff-label-background:#58f;--color-toolkit-checkbox-onoff-checked-background:#ddd;--color-toolkit-checkbox-label-background:#fff;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0)}.code-highlight pre{overflow:auto;background-color:inherit;color:inherit;border:inherit}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#f8f8f8}.code-highlight .c{color:#3D7B7B;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3D7B7B;font-style:italic}.code-highlight .cm{color:#3D7B7B;font-style:italic}.code-highlight .cp{color:#9C6500}.code-highlight .cpf{color:#3D7B7B;font-style:italic}.code-highlight .c1{color:#3D7B7B;font-style:italic}.code-highlight .cs{color:#3D7B7B;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:#E40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04D}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#B00040}.code-highlight .m{color:#666}.code-highlight .s{color:#BA2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00F;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#CB3F38;font-weight:700}.code-highlight .nf{color:#00F}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00F;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177C}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.code-highlight .dl{color:#BA2121}.code-highlight .sd{color:#BA2121;font-style:italic}.code-highlight .s2{color:#BA2121}.code-highlight .se{color:#AA5D1F;font-weight:700}.code-highlight .sh{color:#BA2121}.code-highlight .si{color:#A45A77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#A45A77}.code-highlight .s1{color:#BA2121}.code-highlight .ss{color:#19177C}.code-highlight .bp{color:green}.code-highlight .fm{color:#00F}.code-highlight .vc{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin:0 1rem 0 0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:var(--color-toolkit-checkbox-onoff-background);margin:8px 1rem;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;transition:all .4s ease;left:27px;background-color:var(--color-toolkit-checkbox-onoff-label-background)}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:var(--color-toolkit-checkbox-onoff-checked-background)}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:var(--color-toolkit-checkbox-label-background);border-radius:10px}.checkbox label::after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:8px 0 8px 8px}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);border:1px solid var(--color-autocomplete-border);max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{border-bottom:1px solid var(--color-result-top-border);text-align:left}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:7.75rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);max-height:16rem;min-height:16rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding:.4rem .5rem .4rem .3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:80em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}#main_index{margin-top:26vh}#main_index #linkto_preferences{right:1.8rem}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:80em){div.title h1{font-size:1em}#main_index{margin-top:6em}}@media screen and (max-width:50em){#main_index{margin-top:0}}#tab-contentquery table td,#tab-contentquery table th{text-align:left!important;height:3rem}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin:0 1rem 0 0}#main_preferences .value select{width:14rem}#main_preferences .value input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences .value input[type=text]:focus,#main_preferences .value input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences table{border-collapse:collapse}#main_preferences table td{text-align:center}#main_preferences table.cookies{width:100%}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences div.selectable_url pre{width:100%}#main_preferences th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences .engine-group{text-align:left;font-weight:400;background:var(--color-settings-engine-group-background)}@media screen and (max-width:80em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding:1.5em 2em 0 7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;column-gap:1.2rem;row-gap:1rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category{display:inline-block;position:relative;margin-right:1rem;padding:0}.category input{display:none}.category label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category label svg{padding-right:.2rem}.category label div.category_name{margin:auto 0}.category input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#search_logo{grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_box{margin:0;padding:0;grid-area:search;display:inline-flex;flex-direction:row;white-space:nowrap}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8em;margin:0;padding:8px 2px;background:none repeat scroll 0 0 var(--color-search-background);border-top:1px solid var(--color-search-border);border-bottom:1px solid var(--color-search-border);border-right:none;border-left:none;border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}#q,#send_search{display:block!important;border-collapse:separate;box-sizing:border-box;margin:0;padding:10px;background:none repeat scroll 0 0 var(--color-search-background);border:1px solid var(--color-search-border);border-radius:0;outline:0;color:var(--color-search-font);font-size:16px;z-index:2}#q{outline:medium none;padding-left:12px;padding-right:0!important;border-right:none;width:40rem;border-radius:10px 0 0 10px}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-left:none;border-radius:0 10px 10px 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border);padding:10px}.search_filters{margin:.6rem 0 0 10.6rem}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:80em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin:.6rem 0 0 3.5rem}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto;margin-top:2px}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;column-gap:0;row-gap:0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:99%;display:flex;flex-direction:row}#q{width:100%;flex:1}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin-right .1s}.search_filters{margin:0}.category{display:block;width:100%;margin:0}.category label{padding:.8rem!important;margin:0!important}.category label svg{display:none}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}#main_about,#main_preferences,#main_stats{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}#main_preferences h1,#main_stats h1{background:url(../img/searxng.png) no-repeat;background-size:contain;min-height:40px;margin:0 auto}#main_preferences h1 span,#main_stats h1 span{visibility:hidden}#results button[type=submit],input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_wrapper{display:flex;font-size:1rem;color:var(--color-result-url-font);flex-wrap:nowrap;overflow:hidden;flex-direction:row;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex-basis:content;flex-grow:0;flex-shrink:1;text-align:right}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date{font-size:.8em;color:var(--color-result-publishdate-font)}.result img.thumbnail{float:left;padding:.6rem 1rem 0 0;width:20rem;height:unset}.result img.image{float:left;padding:.6rem 1rem 0 0;width:7rem;max-height:7rem;object-fit:scale-down;object-position:right top}.result .break{clear:both}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:1rem 0;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin:0 .5em 0 0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{display:inline-block;margin:0;padding:0;position:relative;max-height:200px;border:none!important}.result-images img{float:inherit;margin:.125rem;padding:0;border:none;max-height:200px;background:var(--color-result-image-background)}.result-images span.title{display:none;color:var(--color-result-image-span-font)}.result-images:hover span.title{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:var(--color-result-image-span-background-hover);font-size:.7em}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin:1rem 2rem 0 10rem;display:grid;grid-template-columns:45rem 25rem;grid-template-rows:min-content min-content 1fr min-content;gap:0 5rem;grid-template-areas:"corrections sidebar" "answers sidebar" "urls sidebar" "pagination sidebar"}#results #sidebar :first-child,#results #urls :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}#answers{grid-area:answers;border:1px solid var(--color-answer-border);background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#search_url{margin-top:8px}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:2.2rem;padding:0;border:0;display:block;font-size:1.2em;color:var(--color-search-font)}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1}@media screen and (max-width:80em){#main_about,#main_preferences,#main_stats{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{margin-bottom:.125rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}#apis{display:none}#search_url{display:none}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;padding:0 0 3px 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:1rem auto 0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template-columns:100%;grid-template-rows:min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "urls" "answers" "sidebar" "pagination"}#main_results div#results.only_template_images #urls{width:inherit;margin:0}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width:50em){#main_results div#results{grid-template-columns:100%;margin:2rem .5rem 0 .5rem}#linkto_preferences{top:.8rem;right:.7rem}#main_index #linkto_preferences{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{border:1px solid var(--color-result-border);margin:1rem 0;border-radius:10px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}/*# sourceMappingURL=searxng.min.css.map */ \ No newline at end of file
diff --git a/searx/static/themes/simple/css/searxng.min.css.map b/searx/static/themes/simple/css/searxng.min.css.map
index b14d8197f..44ba4349d 100644
--- a/searx/static/themes/simple/css/searxng.min.css.map
+++ b/searx/static/themes/simple/css/searxng.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../__common__/less/new_issue.less","../__common__/less/stats.less","src/generated/pygments.less","../__common__/less/result_templates.less","node_modules/normalize.css/normalize.css","src/less/definitions.less","src/less/code.less","src/less/toolkit.less","src/less/mixins.less","src/less/autocomplete.less","src/less/detail.less","src/less/animations.less","src/less/index.less","src/less/preferences.less","src/less/search.less","src/less/style.less"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,8ECOJ,KACE,YAAa,KACb,yBAAqC,KAUvC,KACE,OAAQ,EAOV,K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","sourcesContent":[".github-issue-button {\n display: block;\n padding: 8px 16px;\n font-family: sans-serif;\n font-size: 16px;\n color: white;\n background-color: #238636 !important; /* important is needed cause to an !important in logicodev-dark */\n border: #2ea043;\n border-radius: 10px !important;\n box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;\n}\n\n.github-issue-button:hover {\n background-color: #2ea043;\n}\n\n.issue-hide {\n display: none;\n}\n",".engine-stats {\n\n .engine-name {\n width: 20rem;\n }\n\n .engine-score {\n width: 7rem;\n text-align: right;\n }\n\n .result-count {\n }\n\n .response-time {\n }\n\n .engine-reliability {\n text-align: right;\n }\n\n table.engine-error {\n max-width: 1280px;\n margin: 1rem;\n border: 1px solid gray;\n }\n\n table.engine-error th.engine-error-type,\n table.engine-error td.engine-error-type,\n failed-test {\n width: 10rem;\n }\n\n table.engine-error span.log_parameters\n {\n border-right: 1px solid gray;\n padding: 0 1rem 0 0;\n margin: 0 0 0 0.5rem;\n }\n}\n\n.bar-chart-value {\n width: 3em;\n display: inline-block;\n text-align: right;\n padding-right: 0.5rem;\n}\n\n.bar-chart-graph {\n width: calc(100% - 5rem);\n display: inline-block;\n}\n\n.bar-chart-bar {\n border: 3px solid #5bc0de;\n margin: 1px 0;\n}\n\n.bar-chart-serie1 {\n border: 3px solid #5bc0de;\n margin: 1px 0;\n float: left;\n}\n\n.bar-chart-serie2 {\n border: 3px solid #deb15b;\n margin: 1px 0;\n float: left;\n}\n\n.bar0{\n width: 0;\n border: 0;\n}\n\n.generate-bar(100);\n\n.generate-bar(@n, @i: 1) when (@i =< @n) {\n .bar@{i} {\n width: (@i * 100% / @n);\n }\n .generate-bar(@n, (@i + 1));\n}\n","/*\n this file is generated automatically by searxng_extra/update/update_pygments.py\n using pygments version 2.11.0\n*/\n\n.code-highlight .linenos {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n\n &::selection {\n background: transparent; /* WebKit/Blink Browsers */\n }\n &::-moz-selection {\n background: transparent; /* Gecko Browsers */\n }\n\n margin-right: 8px;\n text-align: right;\n}\n\n.code-highlight pre { line-height: 125%; }\n.code-highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n.code-highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n.code-highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n.code-highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n.code-highlight .hll { background-color: #ffffcc }\n.code-highlight { background: #f8f8f8; }\n.code-highlight .c { color: #3D7B7B; font-style: italic } /* Comment */\n.code-highlight .err { border: 1px solid #FF0000 } /* Error */\n.code-highlight .k { color: #008000; font-weight: bold } /* Keyword */\n.code-highlight .o { color: #666666 } /* Operator */\n.code-highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n.code-highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n.code-highlight .cp { color: #9C6500 } /* Comment.Preproc */\n.code-highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n.code-highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n.code-highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n.code-highlight .gd { color: #A00000 } /* Generic.Deleted */\n.code-highlight .ge { font-style: italic } /* Generic.Emph */\n.code-highlight .gr { color: #E40000 } /* Generic.Error */\n.code-highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n.code-highlight .gi { color: #008400 } /* Generic.Inserted */\n.code-highlight .go { color: #717171 } /* Generic.Output */\n.code-highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n.code-highlight .gs { font-weight: bold } /* Generic.Strong */\n.code-highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n.code-highlight .gt { color: #0044DD } /* Generic.Traceback */\n.code-highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n.code-highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n.code-highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n.code-highlight .kp { color: #008000 } /* Keyword.Pseudo */\n.code-highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n.code-highlight .kt { color: #B00040 } /* Keyword.Type */\n.code-highlight .m { color: #666666 } /* Literal.Number */\n.code-highlight .s { color: #BA2121 } /* Literal.String */\n.code-highlight .na { color: #687822 } /* Name.Attribute */\n.code-highlight .nb { color: #008000 } /* Name.Builtin */\n.code-highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n.code-highlight .no { color: #880000 } /* Name.Constant */\n.code-highlight .nd { color: #AA22FF } /* Name.Decorator */\n.code-highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */\n.code-highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n.code-highlight .nf { color: #0000FF } /* Name.Function */\n.code-highlight .nl { color: #767600 } /* Name.Label */\n.code-highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n.code-highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */\n.code-highlight .nv { color: #19177C } /* Name.Variable */\n.code-highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n.code-highlight .w { color: #bbbbbb } /* Text.Whitespace */\n.code-highlight .mb { color: #666666 } /* Literal.Number.Bin */\n.code-highlight .mf { color: #666666 } /* Literal.Number.Float */\n.code-highlight .mh { color: #666666 } /* Literal.Number.Hex */\n.code-highlight .mi { color: #666666 } /* Literal.Number.Integer */\n.code-highlight .mo { color: #666666 } /* Literal.Number.Oct */\n.code-highlight .sa { color: #BA2121 } /* Literal.String.Affix */\n.code-highlight .sb { color: #BA2121 } /* Literal.String.Backtick */\n.code-highlight .sc { color: #BA2121 } /* Literal.String.Char */\n.code-highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */\n.code-highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n.code-highlight .s2 { color: #BA2121 } /* Literal.String.Double */\n.code-highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n.code-highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */\n.code-highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n.code-highlight .sx { color: #008000 } /* Literal.String.Other */\n.code-highlight .sr { color: #A45A77 } /* Literal.String.Regex */\n.code-highlight .s1 { color: #BA2121 } /* Literal.String.Single */\n.code-highlight .ss { color: #19177C } /* Literal.String.Symbol */\n.code-highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */\n.code-highlight .fm { color: #0000FF } /* Name.Function.Magic */\n.code-highlight .vc { color: #19177C } /* Name.Variable.Class */\n.code-highlight .vg { color: #19177C } /* Name.Variable.Global */\n.code-highlight .vi { color: #19177C } /* Name.Variable.Instance */\n.code-highlight .vm { color: #19177C } /* Name.Variable.Magic */\n.code-highlight .il { color: #666666 } /* Literal.Number.Integer.Long */\n",".osm-map-box {\n height:300px;\n width:100%;\n margin: 10px 0;\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/*\n * SearXNG, A privacy-respecting, hackable metasearch engine\n *\n * To change the colors of the site, simple edit this variables\n */\n\n/// Light Theme\n:root {\n /// Base Colors\n --color-base-font: #444;\n --color-base-font-rgb: 68, 68, 68;\n --color-base-background: #fff;\n --color-url-font: #29314d;\n --color-url-visited-font: #80b;\n /// Header Colors\n --color-header-background: #f7f7f7;\n --color-header-border: #ddd;\n /// Footer Colors\n --color-footer-background: #f7f7f7;\n --color-footer-border: #ddd;\n /// Sidebar Colors\n --color-sidebar-border: #ddd;\n --color-sidebar-font: #000;\n /// BackToTop Colors\n --color-backtotop-font: #444;\n --color-backtotop-border: #ddd;\n --color-backtotop-background: #fff;\n /// Button Colors\n --color-btn-background: #3050ff;\n --color-btn-font: #fff;\n /// Search Input Colors\n --color-search-border: #bbb;\n --color-search-background: #fff;\n --color-search-font: #222;\n --color-search-background-hover: #3050ff;\n /// Modal Colors\n --color-error: #db3434;\n --color-error-background: lighten(#db3434, 40%);\n --color-warning: #dbba34;\n --color-warning-background: lighten(#dbba34, 40%);\n --color-success: #42db34;\n --color-success-background: lighten(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #3050ff;\n --color-categories-item-border-selected: #3050ff;\n /// Autocomplete Colors\n --color-autocomplete-font: #000;\n --color-autocomplete-border: #bbb;\n --color-autocomplete-background: #fff;\n --color-autocomplete-background-hover: #f7f7f7;\n /// Answer Colors\n --color-answer-border: #ddd; // same as --color-header-border\n --color-answer-font: #444; // same as --color-base-font\n --color-answer-background: #f7f7f7; // same as --color-header-background:\n /// Results Colors\n --color-result-border: #ddd;\n --color-result-url-font: #000;\n --color-result-vim-selected: #f7f7f7;\n --color-result-vim-arrow: #000bbb;\n --color-result-description-highlight-font: #000;\n --color-result-link-font: #000bbb;\n --color-result-link-font-highlight: #000bbb;\n --color-result-link-visited-font: #80b;\n --color-result-publishdate-font: #777;\n --color-result-engines-font: #777;\n --color-result-search-url-border: #ddd;\n --color-result-search-url-font: #000;\n // Images Colors\n --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6);\n --color-result-image-span-font: #fff;\n --color-result-image-background: #fff;\n /// Settings Colors\n --color-settings-tr-hover: #f7f7f7;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n /// Detail modal\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #000;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgba(255, 255, 255, 0.2);\n --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #777;\n --color-toolkit-kbd-font: #fff;\n --color-toolkit-kbd-background: #000;\n --color-toolkit-dialog-border: #ddd;\n --color-toolkit-dialog-background: #fff;\n --color-toolkit-tabs-label-border: #fff;\n --color-toolkit-tabs-section-border: #ddd;\n --color-toolkit-select-background: #f7f7f7;\n --color-toolkit-select-border: #ddd;\n --color-toolkit-select-background-hover: #bbb;\n --color-toolkit-input-text-font: #222;\n --color-toolkit-checkbox-onoff-background: #ddd;\n --color-toolkit-checkbox-onoff-label-background: #3050ff;\n --color-toolkit-checkbox-onoff-checked-background: #aaa;\n --color-toolkit-checkbox-label-background: #fff;\n --color-toolkit-checkbox-label-border: #ddd;\n --color-toolkit-checkbox-input-border: #3050ff;\n --color-toolkit-engine-tooltip-border: #ddd;\n --color-toolkit-engine-tooltip-background: #fff;\n --color-toolkit-loader-border: rgba(0, 0, 0, 0.2);\n --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0);\n}\n\n.dark-themes() {\n /// Base Colors\n --color-base-font: #bbb;\n --color-base-font-rgb: 187, 187, 187;\n --color-base-background: #222;\n --color-url-font: #8af;\n --color-url-visited-font: #96b;\n /// Header Colors\n --color-header-background: #181818;\n --color-header-border: #333;\n /// Footer Colors\n --color-footer-background: #181818;\n --color-footer-border: #333;\n /// Sidebar Colors\n --color-sidebar-border: #555;\n --color-sidebar-font: #fff;\n /// BackToTop Colors\n --color-backtotop-font: #bbb;\n --color-backtotop-border: #333;\n --color-backtotop-background: #181818;\n /// Button Colors\n --color-btn-background: #58f;\n --color-btn-font: #222;\n /// Search Input Colors\n --color-search-border: #555;\n --color-search-background: #222;\n --color-search-font: #fff;\n --color-search-background-hover: #58f;\n /// Modal Colors\n --color-error: #f55b5b;\n --color-error-background: darken(#db3434, 40%);\n --color-warning: #f1d561;\n --color-warning-background: darken(#dbba34, 40%);\n --color-success: #79f56e;\n --color-success-background: darken(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #58f;\n --color-categories-item-border-selected: #58f;\n /// Autocomplete Colors\n --color-autocomplete-font: #fff;\n --color-autocomplete-border: #555;\n --color-autocomplete-background: #222;\n --color-autocomplete-background-hover: #181818;\n /// Answer Colors\n --color-answer-border: #333; // same as --color-header-border\n --color-answer-font: #bbb; // same as --color-base-font\n --color-answer-background: #181818; // same as --color-header-background:\n /// Results Colors\n --color-result-border: #333;\n --color-result-url-font: #fff;\n --color-result-vim-selected: #181818;\n --color-result-vim-arrow: #8af;\n --color-result-description-highlight-font: #fff;\n --color-result-link-font: #8af;\n --color-result-link-font-highlight: #8af;\n --color-result-link-visited-font: #96b;\n --color-result-publishdate-font: #888;\n --color-result-engines-font: #888;\n --color-result-search-url-border: #555;\n --color-result-search-url-font: #fff;\n /// Detail modal : same as the light version\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #000;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgba(255, 255, 255, 0.2);\n --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);\n // Images Colors\n --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6);\n --color-result-image-span-font: #fff;\n --color-result-image-background: #222;\n /// Settings Colors\n --color-settings-tr-hover: #2d2d2d;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #777;\n --color-toolkit-kbd-font: #000;\n --color-toolkit-kbd-background: #fff;\n --color-toolkit-dialog-border: #555;\n --color-toolkit-dialog-background: #222;\n --color-toolkit-tabs-label-border: #222;\n --color-toolkit-tabs-section-border: #555;\n --color-toolkit-select-background: #3c3b31;\n --color-toolkit-select-border: #555;\n --color-toolkit-select-background-hover: #333;\n --color-toolkit-input-text-font: #fff;\n --color-toolkit-checkbox-onoff-background: #3c3b31;\n --color-toolkit-checkbox-onoff-label-background: #58f;\n --color-toolkit-checkbox-onoff-checked-background: #ddd;\n --color-toolkit-checkbox-label-background: #fff;\n --color-toolkit-checkbox-label-border: #333;\n --color-toolkit-checkbox-input-border: #58f;\n --color-toolkit-engine-tooltip-border: #333;\n --color-toolkit-engine-tooltip-background: #222;\n --color-toolkit-loader-border: rgba(255, 255, 255, 0.2);\n --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);\n}\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .dark-themes();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .dark-themes();\n}\n\n/// General Size\n@results-width: 45rem;\n@results-offset: 10rem;\n@results-tablet-offset: 0.5rem;\n@results-gap: 5rem;\n@results-margin: 0.125rem;\n@result-padding: 1rem;\n@search-width: 40rem;\n// heigh of #search, see detail.less\n@search-height: 7.75rem;\n\n/// Device Size\n/// @desktop > @tablet\n@tablet: 80em;\n@phone: 50em;\n@small-phone: 35em;\n@ultra-small-phone: 20rem;\n\n/// From style.less\n@stacked-bar-chart: rgb(0, 0, 0);\n\n/// Load fonts from this directory.\n@icon-font-path: \"../../../fonts/\";\n//** File name for all font files.\n@icon-font-name: \"glyphicons-halflings-regular\";\n//** Element ID within SVG icon file.\n@icon-font-svg-id: \"glyphicons_halflingsregular\";\n\n// decoration of the select HTML elements\n@select-light-svg-path: \"../svg/select-light.svg\";\n@select-dark-svg-path: \"../svg/select-dark.svg\";\n",".code-highlight pre {\n overflow: auto;\n background-color: inherit;\n color: inherit;\n border: inherit;\n}\n\n// stylelint-disable no-invalid-position-at-import-rule\n@import \"../generated/pygments.less\";\n","// other solution : http://stackoverflow.com/questions/1577598/how-to-hide-parts-of-html-when-javascript-is-disabled/13857783#13857783\n\n// stylelint-disable no-descending-specificity\n\nhtml.no-js .hide_if_nojs {\n display: none;\n}\n\nhtml.js .show_if_nojs {\n display: none;\n}\n\n.center {\n text-align: center;\n}\n\n.right {\n float: right;\n}\n\n.left {\n float: left;\n}\n\n.invisible {\n display: none !important;\n}\n\n.list-unstyled {\n list-style-type: none;\n\n li {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n}\n\n.danger {\n background-color: var(--color-error-background);\n}\n\n.warning {\n background: var(--color-warning-background);\n}\n\n.success {\n background: var(--color-success-background);\n}\n\n.badge {\n display: inline-block;\n color: var(--color-toolkit-badge-font);\n background-color: var(--color-toolkit-badge-background);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n min-width: 10px;\n padding: 1px 5px;\n border-radius: 5px;\n}\n\n// kbd\nkbd {\n padding: 2px 4px;\n margin: 1px;\n font-size: 90%;\n color: var(--color-toolkit-kbd-font);\n background: var(--color-toolkit-kbd-background);\n}\n\n// table\ntable {\n width: 100%;\n\n &.striped {\n tr {\n border-bottom: 1px solid var(--color-settings-tr-hover);\n }\n }\n}\n\nth {\n padding: 0.4em;\n}\n\ntd {\n padding: 0 4px;\n}\n\ntr {\n &:hover {\n background: var(--color-settings-tr-hover) !important;\n }\n}\n\n// pre\n.pre() {\n display: block;\n font-size: 0.8em;\n word-break: break-all;\n margin: 0.1em;\n user-select: all;\n}\n\ndiv.selectable_url {\n display: block;\n border: 1px solid var(--color-result-search-url-border);\n padding: 4px;\n color: var(--color-result-search-url-font);\n margin: 0.1em;\n overflow: hidden;\n height: 1.2em;\n line-height: 1.2em;\n .rounded-corners-tiny;\n\n pre {\n .pre();\n }\n}\n\n// dialog\n.dialog() {\n position: relative;\n display: flex;\n padding: 1rem;\n margin: 0 0 1em 0;\n border: 1px solid var(--color-toolkit-dialog-border);\n text-align: left;\n .rounded-corners;\n\n .close {\n float: right;\n position: relative;\n top: -3px;\n color: inherit;\n font-size: 1.5em;\n }\n\n ul,\n ol,\n p {\n margin: 1px 0 0 0;\n }\n\n table {\n width: auto;\n }\n\n tr {\n vertical-align: text-top;\n\n &:hover {\n background: transparent !important;\n }\n }\n\n td {\n padding: 0 1em 0 0;\n }\n\n h4 {\n margin-top: 0.3em;\n margin-bottom: 0.3em;\n }\n}\n\n.dialog-error {\n .dialog();\n\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-warning {\n .dialog();\n\n color: var(--color-warning);\n background: var(--color-warning-background);\n border-color: var(--color-warning);\n}\n\n.dialog-modal {\n .dialog();\n\n display: block;\n background: var(--color-toolkit-dialog-background);\n position: fixed;\n top: 50%;\n left: 50%;\n margin: 0 auto;\n transform: translate(-50%, -50%);\n z-index: 10000000;\n\n h3 {\n margin-top: 0;\n }\n}\n\n// btn-collapse\n.btn-collapse {\n cursor: pointer;\n}\n\n//\n.scrollx {\n overflow-x: auto;\n overflow-y: hidden;\n display: block;\n padding: 0;\n margin: 0;\n border: none;\n}\n\n/* -- tabs -- */\n.tabs .tabs > label {\n font-size: 90%;\n}\n\n.tabs {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n min-width: 100%;\n\n & > * {\n order: 2;\n }\n\n & > input[type=radio] {\n display: none;\n }\n\n & > label {\n order: 1;\n padding: 0.7em;\n margin: 0 0.7em;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n border: solid var(--color-toolkit-tabs-label-border);\n border-width: 0 0 2px 0;\n\n .disable-user-select();\n\n cursor: pointer;\n }\n\n & > label:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n\n & > section {\n min-width: 100%;\n padding: 0.7rem 0;\n box-sizing: border-box;\n border-top: 1px solid var(--color-toolkit-tabs-section-border);\n display: none;\n }\n\n // default selection\n & > label:last-of-type {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n letter-spacing: -0.1px;\n }\n\n & > section:last-of-type {\n display: block;\n }\n}\n\nhtml body .tabs > input:checked {\n ~ section {\n display: none;\n }\n\n ~ label {\n position: inherited;\n background: inherit;\n border-bottom: 2px solid transparent;\n font-weight: normal;\n color: inherit;\n\n &:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n }\n\n + label {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n\n + label + section {\n display: block;\n }\n}\n\n/* -- select -- */\nselect {\n height: 2.4rem;\n margin: 0 1rem 0 0;\n padding: 0.2rem !important;\n color: var(--color-search-font);\n font-size: 0.9rem;\n z-index: 2;\n\n &:hover,\n &:focus {\n cursor: pointer;\n }\n}\n\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border-width: 0 2rem 0 0;\n border-color: transparent;\n background: data-uri('image/svg+xml;charset=UTF-8', @select-light-svg-path) no-repeat;\n background-position-x: calc(100% + 2rem);\n background-size: 2rem;\n background-origin: content-box;\n background-color: var(--color-toolkit-select-background);\n outline: medium none;\n text-overflow: ellipsis;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n\n option {\n background-color: var(--color-base-background);\n }\n }\n\n @media (prefers-color-scheme: dark) {\n html.theme-auto select,\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n }\n\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n}\n\n/* -- checkbox-onoff -- */\n@supports (border-radius: 50px) {\n .checkbox-onoff {\n display: inline-block;\n width: 40px;\n height: 10px;\n background: var(--color-toolkit-checkbox-onoff-background);\n margin: 8px 1rem;\n position: relative;\n border-radius: 50px;\n\n label {\n display: block;\n width: 20px;\n height: 20px;\n position: absolute;\n top: -5px;\n cursor: pointer;\n border-radius: 50px;\n transition: all 0.4s ease;\n left: 27px;\n background-color: var(--color-toolkit-checkbox-onoff-label-background);\n }\n\n input[type=checkbox] {\n visibility: hidden;\n\n &:checked + label {\n left: -5px;\n background: var(--color-toolkit-checkbox-onoff-checked-background);\n }\n }\n }\n}\n\n/* -- checkbox -- */\n@supports (transform: rotate(-45deg)) {\n .checkbox {\n width: 20px;\n position: relative;\n margin: 20px auto;\n\n label {\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n background: var(--color-toolkit-checkbox-label-background);\n .rounded-corners;\n\n &::after {\n content: '';\n width: 9px;\n height: 5px;\n position: absolute;\n top: 4px;\n left: 4px;\n border: 3px solid var(--color-toolkit-checkbox-label-border);\n border-top: none;\n border-right: none;\n background: transparent;\n opacity: 0;\n transform: rotate(-45deg);\n }\n }\n\n input[type=checkbox] {\n visibility: hidden;\n\n &:checked + label::after {\n border-color: var(--color-toolkit-checkbox-input-border);\n opacity: 1;\n }\n }\n\n // disabled : can''t be focused, show only the check mark\n input[disabled] + label {\n background-color: transparent !important;\n cursor: inherit;\n }\n\n // if not checked and possible to checked then display a \"light\" check mark on hover\n input:not(:checked):not([readonly]):not([disabled]) + label:hover::after {\n opacity: 0.5;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .tabs > label {\n width: 100%;\n }\n}\n\n/* -- loader -- */\n.loader,\n.loader::after {\n border-radius: 50%;\n width: 2em;\n height: 2em;\n}\n\n.loader {\n margin: 1em auto;\n font-size: 10px;\n position: relative;\n text-indent: -9999em;\n border-top: 0.5em solid var(--color-toolkit-loader-border);\n border-right: 0.5em solid var(--color-toolkit-loader-border);\n border-bottom: 0.5em solid var(--color-toolkit-loader-border);\n border-left: 0.5em solid var(--color-toolkit-loader-borderleft);\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-animation: load8 1.2s infinite linear;\n animation: load8 1.2s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* -- engine-tooltip -- */\n.engine-tooltip {\n display: none;\n position: absolute;\n padding: 0.5rem 1rem;\n margin: 0 0 0 2rem;\n border: 1px solid var(--color-toolkit-engine-tooltip-border);\n background: var(--color-toolkit-engine-tooltip-background);\n font-size: 14px;\n font-weight: normal;\n z-index: 1000000;\n text-align: left;\n .rounded-corners;\n}\n\nth:hover .engine-tooltip,\ntd:hover .engine-tooltip,\n.engine-tooltip:hover {\n display: inline-block;\n}\n\n/* -- stacked bar chart -- */\n.stacked-bar-chart {\n margin: 0;\n padding: 0 0.125rem 0 4rem;\n width: 100%;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: center;\n display: inline-flex;\n}\n\n.stacked-bar-chart-value {\n width: 3rem;\n display: inline-block;\n position: absolute;\n padding: 0 0.5rem;\n text-align: right;\n}\n\n.stacked-bar-chart-base {\n display: flex;\n flex-shrink: 0;\n flex-grow: 0;\n flex-basis: unset;\n}\n\n.stacked-bar-chart-median {\n .stacked-bar-chart-base();\n\n background: var(--color-base-font);\n border: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate80 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border: 1px solid rgba(var(--color-base-font-rgb), 0.3);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate95 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5);\n padding: 0;\n}\n\n.stacked-bar-chart-rate100 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.4rem 0;\n width: 1px;\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n// Mixins\n.text-size-adjust (@property: 100%) {\n -webkit-text-size-adjust: @property;\n -ms-text-size-adjust: @property;\n -moz-text-size-adjust: @property;\n text-size-adjust: @property;\n}\n\n.rounded-corners (@radius: 10px) {\n border-radius: @radius;\n}\n\n.rounded-right-corners (@radius: 0 10px 10px 0) {\n border-radius: @radius;\n}\n\n.rounded-corners-tiny (@radius: 5px) {\n border-radius: @radius;\n}\n\n// disable user selection\n.disable-user-select () {\n -webkit-touch-callout: none;\n user-select: none;\n}\n","/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */\n\n.autocomplete {\n position: absolute;\n max-height: 0;\n overflow-y: hidden;\n text-align: left;\n .rounded-corners;\n\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background);\n }\n\n &:empty {\n display: none;\n }\n\n > ul {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n cursor: pointer;\n padding: 8px 0 8px 8px;\n\n &.active,\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background-hover);\n\n a:active,\n a:focus,\n a:hover {\n text-decoration: none;\n }\n }\n\n &.locked {\n cursor: inherit;\n }\n }\n }\n\n &.open {\n display: block;\n background-color: var(--color-autocomplete-background);\n color: var(--color-autocomplete-font);\n border: 1px solid var(--color-autocomplete-border);\n max-height: 500px;\n overflow-y: auto;\n z-index: 100;\n\n &:empty {\n display: none;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .autocomplete {\n bottom: 0;\n }\n\n .autocomplete > ul > li {\n border-bottom: 1px solid var(--color-result-top-border);\n text-align: left;\n }\n}\n","#main_results #results.image-detail-open.only_template_images {\n width: min(98%, 59.25rem) !important;\n}\n\n#main_results #results.only_template_images.image-detail-open #backToTop {\n left: 56.75rem !important;\n right: inherit;\n}\n\narticle.result-images .detail {\n display: none;\n}\n\n#results.image-detail-open article.result-images[data-vim-selected] .detail {\n display: flex;\n flex-direction: column;\n position: fixed;\n left: 60rem;\n right: 0;\n top: @search-height;\n transition: top 0.064s ease-in 0s;\n bottom: 0;\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-background);\n z-index: 10000;\n padding: 4rem 3rem 3rem 3rem;\n\n a.result-images-source {\n display: block;\n flex: 1;\n text-align: left;\n width: 100%;\n border: none;\n text-decoration: none;\n\n img {\n padding: 0;\n margin: 0;\n border: none;\n object-fit: contain;\n width: inherit;\n max-width: 100%;\n min-height: inherit;\n max-height: calc(100vh - 25rem - 7rem);\n background: inherit;\n }\n }\n\n .result-images-labels {\n color: var(--color-result-detail-font);\n max-height: 16rem;\n min-height: 16rem;\n\n hr {\n border-top: 1px solid var(--color-result-detail-hr);\n border-bottom: none;\n }\n\n h4 {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 0.9rem;\n }\n\n p {\n color: var(--color-result-detail-label-font);\n font-size: 0.9rem;\n\n span {\n display: inline-block;\n width: 12rem;\n }\n }\n\n h4,\n p,\n a {\n text-align: left;\n }\n\n p.result-content {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-url {\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-content:hover,\n p.result-url:hover {\n position: relative;\n overflow: inherit !important;\n background: var(--color-result-detail-background);\n text-overflow: inherit !important;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-result-detail-link);\n }\n\n a:hover {\n text-decoration: underline;\n }\n }\n\n a.result-detail-close {\n top: 1rem;\n left: 1rem;\n padding: 0.4rem;\n }\n\n a.result-detail-previous {\n top: 1rem;\n right: 6rem;\n // center the icon by moving it slightly on the left\n padding: 0.4rem 0.5rem 0.4rem 0.3rem;\n }\n\n a.result-detail-next {\n top: 1rem;\n right: 2rem;\n padding: 0.4rem;\n }\n\n a.result-detail-close,\n a.result-detail-next,\n a.result-detail-previous {\n border-radius: 50%;\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n position: absolute;\n filter: opacity(40%);\n z-index: 2000002;\n\n span {\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n text-align: center;\n }\n }\n\n a.result-detail-next,\n a.result-detail-previous {\n span::before {\n // vertical center small icons\n vertical-align: sub;\n }\n }\n\n a.result-detail-close,\n a.result-detail-close:visited,\n a.result-detail-close:hover,\n a.result-detail-close:active,\n a.result-detail-previous,\n a.result-detail-previous:visited,\n a.result-detail-previous:hover,\n a.result-detail-previous:active,\n a.result-detail-next,\n a.result-detail-next:visited,\n a.result-detail-next:hover,\n a.result-detail-next:active {\n color: var(--color-result-detail-font);\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-font);\n }\n\n a.result-detail-close:focus,\n a.result-detail-close:hover,\n a.result-detail-previous:focus,\n a.result-detail-previous:hover,\n a.result-detail-next:focus,\n a.result-detail-next:hover {\n filter: opacity(80%);\n }\n\n .loader {\n position: absolute;\n top: 1rem;\n right: 50%;\n border-top: 0.5em solid var(--color-result-detail-loader-border);\n border-right: 0.5em solid var(--color-result-detail-loader-border);\n border-bottom: 0.5em solid var(--color-result-detail-loader-border);\n border-left: 0.5em solid var(--color-result-detail-loader-borderleft);\n }\n}\n\n#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail {\n top: 0;\n\n a.result-images-source img {\n max-height: calc(100vh - 25rem);\n }\n}\n\n@media screen and (max-width: @tablet) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n left: 0;\n\n a.result-images-source {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n img {\n width: 100%;\n max-height: calc(100vh - 24rem);\n }\n }\n\n a.result-detail-next {\n right: 1rem;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n left: 0;\n padding: 1rem;\n\n a.result-images-source img {\n width: 100%;\n max-height: calc(100vh - 20rem);\n margin: 0;\n }\n\n .result-images-labels p span {\n width: inherit;\n margin-right: 1rem;\n }\n }\n}\n",".dialog-modal {\n animation-name: dialogmodal;\n animation-duration: 0.13s;\n\n @keyframes dialogmodal {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0.5;\n transform: translate(-50%, -50%) scale(1.05);\n }\n }\n}\n","#main_index {\n margin-top: 26vh;\n\n #linkto_preferences {\n right: 1.8rem;\n }\n}\n\n.index {\n text-align: center;\n\n .title {\n background: url('../img/searxng.png') no-repeat;\n min-height: 4rem;\n margin: 4rem auto;\n background-position: center;\n background-size: contain;\n }\n\n h1 {\n font-size: 4em;\n visibility: hidden;\n }\n\n #search,\n #search_header {\n margin: 0 auto;\n background: inherit;\n border: inherit;\n padding: 0;\n display: block;\n }\n\n .search_filters {\n display: block;\n margin: 1em 0;\n }\n\n .category label {\n padding: 6px 10px;\n border-bottom: initial !important;\n }\n}\n\n@media screen and (max-width: @tablet) {\n div.title {\n h1 {\n font-size: 1em;\n }\n }\n\n #main_index {\n margin-top: 6em;\n }\n}\n\n@media screen and (max-width: @phone) {\n #main_index {\n margin-top: 0;\n }\n}\n","#tab-contentquery table td,\n#tab-contentquery table th {\n text-align: left !important;\n height: 3rem;\n}\n\n#main_preferences {\n form {\n width: 100%;\n }\n\n fieldset {\n margin: 8px;\n border: none;\n }\n\n legend {\n margin: 0;\n padding: 5px 0 0 0;\n display: block;\n float: left;\n width: 300px;\n }\n\n .value {\n margin: 0;\n padding: 0;\n float: left;\n width: 15em;\n\n select,\n input[type=\"text\"] {\n font-size: inherit !important;\n margin: 0 1rem 0 0;\n }\n\n select {\n width: 14rem;\n }\n\n input[type=\"text\"] {\n width: 13.25rem;\n color: var(--color-toolkit-input-text-font);\n border: none;\n background: none repeat scroll 0 0 var(--color-toolkit-select-background);\n padding: 0.2rem 0.4rem;\n height: 2rem;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n }\n\n select:focus,\n input:focus {\n outline: none;\n box-shadow: 0 0 1px 1px var(--color-btn-background);\n }\n }\n\n .description {\n margin: 0;\n padding: 5px 0 0 0;\n float: left;\n width: 50%;\n color: var(--color-settings-engine-description-font);\n font-size: 90%;\n }\n\n table {\n border-collapse: collapse;\n }\n\n table td {\n text-align: center;\n }\n\n table.cookies {\n width: 100%;\n\n th,\n td {\n text-align: left;\n font-family: monospace;\n font-size: 1rem;\n padding: 0.5em;\n vertical-align: top;\n }\n\n td:first-child {\n word-break: keep-all;\n width: 14rem;\n padding-right: 1rem;\n }\n\n td:last-child {\n word-break: break-all;\n }\n\n & > tbody > tr:nth-child(even) > th,\n & > tbody > tr:nth-child(even) > td {\n background-color: var(--color-settings-tr-hover);\n }\n }\n\n .category {\n margin-right: 0.5rem;\n\n label {\n border: 2px solid transparent;\n padding: 0.2rem 0.4rem;\n .rounded-corners-tiny;\n }\n }\n\n .category input[type=\"checkbox\"]:checked + label {\n border: 2px solid var(--color-categories-item-border-selected);\n }\n\n .name,\n .shortcut {\n text-align: left;\n }\n\n .preferences_back {\n background: none repeat scroll 0 0 var(--color-btn-background);\n color: var(--color-btn-font);\n border: 0 none;\n .rounded-corners;\n\n cursor: pointer;\n display: inline-block;\n margin: 2px 4px;\n padding: 0.7em;\n\n a {\n color: var(--color-settings-return-font);\n }\n\n a::first-letter {\n text-transform: uppercase;\n }\n }\n\n div.selectable_url {\n pre {\n width: 100%;\n }\n }\n\n th.name {\n .engine-tooltip {\n margin-top: 1.8rem;\n left: calc((100% - 85em) / 2 + 10em);\n max-width: 40rem;\n\n .engine-description {\n margin-top: 0.5rem;\n }\n }\n }\n}\n\n@media screen and (max-width: @tablet) {\n .preferences_back {\n clear: both;\n }\n\n .engine-tooltip {\n left: 10em !important;\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*/\n\n#search {\n padding: 0;\n margin: 0;\n}\n\n#search_header {\n padding: 1.5em 2em 0 @results-offset - 3rem;\n margin: 0;\n background: var(--color-header-background);\n border-bottom: 1px solid var(--color-header-border);\n display: grid;\n column-gap: 1.2rem;\n row-gap: 1rem;\n grid-template-columns: 3rem 1fr;\n grid-template-areas:\n \"logo search\"\n \"spacer categories\";\n}\n\n.category {\n display: inline-block;\n position: relative;\n margin-right: 1rem;\n padding: 0;\n\n input {\n display: none;\n }\n\n label {\n svg {\n padding-right: 0.2rem;\n }\n\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n text-transform: capitalize;\n font-size: 0.9em;\n border-bottom: 2px solid transparent;\n .disable-user-select;\n\n div.category_name {\n margin: auto 0;\n }\n }\n\n input[type=\"checkbox\"]:checked + label {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n#search_logo {\n grid-area: logo;\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n flex: 1;\n width: 30px;\n height: 30px;\n margin: 0.5rem 0 auto 0;\n }\n}\n\n.search_categories {\n grid-area: categories;\n}\n\n.search_box {\n margin: 0;\n padding: 0;\n grid-area: search;\n display: inline-flex;\n flex-direction: row;\n white-space: nowrap;\n}\n\n#clear_search {\n display: block;\n border-collapse: separate;\n box-sizing: border-box;\n width: 1.8em;\n margin: 0;\n padding: 8px 2px;\n background: none repeat scroll 0 0 var(--color-search-background);\n border-top: 1px solid var(--color-search-border);\n border-bottom: 1px solid var(--color-search-border);\n border-right: none;\n border-left: none;\n border-radius: 0;\n outline: none;\n color: var(--color-search-font);\n font-size: 16px;\n z-index: 10000;\n\n &:hover {\n color: var(--color-search-background-hover);\n }\n\n &.empty * {\n display: none;\n }\n}\n\n#q,\n#send_search {\n display: block !important;\n border-collapse: separate;\n box-sizing: border-box;\n margin: 0;\n padding: 10px;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: 1px solid var(--color-search-border);\n border-radius: 0;\n outline: none;\n color: var(--color-search-font);\n font-size: 16px;\n z-index: 2;\n}\n\n#q {\n outline: medium none;\n padding-left: 12px;\n padding-right: 0 !important;\n border-right: none;\n width: @search-width;\n border-radius: 10px 0 0 10px;\n}\n\n#q::-ms-clear,\n#q::-webkit-search-cancel-button {\n display: none;\n}\n\n#send_search {\n border-left: none;\n border-radius: 0 10px 10px 0;\n\n &:hover {\n cursor: pointer;\n background-color: var(--color-search-background-hover);\n color: var(--color-search-background);\n }\n}\n\n.no-js #clear_search,\n.no-js #send_search {\n width: auto !important;\n border-left: 1px solid var(--color-search-border);\n padding: 10px;\n}\n\n.search_filters {\n margin: 0.6rem 0 0 @results-offset + 0.6rem;\n\n select {\n background-color: inherit;\n\n &:hover,\n &:focus {\n color: var(--color-base-font);\n }\n }\n}\n\n@media screen and (max-width: @tablet) {\n #search_header {\n padding: 1.5em @results-tablet-offset 0 @results-tablet-offset;\n column-gap: @results-tablet-offset;\n }\n\n .search_filters {\n margin: 0.6rem 0 0 @results-tablet-offset + 3rem;\n }\n\n #categories {\n font-size: 90%;\n clear: both;\n\n .checkbox_container {\n margin: auto;\n margin-top: 2px;\n }\n }\n\n html.touch {\n #main_index,\n #main_results {\n #categories_container {\n width: max-content;\n\n .category {\n display: inline-block;\n width: auto;\n }\n }\n\n #categories {\n width: 100%;\n text-align: left;\n overflow-x: scroll;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n }\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #search_header {\n width: 100%;\n margin: 0;\n padding: 0.1rem 0 0 0;\n column-gap: 0;\n row-gap: 0;\n grid-template-areas:\n \"logo search\"\n \"categories categories\";\n }\n\n .search_logo {\n padding: 0;\n }\n\n .search_box {\n // hack, should be 100% ?\n width: 99%;\n display: flex;\n flex-direction: row;\n }\n\n #q {\n width: 100%;\n flex: 1;\n }\n\n #main_results #q:placeholder-shown ~ #send_search {\n margin-right: 2.6rem;\n transition: margin-right 0.1s;\n }\n\n .search_filters {\n margin: 0;\n }\n\n .category {\n display: block;\n width: 100%;\n margin: 0;\n\n label {\n padding: 0.8rem !important;\n margin: 0 !important;\n\n svg {\n display: none;\n }\n }\n }\n}\n\n@media screen and (max-width: @ultra-small-phone) {\n #search_header {\n grid-template-areas:\n \"search search\"\n \"categories categories\";\n }\n\n #search_logo {\n display: none;\n }\n}\n\n#categories {\n .disable-user-select;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n}\n\n#categories_container {\n position: relative;\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*\n* To convert \"style.less\" to \"style.css\" run: $make styles\n*/\n\n// stylelint-disable no-descending-specificity\n\n@import \"../../__common__/less/new_issue.less\";\n@import \"../../__common__/less/stats.less\";\n@import \"../../__common__/less/result_templates.less\";\n@import (inline) \"../../node_modules/normalize.css/normalize.css\";\n@import \"definitions.less\";\n@import \"mixins.less\";\n@import \"code.less\";\n@import \"toolkit.less\";\n@import \"autocomplete.less\";\n@import \"detail.less\";\n@import \"animations.less\";\n\n// for index.html template\n@import \"index.less\";\n\n// for preferences.html template\n@import \"preferences.less\";\n\n// Search-Field\n@import \"search.less\";\n\n// ion-icon\n.ion-icon {\n display: inline-block;\n vertical-align: bottom;\n line-height: 1;\n text-decoration: inherit;\n}\n\n.ion-icon-small {\n width: 1rem;\n height: 1rem;\n .ion-icon;\n}\n\n.ion-icon-big {\n width: 1.5rem;\n height: 1.5rem;\n .ion-icon;\n}\n\n// Main LESS-Code\nhtml {\n font-family: sans-serif;\n font-size: 0.9em;\n .text-size-adjust;\n\n color: var(--color-base-font);\n background-color: var(--color-base-background);\n padding: 0;\n margin: 0;\n}\n\nbody,\nmain {\n padding: 0;\n margin: 0;\n}\n\nbody {\n display: flex;\n flex-direction: column;\n height: 100vh;\n margin: 0;\n}\n\nmain {\n width: 100%;\n margin-bottom: 2rem;\n flex: 1;\n}\n\n#main_preferences,\n#main_about,\n#main_stats {\n margin: 2em auto;\n width: 85em;\n}\n\nfooter {\n clear: both;\n min-height: 4rem;\n padding: 1rem 0;\n width: 100%;\n text-align: center;\n background-color: var(--color-footer-background);\n border-top: 1px solid var(--color-footer-border);\n overflow: hidden;\n\n p {\n font-size: 0.9em;\n }\n}\n\n#main_preferences h1,\n#main_stats h1 {\n background: url('../img/searxng.png') no-repeat;\n background-size: contain;\n min-height: 40px;\n margin: 0 auto;\n\n span {\n visibility: hidden;\n }\n}\n\ninput[type=\"submit\"],\n#results button[type=\"submit\"] {\n padding: 0.7rem;\n display: inline-block;\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n .rounded-corners;\n\n border: 0;\n cursor: pointer;\n}\n\na {\n text-decoration: none;\n color: var(--color-url-font);\n\n &:visited {\n color: var(--color-url-visited-font);\n\n .highlight {\n color: var(--color-url-visited-font);\n }\n }\n}\n\narticle[data-vim-selected] {\n background: var(--color-result-vim-selected);\n border-left: 0.2rem solid var(--color-result-vim-arrow);\n .rounded-right-corners;\n}\n\narticle.result-images[data-vim-selected] {\n background: var(--color-result-vim-arrow);\n border: none;\n .rounded-corners;\n\n .image_thumbnail {\n filter: opacity(60%);\n }\n}\n\narticle[data-vim-selected].category-videos,\narticle[data-vim-selected].category-news,\narticle[data-vim-selected].category-map,\narticle[data-vim-selected].category-music,\narticle[data-vim-selected].category-files,\narticle[data-vim-selected].category-social {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n}\n\n.result {\n margin: @results-margin 0;\n padding: @result-padding;\n border-left: 0.2rem solid transparent;\n\n h3 {\n font-size: 1.2rem;\n word-wrap: break-word;\n margin: 0.4rem 0 0.4rem 0;\n padding: 0;\n\n a {\n color: var(--color-result-link-font);\n font-weight: normal;\n font-size: 1.1em;\n\n &:visited {\n color: var(--color-result-link-visited-font);\n }\n\n &:focus,\n &:hover {\n text-decoration: underline;\n border: none;\n outline: none;\n }\n }\n }\n\n .cache_link,\n .proxyfied_link {\n font-size: 0.9em !important;\n }\n\n .content,\n .stat,\n .altlink {\n font-size: 0.9em;\n margin: 0;\n padding: 0;\n max-width: 54em;\n word-wrap: break-word;\n line-height: 1.24;\n\n .highlight {\n color: var(--color-result-description-highlight-font);\n background: inherit;\n font-weight: bold;\n }\n }\n\n .codelines {\n .highlight {\n color: inherit;\n background: inherit;\n font-weight: normal;\n }\n }\n\n .url_wrapper {\n display: flex;\n font-size: 1rem;\n color: var(--color-result-url-font);\n flex-wrap: nowrap;\n overflow: hidden;\n flex-direction: row;\n margin: 0;\n padding: 0;\n\n .url_o1 {\n white-space: nowrap;\n flex-shrink: 1;\n }\n\n .url_o1::after {\n content: \" \";\n width: 1ch;\n display: inline-block;\n }\n\n .url_o2 {\n overflow: hidden;\n white-space: nowrap;\n flex-basis: content;\n flex-grow: 0;\n flex-shrink: 1;\n text-align: right;\n\n .url_i2 {\n float: right;\n }\n }\n }\n\n .published_date {\n font-size: 0.8em;\n color: var(--color-result-publishdate-font);\n }\n\n img {\n &.thumbnail {\n float: left;\n padding: 0.6rem 1rem 0 0;\n width: 20rem;\n height: unset; // remove heigth value that was needed for lazy loading\n }\n\n &.image {\n float: left;\n padding: 0.6rem 1rem 0 0;\n width: 7rem;\n max-height: 7rem;\n object-fit: scale-down;\n object-position: right top;\n }\n }\n\n .break {\n clear: both;\n }\n}\n\n.category-videos,\n.category-news,\n.category-map,\n.category-music,\n.category-files,\n.category-social {\n border: 1px solid var(--color-result-border);\n margin: 1rem 0;\n .rounded-corners;\n}\n\n.category-social .image {\n width: auto !important;\n min-width: 48px;\n min-height: 48px;\n padding: 0 5px 25px 0 !important;\n}\n\n.result-videos .content {\n overflow: hidden;\n}\n\n.engines {\n float: right;\n color: var(--color-result-engines-font);\n\n span {\n font-size: smaller;\n margin: 0 0.5em 0 0;\n }\n}\n\n.small_font {\n font-size: 0.8em;\n}\n\n.highlight {\n color: var(--color-result-link-font-highlight);\n background: inherit;\n}\n\n.empty_element {\n font-style: italic;\n}\n\n.result-images {\n display: inline-block;\n margin: 0;\n padding: 0;\n position: relative;\n max-height: 200px;\n border: none !important;\n\n img {\n float: inherit;\n margin: 0.125rem;\n padding: 0;\n border: none;\n max-height: 200px;\n background: var(--color-result-image-background);\n }\n\n span.title {\n display: none;\n color: var(--color-result-image-span-font);\n }\n\n &:hover span.title {\n display: block;\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 4px;\n margin: 0 0 4px 4px;\n // color: @color-result-image-span-font;\n background-color: var(--color-result-image-span-background-hover);\n font-size: 0.7em;\n }\n}\n\n.result-map {\n img.image {\n float: right !important;\n height: 100px !important;\n width: auto !important;\n }\n\n table {\n font-size: 0.9em;\n width: auto;\n border-collapse: separate;\n border-spacing: 0 0.35rem;\n\n th {\n font-weight: inherit;\n width: 17rem;\n vertical-align: top;\n text-align: left;\n }\n\n td {\n vertical-align: top;\n text-align: left;\n }\n }\n}\n\n.hidden {\n display: none !important;\n}\n\n#results {\n margin: 1rem 2rem 0 @results-offset;\n display: grid;\n grid-template-columns: @results-width 25rem;\n grid-template-rows: min-content min-content 1fr min-content;\n gap: 0 @results-gap;\n grid-template-areas:\n \"corrections sidebar\"\n \"answers sidebar\"\n \"urls sidebar\"\n \"pagination sidebar\";\n}\n\n#results #sidebar *:first-child,\n#results #urls *:first-child {\n margin-top: 0;\n}\n\n#urls {\n padding: 0;\n grid-area: urls;\n}\n\n#suggestions {\n .wrapper {\n display: flex;\n flex-flow: row wrap;\n justify-content: flex-end;\n\n form {\n display: inline-block;\n flex: 1 1 50%;\n }\n }\n}\n\n#suggestions,\n#infoboxes {\n input {\n padding: 0;\n margin: 3px;\n font-size: 0.9em;\n display: inline-block;\n background: transparent;\n color: var(--color-result-search-url-font);\n cursor: pointer;\n }\n\n input[type=\"submit\"],\n .infobox .url a {\n color: var(--color-result-link-font);\n text-decoration: none;\n font-size: 0.9rem;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n#corrections {\n grid-area: corrections;\n display: flex;\n flex-flow: row wrap;\n margin: 0 0 1em 0;\n\n h4,\n input[type=\"submit\"] {\n display: inline-block;\n padding: 0.5rem;\n margin: 0.5rem;\n }\n\n input[type=\"submit\"] {\n font-size: 0.8rem;\n .rounded-corners-tiny;\n }\n}\n\n#suggestions .title,\n#search_url .title,\n#apis .title {\n margin: 2em 0 0.5em 0;\n color: var(--color-base-font);\n}\n\n#answers {\n grid-area: answers;\n border: 1px solid var(--color-answer-border);\n background: var(--color-answer-background);\n padding: @result-padding;\n margin: 1rem 0;\n margin-top: 0;\n color: var(--color-answer-font);\n .rounded-corners;\n\n h4 {\n display: none;\n }\n}\n\n#infoboxes {\n form {\n min-width: 210px;\n }\n}\n\n#sidebar {\n grid-area: sidebar;\n word-wrap: break-word;\n color: var(--color-sidebar-font);\n\n .infobox {\n margin: 10px 0 10px;\n border: 1px solid var(--color-sidebar-border);\n padding: 1rem;\n font-size: 0.9em;\n .rounded-corners;\n\n h2 {\n margin: 0 0 0.5em 0;\n }\n\n img {\n max-width: 100%;\n max-height: 12em;\n display: block;\n margin: 0 auto;\n padding: 0;\n }\n\n dl {\n margin: 0.5em 0;\n }\n\n dt {\n display: inline;\n margin: 0.5em 0.25em 0.5em 0;\n padding: 0;\n font-weight: bold;\n }\n\n dd {\n display: inline;\n margin: 0.5em 0;\n padding: 0;\n }\n\n input {\n font-size: 1em;\n }\n\n br {\n clear: both;\n }\n\n .attributes,\n .urls {\n clear: both;\n }\n }\n}\n\n#search_url {\n margin-top: 8px;\n\n div.selectable_url {\n pre {\n width: 200em;\n }\n }\n}\n\n#linkto_preferences {\n position: absolute;\n right: 10px;\n top: 2.2rem;\n padding: 0;\n border: 0;\n display: block;\n font-size: 1.2em;\n color: var(--color-search-font);\n\n a:link *,\n a:hover *,\n a:visited *,\n a:active * {\n color: var(--color-search-font);\n }\n}\n\n#pagination {\n grid-area: pagination;\n\n br {\n clear: both;\n }\n}\n\n#apis {\n margin-top: 8px;\n clear: both;\n}\n\n#backToTop {\n border: 1px solid var(--color-backtotop-border);\n margin: 0;\n padding: 0;\n font-size: 1em;\n background: var(--color-backtotop-background);\n position: fixed;\n bottom: 8rem;\n left: @results-width + @results-offset + (0.5 * @results-gap - 1.2em);\n transition: opacity 0.5s;\n opacity: 0;\n .rounded-corners;\n\n a {\n display: block;\n margin: 0;\n padding: 0.7em;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-backtotop-font);\n }\n}\n\n#results.scrolling #backToTop {\n opacity: 1;\n}\n\n@media screen and (max-width: @tablet) {\n #main_preferences,\n #main_about,\n #main_stats {\n margin: 2rem 0.5rem;\n width: auto;\n }\n\n #infoboxes {\n position: inherit;\n max-width: inherit;\n\n .infobox {\n clear: both;\n\n img {\n float: left;\n max-width: 10em;\n margin: 0.5em 0.5em 0.5em 0;\n }\n }\n }\n\n #sidebar {\n margin-bottom: @results-margin;\n padding: 0;\n float: none;\n border: none;\n width: auto;\n\n input {\n border: 0;\n }\n }\n\n #apis {\n display: none;\n }\n\n #search_url {\n display: none;\n }\n\n .result {\n .thumbnail {\n max-width: 98%;\n }\n\n .url {\n span.url {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 100%;\n }\n }\n\n .engines {\n float: right;\n padding: 0 0 3px 0;\n }\n }\n\n .result-images {\n border-bottom: none !important;\n }\n\n .image_result {\n max-width: 98%;\n\n img {\n max-width: 98%;\n }\n }\n\n #backToTop {\n display: none;\n }\n\n #pagination {\n margin: 2rem 0 0 0 !important;\n }\n\n #main_results div#results {\n margin: 1rem auto 0 auto;\n justify-content: center;\n display: grid;\n grid-template-columns: @results-width;\n grid-template-rows: min-content min-content min-content 1fr min-content min-content;\n gap: 0;\n grid-template-areas:\n \"corrections\"\n \"answers\"\n \"sidebar\"\n \"urls\"\n \"pagination\";\n }\n}\n\n#main_results div#results.only_template_images {\n margin: 1rem @results-tablet-offset 0 @results-tablet-offset;\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: min-content min-content 1fr min-content min-content;\n gap: 0;\n grid-template-areas:\n \"corrections\"\n \"urls\"\n \"answers\"\n \"sidebar\"\n \"pagination\";\n\n #urls {\n width: inherit;\n margin: 0;\n }\n\n #backToTop {\n left: auto;\n right: 1rem;\n }\n\n #pagination {\n margin-right: 4rem;\n }\n}\n\n@media screen and (max-width: @phone) {\n #main_results div#results {\n grid-template-columns: 100%;\n margin: 2rem @results-tablet-offset 0 @results-tablet-offset;\n }\n\n #linkto_preferences {\n top: 0.8rem;\n right: 0.7rem;\n }\n\n #main_index #linkto_preferences {\n top: 0.5rem;\n right: 0.5rem;\n }\n\n #results {\n margin: 0;\n padding: 0;\n }\n\n #pagination {\n margin: 2rem 1rem 0 1rem !important;\n }\n\n article[data-vim-selected] {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n }\n\n .result {\n border: 1px solid var(--color-result-border);\n margin: 1rem 0;\n .rounded-corners;\n }\n\n .result-images {\n margin: 0;\n padding: 0;\n border: none;\n }\n}\n\n@media screen and (max-width: @small-phone) {\n .result-videos {\n img.thumbnail {\n float: none !important;\n }\n\n .content {\n overflow: inherit;\n }\n }\n}\n\npre code {\n white-space: pre-wrap;\n}\n"]} \ No newline at end of file
+{"version":3,"sources":["../__common__/less/new_issue.less","../__common__/less/stats.less","src/generated/pygments.less","../__common__/less/result_templates.less","node_modules/normalize.css/normalize.css","src/less/definitions.less","src/less/code.less","src/less/toolkit.less","src/less/mixins.less","src/less/autocomplete.less","src/less/detail.less","src/less/animations.less","src/less/index.less","src/less/preferences.less","src/less/search.less","src/less/style.less"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,8ECOJ,KACE,YAAa,KACb,yBAAqC,KAUvC,KACE,OAAQ,EAOV,KACE,QAAS,MAQX,GACE,UAAW,IACX,OAAQ,MAAO,EAWjB,GACE,WAAY,YACZ,OAAmB,EACnB,SAA6B,QAQ/B,IACE,YAAa,UAAW,UACxB,UAAsB,IAUxB,EACE,iBAAkB,YAQpB,YACE,cAAe,KACf,gBAA4B,UAC5B,gBAAoC,UAAU,OAOhD,EACA,OACE,YAAa,OAQf,KACA,IACA,KACE,YAAa,UAAW,UACxB,UAAsB,IAOxB,MACE,UAAW,IAQb,IACA,IACE,UAAW,IACX,YAAa,EACb,SAAU,SACV,eAAgB,SAGlB,IACE,OAAQ,OAGV,IACE,IAAK,MAUP,IACE,aAAc,KAWhB,OACA,MACA,SACA,OACA,SACE,YAAa,QACb,UAAsB,KACtB,YAAgC,KAChC,OAAmC,EAQrC,OACA,MACE,SAAqB,QAQvB,OACA,OACE,eAA2B,KAQ7B,cACA,aACA,cAHA,OAIE,mBAAoB,OAQtB,gCACA,+BACA,gCAHA,yBAIE,aAAc,KACd,QAAS,EAQX,6BACA,4BACA,6BAHA,sBAIE,QAAS,IAAI,OAAO,WAOtB,SACE,QAAS,MAAO,MAAO,OAUzB,OACE,WAAY,WACZ,MAAkB,QAClB,QAA4B,MAC5B,UAAsC,KACtC,QAA4C,EAC5C,YAAwD,OAO1D,SACE,eAAgB,SAOlB,SACE,SAAU,KAQZ,gBACA,aACE,WAAY,WACZ,QAAoB,EAOtB,yCACA,yCACE,OAAQ,KAQV,cACE,mBAAoB,UACpB,eAA2B,KAO7B,yCACE,mBAAoB,KAQtB,6BACE,mBAAoB,OACpB,KAAiB,QAUnB,QACE,QAAS,MAOX,QACE,QAAS,UAUX,SACE,QAAS,KAOX,SACE,QAAS,KCpVX,MAEE,kBAAA,KACA,sBAAA,GAAA,GAAA,GACA,wBAAA,KACA,iBAAA,QACA,yBAAA,KAEA,0BAAA,QACA,sBAAA,KAEA,0BAAA,QACA,sBAAA,KAEA,uBAAA,KACA,qBAAA,KAEA,uBAAA,KACA,yBAAA,KACA,6BAAA,KAEA,uBAAA,QACA,iBAAA,KAEA,sBAAA,KACA,0BAAA,KACA,oBAAA,KACA,gCAAA,QAEA,cAAA,QACA,yBAAA,QACA,gBAAA,QACA,2BAAA,QACA,gBAAA,QACA,2BAAA,QAEA,sCAAA,QACA,wCAAA,QAEA,0BAAA,KACA,4BAAA,KACA,gCAAA,KACA,sCAAA,QAEA,sBAAA,KACA,oBAAA,KACA,0BAAA,QAEA,sBAAA,KACA,wBAAA,KACA,4BAAA,QACA,yBAAA,QACA,0CAAA,KACA,yBAAA,QACA,mCAAA,QACA,iCAAA,KACA,gCAAA,KACA,4BAAA,KACA,iCAAA,KACA,+BAAA,KAEA,2CAAA,mBACA,+BAAA,KACA,gCAAA,KAEA,0BAAA,QACA,yCAAA,QACA,yCAAA,MAEA,2BAAA,KACA,iCAAA,UACA,iCAAA,KACA,yBAAA,KACA,2BAAA,KACA,oCAAA,yBACA,wCAAA,iBAEA,2BAAA,KACA,iCAAA,KACA,yBAAA,KACA,+BAAA,KACA,8BAAA,KACA,kCAAA,KACA,kCAAA,KACA,oCAAA,KACA,kCAAA,QACA,8BAAA,KACA,wCAAA,KACA,gCAAA,KACA,0CAAA,KACA,gDAAA,QACA,kDAAA,KACA,0CAAA,KACA,sCAAA,KACA,sCAAA,QACA,sCAAA,KACA,0CAAA,KACA,8BAAA,mBACA,kCAAA,uBAyGkC,mCAC7B,iBArGL,kBAAA,KACA,sBAAA,IAAA,IAAA,IACA,wBAAA,KACA,iBAAA,KACA,yBAAA,KAEA,0BAAA,QACA,sBAAA,KAEA,0BAAA,QACA,sBAAA,KAEA,uBAAA,KACA,qBAAA,KAEA,uBAAA,KACA,yBAAA,KACA,6BAAA,QAEA,uBAAA,KACA,iBAAA,KAEA,sBAAA,KACA,0BAAA,KACA,oBAAA,KACA,gCAAA,KAEA,cAAA,QACA,yBAAA,QACA,gBAAA,QACA,2BAAA,QACA,gBAAA,QACA,2BAAA,QAEA,sCAAA,KACA,wCAAA,KAEA,0BAAA,KACA,4BAAA,KACA,gCAAA,KACA,sCAAA,QAEA,sBAAA,KACA,oBAAA,KACA,0BAAA,QAEA,sBAAA,KACA,wBAAA,KACA,4BAAA,QACA,yBAAA,KACA,0CAAA,KACA,yBAAA,KACA,mCAAA,KACA,iCAAA,KACA,gCAAA,KACA,4BAAA,KACA,iCAAA,KACA,+BAAA,KAEA,2BAAA,KACA,iCAAA,UACA,iCAAA,KACA,yBAAA,KACA,2BAAA,KACA,oCAAA,yBACA,wCAAA,iBAEA,2CAAA,mBACA,+BAAA,KACA,gCAAA,KAEA,0BAAA,QACA,yCAAA,QACA,yCAAA,QAEA,2BAAA,KACA,iCAAA,KACA,yBAAA,KACA,+BAAA,KACA,8BAAA,KACA,kCAAA,KACA,kCAAA,KACA,oCAAA,KACA,kCAAA,QACA,8BAAA,KACA,wCAAA,KACA,gCAAA,KACA,0CAAA,QACA,gDAAA,KACA,kDAAA,KACA,0CAAA,KACA,sCAAA,KACA,sCAAA,KACA,sCAAA,KACA,0CAAA,KACA,8BAAA,yBACA,kCAAA,kBAWG,iBA3GH,kBAAA,KACA,sBAAA,IAAA,IAAA,IACA,wBAAA,KACA,iBAAA,KACA,yBAAA,KAEA,0BAAA,QACA,sBAAA,KAEA,0BAAA,QACA,sBAAA,KAEA,uBAAA,KACA,qBAAA,KAEA,uBAAA,KACA,yBAAA,KACA,6BAAA,QAEA,uBAAA,KACA,iBAAA,KAEA,sBAAA,KACA,0BAAA,KACA,oBAAA,KACA,gCAAA,KAEA,cAAA,QACA,yBAAA,QACA,gBAAA,QACA,2BAAA,QACA,gBAAA,QACA,2BAAA,QAEA,sCAAA,KACA,wCAAA,KAEA,0BAAA,KACA,4BAAA,KACA,gCAAA,KACA,sCAAA,QAEA,sBAAA,KACA,oBAAA,KACA,0BAAA,QAEA,sBAAA,KACA,wBAAA,KACA,4BAAA,QACA,yBAAA,KACA,0CAAA,KACA,yBAAA,KACA,mCAAA,KACA,iCAAA,KACA,gCAAA,KACA,4BAAA,KACA,iCAAA,KACA,+BAAA,KAEA,2BAAA,KACA,iCAAA,UACA,iCAAA,KACA,yBAAA,KACA,2BAAA,KACA,oCAAA,yBACA,wCAAA,iBAEA,2CAAA,mBACA,+BAAA,KACA,gCAAA,KAEA,0BAAA,QACA,yCAAA,QACA,yCAAA,QAEA,2BAAA,KACA,iCAAA,KACA,yBAAA,KACA,+BAAA,KACA,8BAAA,KACA,kCAAA,KACA,kCAAA,KACA,oCAAA,KACA,kCAAA,QACA,8BAAA,KACA,wCAAA,KACA,gCAAA,KACA,0CAAA,QACA,gDAAA,KACA,kDAAA,KACA,0CAAA,KACA,sCAAA,KACA,sCAAA,KACA,sCAAA,KACA,0CAAA,KACA,8BAAA,yBACA,kCAAA,iBC9Mc,oBACd,SAAA,KACA,iBAAA,QACA,MAAA,QACA,OAAA,QJCc,yBACZ,sBAAA,KACA,oBAAA,KACA,mBAAA,KACA,iBAAA,KACA,gBAAA,KACA,YAAA,KACA,OAAA,QASA,aAAA,IACA,WAAA,MARC,oCACG,WAAA,IAEH,yCACG,WAAA,IAOQ,oBAAM,YAAA,KACK,mCAAU,MAAA,QAAgB,iBAAA,YAA+B,aAAA,IAAmB,cAAA,IACnF,6BAAW,MAAA,QAAgB,iBAAA,YAA+B,aAAA,IAAmB,cAAA,IACtE,oCAAW,MAAA,KAAgB,iBAAA,QAA2B,aAAA,IAAmB,cAAA,IACxE,qCAAW,MAAA,KAAgB,iBAAA,QAA2B,aAAA,IAAmB,cAAA,IACrF,qBAAO,iBAAA,KACvB,gBAAkB,WAAA,QACF,mBAAK,MAAA,QAAgB,WAAA,OACrB,qBAAO,OAAA,IAAA,MAAA,IACP,mBAAK,MAAA,MAAgB,YAAA,IACrB,mBAAK,MAAA,KACL,oBAAM,MAAA,QAAgB,WAAA,OACtB,oBAAM,MAAA,QAAgB,WAAA,OACtB,oBAAM,MAAA,QACN,qBAAO,MAAA,QAAgB,WAAA,OACvB,oBAAM,MAAA,QAAgB,WAAA,OACtB,oBAAM,MAAA,QAAgB,WAAA,OACtB,oBAAM,MAAA,QACN,oBAAM,WAAA,OACN,oBAAM,MAAA,QACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,oBAAM,YAAA,IACN,oBAAM,MAAA,OAAgB,YAAA,IACtB,oBAAM,MAAA,KACN,oBAAM,MAAA,MAAgB,YAAA,IACtB,oBAAM,MAAA,MAAgB,YAAA,IACtB,oBAAM,MAAA,MAAgB,YAAA,IACtB,oBAAM,MAAA,MACN,oBAAM,MAAA,MAAgB,YAAA,IACtB,oBAAM,MAAA,QACN,mBAAK,MAAA,KACL,mBAAK,MAAA,QACL,oBAAM,MAAA,QACN,oBAAM,MAAA,MACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,oBAAM,MAAA,KACN,oBAAM,MAAA,KACN,oBAAM,MAAA,QAAgB,YAAA,IACtB,oBAAM,MAAA,QAAgB,YAAA,IACtB,oBAAM,MAAA,KACN,oBAAM,MAAA,QACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,oBAAM,MAAA,MAAgB,YAAA,IACtB,oBAAM,MAAA,QACN,oBAAM,MAAA,KAAgB,YAAA,IACtB,mBAAK,MAAA,KACL,oBAAM,MAAA,KACN,oBAAM,MAAA,KACN,oBAAM,MAAA,KACN,oBAAM,MAAA,KACN,oBAAM,MAAA,KACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QAAgB,WAAA,OACtB,oBAAM,MAAA,QACN,oBAAM,MAAA,QAAgB,YAAA,IACtB,oBAAM,MAAA,QACN,oBAAM,MAAA,QAAgB,YAAA,IACtB,oBAAM,MAAA,MACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,MACN,oBAAM,MAAA,KACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,QACN,oBAAM,MAAA,KK9FX,yBACT,QAAA,KAGM,sBACN,QAAA,KAGF,QACE,WAAA,OAGF,OACE,MAAA,MAGF,MACE,MAAA,KAGF,WACE,QAAA,eAGF,eACE,gBAAA,KAEA,kBACE,WAAA,IACA,cAAA,IAIJ,QACE,iBAAkB,8BAGpB,SACE,WAAY,gCAGd,SACE,WAAY,gCAGd,OACE,QAAA,aACA,MAAO,gCACP,iBAAkB,sCAClB,WAAA,OACA,YAAA,OACA,eAAA,SACA,UAAA,KACA,QAAA,IAAA,IACA,cAAA,IAIF,IACE,QAAA,IAAA,IACA,OAAA,IACA,UAAA,IACA,MAAO,8BACP,WAAY,oCAId,MACE,MAAA,KAGE,iBACE,cAAA,IAAA,MAAyB,+BAK/B,GACE,QAAA,KAGF,GACE,QAAA,EAAA,IAIC,SACC,WAAA,yCAaD,mBACD,QAAA,MACA,OAAA,IAAA,MAAkB,sCAClB,QAAA,IACA,MAAO,oCACP,OAAA,KACA,SAAA,OACA,OAAA,MACA,YAAA,MC7FA,cAAA,IDgGA,uBAlBA,QAAA,MACA,UAAA,KACA,WAAA,UACA,OAAA,KACA,YAAA,IAiEF,cA5CE,SAAA,SACA,QAAA,KACA,QAAA,KACA,OAAA,EAAA,EAAA,IAAA,EACA,OAAA,IAAA,MAAkB,mCAClB,WAAA,KCpHA,cAAA,KD8JA,MAAO,mBACP,WAAY,8BACZ,aAAc,mBAzCd,qBACE,MAAA,MACA,SAAA,SACA,IAAA,KACA,MAAA,QACA,UAAA,MAIF,iBACA,gBAFA,iBAGE,OAAA,IAAA,EAAA,EAAA,EAGF,oBACE,MAAA,KAGF,iBACE,eAAA,SAEC,uBACC,WAAA,cAIJ,iBACE,QAAA,EAAA,IAAA,EAAA,EAGF,iBACE,WAAA,KACA,cAAA,KAYJ,gBApDE,SAAA,SACA,QAAA,KACA,QAAA,KACA,OAAA,EAAA,EAAA,IAAA,EACA,OAAA,IAAA,MAAkB,mCAClB,WAAA,KCpHA,cAAA,KDsKA,MAAO,qBACP,WAAY,gCACZ,aAAc,qBAjDd,uBACE,MAAA,MACA,SAAA,SACA,IAAA,KACA,MAAA,QACA,UAAA,MAIF,mBACA,kBAFA,mBAGE,OAAA,IAAA,EAAA,EAAA,EAGF,sBACE,MAAA,KAGF,mBACE,eAAA,SAEC,yBACC,WAAA,cAIJ,mBACE,QAAA,EAAA,IAAA,EAAA,EAGF,mBACE,WAAA,KACA,cAAA,KAoBJ,cA5DE,SAAA,SACA,QAAA,KACA,QAAA,KACA,OAAA,EAAA,EAAA,IAAA,EACA,OAAA,IAAA,MAAkB,mCAClB,WAAA,KCpHA,cAAA,KD8KA,QAAA,MACA,WAAY,uCACZ,SAAA,MACA,IAAA,IACA,KAAA,IACA,OAAA,EAAA,KACA,UAAW,qBACX,QAAA,SA9DA,qBACE,MAAA,MACA,SAAA,SACA,IAAA,KACA,MAAA,QACA,UAAA,MAIF,iBACA,gBAFA,iBAGE,OAAA,IAAA,EAAA,EAAA,EAGF,oBACE,MAAA,KAGF,iBACE,eAAA,SAEC,uBACC,WAAA,cAIJ,iBACE,QAAA,EAAA,IAAA,EAAA,EAGF,iBACE,WAAA,KACA,cAAA,KAgCF,iBACE,WAAA,EAKJ,cACE,OAAA,QAIF,SACE,WAAA,KACA,WAAA,OACA,QAAA,MACA,QAAA,EACA,OAAA,EACA,OAAA,KAIU,kBACV,UAAA,IAGF,MACE,QAAA,KACA,UAAA,KACA,MAAA,KACA,UAAA,KAEE,QACA,MAAA,EAGO,wBACP,QAAA,KAGA,YACA,MAAA,EACA,QAAA,KACA,OAAA,EAAA,KACA,eAAA,KACA,eAAA,UACA,OAAA,MAAc,uCACd,aAAA,EAAA,EAAA,IAAA,ECxNF,sBAAA,KACA,YAAA,KD2NE,OAAA,QAGO,kBACP,cAAA,IAAA,MAAyB,6CAGzB,cACA,UAAA,KACA,QAAA,MAAA,EACA,WAAA,WACA,WAAA,IAAA,MAAsB,yCACtB,QAAA,KAIO,yBACP,cAAA,IAAA,MAAyB,6CACzB,WAAY,sCACZ,MAAO,2CACP,eAAA,MAGS,2BACT,QAAA,MAKF,sCACE,QAAA,KAGF,oCACE,SAAA,UACA,WAAA,QACA,cAAA,IAAA,MAAA,YACA,YAAA,IACA,MAAA,QAEC,0CACC,cAAA,IAAA,MAAyB,6CAI7B,oCACE,cAAA,IAAA,MAAyB,6CACzB,WAAY,sCACZ,MAAO,2CAGD,4CACN,QAAA,MAKJ,OACE,OAAA,OACA,OAAA,EAAA,KAAA,EAAA,EACA,QAAA,gBACA,MAAO,yBACP,UAAA,MACA,QAAA,EAGC,aADA,aAEC,OAAA,QAIJ,wHACE,OACE,WAAA,KACA,mBAAA,KACA,gBAAA,KACA,aAAA,EAAA,KAAA,EAAA,EACA,aAAA,YACA,WAAY,2VAAA,UACZ,sBAAuB,kBACvB,gBAAA,KACA,kBAAA,YACA,iBAAkB,uCAClB,QAAA,OAAA,KACA,cAAA,SCrTF,cAAA,IDyTG,aADA,aAEC,iBAAkB,6CAGpB,cACE,iBAAkB,6BAIc,mCAClB,uBACA,uBACd,iBAAkB,kXAIN,uBACd,iBAAkB,kXAKtB,+BACE,gBACE,QAAA,aACA,MAAA,KACA,OAAA,KACA,WAAY,+CACZ,OAAA,IAAA,KACA,SAAA,SACA,cAAA,KAEA,sBACE,QAAA,MACA,MAAA,KACA,OAAA,KACA,SAAA,SACA,IAAA,KACA,OAAA,QACA,cAAA,KACA,WAAA,IAAA,IAAA,KACA,KAAA,KACA,iBAAkB,qDAGf,qCACH,WAAA,OAEU,mDACR,KAAA,KACA,WAAY,wDAOpB,qCACE,UACE,MAAA,KACA,SAAA,SACA,OAAA,KAAA,KAEA,gBACE,MAAA,KACA,OAAA,KACA,OAAA,QACA,SAAA,SACA,IAAA,EACA,KAAA,EACA,WAAY,+CCvYhB,cAAA,KD0YK,uBACC,QAAA,GACA,MAAA,IACA,OAAA,IACA,SAAA,SACA,IAAA,IACA,KAAA,IACA,OAAA,IAAA,MAAkB,2CAClB,WAAA,KACA,aAAA,KACA,WAAA,IACA,QAAA,EACA,UAAW,eAIV,+BACH,WAAA,OAEiB,oDACf,aAAc,2CACd,QAAA,EAKY,gCACd,iBAAA,sBACA,OAAA,QAI+D,iFAC/D,QAAA,IAKgC,mCAC9B,YACJ,MAAA,MAKJ,QACO,eACL,cAAA,IACA,MAAA,IACA,OAAA,IAGF,QACE,OAAA,IAAA,KACA,UAAA,KACA,SAAA,SACA,YAAA,QACA,WAAA,KAAA,MAAwB,mCACxB,aAAA,KAAA,MAA0B,mCAC1B,cAAA,KAAA,MAA2B,mCAC3B,YAAA,KAAA,MAAyB,uCACzB,kBAAmB,cACnB,cAAe,cACf,UAAW,cACX,kBAAA,MAAA,KAAA,SAAA,OACA,UAAA,MAAA,KAAA,SAAA,OAGF,yBACE,GACE,kBAAmB,UACnB,UAAW,UAGb,KACE,kBAAmB,eACnB,UAAW,gBAIf,iBACE,GACE,kBAAmB,UACnB,UAAW,UAGb,KACE,kBAAmB,eACnB,UAAW,gBAKf,gBACE,QAAA,KACA,SAAA,SACA,QAAA,MAAA,KACA,OAAA,EAAA,EAAA,EAAA,KACA,OAAA,IAAA,MAAkB,2CAClB,WAAY,+CACZ,UAAA,KACA,YAAA,IACA,QAAA,QACA,WAAA,KCjfA,cAAA,KDufa,sBADN,yBADA,yBAGP,QAAA,aAIF,mBACE,OAAA,EACA,QAAA,EAAA,QAAA,EAAA,KACA,MAAA,KACA,MAAA,eACA,MAAA,uBACA,MAAA,KACA,eAAA,IACA,UAAA,OACA,YAAA,OACA,QAAA,YAGF,yBACE,MAAA,KACA,QAAA,aACA,SAAA,SACA,QAAA,EAAA,MACA,WAAA,MAGF,wBACE,QAAA,KACA,YAAA,EACA,UAAA,EACA,WAAA,MAGF,0BANE,QAAA,KACA,YAAA,EACA,UAAA,EACA,WAAA,MAMA,WAAY,uBACZ,OAAA,IAAA,MAAuB,oCACvB,QAAA,MAAA,EAGF,0BAdE,QAAA,KACA,YAAA,EACA,UAAA,EACA,WAAA,MAcA,WAAA,IACA,OAAA,IAAA,MAAuB,oCACvB,QAAA,MAAA,EAGF,0BAtBE,QAAA,KACA,YAAA,EACA,UAAA,EACA,WAAA,MAsBA,WAAA,IACA,cAAA,IAAA,OAA+B,oCAC/B,QAAA,EAGF,2BA9BE,QAAA,KACA,YAAA,EACA,UAAA,EACA,WAAA,MA8BA,WAAA,IACA,YAAA,IAAA,MAA4B,oCAC5B,QAAA,MAAA,EACA,MAAA,wGE/jBF,cACE,SAAA,SACA,WAAA,EACA,WAAA,OACA,WAAA,KDKA,cAAA,KCFC,qBACA,oBACA,oBACC,iBAAkB,qCAGnB,oBACC,QAAA,KAGF,iBACE,gBAAA,KACA,OAAA,EACA,QAAA,EAEA,oBACE,OAAA,QACA,QAAA,IAAA,EAAA,IAAA,IAEC,2BACA,2BACA,0BACA,0BACC,iBAAkB,2CAEjB,oCACA,mCACA,mCAFA,oCACA,mCACA,mCAFA,mCACA,kCACA,kCAFA,mCACA,kCACA,kCACC,gBAAA,KAIH,2BACC,OAAA,QAKL,mBACC,QAAA,MACA,iBAAkB,qCAClB,MAAO,+BACP,OAAA,IAAA,MAAkB,iCAClB,WAAA,MACA,WAAA,KACA,QAAA,IAEC,yBACC,QAAA,KAKgC,mCACpC,cACE,OAAA,EAGiB,oBACjB,cAAA,IAAA,MAAyB,+BACzB,WAAA,MCrEoC,8DACtC,MAAA,4BAG4D,yEAC5D,KAAA,mBACA,MAAA,QAGoB,8BACpB,QAAA,KAGkE,4EAClE,QAAA,KACA,eAAA,OACA,SAAA,MACA,KAAA,MACA,MAAA,EACA,IAAA,QACA,WAAA,IAAA,KAAA,QAAA,GACA,OAAA,EACA,WAAY,sCACZ,OAAA,IAAA,MAAkB,sCAClB,QAAA,MACA,QAAA,KAAA,KAAA,KAAA,KAEC,mGACC,QAAA,MACA,KAAA,EACA,WAAA,KACA,MAAA,KACA,OAAA,KACA,gBAAA,KAEA,uGACE,QAAA,EACA,OAAA,EACA,OAAA,KACA,WAAA,QACA,MAAA,QACA,UAAA,KACA,WAAA,QACA,WAAY,2BACZ,WAAA,QAIJ,kGACE,MAAO,gCACP,WAAA,MACA,WAAA,MAEA,qGACE,WAAA,IAAA,MAAsB,8BACtB,cAAA,KAGF,qGACE,OAAA,KACA,SAAA,OACA,cAAA,SACA,UAAA,MAGF,oGACE,MAAO,sCACP,UAAA,MAEA,yGACE,QAAA,aACA,MAAA,MAMJ,oGAFA,qGACA,oGAEE,WAAA,KAGD,mHACC,OAAA,KACA,SAAA,OACA,cAAA,SAGD,+GACC,YAAA,OACA,WAAA,OACA,cAAA,SAGc,yHACJ,qHACV,SAAA,SACA,SAAA,kBACA,WAAY,sCACZ,cAAA,kBAGF,oGAGC,2GADA,0GADA,4GAGC,MAAO,gCAGR,0GACC,gBAAA,UAIH,kGACC,IAAA,KACA,KAAA,KACA,QAAA,MAGD,qGACC,IAAA,KACA,MAAA,KAEA,QAAA,MAAA,MAAA,MAAA,MAGD,iGACC,IAAA,KACA,MAAA,KACA,QAAA,MAGD,kGACA,iGACA,qGACC,cAAA,IACA,QAAA,MACA,MAAA,OACA,OAAA,OACA,SAAA,SACA,OAAQ,aACR,QAAA,QAEA,uGAAA,sGAAA,0GACE,QAAA,MACA,MAAA,OACA,OAAA,OACA,WAAA,OAME,8GAAA,kHAEF,eAAA,IAIH,kGAGoB,yGADA,wGADA,0GAOpB,iGAGmB,wGADA,uGADA,yGALnB,qGAGuB,4GADA,2GADA,6GAOtB,MAAO,gCACP,WAAY,sCACZ,OAAA,IAAA,MAAkB,gCAGC,wGACA,wGAGD,uGACA,uGAHI,2GACA,2GAGtB,OAAQ,aAGV,oFACE,SAAA,SACA,IAAA,KACA,MAAA,IACA,WAAA,KAAA,MAAwB,yCACxB,aAAA,KAAA,MAA0B,yCAC1B,cAAA,KAAA,MAA2B,yCAC3B,YAAA,KAAA,MAAyB,6CAIiD,sFAC5E,IAAA,EAEuB,iHACrB,WAAY,oBAIuB,mCAC+B,4EAClE,IAAA,EACA,KAAA,EAEC,mGACC,QAAA,KACA,eAAA,OACA,gBAAA,OAEA,uGACE,MAAA,KACA,WAAY,oBAIf,iGACC,MAAA,MAKgC,mCACgC,4EAClE,IAAA,EACA,KAAA,EACA,QAAA,KAEuB,uGACrB,MAAA,KACA,WAAY,oBACZ,OAAA,EAGsB,yGACtB,MAAA,QACA,aAAA,MChPN,cACE,eAAA,YACA,mBAAA,KAEA,uBACE,GACE,QAAA,EAGF,IACE,QAAA,GACA,UAAW,qBAAsB,aCXvC,YACE,WAAA,KAEA,gCACE,MAAA,OAIJ,OACE,WAAA,OAEA,cACE,WAAgB,wBAAA,UAChB,WAAA,KACA,OAAA,KAAA,KACA,oBAAA,OACA,gBAAA,QAGF,UACE,UAAA,IACA,WAAA,OAGF,eACA,sBACE,OAAA,EAAA,KACA,WAAA,QACA,OAAA,QACA,QAAA,EACA,QAAA,MAGF,uBACE,QAAA,MACA,OAAA,IAAA,EAGQ,uBACR,QAAA,IAAA,KACA,cAAA,kBAImC,mCAEnC,aACE,UAAA,IAIJ,YACE,WAAA,KAIkC,mCACpC,YACE,WAAA,GC1DoB,2BACA,2BACtB,WAAA,eACA,OAAA,KAIA,uBACE,MAAA,KAGF,2BACE,OAAA,IACA,OAAA,KAGF,yBACE,OAAA,EACA,QAAA,IAAA,EAAA,EAAA,EACA,QAAA,MACA,MAAA,KACA,MAAA,MAGF,yBACE,OAAA,EACA,QAAA,EACA,MAAA,KACA,MAAA,KAGK,0CADL,gCAEE,UAAA,kBACA,OAAA,EAAA,KAAA,EAAA,EAGF,gCACE,MAAA,MAGG,0CACH,MAAA,SACA,MAAO,qCACP,OAAA,KACA,WAAA,KAAA,OAAA,OAAA,EAAA,EAAmC,uCACnC,QAAA,MAAA,MACA,OAAA,KL3BJ,cAAA,IK+BK,gDADA,gDAEC,iBAAkB,6CAKjB,qCADC,sCAEJ,QAAA,EACA,WAAA,EAAA,EAAA,IAAA,IAAwB,4BAI5B,+BACE,OAAA,EACA,QAAA,IAAA,EAAA,EAAA,EACA,MAAA,KACA,MAAA,IACA,MAAO,8CACP,UAAA,IAGF,wBACE,gBAAA,SAGI,2BACJ,WAAA,OAGG,gCACH,MAAA,KAGA,mCADA,mCAEE,WAAA,KACA,YAAA,UACA,UAAA,KACA,QAAA,KACA,eAAA,IAGA,+CACA,WAAA,SACA,MAAA,MACA,cAAA,KAGA,8CACA,WAAA,UAI6B,4DADA,4DAE7B,iBAAkB,+BAItB,4BACE,aAAA,MAEA,kCACE,OAAA,IAAA,MAAA,YACA,QAAA,MAAA,ML7FJ,cAAA,IKkGyC,+DACvC,OAAA,IAAA,MAAkB,6CAGpB,wBACA,4BACE,WAAA,KAGF,oCACE,WAAA,KAAA,OAAA,OAAA,EAAA,EAAmC,4BACnC,MAAO,sBACP,OAAA,EAAA,KLtHF,cAAA,KKyHE,OAAA,QACA,QAAA,aACA,OAAA,IAAA,IACA,QAAA,KAEA,sCACE,MAAO,kCAGR,oDACC,eAAA,UAKF,yCACE,MAAA,KAKF,0CACE,WAAA,OACA,KAAM,8BACN,UAAA,MAEA,8DACE,WAAA,MAKN,gCACE,WAAA,KACA,YAAA,IACA,WAAY,8CAIuB,mCACrC,kBACE,MAAA,KAGF,gBACE,KAAA,gBC7KJ,QACE,QAAA,EACA,OAAA,EAGF,eACE,QAAA,MAAA,IAAA,EAAA,KACA,OAAA,EACA,WAAY,+BACZ,cAAA,IAAA,MAAyB,2BACzB,QAAA,KACA,WAAA,OACA,QAAA,KACA,sBAAA,KAAA,IACA,oBAAA,cAAA,oBAKF,UACE,QAAA,aACA,SAAA,SACA,aAAA,KACA,QAAA,EAEA,gBACE,QAAA,KAGF,gBAKE,OAAA,QACA,QAAA,MAAA,EACA,QAAA,YACA,eAAA,WACA,UAAA,KACA,cAAA,IAAA,MAAA,YNnBF,sBAAA,KACA,YAAA,KMSE,oBACE,cAAA,MAWC,kCACD,OAAA,KAAA,EAI2B,6CAC7B,MAAO,2CACP,cAAA,IAAA,MAAyB,6CAI7B,aACE,UAAA,KACA,QAAA,KACA,YAAA,OACA,gBAAA,OAEA,iBACE,KAAA,EACA,MAAA,KACA,OAAA,KACA,OAAA,MAAA,EAAA,KAAA,EAIJ,mBACE,UAAA,WAGF,YACE,OAAA,EACA,QAAA,EACA,UAAA,OACA,QAAA,YACA,eAAA,IACA,YAAA,OAGF,cACE,QAAA,MACA,gBAAA,SACA,WAAA,WACA,MAAA,MACA,OAAA,EACA,QAAA,IAAA,IACA,WAAA,KAAA,OAAA,OAAA,EAAA,EAAmC,+BACnC,WAAA,IAAA,MAAsB,2BACtB,cAAA,IAAA,MAAyB,2BACzB,aAAA,KACA,YAAA,KACA,cAAA,EACA,QAAA,EACA,MAAO,yBACP,UAAA,KACA,QAAA,MAEC,oBACC,MAAO,qCAGD,sBACN,QAAA,KAIJ,GACA,aACE,QAAA,gBACA,gBAAA,SACA,WAAA,WACA,OAAA,EACA,QAAA,KACA,WAAA,KAAA,OAAA,OAAA,EAAA,EAAmC,+BACnC,OAAA,IAAA,MAAkB,2BAClB,cAAA,EACA,QAAA,EACA,MAAO,yBACP,UAAA,KACA,QAAA,EAGF,GACE,QAAA,OAAA,KACA,aAAA,KACA,cAAA,YACA,aAAA,KACA,MAAA,MACA,cAAA,KAAA,EAAA,EAAA,KAGA,cACA,iCACA,QAAA,KAGF,aACE,YAAA,KACA,cAAA,EAAA,KAAA,KAAA,EAEC,mBACC,OAAA,QACA,iBAAkB,qCAClB,MAAO,+BAIJ,qBACA,oBACL,MAAA,eACA,YAAA,IAAA,MAAuB,2BACvB,QAAA,KAGF,gBACE,OAAA,MAAA,EAAA,EAAA,QAEA,uBACE,iBAAA,QAGC,6BADA,6BAEC,MAAO,uBAK0B,mCACrC,eACE,QAAA,MAAA,MAAA,EAAA,MACA,WAAA,MAGF,gBACE,OAAA,MAAA,EAAA,EAAA,OAGF,YACE,UAAA,IACA,MAAA,KAEA,gCACE,OAAA,KACA,WAAA,IAOA,6CAAA,+CACE,MAAA,YAEA,uDAAA,yDACE,QAAA,aACA,MAAA,KAIJ,mCAAA,qCACE,MAAA,KACA,WAAA,KACA,WAAA,OACA,WAAA,OACA,2BAAA,OAM8B,mCACpC,eACE,MAAA,KACA,OAAA,EACA,QAAA,MAAA,EAAA,EAAA,EACA,WAAA,EACA,QAAA,EACA,oBAAA,cAAA,wBAKF,aACE,QAAA,EAGF,YAEE,MAAA,IACA,QAAA,KACA,eAAA,IAGF,GACE,MAAA,KACA,KAAA,EAGiC,gDACjC,aAAA,OACA,WAAA,aAAA,IAGF,gBACE,OAAA,EAGF,UACE,QAAA,MACA,MAAA,KACA,OAAA,EAEA,gBACE,QAAA,gBACA,OAAA,YAEA,oBACE,QAAA,MAM0C,oCAChD,eACE,oBAAA,gBAAA,wBAKF,aACE,QAAA,MAIJ,YNhQE,sBAAA,KACA,YAAA,KMkQC,+BACC,MAAA,EACA,OAAA,EAIJ,sBACE,SAAA,SCpQF,UACE,QAAA,aACA,eAAA,OACA,YAAA,EACA,gBAAA,QAGF,gBACE,MAAA,KACA,OAAA,KARA,QAAA,aACA,eAAA,OACA,YAAA,EACA,gBAAA,QASF,cACE,MAAA,OACA,OAAA,OAdA,QAAA,aACA,eAAA,OACA,YAAA,EACA,gBAAA,QAgBF,KACE,YAAA,WACA,UAAA,KPhDA,yBAAA,KACA,qBAAA,KACA,sBAAA,KACA,iBAAA,KOgDA,MAAO,uBACP,iBAAkB,6BAClB,QAAA,EACA,OAAA,EAGF,KACA,KACE,QAAA,EACA,OAAA,EAGF,KACE,QAAA,KACA,eAAA,OACA,OAAA,MACA,OAAA,EAGF,KACE,MAAA,KACA,cAAA,KACA,KAAA,EAIF,YADA,kBAEA,YACE,OAAA,IAAA,KACA,MAAA,KAGF,OACE,MAAA,KACA,WAAA,KACA,QAAA,KAAA,EACA,MAAA,KACA,WAAA,OACA,iBAAkB,+BAClB,WAAA,IAAA,MAAsB,2BACtB,SAAA,OAEA,SACE,UAAA,KAIc,qBACN,eACV,WAAgB,wBAAA,UAChB,gBAAA,QACA,WAAA,KACA,OAAA,EAAA,KAEA,0BAAA,oBACE,WAAA,OAKW,6BADV,mBAEH,QAAA,MACA,QAAA,aACA,WAAY,4BACZ,MAAO,sBP5GP,cAAA,KO+GA,OAAA,EACA,OAAA,QAGF,EACE,gBAAA,KACA,MAAO,sBAEN,UACC,MAAO,8BAEP,qBACE,MAAO,8BAKN,2BACL,WAAY,iCACZ,YAAA,MAAA,MAA0B,8BP9H1B,cAAA,EAAA,KAAA,KAAA,EOkImB,yCACnB,WAAY,8BACZ,OAAA,KPxIA,cAAA,KO2IA,0DACE,OAAQ,aAQc,0CAFA,wCACA,0CAFA,yCAIA,2CALA,2CAMxB,OAAA,IAAA,MAAkB,8BPtJlB,cAAA,KO0JF,QACE,OAAA,QAAA,EACA,QAAA,KACA,YAAA,MAAA,MAAA,YAEA,WACE,UAAA,OACA,UAAA,WACA,OAAA,MAAA,EAAA,MAAA,EACA,QAAA,EAEA,aACE,MAAO,8BACP,YAAA,IACA,UAAA,MAEC,qBACC,MAAO,sCAGR,mBACA,mBACC,gBAAA,UACA,OAAA,KACA,QAAA,EAKN,oBACA,wBACE,UAAA,eAKF,iBAFA,iBACA,cAEE,UAAA,KACA,OAAA,EACA,QAAA,EACA,UAAA,KACA,UAAA,WACA,YAAA,KAEA,4BAAA,4BAAA,yBACE,MAAO,+CACP,WAAA,QACA,YAAA,IAKF,8BACE,MAAA,QACA,WAAA,QACA,YAAA,IAIJ,qBACE,QAAA,KACA,UAAA,KACA,MAAO,6BACP,UAAA,OACA,SAAA,OACA,eAAA,IACA,OAAA,EACA,QAAA,EAEA,6BACE,YAAA,OACA,YAAA,EAGK,oCACL,QAAA,IACA,MAAA,IACA,QAAA,aAGF,6BACE,SAAA,OACA,YAAA,OACA,WAAA,QACA,UAAA,EACA,YAAA,EACA,WAAA,MAEA,qCACE,MAAA,MAKN,wBACE,UAAA,KACA,MAAO,qCAIN,sBACC,MAAA,KACA,QAAA,MAAA,KAAA,EAAA,EACA,MAAA,MACA,OAAA,MAGD,kBACC,MAAA,KACA,QAAA,MAAA,KAAA,EAAA,EACA,MAAA,KACA,WAAA,KACA,WAAA,WACA,gBAAA,MAAA,IAIJ,eACE,MAAA,KAQJ,gBAFA,cACA,gBAFA,eAIA,iBALA,iBAME,OAAA,IAAA,MAAkB,2BAClB,OAAA,KAAA,EP3RA,cAAA,KO+Re,wBACf,MAAA,eACA,UAAA,KACA,WAAA,KACA,QAAA,EAAA,IAAA,KAAA,YAGa,wBACb,SAAA,OAGF,SACE,MAAA,MACA,MAAO,iCAEP,cACE,UAAA,QACA,OAAA,EAAA,KAAA,EAAA,EAIJ,YACE,UAAA,KAGF,WACE,MAAO,wCACP,WAAA,QAGF,eACE,WAAA,OAGF,eACE,QAAA,aACA,OAAA,EACA,QAAA,EACA,SAAA,SACA,WAAA,MACA,OAAA,eAEA,mBACE,MAAA,QACA,OAAA,QACA,QAAA,EACA,OAAA,KACA,WAAA,MACA,WAAY,qCAGV,0BACF,QAAA,KACA,MAAO,oCAGG,gCACV,QAAA,MACA,SAAA,SACA,OAAA,EACA,MAAA,EACA,QAAA,IACA,OAAA,EAAA,EAAA,IAAA,IAEA,iBAAkB,gDAClB,UAAA,KAKC,sBACD,MAAA,gBACA,OAAA,gBACA,MAAA,eAGF,kBACE,UAAA,KACA,MAAA,KACA,gBAAA,SACA,eAAA,EAAA,OAEA,qBACE,YAAA,QACA,MAAA,MACA,eAAA,IACA,WAAA,KAGF,qBACE,eAAA,IACA,WAAA,KAKN,QACE,QAAA,eAGF,SACE,OAAA,KAAA,KAAA,EAAA,MACA,QAAA,KACA,sBAAA,MAAA,MACA,mBAAA,YAAA,YAAA,IAAA,YACA,IAAA,EAAA,KACA,oBAEE,sBAEA,kBAJF,eAAA,qBAOiB,+BACH,4BACd,WAAA,EAGF,MACE,QAAA,EACA,UAAA,KAIA,sBACE,QAAA,KACA,UAAA,IAAA,KACA,gBAAA,SAEA,2BACE,QAAA,aACA,KAAA,EAAA,EAAA,IAOJ,iBAAA,mBACE,QAAA,EACA,OAAA,IACA,UAAA,KACA,QAAA,aACA,WAAA,IACA,MAAO,oCACP,OAAA,QAIY,2BADT,8BACS,6BADT,gCAEH,MAAO,8BACP,gBAAA,KACA,UAAA,MAEC,iCAAA,oCAAA,mCAAA,sCACC,gBAAA,UAKN,aACE,UAAA,YACA,QAAA,KACA,UAAA,IAAA,KACA,OAAA,EAAA,EAAA,IAAA,EAEA,gBACK,gCACH,QAAA,aACA,QAAA,MACA,OAAA,MAGG,gCACH,UAAA,MPrcF,cAAA,IO4cI,aADM,mBADC,oBAGX,OAAA,IAAA,EAAA,KAAA,EACA,MAAO,uBAGT,SACE,UAAA,QACA,OAAA,IAAA,MAAkB,2BAClB,WAAY,+BACZ,QAAA,KACA,OAAA,KAAA,EACA,WAAA,EACA,MAAO,yBPheP,cAAA,KOmeA,YACE,QAAA,KAKF,gBACE,UAAA,MAIJ,SACE,UAAA,QACA,UAAA,WACA,MAAO,0BAEP,kBACE,OAAA,KAAA,EAAA,KACA,OAAA,IAAA,MAAkB,4BAClB,QAAA,KACA,UAAA,KPvfF,cAAA,KO0fE,qBACE,OAAA,EAAA,EAAA,KAAA,EAGF,sBACE,UAAA,KACA,WAAA,KACA,QAAA,MACA,OAAA,EAAA,KACA,QAAA,EAGF,qBACE,OAAA,KAAA,EAGF,qBACE,QAAA,OACA,OAAA,KAAA,MAAA,KAAA,EACA,QAAA,EACA,YAAA,IAGF,qBACE,QAAA,OACA,OAAA,KAAA,EACA,QAAA,EAGF,wBACE,UAAA,IAGF,qBACE,MAAA,KAGF,8BACA,wBACE,MAAA,KAKN,YACE,WAAA,IAGE,mCACE,MAAA,MAKN,oBACE,SAAA,SACA,MAAA,KACA,IAAA,OACA,QAAA,EACA,OAAA,EACA,QAAA,MACA,UAAA,MACA,MAAO,yBAKE,+BAFD,8BADD,6BAEG,gCAER,MAAO,yBAIX,YACE,UAAA,WAEA,eACE,MAAA,KAIJ,MACE,WAAA,IACA,MAAA,KAGF,WACE,OAAA,IAAA,MAAkB,8BAClB,OAAA,EACA,QAAA,EACA,UAAA,IACA,WAAY,kCACZ,SAAA,MACA,OAAA,KACA,KAAA,QACA,WAAA,QAAA,IACA,QAAA,EPzlBA,cAAA,KO4lBA,aACE,QAAA,MACA,OAAA,EACA,QAAA,KAGF,aAGC,oBADA,mBADA,qBAGC,MAAO,4BAIQ,8BACjB,QAAA,EAGqC,mCAErC,YADA,kBAEA,YACE,OAAA,KAAA,MACA,MAAA,KAGF,WACE,SAAA,QACA,UAAA,QAEA,oBACE,MAAA,KAEA,wBACE,MAAA,KACA,UAAA,KACA,OAAA,KAAA,KAAA,KAAA,EAKN,SACE,cAAA,QACA,QAAA,EACA,MAAA,KACA,OAAA,KACA,MAAA,KAEA,eACE,OAAA,EAIJ,MACE,QAAA,KAGF,YACE,QAAA,KAIA,mBACE,UAAA,IAII,sBACF,QAAA,MACA,YAAA,OACA,cAAA,SACA,SAAA,OACA,MAAA,KAIJ,iBACE,MAAA,MACA,QAAA,EAAA,EAAA,IAAA,EAIJ,eACE,cAAA,eAGF,cACE,UAAA,IAEA,kBACE,UAAA,IAIJ,WACE,QAAA,KAGF,YACE,OAAA,KAAA,EAAA,EAAA,YAGe,0BACf,OAAA,KAAA,KAAA,EAAA,KACA,gBAAA,OACA,QAAA,KACA,sBAAA,MACA,mBAAA,YAAA,YAAA,YAAA,IAAA,YAAA,YACA,IAAA,EACA,oBAIE,cACA,UALF,UAAA,OAAA,cASqB,+CACvB,OAAA,KAAA,MAAA,EAAA,MACA,QAAA,KACA,sBAAA,KACA,mBAAA,YAAA,YAAA,IAAA,YAAA,YACA,IAAA,EACA,oBAIE,cACA,OALF,UAAA,UAAA,aAOA,qDACE,MAAA,QACA,OAAA,EAGF,0DACE,KAAA,KACA,MAAA,KAGF,2DACE,aAAA,KAIkC,mCACnB,0BACf,sBAAA,KACA,OAAA,KAAA,MAAA,EAAA,MAGF,oBACE,IAAA,MACA,MAAA,MAGU,gCACV,IAAA,MACA,MAAA,MAGF,SACE,OAAA,EACA,QAAA,EAGF,YACE,OAAA,KAAA,KAAA,EAAA,eAGK,2BACL,OAAA,IAAA,MAAkB,8BPxwBpB,cAAA,KO4wBA,QACE,OAAA,IAAA,MAAkB,2BAClB,OAAA,KAAA,EP9wBF,cAAA,KOkxBA,eACE,OAAA,EACA,QAAA,EACA,OAAA,MAIwC,mCAErC,6BACD,MAAA,eAGF,wBACE,SAAA,SAKF,SACF,YAAA","sourcesContent":[".github-issue-button {\n display: block;\n padding: 8px 16px;\n font-family: sans-serif;\n font-size: 16px;\n color: white;\n background-color: #238636 !important; /* important is needed cause to an !important in logicodev-dark */\n border: #2ea043;\n border-radius: 10px !important;\n box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;\n}\n\n.github-issue-button:hover {\n background-color: #2ea043;\n}\n\n.issue-hide {\n display: none;\n}\n",".engine-stats {\n\n .engine-name {\n width: 20rem;\n }\n\n .engine-score {\n width: 7rem;\n text-align: right;\n }\n\n .result-count {\n }\n\n .response-time {\n }\n\n .engine-reliability {\n text-align: right;\n }\n\n table.engine-error {\n max-width: 1280px;\n margin: 1rem;\n border: 1px solid gray;\n }\n\n table.engine-error th.engine-error-type,\n table.engine-error td.engine-error-type,\n failed-test {\n width: 10rem;\n }\n\n table.engine-error span.log_parameters\n {\n border-right: 1px solid gray;\n padding: 0 1rem 0 0;\n margin: 0 0 0 0.5rem;\n }\n}\n\n.bar-chart-value {\n width: 3em;\n display: inline-block;\n text-align: right;\n padding-right: 0.5rem;\n}\n\n.bar-chart-graph {\n width: calc(100% - 5rem);\n display: inline-block;\n}\n\n.bar-chart-bar {\n border: 3px solid #5bc0de;\n margin: 1px 0;\n}\n\n.bar-chart-serie1 {\n border: 3px solid #5bc0de;\n margin: 1px 0;\n float: left;\n}\n\n.bar-chart-serie2 {\n border: 3px solid #deb15b;\n margin: 1px 0;\n float: left;\n}\n\n.bar0{\n width: 0;\n border: 0;\n}\n\n.generate-bar(100);\n\n.generate-bar(@n, @i: 1) when (@i =< @n) {\n .bar@{i} {\n width: (@i * 100% / @n);\n }\n .generate-bar(@n, (@i + 1));\n}\n","/*\n this file is generated automatically by searxng_extra/update/update_pygments.py\n using pygments version 2.11.2\n*/\n\n.code-highlight .linenos {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n\n &::selection {\n background: transparent; /* WebKit/Blink Browsers */\n }\n &::-moz-selection {\n background: transparent; /* Gecko Browsers */\n }\n\n margin-right: 8px;\n text-align: right;\n}\n\n.code-highlight pre { line-height: 125%; }\n.code-highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n.code-highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n.code-highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n.code-highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n.code-highlight .hll { background-color: #ffffcc }\n.code-highlight { background: #f8f8f8; }\n.code-highlight .c { color: #3D7B7B; font-style: italic } /* Comment */\n.code-highlight .err { border: 1px solid #FF0000 } /* Error */\n.code-highlight .k { color: #008000; font-weight: bold } /* Keyword */\n.code-highlight .o { color: #666666 } /* Operator */\n.code-highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n.code-highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n.code-highlight .cp { color: #9C6500 } /* Comment.Preproc */\n.code-highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n.code-highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n.code-highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n.code-highlight .gd { color: #A00000 } /* Generic.Deleted */\n.code-highlight .ge { font-style: italic } /* Generic.Emph */\n.code-highlight .gr { color: #E40000 } /* Generic.Error */\n.code-highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n.code-highlight .gi { color: #008400 } /* Generic.Inserted */\n.code-highlight .go { color: #717171 } /* Generic.Output */\n.code-highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n.code-highlight .gs { font-weight: bold } /* Generic.Strong */\n.code-highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n.code-highlight .gt { color: #0044DD } /* Generic.Traceback */\n.code-highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n.code-highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n.code-highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n.code-highlight .kp { color: #008000 } /* Keyword.Pseudo */\n.code-highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n.code-highlight .kt { color: #B00040 } /* Keyword.Type */\n.code-highlight .m { color: #666666 } /* Literal.Number */\n.code-highlight .s { color: #BA2121 } /* Literal.String */\n.code-highlight .na { color: #687822 } /* Name.Attribute */\n.code-highlight .nb { color: #008000 } /* Name.Builtin */\n.code-highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n.code-highlight .no { color: #880000 } /* Name.Constant */\n.code-highlight .nd { color: #AA22FF } /* Name.Decorator */\n.code-highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */\n.code-highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n.code-highlight .nf { color: #0000FF } /* Name.Function */\n.code-highlight .nl { color: #767600 } /* Name.Label */\n.code-highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n.code-highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */\n.code-highlight .nv { color: #19177C } /* Name.Variable */\n.code-highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n.code-highlight .w { color: #bbbbbb } /* Text.Whitespace */\n.code-highlight .mb { color: #666666 } /* Literal.Number.Bin */\n.code-highlight .mf { color: #666666 } /* Literal.Number.Float */\n.code-highlight .mh { color: #666666 } /* Literal.Number.Hex */\n.code-highlight .mi { color: #666666 } /* Literal.Number.Integer */\n.code-highlight .mo { color: #666666 } /* Literal.Number.Oct */\n.code-highlight .sa { color: #BA2121 } /* Literal.String.Affix */\n.code-highlight .sb { color: #BA2121 } /* Literal.String.Backtick */\n.code-highlight .sc { color: #BA2121 } /* Literal.String.Char */\n.code-highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */\n.code-highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n.code-highlight .s2 { color: #BA2121 } /* Literal.String.Double */\n.code-highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n.code-highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */\n.code-highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n.code-highlight .sx { color: #008000 } /* Literal.String.Other */\n.code-highlight .sr { color: #A45A77 } /* Literal.String.Regex */\n.code-highlight .s1 { color: #BA2121 } /* Literal.String.Single */\n.code-highlight .ss { color: #19177C } /* Literal.String.Symbol */\n.code-highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */\n.code-highlight .fm { color: #0000FF } /* Name.Function.Magic */\n.code-highlight .vc { color: #19177C } /* Name.Variable.Class */\n.code-highlight .vg { color: #19177C } /* Name.Variable.Global */\n.code-highlight .vi { color: #19177C } /* Name.Variable.Instance */\n.code-highlight .vm { color: #19177C } /* Name.Variable.Magic */\n.code-highlight .il { color: #666666 } /* Literal.Number.Integer.Long */\n",".osm-map-box {\n height:300px;\n width:100%;\n margin: 10px 0;\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/*\n * SearXNG, A privacy-respecting, hackable metasearch engine\n *\n * To change the colors of the site, simple edit this variables\n */\n\n/// Light Theme\n:root {\n /// Base Colors\n --color-base-font: #444;\n --color-base-font-rgb: 68, 68, 68;\n --color-base-background: #fff;\n --color-url-font: #29314d;\n --color-url-visited-font: #80b;\n /// Header Colors\n --color-header-background: #f7f7f7;\n --color-header-border: #ddd;\n /// Footer Colors\n --color-footer-background: #f7f7f7;\n --color-footer-border: #ddd;\n /// Sidebar Colors\n --color-sidebar-border: #ddd;\n --color-sidebar-font: #000;\n /// BackToTop Colors\n --color-backtotop-font: #444;\n --color-backtotop-border: #ddd;\n --color-backtotop-background: #fff;\n /// Button Colors\n --color-btn-background: #3050ff;\n --color-btn-font: #fff;\n /// Search Input Colors\n --color-search-border: #bbb;\n --color-search-background: #fff;\n --color-search-font: #222;\n --color-search-background-hover: #3050ff;\n /// Modal Colors\n --color-error: #db3434;\n --color-error-background: lighten(#db3434, 40%);\n --color-warning: #dbba34;\n --color-warning-background: lighten(#dbba34, 40%);\n --color-success: #42db34;\n --color-success-background: lighten(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #3050ff;\n --color-categories-item-border-selected: #3050ff;\n /// Autocomplete Colors\n --color-autocomplete-font: #000;\n --color-autocomplete-border: #bbb;\n --color-autocomplete-background: #fff;\n --color-autocomplete-background-hover: #f7f7f7;\n /// Answer Colors\n --color-answer-border: #ddd; // same as --color-header-border\n --color-answer-font: #444; // same as --color-base-font\n --color-answer-background: #f7f7f7; // same as --color-header-background:\n /// Results Colors\n --color-result-border: #ddd;\n --color-result-url-font: #000;\n --color-result-vim-selected: #f7f7f7;\n --color-result-vim-arrow: #000bbb;\n --color-result-description-highlight-font: #000;\n --color-result-link-font: #000bbb;\n --color-result-link-font-highlight: #000bbb;\n --color-result-link-visited-font: #80b;\n --color-result-publishdate-font: #777;\n --color-result-engines-font: #777;\n --color-result-search-url-border: #ddd;\n --color-result-search-url-font: #000;\n // Images Colors\n --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6);\n --color-result-image-span-font: #fff;\n --color-result-image-background: #fff;\n /// Settings Colors\n --color-settings-tr-hover: #f7f7f7;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n --color-settings-engine-group-background: #0001;\n /// Detail modal\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #000;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgba(255, 255, 255, 0.2);\n --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #777;\n --color-toolkit-kbd-font: #fff;\n --color-toolkit-kbd-background: #000;\n --color-toolkit-dialog-border: #ddd;\n --color-toolkit-dialog-background: #fff;\n --color-toolkit-tabs-label-border: #fff;\n --color-toolkit-tabs-section-border: #ddd;\n --color-toolkit-select-background: #f7f7f7;\n --color-toolkit-select-border: #ddd;\n --color-toolkit-select-background-hover: #bbb;\n --color-toolkit-input-text-font: #222;\n --color-toolkit-checkbox-onoff-background: #ddd;\n --color-toolkit-checkbox-onoff-label-background: #3050ff;\n --color-toolkit-checkbox-onoff-checked-background: #aaa;\n --color-toolkit-checkbox-label-background: #fff;\n --color-toolkit-checkbox-label-border: #ddd;\n --color-toolkit-checkbox-input-border: #3050ff;\n --color-toolkit-engine-tooltip-border: #ddd;\n --color-toolkit-engine-tooltip-background: #fff;\n --color-toolkit-loader-border: rgba(0, 0, 0, 0.2);\n --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0);\n}\n\n.dark-themes() {\n /// Base Colors\n --color-base-font: #bbb;\n --color-base-font-rgb: 187, 187, 187;\n --color-base-background: #222;\n --color-url-font: #8af;\n --color-url-visited-font: #96b;\n /// Header Colors\n --color-header-background: #181818;\n --color-header-border: #333;\n /// Footer Colors\n --color-footer-background: #181818;\n --color-footer-border: #333;\n /// Sidebar Colors\n --color-sidebar-border: #555;\n --color-sidebar-font: #fff;\n /// BackToTop Colors\n --color-backtotop-font: #bbb;\n --color-backtotop-border: #333;\n --color-backtotop-background: #181818;\n /// Button Colors\n --color-btn-background: #58f;\n --color-btn-font: #222;\n /// Search Input Colors\n --color-search-border: #555;\n --color-search-background: #222;\n --color-search-font: #fff;\n --color-search-background-hover: #58f;\n /// Modal Colors\n --color-error: #f55b5b;\n --color-error-background: darken(#db3434, 40%);\n --color-warning: #f1d561;\n --color-warning-background: darken(#dbba34, 40%);\n --color-success: #79f56e;\n --color-success-background: darken(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #58f;\n --color-categories-item-border-selected: #58f;\n /// Autocomplete Colors\n --color-autocomplete-font: #fff;\n --color-autocomplete-border: #555;\n --color-autocomplete-background: #222;\n --color-autocomplete-background-hover: #181818;\n /// Answer Colors\n --color-answer-border: #333; // same as --color-header-border\n --color-answer-font: #bbb; // same as --color-base-font\n --color-answer-background: #181818; // same as --color-header-background:\n /// Results Colors\n --color-result-border: #333;\n --color-result-url-font: #fff;\n --color-result-vim-selected: #181818;\n --color-result-vim-arrow: #8af;\n --color-result-description-highlight-font: #fff;\n --color-result-link-font: #8af;\n --color-result-link-font-highlight: #8af;\n --color-result-link-visited-font: #96b;\n --color-result-publishdate-font: #888;\n --color-result-engines-font: #888;\n --color-result-search-url-border: #555;\n --color-result-search-url-font: #fff;\n /// Detail modal : same as the light version\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #000;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgba(255, 255, 255, 0.2);\n --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);\n // Images Colors\n --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6);\n --color-result-image-span-font: #fff;\n --color-result-image-background: #222;\n /// Settings Colors\n --color-settings-tr-hover: #2d2d2d;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n --color-settings-engine-group-background: #1a1919;\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #777;\n --color-toolkit-kbd-font: #000;\n --color-toolkit-kbd-background: #fff;\n --color-toolkit-dialog-border: #555;\n --color-toolkit-dialog-background: #222;\n --color-toolkit-tabs-label-border: #222;\n --color-toolkit-tabs-section-border: #555;\n --color-toolkit-select-background: #3c3b31;\n --color-toolkit-select-border: #555;\n --color-toolkit-select-background-hover: #333;\n --color-toolkit-input-text-font: #fff;\n --color-toolkit-checkbox-onoff-background: #3c3b31;\n --color-toolkit-checkbox-onoff-label-background: #58f;\n --color-toolkit-checkbox-onoff-checked-background: #ddd;\n --color-toolkit-checkbox-label-background: #fff;\n --color-toolkit-checkbox-label-border: #333;\n --color-toolkit-checkbox-input-border: #58f;\n --color-toolkit-engine-tooltip-border: #333;\n --color-toolkit-engine-tooltip-background: #222;\n --color-toolkit-loader-border: rgba(255, 255, 255, 0.2);\n --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);\n}\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .dark-themes();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .dark-themes();\n}\n\n/// General Size\n@results-width: 45rem;\n@results-offset: 10rem;\n@results-tablet-offset: 0.5rem;\n@results-gap: 5rem;\n@results-margin: 0.125rem;\n@result-padding: 1rem;\n@search-width: 40rem;\n// heigh of #search, see detail.less\n@search-height: 7.75rem;\n\n/// Device Size\n/// @desktop > @tablet\n@tablet: 80em;\n@phone: 50em;\n@small-phone: 35em;\n@ultra-small-phone: 20rem;\n\n/// From style.less\n@stacked-bar-chart: rgb(0, 0, 0);\n\n/// Load fonts from this directory.\n@icon-font-path: \"../../../fonts/\";\n//** File name for all font files.\n@icon-font-name: \"glyphicons-halflings-regular\";\n//** Element ID within SVG icon file.\n@icon-font-svg-id: \"glyphicons_halflingsregular\";\n\n// decoration of the select HTML elements\n@select-light-svg-path: \"../svg/select-light.svg\";\n@select-dark-svg-path: \"../svg/select-dark.svg\";\n",".code-highlight pre {\n overflow: auto;\n background-color: inherit;\n color: inherit;\n border: inherit;\n}\n\n// stylelint-disable no-invalid-position-at-import-rule\n@import \"../generated/pygments.less\";\n","// other solution : http://stackoverflow.com/questions/1577598/how-to-hide-parts-of-html-when-javascript-is-disabled/13857783#13857783\n\n// stylelint-disable no-descending-specificity\n\nhtml.no-js .hide_if_nojs {\n display: none;\n}\n\nhtml.js .show_if_nojs {\n display: none;\n}\n\n.center {\n text-align: center;\n}\n\n.right {\n float: right;\n}\n\n.left {\n float: left;\n}\n\n.invisible {\n display: none !important;\n}\n\n.list-unstyled {\n list-style-type: none;\n\n li {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n}\n\n.danger {\n background-color: var(--color-error-background);\n}\n\n.warning {\n background: var(--color-warning-background);\n}\n\n.success {\n background: var(--color-success-background);\n}\n\n.badge {\n display: inline-block;\n color: var(--color-toolkit-badge-font);\n background-color: var(--color-toolkit-badge-background);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n min-width: 10px;\n padding: 1px 5px;\n border-radius: 5px;\n}\n\n// kbd\nkbd {\n padding: 2px 4px;\n margin: 1px;\n font-size: 90%;\n color: var(--color-toolkit-kbd-font);\n background: var(--color-toolkit-kbd-background);\n}\n\n// table\ntable {\n width: 100%;\n\n &.striped {\n tr {\n border-bottom: 1px solid var(--color-settings-tr-hover);\n }\n }\n}\n\nth {\n padding: 0.4em;\n}\n\ntd {\n padding: 0 4px;\n}\n\ntr {\n &:hover {\n background: var(--color-settings-tr-hover) !important;\n }\n}\n\n// pre\n.pre() {\n display: block;\n font-size: 0.8em;\n word-break: break-all;\n margin: 0.1em;\n user-select: all;\n}\n\ndiv.selectable_url {\n display: block;\n border: 1px solid var(--color-result-search-url-border);\n padding: 4px;\n color: var(--color-result-search-url-font);\n margin: 0.1em;\n overflow: hidden;\n height: 1.2em;\n line-height: 1.2em;\n .rounded-corners-tiny;\n\n pre {\n .pre();\n }\n}\n\n// dialog\n.dialog() {\n position: relative;\n display: flex;\n padding: 1rem;\n margin: 0 0 1em 0;\n border: 1px solid var(--color-toolkit-dialog-border);\n text-align: left;\n .rounded-corners;\n\n .close {\n float: right;\n position: relative;\n top: -3px;\n color: inherit;\n font-size: 1.5em;\n }\n\n ul,\n ol,\n p {\n margin: 1px 0 0 0;\n }\n\n table {\n width: auto;\n }\n\n tr {\n vertical-align: text-top;\n\n &:hover {\n background: transparent !important;\n }\n }\n\n td {\n padding: 0 1em 0 0;\n }\n\n h4 {\n margin-top: 0.3em;\n margin-bottom: 0.3em;\n }\n}\n\n.dialog-error {\n .dialog();\n\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-warning {\n .dialog();\n\n color: var(--color-warning);\n background: var(--color-warning-background);\n border-color: var(--color-warning);\n}\n\n.dialog-modal {\n .dialog();\n\n display: block;\n background: var(--color-toolkit-dialog-background);\n position: fixed;\n top: 50%;\n left: 50%;\n margin: 0 auto;\n transform: translate(-50%, -50%);\n z-index: 10000000;\n\n h3 {\n margin-top: 0;\n }\n}\n\n// btn-collapse\n.btn-collapse {\n cursor: pointer;\n}\n\n//\n.scrollx {\n overflow-x: auto;\n overflow-y: hidden;\n display: block;\n padding: 0;\n margin: 0;\n border: none;\n}\n\n/* -- tabs -- */\n.tabs .tabs > label {\n font-size: 90%;\n}\n\n.tabs {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n min-width: 100%;\n\n & > * {\n order: 2;\n }\n\n & > input[type=radio] {\n display: none;\n }\n\n & > label {\n order: 1;\n padding: 0.7em;\n margin: 0 0.7em;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n border: solid var(--color-toolkit-tabs-label-border);\n border-width: 0 0 2px 0;\n\n .disable-user-select();\n\n cursor: pointer;\n }\n\n & > label:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n\n & > section {\n min-width: 100%;\n padding: 0.7rem 0;\n box-sizing: border-box;\n border-top: 1px solid var(--color-toolkit-tabs-section-border);\n display: none;\n }\n\n // default selection\n & > label:last-of-type {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n letter-spacing: -0.1px;\n }\n\n & > section:last-of-type {\n display: block;\n }\n}\n\nhtml body .tabs > input:checked {\n ~ section {\n display: none;\n }\n\n ~ label {\n position: inherited;\n background: inherit;\n border-bottom: 2px solid transparent;\n font-weight: normal;\n color: inherit;\n\n &:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n }\n\n + label {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n\n + label + section {\n display: block;\n }\n}\n\n/* -- select -- */\nselect {\n height: 2.4rem;\n margin: 0 1rem 0 0;\n padding: 0.2rem !important;\n color: var(--color-search-font);\n font-size: 0.9rem;\n z-index: 2;\n\n &:hover,\n &:focus {\n cursor: pointer;\n }\n}\n\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border-width: 0 2rem 0 0;\n border-color: transparent;\n background: data-uri('image/svg+xml;charset=UTF-8', @select-light-svg-path) no-repeat;\n background-position-x: calc(100% + 2rem);\n background-size: 2rem;\n background-origin: content-box;\n background-color: var(--color-toolkit-select-background);\n outline: medium none;\n text-overflow: ellipsis;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n\n option {\n background-color: var(--color-base-background);\n }\n }\n\n @media (prefers-color-scheme: dark) {\n html.theme-auto select,\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n }\n\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n}\n\n/* -- checkbox-onoff -- */\n@supports (border-radius: 50px) {\n .checkbox-onoff {\n display: inline-block;\n width: 40px;\n height: 10px;\n background: var(--color-toolkit-checkbox-onoff-background);\n margin: 8px 1rem;\n position: relative;\n border-radius: 50px;\n\n label {\n display: block;\n width: 20px;\n height: 20px;\n position: absolute;\n top: -5px;\n cursor: pointer;\n border-radius: 50px;\n transition: all 0.4s ease;\n left: 27px;\n background-color: var(--color-toolkit-checkbox-onoff-label-background);\n }\n\n input[type=checkbox] {\n visibility: hidden;\n\n &:checked + label {\n left: -5px;\n background: var(--color-toolkit-checkbox-onoff-checked-background);\n }\n }\n }\n}\n\n/* -- checkbox -- */\n@supports (transform: rotate(-45deg)) {\n .checkbox {\n width: 20px;\n position: relative;\n margin: 20px auto;\n\n label {\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n background: var(--color-toolkit-checkbox-label-background);\n .rounded-corners;\n\n &::after {\n content: '';\n width: 9px;\n height: 5px;\n position: absolute;\n top: 4px;\n left: 4px;\n border: 3px solid var(--color-toolkit-checkbox-label-border);\n border-top: none;\n border-right: none;\n background: transparent;\n opacity: 0;\n transform: rotate(-45deg);\n }\n }\n\n input[type=checkbox] {\n visibility: hidden;\n\n &:checked + label::after {\n border-color: var(--color-toolkit-checkbox-input-border);\n opacity: 1;\n }\n }\n\n // disabled : can''t be focused, show only the check mark\n input[disabled] + label {\n background-color: transparent !important;\n cursor: inherit;\n }\n\n // if not checked and possible to checked then display a \"light\" check mark on hover\n input:not(:checked):not([readonly]):not([disabled]) + label:hover::after {\n opacity: 0.5;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .tabs > label {\n width: 100%;\n }\n}\n\n/* -- loader -- */\n.loader,\n.loader::after {\n border-radius: 50%;\n width: 2em;\n height: 2em;\n}\n\n.loader {\n margin: 1em auto;\n font-size: 10px;\n position: relative;\n text-indent: -9999em;\n border-top: 0.5em solid var(--color-toolkit-loader-border);\n border-right: 0.5em solid var(--color-toolkit-loader-border);\n border-bottom: 0.5em solid var(--color-toolkit-loader-border);\n border-left: 0.5em solid var(--color-toolkit-loader-borderleft);\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-animation: load8 1.2s infinite linear;\n animation: load8 1.2s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* -- engine-tooltip -- */\n.engine-tooltip {\n display: none;\n position: absolute;\n padding: 0.5rem 1rem;\n margin: 0 0 0 2rem;\n border: 1px solid var(--color-toolkit-engine-tooltip-border);\n background: var(--color-toolkit-engine-tooltip-background);\n font-size: 14px;\n font-weight: normal;\n z-index: 1000000;\n text-align: left;\n .rounded-corners;\n}\n\nth:hover .engine-tooltip,\ntd:hover .engine-tooltip,\n.engine-tooltip:hover {\n display: inline-block;\n}\n\n/* -- stacked bar chart -- */\n.stacked-bar-chart {\n margin: 0;\n padding: 0 0.125rem 0 4rem;\n width: 100%;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: center;\n display: inline-flex;\n}\n\n.stacked-bar-chart-value {\n width: 3rem;\n display: inline-block;\n position: absolute;\n padding: 0 0.5rem;\n text-align: right;\n}\n\n.stacked-bar-chart-base {\n display: flex;\n flex-shrink: 0;\n flex-grow: 0;\n flex-basis: unset;\n}\n\n.stacked-bar-chart-median {\n .stacked-bar-chart-base();\n\n background: var(--color-base-font);\n border: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate80 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border: 1px solid rgba(var(--color-base-font-rgb), 0.3);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate95 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5);\n padding: 0;\n}\n\n.stacked-bar-chart-rate100 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.4rem 0;\n width: 1px;\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n// Mixins\n.text-size-adjust (@property: 100%) {\n -webkit-text-size-adjust: @property;\n -ms-text-size-adjust: @property;\n -moz-text-size-adjust: @property;\n text-size-adjust: @property;\n}\n\n.rounded-corners (@radius: 10px) {\n border-radius: @radius;\n}\n\n.rounded-right-corners (@radius: 0 10px 10px 0) {\n border-radius: @radius;\n}\n\n.rounded-corners-tiny (@radius: 5px) {\n border-radius: @radius;\n}\n\n// disable user selection\n.disable-user-select () {\n -webkit-touch-callout: none;\n user-select: none;\n}\n","/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */\n\n.autocomplete {\n position: absolute;\n max-height: 0;\n overflow-y: hidden;\n text-align: left;\n .rounded-corners;\n\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background);\n }\n\n &:empty {\n display: none;\n }\n\n > ul {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n cursor: pointer;\n padding: 8px 0 8px 8px;\n\n &.active,\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background-hover);\n\n a:active,\n a:focus,\n a:hover {\n text-decoration: none;\n }\n }\n\n &.locked {\n cursor: inherit;\n }\n }\n }\n\n &.open {\n display: block;\n background-color: var(--color-autocomplete-background);\n color: var(--color-autocomplete-font);\n border: 1px solid var(--color-autocomplete-border);\n max-height: 500px;\n overflow-y: auto;\n z-index: 100;\n\n &:empty {\n display: none;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .autocomplete {\n bottom: 0;\n }\n\n .autocomplete > ul > li {\n border-bottom: 1px solid var(--color-result-top-border);\n text-align: left;\n }\n}\n","#main_results #results.image-detail-open.only_template_images {\n width: min(98%, 59.25rem) !important;\n}\n\n#main_results #results.only_template_images.image-detail-open #backToTop {\n left: 56.75rem !important;\n right: inherit;\n}\n\narticle.result-images .detail {\n display: none;\n}\n\n#results.image-detail-open article.result-images[data-vim-selected] .detail {\n display: flex;\n flex-direction: column;\n position: fixed;\n left: 60rem;\n right: 0;\n top: @search-height;\n transition: top 0.064s ease-in 0s;\n bottom: 0;\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-background);\n z-index: 10000;\n padding: 4rem 3rem 3rem 3rem;\n\n a.result-images-source {\n display: block;\n flex: 1;\n text-align: left;\n width: 100%;\n border: none;\n text-decoration: none;\n\n img {\n padding: 0;\n margin: 0;\n border: none;\n object-fit: contain;\n width: inherit;\n max-width: 100%;\n min-height: inherit;\n max-height: calc(100vh - 25rem - 7rem);\n background: inherit;\n }\n }\n\n .result-images-labels {\n color: var(--color-result-detail-font);\n max-height: 16rem;\n min-height: 16rem;\n\n hr {\n border-top: 1px solid var(--color-result-detail-hr);\n border-bottom: none;\n }\n\n h4 {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 0.9rem;\n }\n\n p {\n color: var(--color-result-detail-label-font);\n font-size: 0.9rem;\n\n span {\n display: inline-block;\n width: 12rem;\n }\n }\n\n h4,\n p,\n a {\n text-align: left;\n }\n\n p.result-content {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-url {\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-content:hover,\n p.result-url:hover {\n position: relative;\n overflow: inherit !important;\n background: var(--color-result-detail-background);\n text-overflow: inherit !important;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-result-detail-link);\n }\n\n a:hover {\n text-decoration: underline;\n }\n }\n\n a.result-detail-close {\n top: 1rem;\n left: 1rem;\n padding: 0.4rem;\n }\n\n a.result-detail-previous {\n top: 1rem;\n right: 6rem;\n // center the icon by moving it slightly on the left\n padding: 0.4rem 0.5rem 0.4rem 0.3rem;\n }\n\n a.result-detail-next {\n top: 1rem;\n right: 2rem;\n padding: 0.4rem;\n }\n\n a.result-detail-close,\n a.result-detail-next,\n a.result-detail-previous {\n border-radius: 50%;\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n position: absolute;\n filter: opacity(40%);\n z-index: 2000002;\n\n span {\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n text-align: center;\n }\n }\n\n a.result-detail-next,\n a.result-detail-previous {\n span::before {\n // vertical center small icons\n vertical-align: sub;\n }\n }\n\n a.result-detail-close,\n a.result-detail-close:visited,\n a.result-detail-close:hover,\n a.result-detail-close:active,\n a.result-detail-previous,\n a.result-detail-previous:visited,\n a.result-detail-previous:hover,\n a.result-detail-previous:active,\n a.result-detail-next,\n a.result-detail-next:visited,\n a.result-detail-next:hover,\n a.result-detail-next:active {\n color: var(--color-result-detail-font);\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-font);\n }\n\n a.result-detail-close:focus,\n a.result-detail-close:hover,\n a.result-detail-previous:focus,\n a.result-detail-previous:hover,\n a.result-detail-next:focus,\n a.result-detail-next:hover {\n filter: opacity(80%);\n }\n\n .loader {\n position: absolute;\n top: 1rem;\n right: 50%;\n border-top: 0.5em solid var(--color-result-detail-loader-border);\n border-right: 0.5em solid var(--color-result-detail-loader-border);\n border-bottom: 0.5em solid var(--color-result-detail-loader-border);\n border-left: 0.5em solid var(--color-result-detail-loader-borderleft);\n }\n}\n\n#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail {\n top: 0;\n\n a.result-images-source img {\n max-height: calc(100vh - 25rem);\n }\n}\n\n@media screen and (max-width: @tablet) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n left: 0;\n\n a.result-images-source {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n img {\n width: 100%;\n max-height: calc(100vh - 24rem);\n }\n }\n\n a.result-detail-next {\n right: 1rem;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n left: 0;\n padding: 1rem;\n\n a.result-images-source img {\n width: 100%;\n max-height: calc(100vh - 20rem);\n margin: 0;\n }\n\n .result-images-labels p span {\n width: inherit;\n margin-right: 1rem;\n }\n }\n}\n",".dialog-modal {\n animation-name: dialogmodal;\n animation-duration: 0.13s;\n\n @keyframes dialogmodal {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0.5;\n transform: translate(-50%, -50%) scale(1.05);\n }\n }\n}\n","#main_index {\n margin-top: 26vh;\n\n #linkto_preferences {\n right: 1.8rem;\n }\n}\n\n.index {\n text-align: center;\n\n .title {\n background: url('../img/searxng.png') no-repeat;\n min-height: 4rem;\n margin: 4rem auto;\n background-position: center;\n background-size: contain;\n }\n\n h1 {\n font-size: 4em;\n visibility: hidden;\n }\n\n #search,\n #search_header {\n margin: 0 auto;\n background: inherit;\n border: inherit;\n padding: 0;\n display: block;\n }\n\n .search_filters {\n display: block;\n margin: 1em 0;\n }\n\n .category label {\n padding: 6px 10px;\n border-bottom: initial !important;\n }\n}\n\n@media screen and (max-width: @tablet) {\n div.title {\n h1 {\n font-size: 1em;\n }\n }\n\n #main_index {\n margin-top: 6em;\n }\n}\n\n@media screen and (max-width: @phone) {\n #main_index {\n margin-top: 0;\n }\n}\n","#tab-contentquery table td,\n#tab-contentquery table th {\n text-align: left !important;\n height: 3rem;\n}\n\n#main_preferences {\n form {\n width: 100%;\n }\n\n fieldset {\n margin: 8px;\n border: none;\n }\n\n legend {\n margin: 0;\n padding: 5px 0 0 0;\n display: block;\n float: left;\n width: 300px;\n }\n\n .value {\n margin: 0;\n padding: 0;\n float: left;\n width: 15em;\n\n select,\n input[type=\"text\"] {\n font-size: inherit !important;\n margin: 0 1rem 0 0;\n }\n\n select {\n width: 14rem;\n }\n\n input[type=\"text\"] {\n width: 13.25rem;\n color: var(--color-toolkit-input-text-font);\n border: none;\n background: none repeat scroll 0 0 var(--color-toolkit-select-background);\n padding: 0.2rem 0.4rem;\n height: 2rem;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n }\n\n select:focus,\n input:focus {\n outline: none;\n box-shadow: 0 0 1px 1px var(--color-btn-background);\n }\n }\n\n .description {\n margin: 0;\n padding: 5px 0 0 0;\n float: left;\n width: 50%;\n color: var(--color-settings-engine-description-font);\n font-size: 90%;\n }\n\n table {\n border-collapse: collapse;\n }\n\n table td {\n text-align: center;\n }\n\n table.cookies {\n width: 100%;\n\n th,\n td {\n text-align: left;\n font-family: monospace;\n font-size: 1rem;\n padding: 0.5em;\n vertical-align: top;\n }\n\n td:first-child {\n word-break: keep-all;\n width: 14rem;\n padding-right: 1rem;\n }\n\n td:last-child {\n word-break: break-all;\n }\n\n & > tbody > tr:nth-child(even) > th,\n & > tbody > tr:nth-child(even) > td {\n background-color: var(--color-settings-tr-hover);\n }\n }\n\n .category {\n margin-right: 0.5rem;\n\n label {\n border: 2px solid transparent;\n padding: 0.2rem 0.4rem;\n .rounded-corners-tiny;\n }\n }\n\n .category input[type=\"checkbox\"]:checked + label {\n border: 2px solid var(--color-categories-item-border-selected);\n }\n\n .name,\n .shortcut {\n text-align: left;\n }\n\n .preferences_back {\n background: none repeat scroll 0 0 var(--color-btn-background);\n color: var(--color-btn-font);\n border: 0 none;\n .rounded-corners;\n\n cursor: pointer;\n display: inline-block;\n margin: 2px 4px;\n padding: 0.7em;\n\n a {\n color: var(--color-settings-return-font);\n }\n\n a::first-letter {\n text-transform: uppercase;\n }\n }\n\n div.selectable_url {\n pre {\n width: 100%;\n }\n }\n\n th.name {\n .engine-tooltip {\n margin-top: 1.8rem;\n left: calc((100% - 85em) / 2 + 10em);\n max-width: 40rem;\n\n .engine-description {\n margin-top: 0.5rem;\n }\n }\n }\n\n .engine-group {\n text-align: left;\n font-weight: normal;\n background: var(--color-settings-engine-group-background);\n }\n}\n\n@media screen and (max-width: @tablet) {\n .preferences_back {\n clear: both;\n }\n\n .engine-tooltip {\n left: 10em !important;\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*/\n\n#search {\n padding: 0;\n margin: 0;\n}\n\n#search_header {\n padding: 1.5em 2em 0 @results-offset - 3rem;\n margin: 0;\n background: var(--color-header-background);\n border-bottom: 1px solid var(--color-header-border);\n display: grid;\n column-gap: 1.2rem;\n row-gap: 1rem;\n grid-template-columns: 3rem 1fr;\n grid-template-areas:\n \"logo search\"\n \"spacer categories\";\n}\n\n.category {\n display: inline-block;\n position: relative;\n margin-right: 1rem;\n padding: 0;\n\n input {\n display: none;\n }\n\n label {\n svg {\n padding-right: 0.2rem;\n }\n\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n text-transform: capitalize;\n font-size: 0.9em;\n border-bottom: 2px solid transparent;\n .disable-user-select;\n\n div.category_name {\n margin: auto 0;\n }\n }\n\n input[type=\"checkbox\"]:checked + label {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n#search_logo {\n grid-area: logo;\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n flex: 1;\n width: 30px;\n height: 30px;\n margin: 0.5rem 0 auto 0;\n }\n}\n\n.search_categories {\n grid-area: categories;\n}\n\n.search_box {\n margin: 0;\n padding: 0;\n grid-area: search;\n display: inline-flex;\n flex-direction: row;\n white-space: nowrap;\n}\n\n#clear_search {\n display: block;\n border-collapse: separate;\n box-sizing: border-box;\n width: 1.8em;\n margin: 0;\n padding: 8px 2px;\n background: none repeat scroll 0 0 var(--color-search-background);\n border-top: 1px solid var(--color-search-border);\n border-bottom: 1px solid var(--color-search-border);\n border-right: none;\n border-left: none;\n border-radius: 0;\n outline: none;\n color: var(--color-search-font);\n font-size: 16px;\n z-index: 10000;\n\n &:hover {\n color: var(--color-search-background-hover);\n }\n\n &.empty * {\n display: none;\n }\n}\n\n#q,\n#send_search {\n display: block !important;\n border-collapse: separate;\n box-sizing: border-box;\n margin: 0;\n padding: 10px;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: 1px solid var(--color-search-border);\n border-radius: 0;\n outline: none;\n color: var(--color-search-font);\n font-size: 16px;\n z-index: 2;\n}\n\n#q {\n outline: medium none;\n padding-left: 12px;\n padding-right: 0 !important;\n border-right: none;\n width: @search-width;\n border-radius: 10px 0 0 10px;\n}\n\n#q::-ms-clear,\n#q::-webkit-search-cancel-button {\n display: none;\n}\n\n#send_search {\n border-left: none;\n border-radius: 0 10px 10px 0;\n\n &:hover {\n cursor: pointer;\n background-color: var(--color-search-background-hover);\n color: var(--color-search-background);\n }\n}\n\n.no-js #clear_search,\n.no-js #send_search {\n width: auto !important;\n border-left: 1px solid var(--color-search-border);\n padding: 10px;\n}\n\n.search_filters {\n margin: 0.6rem 0 0 @results-offset + 0.6rem;\n\n select {\n background-color: inherit;\n\n &:hover,\n &:focus {\n color: var(--color-base-font);\n }\n }\n}\n\n@media screen and (max-width: @tablet) {\n #search_header {\n padding: 1.5em @results-tablet-offset 0 @results-tablet-offset;\n column-gap: @results-tablet-offset;\n }\n\n .search_filters {\n margin: 0.6rem 0 0 @results-tablet-offset + 3rem;\n }\n\n #categories {\n font-size: 90%;\n clear: both;\n\n .checkbox_container {\n margin: auto;\n margin-top: 2px;\n }\n }\n\n html.touch {\n #main_index,\n #main_results {\n #categories_container {\n width: max-content;\n\n .category {\n display: inline-block;\n width: auto;\n }\n }\n\n #categories {\n width: 100%;\n text-align: left;\n overflow-x: scroll;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n }\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #search_header {\n width: 100%;\n margin: 0;\n padding: 0.1rem 0 0 0;\n column-gap: 0;\n row-gap: 0;\n grid-template-areas:\n \"logo search\"\n \"categories categories\";\n }\n\n .search_logo {\n padding: 0;\n }\n\n .search_box {\n // hack, should be 100% ?\n width: 99%;\n display: flex;\n flex-direction: row;\n }\n\n #q {\n width: 100%;\n flex: 1;\n }\n\n #main_results #q:placeholder-shown ~ #send_search {\n margin-right: 2.6rem;\n transition: margin-right 0.1s;\n }\n\n .search_filters {\n margin: 0;\n }\n\n .category {\n display: block;\n width: 100%;\n margin: 0;\n\n label {\n padding: 0.8rem !important;\n margin: 0 !important;\n\n svg {\n display: none;\n }\n }\n }\n}\n\n@media screen and (max-width: @ultra-small-phone) {\n #search_header {\n grid-template-areas:\n \"search search\"\n \"categories categories\";\n }\n\n #search_logo {\n display: none;\n }\n}\n\n#categories {\n .disable-user-select;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n}\n\n#categories_container {\n position: relative;\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*\n* To convert \"style.less\" to \"style.css\" run: $make styles\n*/\n\n// stylelint-disable no-descending-specificity\n\n@import \"../../__common__/less/new_issue.less\";\n@import \"../../__common__/less/stats.less\";\n@import \"../../__common__/less/result_templates.less\";\n@import (inline) \"../../node_modules/normalize.css/normalize.css\";\n@import \"definitions.less\";\n@import \"mixins.less\";\n@import \"code.less\";\n@import \"toolkit.less\";\n@import \"autocomplete.less\";\n@import \"detail.less\";\n@import \"animations.less\";\n\n// for index.html template\n@import \"index.less\";\n\n// for preferences.html template\n@import \"preferences.less\";\n\n// Search-Field\n@import \"search.less\";\n\n// ion-icon\n.ion-icon {\n display: inline-block;\n vertical-align: bottom;\n line-height: 1;\n text-decoration: inherit;\n}\n\n.ion-icon-small {\n width: 1rem;\n height: 1rem;\n .ion-icon;\n}\n\n.ion-icon-big {\n width: 1.5rem;\n height: 1.5rem;\n .ion-icon;\n}\n\n// Main LESS-Code\nhtml {\n font-family: sans-serif;\n font-size: 0.9em;\n .text-size-adjust;\n\n color: var(--color-base-font);\n background-color: var(--color-base-background);\n padding: 0;\n margin: 0;\n}\n\nbody,\nmain {\n padding: 0;\n margin: 0;\n}\n\nbody {\n display: flex;\n flex-direction: column;\n height: 100vh;\n margin: 0;\n}\n\nmain {\n width: 100%;\n margin-bottom: 2rem;\n flex: 1;\n}\n\n#main_preferences,\n#main_about,\n#main_stats {\n margin: 2em auto;\n width: 85em;\n}\n\nfooter {\n clear: both;\n min-height: 4rem;\n padding: 1rem 0;\n width: 100%;\n text-align: center;\n background-color: var(--color-footer-background);\n border-top: 1px solid var(--color-footer-border);\n overflow: hidden;\n\n p {\n font-size: 0.9em;\n }\n}\n\n#main_preferences h1,\n#main_stats h1 {\n background: url('../img/searxng.png') no-repeat;\n background-size: contain;\n min-height: 40px;\n margin: 0 auto;\n\n span {\n visibility: hidden;\n }\n}\n\ninput[type=\"submit\"],\n#results button[type=\"submit\"] {\n padding: 0.7rem;\n display: inline-block;\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n .rounded-corners;\n\n border: 0;\n cursor: pointer;\n}\n\na {\n text-decoration: none;\n color: var(--color-url-font);\n\n &:visited {\n color: var(--color-url-visited-font);\n\n .highlight {\n color: var(--color-url-visited-font);\n }\n }\n}\n\narticle[data-vim-selected] {\n background: var(--color-result-vim-selected);\n border-left: 0.2rem solid var(--color-result-vim-arrow);\n .rounded-right-corners;\n}\n\narticle.result-images[data-vim-selected] {\n background: var(--color-result-vim-arrow);\n border: none;\n .rounded-corners;\n\n .image_thumbnail {\n filter: opacity(60%);\n }\n}\n\narticle[data-vim-selected].category-videos,\narticle[data-vim-selected].category-news,\narticle[data-vim-selected].category-map,\narticle[data-vim-selected].category-music,\narticle[data-vim-selected].category-files,\narticle[data-vim-selected].category-social {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n}\n\n.result {\n margin: @results-margin 0;\n padding: @result-padding;\n border-left: 0.2rem solid transparent;\n\n h3 {\n font-size: 1.2rem;\n word-wrap: break-word;\n margin: 0.4rem 0 0.4rem 0;\n padding: 0;\n\n a {\n color: var(--color-result-link-font);\n font-weight: normal;\n font-size: 1.1em;\n\n &:visited {\n color: var(--color-result-link-visited-font);\n }\n\n &:focus,\n &:hover {\n text-decoration: underline;\n border: none;\n outline: none;\n }\n }\n }\n\n .cache_link,\n .proxyfied_link {\n font-size: 0.9em !important;\n }\n\n .content,\n .stat,\n .altlink {\n font-size: 0.9em;\n margin: 0;\n padding: 0;\n max-width: 54em;\n word-wrap: break-word;\n line-height: 1.24;\n\n .highlight {\n color: var(--color-result-description-highlight-font);\n background: inherit;\n font-weight: bold;\n }\n }\n\n .codelines {\n .highlight {\n color: inherit;\n background: inherit;\n font-weight: normal;\n }\n }\n\n .url_wrapper {\n display: flex;\n font-size: 1rem;\n color: var(--color-result-url-font);\n flex-wrap: nowrap;\n overflow: hidden;\n flex-direction: row;\n margin: 0;\n padding: 0;\n\n .url_o1 {\n white-space: nowrap;\n flex-shrink: 1;\n }\n\n .url_o1::after {\n content: \" \";\n width: 1ch;\n display: inline-block;\n }\n\n .url_o2 {\n overflow: hidden;\n white-space: nowrap;\n flex-basis: content;\n flex-grow: 0;\n flex-shrink: 1;\n text-align: right;\n\n .url_i2 {\n float: right;\n }\n }\n }\n\n .published_date {\n font-size: 0.8em;\n color: var(--color-result-publishdate-font);\n }\n\n img {\n &.thumbnail {\n float: left;\n padding: 0.6rem 1rem 0 0;\n width: 20rem;\n height: unset; // remove heigth value that was needed for lazy loading\n }\n\n &.image {\n float: left;\n padding: 0.6rem 1rem 0 0;\n width: 7rem;\n max-height: 7rem;\n object-fit: scale-down;\n object-position: right top;\n }\n }\n\n .break {\n clear: both;\n }\n}\n\n.category-videos,\n.category-news,\n.category-map,\n.category-music,\n.category-files,\n.category-social {\n border: 1px solid var(--color-result-border);\n margin: 1rem 0;\n .rounded-corners;\n}\n\n.category-social .image {\n width: auto !important;\n min-width: 48px;\n min-height: 48px;\n padding: 0 5px 25px 0 !important;\n}\n\n.result-videos .content {\n overflow: hidden;\n}\n\n.engines {\n float: right;\n color: var(--color-result-engines-font);\n\n span {\n font-size: smaller;\n margin: 0 0.5em 0 0;\n }\n}\n\n.small_font {\n font-size: 0.8em;\n}\n\n.highlight {\n color: var(--color-result-link-font-highlight);\n background: inherit;\n}\n\n.empty_element {\n font-style: italic;\n}\n\n.result-images {\n display: inline-block;\n margin: 0;\n padding: 0;\n position: relative;\n max-height: 200px;\n border: none !important;\n\n img {\n float: inherit;\n margin: 0.125rem;\n padding: 0;\n border: none;\n max-height: 200px;\n background: var(--color-result-image-background);\n }\n\n span.title {\n display: none;\n color: var(--color-result-image-span-font);\n }\n\n &:hover span.title {\n display: block;\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 4px;\n margin: 0 0 4px 4px;\n // color: @color-result-image-span-font;\n background-color: var(--color-result-image-span-background-hover);\n font-size: 0.7em;\n }\n}\n\n.result-map {\n img.image {\n float: right !important;\n height: 100px !important;\n width: auto !important;\n }\n\n table {\n font-size: 0.9em;\n width: auto;\n border-collapse: separate;\n border-spacing: 0 0.35rem;\n\n th {\n font-weight: inherit;\n width: 17rem;\n vertical-align: top;\n text-align: left;\n }\n\n td {\n vertical-align: top;\n text-align: left;\n }\n }\n}\n\n.hidden {\n display: none !important;\n}\n\n#results {\n margin: 1rem 2rem 0 @results-offset;\n display: grid;\n grid-template-columns: @results-width 25rem;\n grid-template-rows: min-content min-content 1fr min-content;\n gap: 0 @results-gap;\n grid-template-areas:\n \"corrections sidebar\"\n \"answers sidebar\"\n \"urls sidebar\"\n \"pagination sidebar\";\n}\n\n#results #sidebar *:first-child,\n#results #urls *:first-child {\n margin-top: 0;\n}\n\n#urls {\n padding: 0;\n grid-area: urls;\n}\n\n#suggestions {\n .wrapper {\n display: flex;\n flex-flow: row wrap;\n justify-content: flex-end;\n\n form {\n display: inline-block;\n flex: 1 1 50%;\n }\n }\n}\n\n#suggestions,\n#infoboxes {\n input {\n padding: 0;\n margin: 3px;\n font-size: 0.9em;\n display: inline-block;\n background: transparent;\n color: var(--color-result-search-url-font);\n cursor: pointer;\n }\n\n input[type=\"submit\"],\n .infobox .url a {\n color: var(--color-result-link-font);\n text-decoration: none;\n font-size: 0.9rem;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n#corrections {\n grid-area: corrections;\n display: flex;\n flex-flow: row wrap;\n margin: 0 0 1em 0;\n\n h4,\n input[type=\"submit\"] {\n display: inline-block;\n padding: 0.5rem;\n margin: 0.5rem;\n }\n\n input[type=\"submit\"] {\n font-size: 0.8rem;\n .rounded-corners-tiny;\n }\n}\n\n#suggestions .title,\n#search_url .title,\n#apis .title {\n margin: 2em 0 0.5em 0;\n color: var(--color-base-font);\n}\n\n#answers {\n grid-area: answers;\n border: 1px solid var(--color-answer-border);\n background: var(--color-answer-background);\n padding: @result-padding;\n margin: 1rem 0;\n margin-top: 0;\n color: var(--color-answer-font);\n .rounded-corners;\n\n h4 {\n display: none;\n }\n}\n\n#infoboxes {\n form {\n min-width: 210px;\n }\n}\n\n#sidebar {\n grid-area: sidebar;\n word-wrap: break-word;\n color: var(--color-sidebar-font);\n\n .infobox {\n margin: 10px 0 10px;\n border: 1px solid var(--color-sidebar-border);\n padding: 1rem;\n font-size: 0.9em;\n .rounded-corners;\n\n h2 {\n margin: 0 0 0.5em 0;\n }\n\n img {\n max-width: 100%;\n max-height: 12em;\n display: block;\n margin: 0 auto;\n padding: 0;\n }\n\n dl {\n margin: 0.5em 0;\n }\n\n dt {\n display: inline;\n margin: 0.5em 0.25em 0.5em 0;\n padding: 0;\n font-weight: bold;\n }\n\n dd {\n display: inline;\n margin: 0.5em 0;\n padding: 0;\n }\n\n input {\n font-size: 1em;\n }\n\n br {\n clear: both;\n }\n\n .attributes,\n .urls {\n clear: both;\n }\n }\n}\n\n#search_url {\n margin-top: 8px;\n\n div.selectable_url {\n pre {\n width: 200em;\n }\n }\n}\n\n#linkto_preferences {\n position: absolute;\n right: 10px;\n top: 2.2rem;\n padding: 0;\n border: 0;\n display: block;\n font-size: 1.2em;\n color: var(--color-search-font);\n\n a:link *,\n a:hover *,\n a:visited *,\n a:active * {\n color: var(--color-search-font);\n }\n}\n\n#pagination {\n grid-area: pagination;\n\n br {\n clear: both;\n }\n}\n\n#apis {\n margin-top: 8px;\n clear: both;\n}\n\n#backToTop {\n border: 1px solid var(--color-backtotop-border);\n margin: 0;\n padding: 0;\n font-size: 1em;\n background: var(--color-backtotop-background);\n position: fixed;\n bottom: 8rem;\n left: @results-width + @results-offset + (0.5 * @results-gap - 1.2em);\n transition: opacity 0.5s;\n opacity: 0;\n .rounded-corners;\n\n a {\n display: block;\n margin: 0;\n padding: 0.7em;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-backtotop-font);\n }\n}\n\n#results.scrolling #backToTop {\n opacity: 1;\n}\n\n@media screen and (max-width: @tablet) {\n #main_preferences,\n #main_about,\n #main_stats {\n margin: 2rem 0.5rem;\n width: auto;\n }\n\n #infoboxes {\n position: inherit;\n max-width: inherit;\n\n .infobox {\n clear: both;\n\n img {\n float: left;\n max-width: 10em;\n margin: 0.5em 0.5em 0.5em 0;\n }\n }\n }\n\n #sidebar {\n margin-bottom: @results-margin;\n padding: 0;\n float: none;\n border: none;\n width: auto;\n\n input {\n border: 0;\n }\n }\n\n #apis {\n display: none;\n }\n\n #search_url {\n display: none;\n }\n\n .result {\n .thumbnail {\n max-width: 98%;\n }\n\n .url {\n span.url {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 100%;\n }\n }\n\n .engines {\n float: right;\n padding: 0 0 3px 0;\n }\n }\n\n .result-images {\n border-bottom: none !important;\n }\n\n .image_result {\n max-width: 98%;\n\n img {\n max-width: 98%;\n }\n }\n\n #backToTop {\n display: none;\n }\n\n #pagination {\n margin: 2rem 0 0 0 !important;\n }\n\n #main_results div#results {\n margin: 1rem auto 0 auto;\n justify-content: center;\n display: grid;\n grid-template-columns: @results-width;\n grid-template-rows: min-content min-content min-content 1fr min-content min-content;\n gap: 0;\n grid-template-areas:\n \"corrections\"\n \"answers\"\n \"sidebar\"\n \"urls\"\n \"pagination\";\n }\n}\n\n#main_results div#results.only_template_images {\n margin: 1rem @results-tablet-offset 0 @results-tablet-offset;\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: min-content min-content 1fr min-content min-content;\n gap: 0;\n grid-template-areas:\n \"corrections\"\n \"urls\"\n \"answers\"\n \"sidebar\"\n \"pagination\";\n\n #urls {\n width: inherit;\n margin: 0;\n }\n\n #backToTop {\n left: auto;\n right: 1rem;\n }\n\n #pagination {\n margin-right: 4rem;\n }\n}\n\n@media screen and (max-width: @phone) {\n #main_results div#results {\n grid-template-columns: 100%;\n margin: 2rem @results-tablet-offset 0 @results-tablet-offset;\n }\n\n #linkto_preferences {\n top: 0.8rem;\n right: 0.7rem;\n }\n\n #main_index #linkto_preferences {\n top: 0.5rem;\n right: 0.5rem;\n }\n\n #results {\n margin: 0;\n padding: 0;\n }\n\n #pagination {\n margin: 2rem 1rem 0 1rem !important;\n }\n\n article[data-vim-selected] {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n }\n\n .result {\n border: 1px solid var(--color-result-border);\n margin: 1rem 0;\n .rounded-corners;\n }\n\n .result-images {\n margin: 0;\n padding: 0;\n border: none;\n }\n}\n\n@media screen and (max-width: @small-phone) {\n .result-videos {\n img.thumbnail {\n float: none !important;\n }\n\n .content {\n overflow: inherit;\n }\n }\n}\n\npre code {\n white-space: pre-wrap;\n}\n"]} \ No newline at end of file
diff --git a/searx/static/themes/simple/js/searxng.min.js b/searx/static/themes/simple/js/searxng.min.js
index a504a4e4e..39272aacf 100644
--- a/searx/static/themes/simple/js/searxng.min.js
+++ b/searx/static/themes/simple/js/searxng.min.js
@@ -4,7 +4,7 @@
* (C) Copyright Contributors to the searx project (2014 - 2021).
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-window.searxng=function(t,o){"use strict";if(t.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),i=-1;while(n[++i]&&n[i]!=t);return!!n[i]}})(Element.prototype)}function a(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}var s=window.searxng||{};s.on=function(i,e,r,t){t=t||false;if(typeof i!=="string"){i.addEventListener(e,r,t)}else{o.addEventListener(e,function(e){var t=e.target||e.srcElement,n=false;while(t&&t.matches&&t!==o&&!(n=t.matches(i)))t=t.parentElement;if(n)a(r,t,e)},t)}};s.ready=function(e){if(document.readyState!="loading"){e.call(t)}else{t.addEventListener("DOMContentLoaded",e.bind(t))}};s.http=function(e,t){var n=new XMLHttpRequest,i=function(){},r=function(){},o={then:function(e){i=e;return o},catch:function(e){r=e;return o}};try{n.open(e,t,true);n.onload=function(){if(n.status==200){i(n.response,n.responseType)}else{r(Error(n.statusText))}};n.onerror=function(){r(Error("Network Error"))};n.onabort=function(){r(Error("Transaction is aborted"))};n.send()}catch(e){r(e)}return o};s.loadStyle=function(e){var t=s.static_path+e,n="style_"+e.replace(".","_"),i=o.getElementById(n);if(i===null){i=o.createElement("link");i.setAttribute("id",n);i.setAttribute("rel","stylesheet");i.setAttribute("type","text/css");i.setAttribute("href",t);o.body.appendChild(i)}};s.loadScript=function(e,t){var n=s.static_path+e,i="script_"+e.replace(".","_"),r=o.getElementById(i);if(r===null){r=o.createElement("script");r.setAttribute("id",i);r.setAttribute("src",n);r.onload=t;r.onerror=function(){r.setAttribute("error","1")};o.body.appendChild(r)}else if(!r.hasAttribute("error")){try{t.apply(r,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+n+"' not loaded.")}};s.insertBefore=function(e,t){t.parentNode.insertBefore(e,t)};s.insertAfter=function(e,t){t.parentNode.insertAfter(e,t.nextSibling)};s.on(".close","click",function(){this.parentNode.classList.add("invisible")});return s}(window,document);searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function i(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){r(this)(true);let e=n(t.target);if(i(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){r(e)(true)}if(i(e)){searxng.selectImage(e)}}},true);var d={27:{key:"Escape",fun:o,des:"remove focus from the focused input",cat:"Control"},73:{key:"i",fun:p,des:"focus on the search input",cat:"Control"},66:{key:"b",fun:u(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},70:{key:"f",fun:u(window.innerHeight),des:"scroll one page down",cat:"Navigation"},85:{key:"u",fun:u(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},68:{key:"d",fun:u(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},71:{key:"g",fun:c(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},86:{key:"v",fun:c(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},75:{key:"k",fun:r("up"),des:"select previous search result",cat:"Results"},74:{key:"j",fun:r("down"),des:"select next search result",cat:"Results"},80:{key:"p",fun:l(),des:"go to previous page",cat:"Results"},78:{key:"n",fun:s(),des:"go to next page",cat:"Results"},79:{key:"o",fun:h(false),des:"open search result",cat:"Results"},84:{key:"t",fun:h(true),des:"open the result in a new tab",cat:"Results"},82:{key:"r",fun:t,des:"reload page from the server",cat:"Control"},72:{key:"h",fun:m,des:"toggle help window",cat:"Other"}};if(searxng.hotkeys){searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.keyCode)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.keyCode===27){d[e.keyCode].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.keyCode].fun()}}}})}function r(d){return function(e){var t=document.querySelector(".result[data-vim-selected]"),n=d;if(t===null){t=document.querySelector(".result");if(t===null){return}if(d==="down"||d==="up"){n=t}}var i,r=document.querySelectorAll(".result");if(typeof n!=="string"){i=n}else{switch(n){case"visible":var o=document.documentElement.scrollTop||document.body.scrollTop;var a=o+document.documentElement.clientHeight;for(var s=0;s<r.length;s++){i=r[s];var l=i.offsetTop;var u=l+i.clientHeight;if(u<=a&&l>o){break}}break;case"down":i=t.nextElementSibling;if(i===null){i=r[0]}break;case"up":i=t.previousElementSibling;if(i===null){i=r[r.length-1]}break;case"bottom":i=r[r.length-1];break;case"top":default:i=r[0]}}if(i){t.removeAttribute("data-vim-selected");i.setAttribute("data-vim-selected","true");var c=i.querySelector("h3 a")||i.querySelector("a");if(c!==null){c.focus()}if(!e){f()}}}}function t(){document.location.reload(true)}function o(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function a(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function s(){return a('nav#pagination .next_page button[type="submit"]')}function l(){return a('nav#pagination .previous_page button[type="submit"]')}function f(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,i=e.offsetTop,r=i+e.clientHeight,o=120;if(e.previousElementSibling===null&&r<n){window.scroll(window.scrollX,0);return}if(t>i-o){window.scroll(window.scrollX,i-o)}else{var a=t+n;if(a<r+o){window.scroll(window.scrollX,r-n+o)}}}function u(e){return function(){window.scrollBy(0,e);r("visible")()}}function c(e,t){return function(){window.scrollTo(0,e);r(t)()}}function p(){window.scrollTo(0,0);document.querySelector("#q").focus()}function h(n){return function(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null){e=document.querySelector(".result[data-vim-selected] > a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function g(e){var n={};for(var t in d){var i=d[t];n[i.cat]=n[i.cat]||[];n[i.cat].push(i)}var r=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(r.length===0){return}var o='<a href="#" class="close" aria-label="close" title="close">×</a>';o+="<h3>How to navigate searx with Vim-like hotkeys</h3>";o+="<table>";for(var a=0;a<r.length;a++){var s=n[r[a]];var l=a===r.length-1;var u=a%2===0;if(u){o+="<tr>"}o+="<td>";o+="<h4>"+s[0].cat+"</h4>";o+='<ul class="list-unstyled">';for(var c in s){o+="<li><kbd>"+s[c].key+"</kbd> "+s[c].des+"</li>"}o+="</ul>";o+="</td>";if(!u||l){o+="</tr>"}}o+="</table>";e.innerHTML=o}function m(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";g(e);g(e);g(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}searxng.scrollPageToSelected=f;searxng.selectNext=r("down");searxng.selectPrevious=r("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var g=JSON.parse(this.dataset.mapBoundingbox);var m=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(g){var t=L.latLng(g[0],g[2]);var n=L.latLng(g[1],g[3]);e=L.latLngBounds(t,n)}var i=L.map(d);var r="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var o='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var a=new L.TileLayer(r,{minZoom:1,maxZoom:19,attribution:o});var s="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © <a href="https://openstreetmap.org">OpenStreetMap contributors</a>';var u=new L.TileLayer(s,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){i.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){i.setView(new L.latLng(p,f),h)}else{i.setView(new L.latLng(p,f),8)}}i.addLayer(a);var c={"OSM Mapnik":a,"OSM Wikimedia":u};L.control.layers(c).addTo(i);if(m){L.geoJson(m).addTo(i)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,o,a){"use strict";a.ready(function(){let r=null;function e(){if(r==null){a.http("GET","engine_descriptions.json").then(function(e){r=JSON.parse(e);for(const[t,n]of Object.entries(r)){let e=o.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const i of e){let e=" (<i>"+a.translations["Source"]+":&nbsp;"+n[1]+"</i>)";i.innerHTML=n[0]+e}}})}}if(o.querySelector('body[class="preferences_endpoint"]')){for(const t of o.querySelectorAll("[data-engine-name]")){a.on(t,"mouseenter",e)}}})})(window,document,window.searxng);(function(e,s,l){"use strict";l.ready(function(){l.image_thumbnail_layout=new l.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",14,6,200);l.image_thumbnail_layout.watch();s.querySelectorAll("#urls img.image").forEach(e=>e.addEventListener("error",()=>{e.style.display="none";e.error=null}));l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var i=s.querySelector(n);var r=this.innerHTML;if(this.classList.contains("collapsed")){r=r.replace(e,t)}else{r=r.replace(t,e)}this.innerHTML=r;this.classList.toggle("collapsed");i.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=s.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const i=e.querySelector(".detail");if(t){const r=t.getAttribute("data-src");if(r){const o=s.createElement("div");const a=new Image;o.classList.add("loader");i.appendChild(o);a.onload=e=>{t.src=r;o.remove()};a.onerror=e=>{o.remove()};a.src=r;t.src=n.src;t.removeAttribute("data-src")}}}s.getElementById("results").classList.add("image-detail-open");l.image_thumbnail_layout.align();l.scrollPageToSelected()};l.closeDetail=function(e){s.getElementById("results").classList.remove("image-detail-open");l.image_thumbnail_layout.align();l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>l.selectPrevious(false));l.on(".result-detail-next","click",e=>l.selectNext(false));e.addEventListener("scroll",function(){var e=s.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=s.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(t,n,i){"use strict";var r=true,o="q",a;function s(e){if(e.setSelectionRange){var t=e.value.length;e.setSelectionRange(t,t)}}function l(){if(a.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(e){var t=document.getElementById("clear_search");var n=function(){if(e.value.length===0){t.classList.add("empty")}else{t.classList.remove("empty")}};n();t.addEventListener("click",function(){e.value="";e.focus();n()});e.addEventListener("keyup",n,false)}i.ready(function(){a=n.getElementById(o);function e(){if(r){s(a);r=false}else{}}if(a!==null){u(a);if(i.autocompleter){i.autocomplete=AutoComplete.call(t,{Url:"./autocompleter",EmptyMessage:i.translations.no_item_found,HttpMethod:i.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:4,Delay:300,_Position:function(){this.DOMResults.setAttribute("class","autocomplete");this.DOMResults.style.top=this.Input.offsetTop+this.Input.offsetHeight+"px";this.DOMResults.style.left=this.Input.offsetLeft+"px";this.DOMResults.style.width=this.Input.clientWidth+"px"}},"#"+o);t.addEventListener("resize",function(){var e=new CustomEvent("position");a.dispatchEvent(e)})}a.addEventListener("focus",e,false);a.focus()}if(a!==null&&n.querySelector(".help")!=null&&i.search_on_category_select){n.querySelector(".help").className="invisible";i.on("#categories input","change",function(){var e,t=n.querySelectorAll('#categories input[type="checkbox"]');for(e=0;e<t.length;e++){if(t[e]!==this&&t[e].checked){t[e].click()}}if(!this.checked){this.click()}l();return false});i.on(n.getElementById("safesearch"),"change",l);i.on(n.getElementById("time_range"),"change",l);i.on(n.getElementById("language"),"change",l)}})})(window,document,window.searxng);
+window.searxng=function(t,o){"use strict";if(t.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),i=-1;while(n[++i]&&n[i]!=t);return!!n[i]}})(Element.prototype)}function a(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}var s=window.searxng||{};s.on=function(i,e,r,t){t=t||false;if(typeof i!=="string"){i.addEventListener(e,r,t)}else{o.addEventListener(e,function(e){var t=e.target||e.srcElement,n=false;while(t&&t.matches&&t!==o&&!(n=t.matches(i)))t=t.parentElement;if(n)a(r,t,e)},t)}};s.ready=function(e){if(document.readyState!="loading"){e.call(t)}else{t.addEventListener("DOMContentLoaded",e.bind(t))}};s.http=function(e,t){var n=new XMLHttpRequest,i=function(){},r=function(){},o={then:function(e){i=e;return o},catch:function(e){r=e;return o}};try{n.open(e,t,true);n.onload=function(){if(n.status==200){i(n.response,n.responseType)}else{r(Error(n.statusText))}};n.onerror=function(){r(Error("Network Error"))};n.onabort=function(){r(Error("Transaction is aborted"))};n.send()}catch(e){r(e)}return o};s.loadStyle=function(e){var t=s.static_path+e,n="style_"+e.replace(".","_"),i=o.getElementById(n);if(i===null){i=o.createElement("link");i.setAttribute("id",n);i.setAttribute("rel","stylesheet");i.setAttribute("type","text/css");i.setAttribute("href",t);o.body.appendChild(i)}};s.loadScript=function(e,t){var n=s.static_path+e,i="script_"+e.replace(".","_"),r=o.getElementById(i);if(r===null){r=o.createElement("script");r.setAttribute("id",i);r.setAttribute("src",n);r.onload=t;r.onerror=function(){r.setAttribute("error","1")};o.body.appendChild(r)}else if(!r.hasAttribute("error")){try{t.apply(r,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+n+"' not loaded.")}};s.insertBefore=function(e,t){t.parentNode.insertBefore(e,t)};s.insertAfter=function(e,t){t.parentNode.insertAfter(e,t.nextSibling)};s.on(".close","click",function(){this.parentNode.classList.add("invisible")});return s}(window,document);searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function i(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){r(this)(true);let e=n(t.target);if(i(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){r(e)(true)}if(i(e)){searxng.selectImage(e)}}},true);var d={27:{key:"Escape",fun:o,des:"remove focus from the focused input",cat:"Control"},73:{key:"i",fun:p,des:"focus on the search input",cat:"Control"},66:{key:"b",fun:u(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},70:{key:"f",fun:u(window.innerHeight),des:"scroll one page down",cat:"Navigation"},85:{key:"u",fun:u(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},68:{key:"d",fun:u(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},71:{key:"g",fun:c(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},86:{key:"v",fun:c(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},75:{key:"k",fun:r("up"),des:"select previous search result",cat:"Results"},74:{key:"j",fun:r("down"),des:"select next search result",cat:"Results"},80:{key:"p",fun:l(),des:"go to previous page",cat:"Results"},78:{key:"n",fun:s(),des:"go to next page",cat:"Results"},79:{key:"o",fun:h(false),des:"open search result",cat:"Results"},84:{key:"t",fun:h(true),des:"open the result in a new tab",cat:"Results"},82:{key:"r",fun:t,des:"reload page from the server",cat:"Control"},72:{key:"h",fun:m,des:"toggle help window",cat:"Other"}};if(searxng.hotkeys){searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.keyCode)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.keyCode===27){d[e.keyCode].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.keyCode].fun()}}}})}function r(d){return function(e){var t=document.querySelector(".result[data-vim-selected]"),n=d;if(t===null){t=document.querySelector(".result");if(t===null){return}if(d==="down"||d==="up"){n=t}}var i,r=document.querySelectorAll(".result");if(typeof n!=="string"){i=n}else{switch(n){case"visible":var o=document.documentElement.scrollTop||document.body.scrollTop;var a=o+document.documentElement.clientHeight;for(var s=0;s<r.length;s++){i=r[s];var l=i.offsetTop;var u=l+i.clientHeight;if(u<=a&&l>o){break}}break;case"down":i=t.nextElementSibling;if(i===null){i=r[0]}break;case"up":i=t.previousElementSibling;if(i===null){i=r[r.length-1]}break;case"bottom":i=r[r.length-1];break;case"top":default:i=r[0]}}if(i){t.removeAttribute("data-vim-selected");i.setAttribute("data-vim-selected","true");var c=i.querySelector("h3 a")||i.querySelector("a");if(c!==null){c.focus()}if(!e){f()}}}}function t(){document.location.reload(true)}function o(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function a(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function s(){return a('nav#pagination .next_page button[type="submit"]')}function l(){return a('nav#pagination .previous_page button[type="submit"]')}function f(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,i=e.offsetTop,r=i+e.clientHeight,o=120;if(e.previousElementSibling===null&&r<n){window.scroll(window.scrollX,0);return}if(t>i-o){window.scroll(window.scrollX,i-o)}else{var a=t+n;if(a<r+o){window.scroll(window.scrollX,r-n+o)}}}function u(e){return function(){window.scrollBy(0,e);r("visible")()}}function c(e,t){return function(){window.scrollTo(0,e);r(t)()}}function p(){window.scrollTo(0,0);document.querySelector("#q").focus()}function h(n){return function(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null){e=document.querySelector(".result[data-vim-selected] > a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function g(e){var n={};for(var t in d){var i=d[t];n[i.cat]=n[i.cat]||[];n[i.cat].push(i)}var r=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(r.length===0){return}var o='<a href="#" class="close" aria-label="close" title="close">×</a>';o+="<h3>How to navigate searx with Vim-like hotkeys</h3>";o+="<table>";for(var a=0;a<r.length;a++){var s=n[r[a]];var l=a===r.length-1;var u=a%2===0;if(u){o+="<tr>"}o+="<td>";o+="<h4>"+s[0].cat+"</h4>";o+='<ul class="list-unstyled">';for(var c in s){o+="<li><kbd>"+s[c].key+"</kbd> "+s[c].des+"</li>"}o+="</ul>";o+="</td>";if(!u||l){o+="</tr>"}}o+="</table>";e.innerHTML=o}function m(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";g(e);g(e);g(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}searxng.scrollPageToSelected=f;searxng.selectNext=r("down");searxng.selectPrevious=r("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var g=JSON.parse(this.dataset.mapBoundingbox);var m=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(g){var t=L.latLng(g[0],g[2]);var n=L.latLng(g[1],g[3]);e=L.latLngBounds(t,n)}var i=L.map(d);var r="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var o='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var a=new L.TileLayer(r,{minZoom:1,maxZoom:19,attribution:o});var s="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © <a href="https://openstreetmap.org">OpenStreetMap contributors</a>';var u=new L.TileLayer(s,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){i.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){i.setView(new L.latLng(p,f),h)}else{i.setView(new L.latLng(p,f),8)}}i.addLayer(a);var c={"OSM Mapnik":a,"OSM Wikimedia":u};L.control.layers(c).addTo(i);if(m){L.geoJson(m).addTo(i)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,o,a){"use strict";a.ready(function(){let r=null;function e(){if(r==null){a.http("GET","engine_descriptions.json").then(function(e){r=JSON.parse(e);for(const[t,n]of Object.entries(r)){let e=o.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const i of e){let e=" (<i>"+a.translations["Source"]+":&nbsp;"+n[1]+"</i>)";i.innerHTML=n[0]+e}}})}}if(o.querySelector('body[class="preferences_endpoint"]')){for(const t of o.querySelectorAll("[data-engine-name]")){a.on(t,"mouseenter",e)}}})})(window,document,window.searxng);(function(e,s,l){"use strict";l.ready(function(){l.image_thumbnail_layout=new l.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",14,6,200);l.image_thumbnail_layout.watch();s.querySelectorAll("#urls img.image").forEach(e=>e.addEventListener("error",()=>{e.style.display="none";e.error=null}));l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var i=s.querySelector(n);var r=this.innerHTML;if(this.classList.contains("collapsed")){r=r.replace(e,t)}else{r=r.replace(t,e)}this.innerHTML=r;this.classList.toggle("collapsed");i.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=s.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const i=e.querySelector(".detail");if(t){const r=t.getAttribute("data-src");if(r){const o=s.createElement("div");const a=new Image;o.classList.add("loader");i.appendChild(o);a.onload=e=>{t.src=r;o.remove()};a.onerror=e=>{o.remove()};a.src=r;t.src=n.src;t.removeAttribute("data-src")}}}s.getElementById("results").classList.add("image-detail-open");l.image_thumbnail_layout.align();l.scrollPageToSelected()};l.closeDetail=function(e){s.getElementById("results").classList.remove("image-detail-open");l.image_thumbnail_layout.align();l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>l.selectPrevious(false));l.on(".result-detail-next","click",e=>l.selectNext(false));e.addEventListener("scroll",function(){var e=s.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=s.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(t,n,i){"use strict";var r=true,o="q",a;function s(e){if(e.setSelectionRange){var t=e.value.length;e.setSelectionRange(t,t)}}function l(){if(a.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(e){var t=document.getElementById("clear_search");var n=function(){if(e.value.length===0){t.classList.add("empty")}else{t.classList.remove("empty")}};n();t.addEventListener("click",function(){e.value="";e.focus();n()});e.addEventListener("keyup",n,false)}i.ready(function(){a=n.getElementById(o);function e(){if(r){s(a);r=false}else{}}if(a!==null){u(a);if(i.autocompleter){i.autocomplete=AutoComplete.call(t,{Url:"./autocompleter",EmptyMessage:i.translations.no_item_found,HttpMethod:i.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:4,Delay:300,_Position:function(){this.DOMResults.setAttribute("class","autocomplete");this.DOMResults.style.top=this.Input.offsetTop+this.Input.offsetHeight+"px";this.DOMResults.style.left=this.Input.offsetLeft+"px";this.DOMResults.style.width=this.Input.clientWidth+"px"},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onmousedown=function(){t._Select(e)}}})}},"#"+o);t.addEventListener("resize",function(){var e=new CustomEvent("position");a.dispatchEvent(e)})}a.addEventListener("focus",e,false);a.focus()}if(a!==null&&n.querySelector(".help")!=null&&i.search_on_category_select){n.querySelector(".help").className="invisible";i.on("#categories input","change",function(){var e,t=n.querySelectorAll('#categories input[type="checkbox"]');for(e=0;e<t.length;e++){if(t[e]!==this&&t[e].checked){t[e].click()}}if(!this.checked){this.click()}l();return false});i.on(n.getElementById("safesearch"),"change",l);i.on(n.getElementById("time_range"),"change",l);i.on(n.getElementById("language"),"change",l)}})})(window,document,window.searxng);
/**
*
* Google Image Layout v0.0.1
diff --git a/searx/static/themes/simple/js/searxng.min.js.map b/searx/static/themes/simple/js/searxng.min.js.map
index 08faffd68..71e9d0541 100644
--- a/searx/static/themes/simple/js/searxng.min.js.map
+++ b/searx/static/themes/simple/js/searxng.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"searxng.min.js","sources":["../src/js/main/00_toolkit.js","../src/js/main/keyboard.js","../src/js/main/mapresult.js","../src/js/main/preferences.js","../src/js/main/results.js","../src/js/main/search.js","../../__common__/js/image_layout.js","../node_modules/autocomplete-js/dist/autocomplete.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nwindow.searxng = (function (w, d) {\n\n 'use strict';\n\n // not invented here tookit with bugs fixed elsewhere\n // purposes : be just good enough and as small as possible\n\n // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/\n if (w.Element) {\n (function (ElementPrototype) {\n ElementPrototype.matches = ElementPrototype.matches ||\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n function (selector) {\n var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;\n while (nodes[++i] && nodes[i] != node);\n return !!nodes[i];\n };\n })(Element.prototype);\n }\n\n function callbackSafe (callback, el, e) {\n try {\n callback.call(el, e);\n } catch (exception) {\n console.log(exception);\n }\n }\n\n var searxng = window.searxng || {};\n\n searxng.on = function (obj, eventType, callback, useCapture) {\n useCapture = useCapture || false;\n if (typeof obj !== 'string') {\n // obj HTMLElement, HTMLDocument\n obj.addEventListener(eventType, callback, useCapture);\n } else {\n // obj is a selector\n d.addEventListener(eventType, function (e) {\n var el = e.target || e.srcElement, found = false;\n while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement;\n if (found) callbackSafe(callback, el, e);\n }, useCapture);\n }\n };\n\n searxng.ready = function (callback) {\n if (document.readyState != 'loading') {\n callback.call(w);\n } else {\n w.addEventListener('DOMContentLoaded', callback.bind(w));\n }\n };\n\n searxng.http = function (method, url) {\n var req = new XMLHttpRequest(),\n resolve = function () {},\n reject = function () {},\n promise = {\n then: function (callback) { resolve = callback; return promise; },\n catch: function (callback) { reject = callback; return promise; }\n };\n\n try {\n req.open(method, url, true);\n\n // On load\n req.onload = function () {\n if (req.status == 200) {\n resolve(req.response, req.responseType);\n } else {\n reject(Error(req.statusText));\n }\n };\n\n // Handle network errors\n req.onerror = function () {\n reject(Error(\"Network Error\"));\n };\n\n req.onabort = function () {\n reject(Error(\"Transaction is aborted\"));\n };\n\n // Make the request\n req.send();\n } catch (ex) {\n reject(ex);\n }\n\n return promise;\n };\n\n searxng.loadStyle = function (src) {\n var path = searxng.static_path + src,\n id = \"style_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('link');\n s.setAttribute('id', id);\n s.setAttribute('rel', 'stylesheet');\n s.setAttribute('type', 'text/css');\n s.setAttribute('href', path);\n d.body.appendChild(s);\n }\n };\n\n searxng.loadScript = function (src, callback) {\n var path = searxng.static_path + src,\n id = \"script_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('script');\n s.setAttribute('id', id);\n s.setAttribute('src', path);\n s.onload = callback;\n s.onerror = function () {\n s.setAttribute('error', '1');\n };\n d.body.appendChild(s);\n } else if (!s.hasAttribute('error')) {\n try {\n callback.apply(s, []);\n } catch (exception) {\n console.log(exception);\n }\n } else {\n console.log(\"callback not executed : script '\" + path + \"' not loaded.\");\n }\n };\n\n searxng.insertBefore = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n searxng.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);\n };\n\n searxng.on('.close', 'click', function () {\n this.parentNode.classList.add('invisible');\n });\n\n return searxng;\n})(window, document);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a <div class=\"detail\"> element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n var vimKeys = {\n 27: {\n key: 'Escape',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 73: {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 66: {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 70: {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 85: {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 68: {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 71: {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 86: {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 75: {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 74: {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 80: {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 78: {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 79: {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 84: {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n 82: {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 72: {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n }\n };\n\n if (searxng.hotkeys) {\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (Object.prototype.hasOwnProperty.call(vimKeys, e.keyCode) && !e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.keyCode === 27) {\n vimKeys[e.keyCode].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n vimKeys[e.keyCode].fun();\n }\n }\n }\n });\n }\n\n function highlightResult (which) {\n return function (noScroll) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = current.nextElementSibling;\n if (next === null) {\n next = results[0];\n }\n break;\n case 'up':\n next = current.previousElementSibling;\n if (next === null) {\n next = results[results.length - 1];\n }\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n document.querySelector('#q').focus();\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in vimKeys) {\n var key = vimKeys[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '<a href=\"#\" class=\"close\" aria-label=\"close\" title=\"close\">×</a>';\n html += '<h3>How to navigate searx with Vim-like hotkeys</h3>';\n html += '<table>';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '<tr>';\n }\n html += '<td>';\n\n html += '<h4>' + cat[0].cat + '</h4>';\n html += '<ul class=\"list-unstyled\">';\n\n for (var cj in cat) {\n html += '<li><kbd>' + cat[cj].key + '</kbd> ' + cat[cj].des + '</li>';\n }\n\n html += '</ul>';\n html += '</td>'; // col-sm-*\n\n if (!first || lastCategory) {\n html += '</tr>'; // row\n }\n }\n\n html += '</table>';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n initHelpContent(helpPanel);\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // togggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © <a href=\"https://openstreetmap.org\">OpenStreetMap</a> contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © <a href=\"https://openstreetmap.org\">OpenStreetMap contributors</a>';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occour only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (<i>' + searxng.translations['Source'] + ':&nbsp;' + description[1] + '</i>)';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n if (d.querySelector('body[class=\"preferences_endpoint\"]')) {\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n }\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.image_thumbnail_layout = new searxng.ImageLayout('#urls', '#urls .result-images', 'img.image_thumbnail', 14, 6, 200);\n searxng.image_thumbnail_layout.watch();\n\n d.querySelectorAll('#urls img.image').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n img.style.display = 'none';\n img.error = null;\n }\n ));\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.selectImage = function (resultElement) {\n /* eslint no-unused-vars: 0 */\n if (resultElement) {\n // load full size image in background\n const imgElement = resultElement.querySelector('.result-images-source img');\n const thumbnailElement = resultElement.querySelector('.image_thumbnail');\n const detailElement = resultElement.querySelector('.detail');\n if (imgElement) {\n const imgSrc = imgElement.getAttribute('data-src');\n if (imgSrc) {\n const loader = d.createElement('div');\n const imgLoader = new Image();\n\n loader.classList.add('loader');\n detailElement.appendChild(loader);\n\n imgLoader.onload = e => {\n imgElement.src = imgSrc;\n loader.remove();\n };\n imgLoader.onerror = e => {\n loader.remove();\n };\n imgLoader.src = imgSrc;\n imgElement.src = thumbnailElement.src;\n imgElement.removeAttribute('data-src');\n }\n }\n }\n d.getElementById('results').classList.add('image-detail-open');\n searxng.image_thumbnail_layout.align();\n searxng.scrollPageToSelected();\n }\n\n searxng.closeDetail = function (e) {\n d.getElementById('results').classList.remove('image-detail-open');\n searxng.image_thumbnail_layout.align();\n searxng.scrollPageToSelected();\n }\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => searxng.selectPrevious(false));\n searxng.on('.result-detail-next', 'click', e => searxng.selectNext(false));\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global AutoComplete */\n(function (w, d, searxng) {\n 'use strict';\n\n var firstFocus = true, qinput_id = \"q\", qinput;\n\n function placeCursorAtEnd (element) {\n if (element.setSelectionRange) {\n var len = element.value.length;\n element.setSelectionRange(len, len);\n }\n }\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function () {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n });\n qinput.addEventListener('keyup', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n function placeCursorAtEndOnce () {\n if (firstFocus) {\n placeCursorAtEnd(qinput);\n firstFocus = false;\n } else {\n // e.preventDefault();\n }\n }\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.autocompleter) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.translations.no_item_found,\n HttpMethod: searxng.method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: 4,\n Delay: 300,\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.style.top = (this.Input.offsetTop + this.Input.offsetHeight) + \"px\";\n this.DOMResults.style.left = this.Input.offsetLeft + \"px\";\n this.DOMResults.style.width = this.Input.clientWidth + \"px\";\n },\n }, \"#\" + qinput_id);\n\n // hack, see : https://github.com/autocompletejs/autocomplete.js/issues/37\n w.addEventListener('resize', function () {\n var event = new CustomEvent(\"position\");\n qinput.dispatchEvent(event);\n });\n }\n\n qinput.addEventListener('focus', placeCursorAtEndOnce, false);\n qinput.focus();\n }\n\n // vanilla js version of search_on_category_select.js\n if (qinput !== null && d.querySelector('.help') != null && searxng.search_on_category_select) {\n d.querySelector('.help').className = 'invisible';\n\n searxng.on('#categories input', 'change', function () {\n var i, categories = d.querySelectorAll('#categories input[type=\"checkbox\"]');\n for (i = 0; i < categories.length; i++) {\n if (categories[i] !== this && categories[i].checked) {\n categories[i].click();\n }\n }\n if (! this.checked) {\n this.click();\n }\n submitIfQuery();\n return false;\n });\n\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n });\n\n})(window, document, window.searxng);\n","/**\n*\n* Google Image Layout v0.0.1\n* Description, by Anh Trinh.\n* Heavily modified for searx\n* https://ptgamr.github.io/2014-09-12-google-image-layout/\n* https://ptgamr.github.io/google-image-layout/src/google-image-layout.js\n*\n* @license Free to use under the MIT License.\n*\n* @example <caption>Example usage of searxng.ImageLayout class.</caption>\n* searxng.image_thumbnail_layout = new searxng.ImageLayout(\n* '#urls', // container_selector\n* '#urls .result-images', // results_selector\n* 'img.image_thumbnail', // img_selector\n* 14, // verticalMargin\n* 6, // horizontalMargin\n* 200 // maxHeight\n* );\n* searxng.image_thumbnail_layout.watch();\n*/\n\n\n(function (w, d) {\n function ImageLayout (container_selector, results_selector, img_selector, verticalMargin, horizontalMargin, maxHeight) {\n this.container_selector = container_selector;\n this.results_selector = results_selector;\n this.img_selector = img_selector;\n this.verticalMargin = verticalMargin;\n this.horizontalMargin = horizontalMargin;\n this.maxHeight = maxHeight;\n this.isAlignDone = true;\n }\n\n /**\n * Get the height that make all images fit the container\n *\n * width = w1 + w2 + w3 + ... = r1*h + r2*h + r3*h + ...\n *\n * @param {[type]} images the images to be calculated\n * @param {[type]} width the container witdth\n * @param {[type]} margin the margin between each image\n *\n * @return {[type]} the height\n */\n ImageLayout.prototype._getHeigth = function (images, width) {\n var i, img;\n var r = 0;\n\n for (i = 0; i < images.length; i++) {\n img = images[i];\n if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {\n r += img.naturalWidth / img.naturalHeight;\n } else {\n // assume that not loaded images are square\n r += 1;\n }\n }\n\n return (width - images.length * this.verticalMargin) / r; // have to round down because Firefox will automatically roundup value with number of decimals > 3\n };\n\n ImageLayout.prototype._setSize = function (images, height) {\n var i, img, imgWidth;\n var imagesLength = images.length, resultNode;\n\n for (i = 0; i < imagesLength; i++) {\n img = images[i];\n if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {\n imgWidth = height * img.naturalWidth / img.naturalHeight;\n } else {\n // not loaded image : make it square as _getHeigth said it\n imgWidth = height;\n }\n img.style.width = imgWidth + 'px';\n img.style.height = height + 'px';\n img.style.marginLeft = this.horizontalMargin + 'px';\n img.style.marginTop = this.horizontalMargin + 'px';\n img.style.marginRight = this.verticalMargin - 7 + 'px'; // -4 is the negative margin of the inline element\n img.style.marginBottom = this.verticalMargin - 7 + 'px';\n resultNode = img.parentNode.parentNode;\n if (!resultNode.classList.contains('js')) {\n resultNode.classList.add('js');\n }\n }\n };\n\n ImageLayout.prototype._alignImgs = function (imgGroup) {\n var isSearching, slice, i, h;\n var containerElement = d.querySelector(this.container_selector);\n var containerCompStyles = window.getComputedStyle(containerElement);\n var containerPaddingLeft = parseInt(containerCompStyles.getPropertyValue('padding-left'), 10);\n var containerPaddingRight = parseInt(containerCompStyles.getPropertyValue('padding-right'), 10);\n var containerWidth = containerElement.clientWidth - containerPaddingLeft - containerPaddingRight;\n\n while (imgGroup.length > 0) {\n isSearching = true;\n for (i = 1; i <= imgGroup.length && isSearching; i++) {\n slice = imgGroup.slice(0, i);\n h = this._getHeigth(slice, containerWidth);\n if (h < this.maxHeight) {\n this._setSize(slice, h);\n // continue with the remaining images\n imgGroup = imgGroup.slice(i);\n isSearching = false;\n }\n }\n if (isSearching) {\n this._setSize(slice, Math.min(this.maxHeight, h));\n break;\n }\n }\n };\n\n ImageLayout.prototype.align = function () {\n var i;\n var results_selectorNode = d.querySelectorAll(this.results_selector);\n var results_length = results_selectorNode.length;\n var previous = null;\n var current = null;\n var imgGroup = [];\n\n for (i = 0; i < results_length; i++) {\n current = results_selectorNode[i];\n if (current.previousElementSibling !== previous && imgGroup.length > 0) {\n // the current image is not connected to previous one\n // so the current image is the start of a new group of images.\n // so call _alignImgs to align the current group\n this._alignImgs(imgGroup);\n // and start a new empty group of images\n imgGroup = [];\n }\n // add the current image to the group (only the img tag)\n imgGroup.push(current.querySelector(this.img_selector));\n // update the previous variable\n previous = current;\n }\n // align the remaining images\n if (imgGroup.length > 0) {\n this._alignImgs(imgGroup);\n }\n };\n\n ImageLayout.prototype.watch = function () {\n var i, img;\n var obj = this;\n var results_nodes = d.querySelectorAll(this.results_selector);\n var results_length = results_nodes.length;\n\n function img_load_error (event) {\n // console.log(\"ERROR can't load: \" + event.originalTarget.src);\n event.originalTarget.src = w.searxng.static_path + w.searxng.theme.img_load_error;\n }\n\n function throttleAlign () {\n if (obj.isAlignDone) {\n obj.isAlignDone = false;\n setTimeout(function () {\n obj.align();\n obj.isAlignDone = true;\n }, 100);\n }\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/pageshow_event\n w.addEventListener('pageshow', throttleAlign);\n // https://developer.mozilla.org/en-US/docs/Web/API/FileReader/load_event\n w.addEventListener('load', throttleAlign);\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/resize_event\n w.addEventListener('resize', throttleAlign);\n\n for (i = 0; i < results_length; i++) {\n img = results_nodes[i].querySelector(this.img_selector);\n if (img !== null && img !== undefined) {\n img.addEventListener('load', throttleAlign);\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror\n img.addEventListener('error', throttleAlign);\n if (w.searxng.theme.img_load_error) {\n img.addEventListener('error', img_load_error, {once: true});\n }\n }\n }\n };\n\n w.searxng.ImageLayout = ImageLayout;\n\n}(window, document));\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n/*\n * @license MIT\n *\n * Autocomplete.js v2.7.1\n * Developed by Baptiste Donaux\n * http://autocomplete-js.com\n *\n * (c) 2017, Baptiste Donaux\n */\n\"use strict\";\nvar ConditionOperator;\n(function (ConditionOperator) {\n ConditionOperator[ConditionOperator[\"AND\"] = 0] = \"AND\";\n ConditionOperator[ConditionOperator[\"OR\"] = 1] = \"OR\";\n})(ConditionOperator || (ConditionOperator = {}));\nvar EventType;\n(function (EventType) {\n EventType[EventType[\"KEYDOWN\"] = 0] = \"KEYDOWN\";\n EventType[EventType[\"KEYUP\"] = 1] = \"KEYUP\";\n})(EventType || (EventType = {}));\n/**\n * Core\n *\n * @class\n * @author Baptiste Donaux <baptiste.donaux@gmail.com> @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"<strong>\" + value + \"</strong>\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","req","XMLHttpRequest","resolve","reject","promise","then","catch","open","onload","status","response","responseType","Error","statusText","onerror","onabort","send","ex","loadStyle","src","path","static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","isElementInDetail","undefined","contains","getResultElement","isImageResult","resultElement","highlightResult","let","preventDefault","selectImage","getAttribute","vimKeys","27","key","fun","removeFocus","des","cat","73","searchInputFocus","66","scrollPage","innerHeight","70","85","68","71","scrollPageTo","scrollHeight","86","75","74","80","GoToPreviousPage","78","GoToNextPage","79","openResult","84","82","reloadPage","72","toggleHelp","hotkeys","Object","hasOwnProperty","keyCode","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","current","querySelector","effectiveWhich","next","results","top","documentElement","scrollTop","bot","clientHeight","length","etop","offsetTop","ebot","nextElementSibling","previousElementSibling","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","newTab","href","initHelpContent","divElement","categories","k","push","sorted","keys","sort","a","b","html","lastCategory","first","cj","innerHTML","helpPanel","className","getElementsByTagName","toggle","selectNext","selectPrevious","event","remove","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","entries","elements","element","source","translations","image_thumbnail_layout","ImageLayout","watch","forEach","img","style","display","error","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","imgElement","thumbnailElement","detailElement","imgSrc","loader","imgLoader","Image","align","firstFocus","qinput_id","qinput","placeCursorAtEnd","setSelectionRange","len","value","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","Delay","_Position","DOMResults","Input","offsetHeight","left","offsetLeft","width","clientWidth","CustomEvent","dispatchEvent","search_on_category_select","checked","container_selector","results_selector","img_selector","verticalMargin","horizontalMargin","maxHeight","isAlignDone","_getHeigth","images","r","naturalWidth","naturalHeight","_setSize","height","imgWidth","imagesLength","resultNode","marginLeft","marginTop","marginRight","marginBottom","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","Math","min","results_selectorNode","results_length","previous","results_nodes","img_load_error","originalTarget","theme","throttleAlign","once","f","exports","module","define","amd","g","global","self","n","t","o","c","require","u","code","p","1","ConditionOperator","EventType","params","Array","isArray","input","specificParams","merge","defaults","create","nodeName","match","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","type","mappings","KeyboardMappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","Not","Is","From","To","name","Conditions","Callback","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","request","_HttpMethod","_Url","queryParams","_Pre","queryParamsStringify","encodeURIComponent","_QueryArg","indexOf","setRequestHeader","onreadystatechange","$Cache","ajax","timeout","$AjaxTimer","clearTimeout","Request","abort","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","Enter","liActive","_Select","KeyUpAndDown_down","KeyUpAndDown_up","last","active","currentIndex","children","lisCount","item","AlphaNum","oldValue","currentValue","_MinChars","_Render","_Post","_Open","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","minchars","_Highlight","label","now","li","onclick","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","abs","Label","Value","returnResponse","json"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"searxng.min.js","sources":["../src/js/main/00_toolkit.js","../src/js/main/keyboard.js","../src/js/main/mapresult.js","../src/js/main/preferences.js","../src/js/main/results.js","../src/js/main/search.js","../../__common__/js/image_layout.js","../node_modules/autocomplete-js/dist/autocomplete.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nwindow.searxng = (function (w, d) {\n\n 'use strict';\n\n // not invented here tookit with bugs fixed elsewhere\n // purposes : be just good enough and as small as possible\n\n // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/\n if (w.Element) {\n (function (ElementPrototype) {\n ElementPrototype.matches = ElementPrototype.matches ||\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n function (selector) {\n var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;\n while (nodes[++i] && nodes[i] != node);\n return !!nodes[i];\n };\n })(Element.prototype);\n }\n\n function callbackSafe (callback, el, e) {\n try {\n callback.call(el, e);\n } catch (exception) {\n console.log(exception);\n }\n }\n\n var searxng = window.searxng || {};\n\n searxng.on = function (obj, eventType, callback, useCapture) {\n useCapture = useCapture || false;\n if (typeof obj !== 'string') {\n // obj HTMLElement, HTMLDocument\n obj.addEventListener(eventType, callback, useCapture);\n } else {\n // obj is a selector\n d.addEventListener(eventType, function (e) {\n var el = e.target || e.srcElement, found = false;\n while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement;\n if (found) callbackSafe(callback, el, e);\n }, useCapture);\n }\n };\n\n searxng.ready = function (callback) {\n if (document.readyState != 'loading') {\n callback.call(w);\n } else {\n w.addEventListener('DOMContentLoaded', callback.bind(w));\n }\n };\n\n searxng.http = function (method, url) {\n var req = new XMLHttpRequest(),\n resolve = function () {},\n reject = function () {},\n promise = {\n then: function (callback) { resolve = callback; return promise; },\n catch: function (callback) { reject = callback; return promise; }\n };\n\n try {\n req.open(method, url, true);\n\n // On load\n req.onload = function () {\n if (req.status == 200) {\n resolve(req.response, req.responseType);\n } else {\n reject(Error(req.statusText));\n }\n };\n\n // Handle network errors\n req.onerror = function () {\n reject(Error(\"Network Error\"));\n };\n\n req.onabort = function () {\n reject(Error(\"Transaction is aborted\"));\n };\n\n // Make the request\n req.send();\n } catch (ex) {\n reject(ex);\n }\n\n return promise;\n };\n\n searxng.loadStyle = function (src) {\n var path = searxng.static_path + src,\n id = \"style_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('link');\n s.setAttribute('id', id);\n s.setAttribute('rel', 'stylesheet');\n s.setAttribute('type', 'text/css');\n s.setAttribute('href', path);\n d.body.appendChild(s);\n }\n };\n\n searxng.loadScript = function (src, callback) {\n var path = searxng.static_path + src,\n id = \"script_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('script');\n s.setAttribute('id', id);\n s.setAttribute('src', path);\n s.onload = callback;\n s.onerror = function () {\n s.setAttribute('error', '1');\n };\n d.body.appendChild(s);\n } else if (!s.hasAttribute('error')) {\n try {\n callback.apply(s, []);\n } catch (exception) {\n console.log(exception);\n }\n } else {\n console.log(\"callback not executed : script '\" + path + \"' not loaded.\");\n }\n };\n\n searxng.insertBefore = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n searxng.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);\n };\n\n searxng.on('.close', 'click', function () {\n this.parentNode.classList.add('invisible');\n });\n\n return searxng;\n})(window, document);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a <div class=\"detail\"> element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n var vimKeys = {\n 27: {\n key: 'Escape',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 73: {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 66: {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 70: {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 85: {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 68: {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 71: {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 86: {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 75: {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 74: {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 80: {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 78: {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 79: {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 84: {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n 82: {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 72: {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n }\n };\n\n if (searxng.hotkeys) {\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (Object.prototype.hasOwnProperty.call(vimKeys, e.keyCode) && !e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.keyCode === 27) {\n vimKeys[e.keyCode].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n vimKeys[e.keyCode].fun();\n }\n }\n }\n });\n }\n\n function highlightResult (which) {\n return function (noScroll) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = current.nextElementSibling;\n if (next === null) {\n next = results[0];\n }\n break;\n case 'up':\n next = current.previousElementSibling;\n if (next === null) {\n next = results[results.length - 1];\n }\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n document.querySelector('#q').focus();\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in vimKeys) {\n var key = vimKeys[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '<a href=\"#\" class=\"close\" aria-label=\"close\" title=\"close\">×</a>';\n html += '<h3>How to navigate searx with Vim-like hotkeys</h3>';\n html += '<table>';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '<tr>';\n }\n html += '<td>';\n\n html += '<h4>' + cat[0].cat + '</h4>';\n html += '<ul class=\"list-unstyled\">';\n\n for (var cj in cat) {\n html += '<li><kbd>' + cat[cj].key + '</kbd> ' + cat[cj].des + '</li>';\n }\n\n html += '</ul>';\n html += '</td>'; // col-sm-*\n\n if (!first || lastCategory) {\n html += '</tr>'; // row\n }\n }\n\n html += '</table>';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n initHelpContent(helpPanel);\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // togggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © <a href=\"https://openstreetmap.org\">OpenStreetMap</a> contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © <a href=\"https://openstreetmap.org\">OpenStreetMap contributors</a>';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occour only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (<i>' + searxng.translations['Source'] + ':&nbsp;' + description[1] + '</i>)';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n if (d.querySelector('body[class=\"preferences_endpoint\"]')) {\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n }\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.image_thumbnail_layout = new searxng.ImageLayout('#urls', '#urls .result-images', 'img.image_thumbnail', 14, 6, 200);\n searxng.image_thumbnail_layout.watch();\n\n d.querySelectorAll('#urls img.image').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n img.style.display = 'none';\n img.error = null;\n }\n ));\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.selectImage = function (resultElement) {\n /* eslint no-unused-vars: 0 */\n if (resultElement) {\n // load full size image in background\n const imgElement = resultElement.querySelector('.result-images-source img');\n const thumbnailElement = resultElement.querySelector('.image_thumbnail');\n const detailElement = resultElement.querySelector('.detail');\n if (imgElement) {\n const imgSrc = imgElement.getAttribute('data-src');\n if (imgSrc) {\n const loader = d.createElement('div');\n const imgLoader = new Image();\n\n loader.classList.add('loader');\n detailElement.appendChild(loader);\n\n imgLoader.onload = e => {\n imgElement.src = imgSrc;\n loader.remove();\n };\n imgLoader.onerror = e => {\n loader.remove();\n };\n imgLoader.src = imgSrc;\n imgElement.src = thumbnailElement.src;\n imgElement.removeAttribute('data-src');\n }\n }\n }\n d.getElementById('results').classList.add('image-detail-open');\n searxng.image_thumbnail_layout.align();\n searxng.scrollPageToSelected();\n }\n\n searxng.closeDetail = function (e) {\n d.getElementById('results').classList.remove('image-detail-open');\n searxng.image_thumbnail_layout.align();\n searxng.scrollPageToSelected();\n }\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => searxng.selectPrevious(false));\n searxng.on('.result-detail-next', 'click', e => searxng.selectNext(false));\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global AutoComplete */\n(function (w, d, searxng) {\n 'use strict';\n\n var firstFocus = true, qinput_id = \"q\", qinput;\n\n function placeCursorAtEnd (element) {\n if (element.setSelectionRange) {\n var len = element.value.length;\n element.setSelectionRange(len, len);\n }\n }\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function () {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n });\n qinput.addEventListener('keyup', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n function placeCursorAtEndOnce () {\n if (firstFocus) {\n placeCursorAtEnd(qinput);\n firstFocus = false;\n } else {\n // e.preventDefault();\n }\n }\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.autocompleter) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.translations.no_item_found,\n HttpMethod: searxng.method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: 4,\n Delay: 300,\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.style.top = (this.Input.offsetTop + this.Input.offsetHeight) + \"px\";\n this.DOMResults.style.left = this.Input.offsetLeft + \"px\";\n this.DOMResults.style.width = this.Input.clientWidth + \"px\";\n },\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n }, \"#\" + qinput_id);\n\n // hack, see : https://github.com/autocompletejs/autocomplete.js/issues/37\n w.addEventListener('resize', function () {\n var event = new CustomEvent(\"position\");\n qinput.dispatchEvent(event);\n });\n }\n\n qinput.addEventListener('focus', placeCursorAtEndOnce, false);\n qinput.focus();\n }\n\n // vanilla js version of search_on_category_select.js\n if (qinput !== null && d.querySelector('.help') != null && searxng.search_on_category_select) {\n d.querySelector('.help').className = 'invisible';\n\n searxng.on('#categories input', 'change', function () {\n var i, categories = d.querySelectorAll('#categories input[type=\"checkbox\"]');\n for (i = 0; i < categories.length; i++) {\n if (categories[i] !== this && categories[i].checked) {\n categories[i].click();\n }\n }\n if (! this.checked) {\n this.click();\n }\n submitIfQuery();\n return false;\n });\n\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n });\n\n})(window, document, window.searxng);\n","/**\n*\n* Google Image Layout v0.0.1\n* Description, by Anh Trinh.\n* Heavily modified for searx\n* https://ptgamr.github.io/2014-09-12-google-image-layout/\n* https://ptgamr.github.io/google-image-layout/src/google-image-layout.js\n*\n* @license Free to use under the MIT License.\n*\n* @example <caption>Example usage of searxng.ImageLayout class.</caption>\n* searxng.image_thumbnail_layout = new searxng.ImageLayout(\n* '#urls', // container_selector\n* '#urls .result-images', // results_selector\n* 'img.image_thumbnail', // img_selector\n* 14, // verticalMargin\n* 6, // horizontalMargin\n* 200 // maxHeight\n* );\n* searxng.image_thumbnail_layout.watch();\n*/\n\n\n(function (w, d) {\n function ImageLayout (container_selector, results_selector, img_selector, verticalMargin, horizontalMargin, maxHeight) {\n this.container_selector = container_selector;\n this.results_selector = results_selector;\n this.img_selector = img_selector;\n this.verticalMargin = verticalMargin;\n this.horizontalMargin = horizontalMargin;\n this.maxHeight = maxHeight;\n this.isAlignDone = true;\n }\n\n /**\n * Get the height that make all images fit the container\n *\n * width = w1 + w2 + w3 + ... = r1*h + r2*h + r3*h + ...\n *\n * @param {[type]} images the images to be calculated\n * @param {[type]} width the container witdth\n * @param {[type]} margin the margin between each image\n *\n * @return {[type]} the height\n */\n ImageLayout.prototype._getHeigth = function (images, width) {\n var i, img;\n var r = 0;\n\n for (i = 0; i < images.length; i++) {\n img = images[i];\n if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {\n r += img.naturalWidth / img.naturalHeight;\n } else {\n // assume that not loaded images are square\n r += 1;\n }\n }\n\n return (width - images.length * this.verticalMargin) / r; // have to round down because Firefox will automatically roundup value with number of decimals > 3\n };\n\n ImageLayout.prototype._setSize = function (images, height) {\n var i, img, imgWidth;\n var imagesLength = images.length, resultNode;\n\n for (i = 0; i < imagesLength; i++) {\n img = images[i];\n if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {\n imgWidth = height * img.naturalWidth / img.naturalHeight;\n } else {\n // not loaded image : make it square as _getHeigth said it\n imgWidth = height;\n }\n img.style.width = imgWidth + 'px';\n img.style.height = height + 'px';\n img.style.marginLeft = this.horizontalMargin + 'px';\n img.style.marginTop = this.horizontalMargin + 'px';\n img.style.marginRight = this.verticalMargin - 7 + 'px'; // -4 is the negative margin of the inline element\n img.style.marginBottom = this.verticalMargin - 7 + 'px';\n resultNode = img.parentNode.parentNode;\n if (!resultNode.classList.contains('js')) {\n resultNode.classList.add('js');\n }\n }\n };\n\n ImageLayout.prototype._alignImgs = function (imgGroup) {\n var isSearching, slice, i, h;\n var containerElement = d.querySelector(this.container_selector);\n var containerCompStyles = window.getComputedStyle(containerElement);\n var containerPaddingLeft = parseInt(containerCompStyles.getPropertyValue('padding-left'), 10);\n var containerPaddingRight = parseInt(containerCompStyles.getPropertyValue('padding-right'), 10);\n var containerWidth = containerElement.clientWidth - containerPaddingLeft - containerPaddingRight;\n\n while (imgGroup.length > 0) {\n isSearching = true;\n for (i = 1; i <= imgGroup.length && isSearching; i++) {\n slice = imgGroup.slice(0, i);\n h = this._getHeigth(slice, containerWidth);\n if (h < this.maxHeight) {\n this._setSize(slice, h);\n // continue with the remaining images\n imgGroup = imgGroup.slice(i);\n isSearching = false;\n }\n }\n if (isSearching) {\n this._setSize(slice, Math.min(this.maxHeight, h));\n break;\n }\n }\n };\n\n ImageLayout.prototype.align = function () {\n var i;\n var results_selectorNode = d.querySelectorAll(this.results_selector);\n var results_length = results_selectorNode.length;\n var previous = null;\n var current = null;\n var imgGroup = [];\n\n for (i = 0; i < results_length; i++) {\n current = results_selectorNode[i];\n if (current.previousElementSibling !== previous && imgGroup.length > 0) {\n // the current image is not connected to previous one\n // so the current image is the start of a new group of images.\n // so call _alignImgs to align the current group\n this._alignImgs(imgGroup);\n // and start a new empty group of images\n imgGroup = [];\n }\n // add the current image to the group (only the img tag)\n imgGroup.push(current.querySelector(this.img_selector));\n // update the previous variable\n previous = current;\n }\n // align the remaining images\n if (imgGroup.length > 0) {\n this._alignImgs(imgGroup);\n }\n };\n\n ImageLayout.prototype.watch = function () {\n var i, img;\n var obj = this;\n var results_nodes = d.querySelectorAll(this.results_selector);\n var results_length = results_nodes.length;\n\n function img_load_error (event) {\n // console.log(\"ERROR can't load: \" + event.originalTarget.src);\n event.originalTarget.src = w.searxng.static_path + w.searxng.theme.img_load_error;\n }\n\n function throttleAlign () {\n if (obj.isAlignDone) {\n obj.isAlignDone = false;\n setTimeout(function () {\n obj.align();\n obj.isAlignDone = true;\n }, 100);\n }\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/pageshow_event\n w.addEventListener('pageshow', throttleAlign);\n // https://developer.mozilla.org/en-US/docs/Web/API/FileReader/load_event\n w.addEventListener('load', throttleAlign);\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/resize_event\n w.addEventListener('resize', throttleAlign);\n\n for (i = 0; i < results_length; i++) {\n img = results_nodes[i].querySelector(this.img_selector);\n if (img !== null && img !== undefined) {\n img.addEventListener('load', throttleAlign);\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror\n img.addEventListener('error', throttleAlign);\n if (w.searxng.theme.img_load_error) {\n img.addEventListener('error', img_load_error, {once: true});\n }\n }\n }\n };\n\n w.searxng.ImageLayout = ImageLayout;\n\n}(window, document));\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n/*\n * @license MIT\n *\n * Autocomplete.js v2.7.1\n * Developed by Baptiste Donaux\n * http://autocomplete-js.com\n *\n * (c) 2017, Baptiste Donaux\n */\n\"use strict\";\nvar ConditionOperator;\n(function (ConditionOperator) {\n ConditionOperator[ConditionOperator[\"AND\"] = 0] = \"AND\";\n ConditionOperator[ConditionOperator[\"OR\"] = 1] = \"OR\";\n})(ConditionOperator || (ConditionOperator = {}));\nvar EventType;\n(function (EventType) {\n EventType[EventType[\"KEYDOWN\"] = 0] = \"KEYDOWN\";\n EventType[EventType[\"KEYUP\"] = 1] = \"KEYUP\";\n})(EventType || (EventType = {}));\n/**\n * Core\n *\n * @class\n * @author Baptiste Donaux <baptiste.donaux@gmail.com> @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"<strong>\" + value + \"</strong>\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","req","XMLHttpRequest","resolve","reject","promise","then","catch","open","onload","status","response","responseType","Error","statusText","onerror","onabort","send","ex","loadStyle","src","path","static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","isElementInDetail","undefined","contains","getResultElement","isImageResult","resultElement","highlightResult","let","preventDefault","selectImage","getAttribute","vimKeys","27","key","fun","removeFocus","des","cat","73","searchInputFocus","66","scrollPage","innerHeight","70","85","68","71","scrollPageTo","scrollHeight","86","75","74","80","GoToPreviousPage","78","GoToNextPage","79","openResult","84","82","reloadPage","72","toggleHelp","hotkeys","Object","hasOwnProperty","keyCode","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","current","querySelector","effectiveWhich","next","results","top","documentElement","scrollTop","bot","clientHeight","length","etop","offsetTop","ebot","nextElementSibling","previousElementSibling","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","newTab","href","initHelpContent","divElement","categories","k","push","sorted","keys","sort","a","b","html","lastCategory","first","cj","innerHTML","helpPanel","className","getElementsByTagName","toggle","selectNext","selectPrevious","event","remove","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","entries","elements","element","source","translations","image_thumbnail_layout","ImageLayout","watch","forEach","img","style","display","error","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","imgElement","thumbnailElement","detailElement","imgSrc","loader","imgLoader","Image","align","firstFocus","qinput_id","qinput","placeCursorAtEnd","setSelectionRange","len","value","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","Delay","_Position","DOMResults","Input","offsetHeight","left","offsetLeft","width","clientWidth","_Open","params","Array","li","onmousedown","_Select","CustomEvent","dispatchEvent","search_on_category_select","checked","container_selector","results_selector","img_selector","verticalMargin","horizontalMargin","maxHeight","isAlignDone","_getHeigth","images","r","naturalWidth","naturalHeight","_setSize","height","imgWidth","imagesLength","resultNode","marginLeft","marginTop","marginRight","marginBottom","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","Math","min","results_selectorNode","results_length","previous","results_nodes","img_load_error","originalTarget","theme","throttleAlign","once","f","exports","module","define","amd","g","global","self","n","t","o","c","require","u","code","p","1","ConditionOperator","EventType","isArray","input","specificParams","merge","defaults","create","nodeName","match","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","type","mappings","KeyboardMappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","Not","Is","From","To","name","Conditions","Callback","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","request","_HttpMethod","_Url","queryParams","_Pre","queryParamsStringify","encodeURIComponent","_QueryArg","indexOf","setRequestHeader","onreadystatechange","$Cache","ajax","timeout","$AjaxTimer","clearTimeout","Request","abort","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","Enter","liActive","KeyUpAndDown_down","KeyUpAndDown_up","last","active","currentIndex","children","lisCount","item","AlphaNum","oldValue","currentValue","_MinChars","_Render","_Post","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","minchars","_Highlight","label","now","onclick","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","abs","Label","Value","returnResponse","json"],"mappings":"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"} \ No newline at end of file
diff --git a/searx/static/themes/simple/src/generated/pygments.less b/searx/static/themes/simple/src/generated/pygments.less
index 0f21d0280..f9b20c592 100644
--- a/searx/static/themes/simple/src/generated/pygments.less
+++ b/searx/static/themes/simple/src/generated/pygments.less
@@ -1,6 +1,6 @@
/*
this file is generated automatically by searxng_extra/update/update_pygments.py
- using pygments version 2.11.0
+ using pygments version 2.11.2
*/
.code-highlight .linenos {
diff --git a/searx/static/themes/simple/src/js/main/search.js b/searx/static/themes/simple/src/js/main/search.js
index 056eac014..6ef95f5bf 100644
--- a/searx/static/themes/simple/src/js/main/search.js
+++ b/searx/static/themes/simple/src/js/main/search.js
@@ -73,6 +73,16 @@
this.DOMResults.style.left = this.Input.offsetLeft + "px";
this.DOMResults.style.width = this.Input.clientWidth + "px";
},
+ _Open: function () {
+ var params = this;
+ Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"), function (li) {
+ if (li.getAttribute("class") != "locked") {
+ li.onmousedown = function () {
+ params._Select(li);
+ };
+ }
+ });
+ },
}, "#" + qinput_id);
// hack, see : https://github.com/autocompletejs/autocomplete.js/issues/37
diff --git a/searx/static/themes/simple/src/less/definitions.less b/searx/static/themes/simple/src/less/definitions.less
index dbf048ed4..b42dcd6e2 100644
--- a/searx/static/themes/simple/src/less/definitions.less
+++ b/searx/static/themes/simple/src/less/definitions.less
@@ -72,6 +72,7 @@
/// Settings Colors
--color-settings-tr-hover: #f7f7f7;
--color-settings-engine-description-font: darken(#dcdcdc, 30%);
+ --color-settings-engine-group-background: #0001;
/// Detail modal
--color-result-detail-font: #fff;
--color-result-detail-label-font: lightgray;
@@ -180,6 +181,7 @@
/// Settings Colors
--color-settings-tr-hover: #2d2d2d;
--color-settings-engine-description-font: darken(#dcdcdc, 30%);
+ --color-settings-engine-group-background: #1a1919;
/// Toolkit Colors
--color-toolkit-badge-font: #fff;
--color-toolkit-badge-background: #777;
diff --git a/searx/static/themes/simple/src/less/preferences.less b/searx/static/themes/simple/src/less/preferences.less
index c6e691b9d..5fdd4bfaa 100644
--- a/searx/static/themes/simple/src/less/preferences.less
+++ b/searx/static/themes/simple/src/less/preferences.less
@@ -161,6 +161,12 @@
}
}
}
+
+ .engine-group {
+ text-align: left;
+ font-weight: normal;
+ background: var(--color-settings-engine-group-background);
+ }
}
@media screen and (max-width: @tablet) {
diff --git a/searx/templates/oscar/categories.html b/searx/templates/oscar/categories.html
index a5c5f61c7..39d1e1d33 100644
--- a/searx/templates/oscar/categories.html
+++ b/searx/templates/oscar/categories.html
@@ -1,11 +1,11 @@
<div id="categories">
{%- if rtl -%}
- {% for category in categories | reverse -%}
+ {% for category in categories_as_tabs | reverse -%}
<input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} />{{- '' -}}
<label for="checkbox_{{ category|replace(' ', '_') }}">{{ _(category) }}</label>
{%- endfor %}
{%- else -%}
- {% for category in categories -%}
+ {% for category in categories_as_tabs -%}
<input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} />{{- '' -}}
<label for="checkbox_{{ category|replace(' ', '_') }}">{{ _(category) }}</label>
{%- endfor %}
diff --git a/searx/templates/oscar/preferences.html b/searx/templates/oscar/preferences.html
index b76ee44a1..fe86ce39b 100644
--- a/searx/templates/oscar/preferences.html
+++ b/searx/templates/oscar/preferences.html
@@ -298,7 +298,7 @@
<div class="tab-pane active_if_nojs" id="tab_engine">
<!-- Nav tabs -->
<ul class="nav nav-tabs nav-justified hide_if_nojs" role="tablist">
- {% for categ in all_categories %}
+ {% for categ in categories_as_tabs + [OTHER_CATEGORY] %}
<li{% if loop.first %} class="active"{% endif %}><a href="#tab_engine_{{ categ|replace(' ', '_') }}" role="tab" data-toggle="tab">{{ _(categ) }}</a></li>
{% endfor %}
</ul>
@@ -317,10 +317,13 @@
</p>
</div>
- {% for categ in all_categories %}
+ {% for categ in categories_as_tabs + [OTHER_CATEGORY] %}
<noscript><label>{{ _(categ) }}</label>
</noscript>
<div class="tab-pane{% if loop.first %} active{% endif %} active_if_nojs" id="tab_engine_{{ categ|replace(' ', '_') }}">
+ {% if categ == OTHER_CATEGORY %}
+ <p>{{_('This tab does not show up for search results but you can search the engines listed here via bangs.')}}</p>
+ {% endif %}
<div class="container-fluid">
<fieldset>
<div class="table-responsive">
@@ -348,7 +351,11 @@
<th scope="col" class="text-right">{{ _("Allow") }}</th>
{% endif %}
</tr>
- {% for search_engine in engines_by_category[categ] %}
+ {% for group, engines in engines_by_category[categ] | group_engines_in_tab %}
+ {% if loop.length > 1 %}
+ <tr><th colspan="9">{{_(group)}}</th></tr>
+ {% endif %}
+ {% for search_engine in engines %}
{% if not search_engine.private %}
<tr>
{% if not rtl %}
@@ -357,7 +364,11 @@
</td>
<th scope="row" data-engine-name="{{ search_engine.name }}"><span aria-labelledby="{{ 'tooltip_' + categ + '_' + search_engine.name }}">
{%- if search_engine.enable_http %}{{ icon('exclamation-sign', 'No HTTPS') }}{% endif -%}
- {{- search_engine.name -}}</span>
+ {{- search_engine.name -}}
+ {%- if search_engine.about and search_engine.about.language %}
+ ({{search_engine.about.language | upper}})
+ {%- endif %}
+ </span>
{{- engine_about(search_engine, 'tooltip_' + categ + '_' + search_engine.name) -}}
</th>
<td class="name">{{ shortcuts[search_engine.name] }}</td>
@@ -383,6 +394,7 @@
</tr>
{% endif %}
{% endfor %}
+ {% endfor %}
</table>
</div>
</fieldset>
diff --git a/searx/templates/simple/categories.html b/searx/templates/simple/categories.html
index ae8b2ec09..71a211904 100644
--- a/searx/templates/simple/categories.html
+++ b/searx/templates/simple/categories.html
@@ -14,7 +14,7 @@
<div id="categories" class="search_categories">{{- '' -}}
<div id="categories_container">
{%- if display_tooltip %}<div class="help">{{ _('Click on the magnifier to perform search') }}</div>{% endif -%}
- {%- for category in categories -%}
+ {%- for category in categories_as_tabs -%}
<div class="category"><input type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}"{% if category in selected_categories %} checked="checked"{% endif %}/>
<label for="checkbox_{{ category|replace(' ', '_') }}" class="tooltips">
{{- icon_big(category_icons[category]) if category in category_icons else icon_big('globe-outline') -}}
diff --git a/searx/templates/simple/preferences.html b/searx/templates/simple/preferences.html
index 8f602cd1b..043f9d634 100644
--- a/searx/templates/simple/preferences.html
+++ b/searx/templates/simple/preferences.html
@@ -274,8 +274,11 @@
{{ tab_header('maintab', 'engines', _('Engines')) }}
<p>{{ _('Currently used search engines') }}</p>
{{ tabs_open() }}
- {% for categ in all_categories %}
+ {% for categ in categories_as_tabs + [OTHER_CATEGORY] %}
{{ tab_header('enginetab', 'category' + categ, _(categ)) }}
+ {% if categ == OTHER_CATEGORY %}
+ <p>{{_('This tab does not show up for search results but you can search the engines listed here via bangs.')}}</p>
+ {% endif %}
<div class="scrollx">
<table class="striped">
<tr>
@@ -289,12 +292,22 @@
<th>{{ _("Max time") }}</th>
<th>{{ _("Reliability") }}</th>
</tr>
- {% for search_engine in engines_by_category[categ] %}
+ {% for group, engines in engines_by_category[categ] | group_engines_in_tab %}
+ {% if loop.length > 1 %}
+ <tr><th colspan="9" class="engine-group">{{_(group)}}</th></tr>
+ {% endif %}
+ {% for search_engine in engines %}
{% if not search_engine.private %}
{% set engine_id = 'engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_') %}
<tr>
<td class="engine_checkbox">{{ checkbox_onoff(engine_id, (search_engine.name, categ) in disabled_engines) }}</td>
- <th class="name" data-engine-name="{{ search_engine.name }}">{% if search_engine.enable_http %}{{ icon_big('warning', 'No HTTPS') }}{% endif %} {{ search_engine.name }} {{ engine_about(search_engine) }}</th>
+ <th class="name" data-engine-name="{{ search_engine.name }}">{% if search_engine.enable_http %}{{ icon_big('warning', 'No HTTPS') }}{% endif %}
+ {{ search_engine.name }}
+ {%- if search_engine.about and search_engine.about.language %}
+ ({{search_engine.about.language | upper}})
+ {%- endif %}
+ {{ engine_about(search_engine) }}
+ </th>
<td class="shortcut">{{ shortcuts[search_engine.name] }}</td>
<td>{{ checkbox(engine_id + '_supported_languages', supports[search_engine.name]['supports_selected_language'], true, true) }}</td>
<td>{{ checkbox(engine_id + '_safesearch', supports[search_engine.name]['safesearch'], true, true) }}</td>
@@ -305,6 +318,7 @@
</tr>
{% endif %}
{% endfor %}
+ {% endfor %}
</table>
</div>
{{ tab_footer() }}
diff --git a/searx/translations/ar/LC_MESSAGES/messages.mo b/searx/translations/ar/LC_MESSAGES/messages.mo
index 25b75a27a..4d8504872 100644
--- a/searx/translations/ar/LC_MESSAGES/messages.mo
+++ b/searx/translations/ar/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/ar/LC_MESSAGES/messages.po b/searx/translations/ar/LC_MESSAGES/messages.po
index edf24bc6b..657885de0 100644
--- a/searx/translations/ar/LC_MESSAGES/messages.po
+++ b/searx/translations/ar/LC_MESSAGES/messages.po
@@ -8,184 +8,215 @@
# d506c013dc1b502e7a53f91ebcbf8f29_985b4b3, 2017-2018
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-31 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Arabic <https://weblate.bubu1.eu/projects/searxng/searxng/ar/>"
-"\n"
"Language: ar\n"
+"Language-Team: Arabic "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/ar/>\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : "
+"n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
-"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
-"X-Generator: Weblate 4.10.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "ملفات"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "الرئيسية"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "موسيقى"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "شبكات التواصل الإجتماعي"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "صور"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "فيديوهات"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "علوم و تكنولوجيا"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "أخبار"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "خرائط"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "onions"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "علوم"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr ""
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "تلقائي"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "فاتح"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "مظلم"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "نفذ الوقت"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "خطأ في بروتوكول HTTP"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "خطأ في الشبكة"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "تعطل غير متوقع"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "خطأ HTTP"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "خطأ في اتصال HTTP"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "خطأ في وكيل البروكسي"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "الكثير من الطلبات"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "خطأ في API الخادم"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "تعذر العثور على عناصر"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "المصدر"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "إنّ الإعدادات خاطئة، يرجى تعديل خياراتك"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "إعدادات غير صالحة"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "خطأ في البحث"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "قبل دقائق"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "قبل {hours} ساعات، {minutes} دقائق"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "معلق"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "مولّد قيمة عشوائية"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "توليد قِيم عشوائية مختلفة"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr ""
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr ""
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr ""
@@ -193,7 +224,7 @@ msgstr ""
msgid "No abstract is available for this publication."
msgstr "لا يوجد ملخص لهاذا المنشور"
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "القناة"
@@ -231,31 +262,31 @@ msgid ""
"when available"
msgstr ""
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "البحث في الفئة المحددة"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
msgstr ""
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr ""
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "مزيل روابط التعقّب"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr ""
@@ -304,35 +335,35 @@ msgstr "غلق"
msgid "Error!"
msgstr "خطأ !"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "مدعوم بواسطة"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "محرك بحث يحمي الخصوصية و قابل للتهكير"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "الشفرة المصدرية"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "إحصائيات المحرك"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "مثيلات الخوادم العمومية"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr "الإتصال بالمشرف على مثيل الخادم"
@@ -369,11 +400,11 @@ msgid "proxied"
msgstr "النفاذ عبر البروكسي"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "تمكين"
@@ -474,13 +505,13 @@ msgid "Engines"
msgstr "المحركات"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "كعكات الكوكيز"
@@ -502,13 +533,13 @@ msgid "What language do you prefer for search?"
msgstr "ما هي لغتك المفضلة للبحث ؟"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "البحث المؤمَّن"
@@ -683,148 +714,155 @@ msgstr "إظهار الكل"
msgid "Disable all"
msgstr "تعطيل الكل"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "إسم المحرك"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "الإختصار"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "اللغة المختارة"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "الفترة"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr "مدة الإستجابة"
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "أقصى مدّة"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr "إمكانية الإشتغال"
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "الكلمات الرمزية"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "التسمية"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "الوصف"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "أمثلة"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "إسم الكوكي"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "القيمة"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
msgstr ""
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr ""
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr ""
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "حفظ"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "العودة"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "إعاد التعيين إلى الإعدادات الإفتراضية"
@@ -1197,7 +1235,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "محركات البحث المُستخدَمة حاليًا"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "يدعم اللغة المختارة"
@@ -1340,3 +1378,4 @@ msgstr "محرك"
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/bg/LC_MESSAGES/messages.mo b/searx/translations/bg/LC_MESSAGES/messages.mo
index 7159f4255..8ba504c66 100644
--- a/searx/translations/bg/LC_MESSAGES/messages.mo
+++ b/searx/translations/bg/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/bg/LC_MESSAGES/messages.po b/searx/translations/bg/LC_MESSAGES/messages.po
index 4332bb78a..7a2cd4269 100644
--- a/searx/translations/bg/LC_MESSAGES/messages.po
+++ b/searx/translations/bg/LC_MESSAGES/messages.po
@@ -7,183 +7,214 @@
# ubone <van_ds_ff@mail.bg>, 2016-2017
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-10 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Bulgarian <https://weblate.bubu1.eu/projects/searxng/searxng/"
-"bg/>\n"
"Language: bg\n"
+"Language-Team: Bulgarian "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/bg/>\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 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "файлове"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "общо"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "музика"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "социална мрежа"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "изображения"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "видео"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "IT"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "новини"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "карта"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "onions"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "наука"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr ""
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "автоматичен"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "светъл"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "тъмен"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "изчакване"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "грешка при анализа"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "Грешка в протокола HTTP"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "мрежова грешка"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "неочакван срив"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "HTTP грешка"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "HTTP грешка във връзката"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "прокси грешка"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "Кепча"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "твърде много искания"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "отказан достъп"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "грешка в API на сървъра"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Не е намерен артикул"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "Източник"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Неправилни настройки, моля проверете предпочитанията си."
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "невалидни настройки"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "грешка при търсенето"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "преди {minutes} минута(минути)"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "преди {hours} час(ове), {minutes} минута(минути)"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "преустановен"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Генератор на произволни стойности"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Генерирайте различни произволни стойности"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Функции за статистика"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Изчислете {функции} на аргументите"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Вземете упътвания"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{заглавие} (ОСТАРЯЛО)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Този запис е заменен от"
@@ -191,7 +222,7 @@ msgstr "Този запис е заменен от"
msgid "No abstract is available for this publication."
msgstr "Няма резюме за тази публикация."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "Канал"
@@ -210,8 +241,8 @@ msgstr "Замяна на името на хоста"
#: searx/plugins/hostname_replace.py:10
msgid "Rewrite result hostnames or remove results based on the hostname"
msgstr ""
-"Пренапишете имената на хостове на резултатите или премахнете резултатите въз "
-"основа на името на хоста"
+"Пренапишете имената на хостове на резултатите или премахнете резултатите "
+"въз основа на името на хоста"
#: searx/plugins/infinite_scroll.py:3
msgid "Infinite scroll"
@@ -233,11 +264,11 @@ msgstr ""
"Избягвайте заплатите, като пренасочвате към версии с отворен достъп на "
"публикации, когато са налични"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Търси при избор на категория"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -245,21 +276,21 @@ msgstr ""
"Търси веднага при избрана категория. Изключи за избор на няколко "
"категории. (Необходим е JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr "Показва IP-то ви и др. инфо, ако търсенето е \"ip\" или \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr ""
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr ""
@@ -272,9 +303,9 @@ msgid ""
"Navigate search results with Vim-like hotkeys (JavaScript required). "
"Press \"h\" key on main or result page to get help."
msgstr ""
-"Навигирайте резултатите от търсенето с Vim-подобни горещи клавиши (изисква "
-"се JavaScript). Натиснете клавиша \"h\" на главната или резултатната "
-"страница, за да получите помощ."
+"Навигирайте резултатите от търсенето с Vim-подобни горещи клавиши "
+"(изисква се JavaScript). Натиснете клавиша \"h\" на главната или "
+"резултатната страница, за да получите помощ."
#: searx/templates/oscar/404.html:4 searx/templates/simple/404.html:4
msgid "Page not found"
@@ -311,35 +342,35 @@ msgstr "Затвори"
msgid "Error!"
msgstr "Грешка!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "С подкрепата на"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "за спазване на поверителността, хакерска метатърсачка"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Статистика на търсачката"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -376,11 +407,11 @@ msgid "proxied"
msgstr ""
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Позволи"
@@ -481,13 +512,13 @@ msgid "Engines"
msgstr "Търсачки"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Бисквитки"
@@ -509,13 +540,13 @@ msgid "What language do you prefer for search?"
msgstr "Кой език предпочитате за търсене?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Безопасно търсене"
@@ -690,112 +721,119 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Име на търсачка"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Пряк път"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr ""
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr ""
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Макс. време"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Ключови думи"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Име"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Описание"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Примери"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Име на бисквитката"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Стойност"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -803,8 +841,8 @@ msgstr ""
"Тези настройки се съхраняват във вашите бисквитки. Това ни позволява да "
"не съхраняваме тази информация за вас."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -812,30 +850,30 @@ msgstr ""
"Тези бисквитки служат за ваше удобство. Ние не ги използваме, за да ви "
"следим."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr ""
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "запази"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "назад"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Върни първоначалните"
@@ -1202,14 +1240,13 @@ msgstr "Тематичен стил"
#: searx/templates/simple/preferences.html:216
msgid "Choose auto to follow your browser settings"
-msgstr ""
-"Изберете автоматични настойки, за да следвате настройките на браузъра си"
+msgstr "Изберете автоматични настойки, за да следвате настройките на браузъра си"
#: searx/templates/simple/preferences.html:275
msgid "Currently used search engines"
msgstr "Използвани търсачки в момента"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Поддържка на избраният език"
@@ -1352,3 +1389,4 @@ msgstr "Търсачка"
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/bo/LC_MESSAGES/messages.mo b/searx/translations/bo/LC_MESSAGES/messages.mo
index 1d8e07638..2db774a45 100644
--- a/searx/translations/bo/LC_MESSAGES/messages.mo
+++ b/searx/translations/bo/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/bo/LC_MESSAGES/messages.po b/searx/translations/bo/LC_MESSAGES/messages.po
index b9261bae0..e67996d27 100644
--- a/searx/translations/bo/LC_MESSAGES/messages.po
+++ b/searx/translations/bo/LC_MESSAGES/messages.po
@@ -7,183 +7,214 @@
# 1225 <khyon_khangey@outlook.com>, 2019
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-17 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Tibetan <https://weblate.bubu1.eu/projects/searxng/searxng/bo/"
-">\n"
"Language: bo\n"
+"Language-Team: Tibetan "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/bo/>\n"
+"Plural-Forms: nplurals=1; plural=0\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "ཡིག་ཚགས།"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "དྲ་སྦྲེལ།"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "རོལ་མོ།"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "སྤྱི་འབྲེལ།"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "པར་རིས།"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "བརྙན་ཟློས།"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "ཆ་འཕྲིན་ལག་རྩལ།"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "གསར་འགྱུར།"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "ས་བཀྲ།"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "ཚན་རིག"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "རྣམ་གྲངས་གང་ཡང་རྙེད་རྒྱུ་མ་བྱུང་།"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "ནུས་མེད་ཀྱི་སྒྲིག་འགོད།ཁྱེད་ཀྱིས་གདམ་ཀ་ལ་བཅོས་སྒྲིག་གཏོང་རོགས།"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "ནུས་མེད་ཀྱི་སྒྲིག་འགོད།"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "འཚོལ་བཤེར་ལ་ནོར་འཁྲུལ་བྱུང་།"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "སྐར་མ་ {minutes} སྔོན་ལ།"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "ཆུ་ཚོད་ {hours} དང་སྐར་མ {minutes} སྔོན་ལ།"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "ངེས་མེད་གྲངས་ཀ་མཁོ་སྤྲོད།"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "ངེས་མེད་གྲངས་ཀ་ཁ་ཤས་ཐོབ་པར་བྱེད།"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "སྡོམ་བརྩིས་ཀྱི་བྱེད་ནུས།"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "{functions} གཞི་གྲངས་གྲངས་རྩིས།"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "འཚོལ་བྱང་འདི་གཞན་གྱིས་ཚབ་བྱེད་འདུག"
@@ -191,7 +222,7 @@ msgstr "འཚོལ་བྱང་འདི་གཞན་གྱིས་ཚབ
msgid "No abstract is available for this publication."
msgstr ""
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -231,11 +262,11 @@ msgstr ""
"Avoid paywalls by redirecting to open-access versions of publications "
"when available"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "རིགས་གདམ་གསེས་བཏང་ནས་འཚོལ་བཤེར་གཏོང་།"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -243,21 +274,21 @@ msgstr ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr ""
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "དྲ་གནས་རྗེས་འདེད་སྤོ་འབུད།"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Remove trackers arguments from the returned URL"
@@ -306,35 +337,35 @@ msgstr "ཁ་རྒྱག"
msgid "Error!"
msgstr "ནོར་འཁྲུལ་བྱུང་ཟིན།"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "བཟོ་སྐུན་པ་ནི"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "མི་སྒེར་ཆ་འཕྲིན་ལ་བརྩི་གསོག་ལྡན་ཞིང་འཚོལ་བྱེད་ནང་དོན་ཕུན་སུམ་པའི་འཚོལ་བཤེར་སྒུལ་བྱེད་མ་ལག"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "སྒུལ་བྱེད་ཀྱི་སྡོམ་རྩིས།"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -371,11 +402,11 @@ msgid "proxied"
msgstr "མངག་བཅོལ་བྱེད་ཟིན།"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "ཆོག་མཆན།"
@@ -476,13 +507,13 @@ msgid "Engines"
msgstr "སྒུལ་བྱེད།"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "རྐང་རྗེས།"
@@ -504,13 +535,13 @@ msgid "What language do you prefer for search?"
msgstr "ཁྱེད་ཀྱིས་ཆེས་སྤྱོད་བདེ་པའི་འཚོལ་བཤེར་སྐད་རིགས་གང་ཡིན་ནམ།"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "བདེ་འཇགས་འཚོལ་བཤེར།"
@@ -685,148 +716,155 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "སྒུལ་བྱེད་ཀྱི་མིང་།"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "མགྱོགས་མྱུར་མཐེབ་གཞོང་།"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "སྐད་རིགས་གདམ་གསེས།"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "དུས་ཀྱི་ཁྱབ་ཁོངས།"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "མང་མཐའི་དུས་ཚོད།"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "ཐ་སྙད་གཙོ་བོ།"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "མིང་།"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "འབྲེལ་ཡོད་ངོ་སྤྲོད།"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "དཔེ་བརྗོད།"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "རྗེས་འདེད་ཀྱི་ཡིག་ཆའི་མིང་།"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "ཚད་གཞི།"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
msgstr ""
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr ""
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "ཉེ་ལམ་རང་མོས་སྒྲིག་འགོད་ཁྲོད་དུ་གསོག་འཇོག་བྱས་ཟིན་པའི་དྲ་གནས་འཚོལ་བཤེར།"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr ""
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "གསོག་འཇོག"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "ཕྱིར་ལོག"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "གཞི་བཞག་གི་རྣམ་པར་སྒྲིག་བཀོད་བྱེད།"
@@ -1199,7 +1237,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "ཉེ་ལམ་སྤྱད་ཟིན་པའི་འཚོལ་བྱེད་སྒུལ་བྱེད།"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "རྒྱབ་སྐྱོར་ཐོབ་པའི་སྐད་རིགས་གདམ་གསེས།"
@@ -1346,3 +1384,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/ca/LC_MESSAGES/messages.mo b/searx/translations/ca/LC_MESSAGES/messages.mo
index 7a6ad5a08..0ecd5065c 100644
--- a/searx/translations/ca/LC_MESSAGES/messages.mo
+++ b/searx/translations/ca/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/ca/LC_MESSAGES/messages.po b/searx/translations/ca/LC_MESSAGES/messages.po
index 424900b0f..ab875d5af 100644
--- a/searx/translations/ca/LC_MESSAGES/messages.po
+++ b/searx/translations/ca/LC_MESSAGES/messages.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-11-03 08:06+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"Language: ca\n"
@@ -22,168 +22,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "fitxers"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "general"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "música"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "xarxes socials"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "imatges"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "vídeos"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "informàtica"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "notícies"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "mapa"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "ciència"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "No s'ha trobat cap element"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "La configuració no és vàlida, editeu-la"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "La configuració no és vàlida"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "error en la cerca"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "fa {minutes} minuts"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "fa {hours} hores i {minutes} minuts"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Generador de valor aleatori"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Genera valors aleatoris diferents"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Funcions estadístiques"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Calcula {functions} dels arguments"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Aquesta entrada ha estat substituïda per"
@@ -191,7 +223,7 @@ msgstr "Aquesta entrada ha estat substituïda per"
msgid "No abstract is available for this publication."
msgstr "No hi ha resum disponible per a aquesta publicació."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -233,11 +265,11 @@ msgstr ""
"Evita els llocs de pagaments redirigint a versions d'accés obert de les "
"publicacions si és possible"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Cerca en la selecció de categories"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -245,11 +277,11 @@ msgstr ""
"Executa la cerca immediatament si hi ha seleccionada una categoria. "
"Desactiveu-ho per a seleccionar més d'una categoria. (Cal JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -257,11 +289,11 @@ msgstr ""
"Mostra la vostra IP si la consulta és «ip» i el valor «user agent» del "
"navegador si la consulta conté «user agent»."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Suprimeix l'URL de rastreig"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Suprimeix els arguments de rastreig de les URL retornades"
@@ -313,35 +345,35 @@ msgstr "Tanca"
msgid "Error!"
msgstr "Error!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Funciona amb"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "un meta motor de cerca personalitzable i respectuós amb la privadesa"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Estadístiques del motor"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -378,11 +410,11 @@ msgid "proxied"
msgstr "en servidor intermediari"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Permet"
@@ -483,13 +515,13 @@ msgid "Engines"
msgstr "Motorrs"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Galetes"
@@ -511,13 +543,13 @@ msgid "What language do you prefer for search?"
msgstr "En quina llengua preferiu cercar?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Cerca segura"
@@ -697,112 +729,119 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Nom del motor"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Drecera"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Llengua seleccionada"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Interval de temps"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Temps màxim"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Paraules clau"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Nom"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Descripció"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Exemples"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Nom de la galeta"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Valor"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -810,8 +849,8 @@ msgstr ""
"Aquesta configuració es desa en les galetes. Això ens permet no "
"emmagatzemar les vostres dades."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -819,13 +858,13 @@ msgstr ""
"Aquestes galetes només són per a la vostra conveniència. No les usem per "
"a rastrejar-vos."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "URL de cerca de les preferències desades actualment"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -834,18 +873,18 @@ msgstr ""
" reduir la privadesa, amb filtració de dades, en fer clic als llocs dels "
"resultats."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "desa"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "enrere"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Restaura els valors predeterminats"
@@ -1218,7 +1257,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Motors de cerca usats actualment"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Suporta la llengua seleccionada"
diff --git a/searx/translations/cs/LC_MESSAGES/messages.mo b/searx/translations/cs/LC_MESSAGES/messages.mo
index 0319a692b..581ecae66 100644
--- a/searx/translations/cs/LC_MESSAGES/messages.mo
+++ b/searx/translations/cs/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/cs/LC_MESSAGES/messages.po b/searx/translations/cs/LC_MESSAGES/messages.po
index 5cf8e11e7..2b062a385 100644
--- a/searx/translations/cs/LC_MESSAGES/messages.po
+++ b/searx/translations/cs/LC_MESSAGES/messages.po
@@ -9,184 +9,215 @@
# Venca24 <Vaclav.Zouzalik@seznam.cz>, 2018
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-31 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Czech <https://weblate.bubu1.eu/projects/searxng/searxng/cs/>"
-"\n"
"Language: cs\n"
+"Language-Team: Czech "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/cs/>\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && "
+"n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n "
-"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
-"X-Generator: Weblate 4.10.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "soubory"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "obecné"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "hudba"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "sociální media"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "obrázky"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "videa"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "IT"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "zprávy"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "mapa"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "cibule"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "věda"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "light"
msgstr "světlý"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "tmavý"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "chyba HTTP protokolu"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "síťová chyba"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "nečekaná chyba"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "chyba HTTP"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "přístup odepřen"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Nic nenalezeno"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "zdroj"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Neplatné nastavení, upravte své předvolby"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Neplatné nastavení"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "chyba vyhledávání"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "před {minutes} minutami"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "před {hours} hodinami, {minutes} minutami"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Generátor náhodných hodnot"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Generování náhodných hodnot"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Statistické funkce"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Výpočet funkcí {functions} pro daný argument"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Získat pokyny"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (ZASTARALÉ)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Tato položka byla nahrazena položkou"
@@ -194,7 +225,7 @@ msgstr "Tato položka byla nahrazena položkou"
msgid "No abstract is available for this publication."
msgstr "Pro tuto publikaci neexistuje žádný abstrakt"
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -234,23 +265,23 @@ msgstr ""
"Automaticky přesměrovat na volně přístupné verze publikací místo "
"placených, pokud je to možné"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Spustit hledaní při výběru kategorie"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
msgstr ""
-"Provede hledání okamžitě při výběru kategorie. Pokud je tato funkce vypnuta, "
-"je možné vybrat více kategorií (vyžaduje JavaScript)"
+"Provede hledání okamžitě při výběru kategorie. Pokud je tato funkce "
+"vypnuta, je možné vybrat více kategorií (vyžaduje JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -258,11 +289,11 @@ msgstr ""
"Umožňuje hledat informace o sobě: \"ip\" zobrazí vaši IP adresu a \"user "
"agent\" zobrazí identifikátor prohlížeče."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Odstraňovač sledovacích URL"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Odstranit sledovací parametry z načtených URL"
@@ -314,35 +345,35 @@ msgstr "Zavřít"
msgid "Error!"
msgstr "Chyba!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Poháněno softwarem"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "soukromí respektujícím, nastavitelným multivyhledávačem"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Zdrojový kód"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Hlášení chyb"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Statistiky vyhledávače"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Veřejné instance"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr "Kontaktujte správce instance"
@@ -379,11 +410,11 @@ msgid "proxied"
msgstr "přes proxy"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Povolit"
@@ -484,13 +515,13 @@ msgid "Engines"
msgstr "Vyhledávače"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookies"
@@ -512,13 +543,13 @@ msgid "What language do you prefer for search?"
msgstr "Jaký jazyk vyhledávání upřednostňujete?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Bezpečné vyhledávání"
@@ -698,112 +729,119 @@ msgstr "Povolit vše"
msgid "Disable all"
msgstr "Zakázat vše"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Jméno vyhledávače"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Zkratka"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Váš jazyk vyhledávání"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Čásový interval"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Max. čas"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Klíčová slova"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Název"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Popis"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Příklady"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Název cookie"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Hodnota"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -811,8 +849,8 @@ msgstr ""
"Tato nastavení jsou uložena ve vašich cookies, což nám umožňuje tyto data"
" neuchovávat nikde jinde."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -820,13 +858,13 @@ msgstr ""
"Tyto cookies existují výhradně pro vaše pohodlí, nepoužíváme je ke "
"sledování."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "URL pro vyhledávání s aktuálně uloženými předvolbami"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -834,18 +872,18 @@ msgstr ""
"Poznámka: zadaní vlastních nastavení v URL může snížit soukromí "
"prozrazením dat při kliknutí na výsledky hledání."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "uložit"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "zpět"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "obnovit výchozí"
@@ -1218,7 +1256,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Aktuálně používané vyhledávače"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Podporuje vybraný jazyk"
@@ -1367,3 +1405,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/cy/LC_MESSAGES/messages.mo b/searx/translations/cy/LC_MESSAGES/messages.mo
index 052b98d8d..790a30347 100644
--- a/searx/translations/cy/LC_MESSAGES/messages.mo
+++ b/searx/translations/cy/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/cy/LC_MESSAGES/messages.po b/searx/translations/cy/LC_MESSAGES/messages.po
index 27cb2d1ba..c32efb062 100644
--- a/searx/translations/cy/LC_MESSAGES/messages.po
+++ b/searx/translations/cy/LC_MESSAGES/messages.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2020-07-09 13:10+0000\n"
"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
"Language: cy\n"
@@ -21,168 +21,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "ffeiliau"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "cyffredinol"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "cerddoriaeth"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "cyfryngau cymdeithasol"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "delweddau"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "fideos"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "Technoleg"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "newyddion"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "map"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "gwyddoniaeth"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Ni chanfuwyd eitem"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Gosodiadau annilys. Addasa dy ddewisiadau."
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Gosodiadau annilys"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "gwall chwilio"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} munud yn ôl"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} awr, {minutes} munud yn ôl"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr ""
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr ""
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr ""
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr ""
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr ""
@@ -190,7 +222,7 @@ msgstr ""
msgid "No abstract is available for this publication."
msgstr ""
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -228,31 +260,31 @@ msgid ""
"when available"
msgstr ""
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr ""
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
msgstr ""
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr ""
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr ""
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr ""
@@ -301,35 +333,35 @@ msgstr "Cau"
msgid "Error!"
msgstr "Gwall!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Pwerwyd gan"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr ""
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr ""
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -366,11 +398,11 @@ msgid "proxied"
msgstr ""
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Caniatáu"
@@ -471,13 +503,13 @@ msgid "Engines"
msgstr "Peiriannau"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cwcis"
@@ -499,13 +531,13 @@ msgid "What language do you prefer for search?"
msgstr "Ym mha iaith wyt ti'n ffafrio chwilio?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr ""
@@ -680,148 +712,155 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr ""
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Llwybr Byr"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Iaith a ddewiswyd"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Cyfnod amser"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr ""
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Allweddeiriau"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Enw"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Disgrifiad"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Enghreifftiau"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Enw cwci"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Gwerth"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
msgstr ""
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr ""
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr ""
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "cadw"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "nôl"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Ailosod rhagosodiadau"
@@ -1194,7 +1233,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr ""
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Cefnogir yr iaith a ddewiswyd"
diff --git a/searx/translations/da/LC_MESSAGES/messages.mo b/searx/translations/da/LC_MESSAGES/messages.mo
index bbb8143d9..1772511cc 100644
--- a/searx/translations/da/LC_MESSAGES/messages.mo
+++ b/searx/translations/da/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/da/LC_MESSAGES/messages.po b/searx/translations/da/LC_MESSAGES/messages.po
index 3919f4d77..4ae9d8420 100644
--- a/searx/translations/da/LC_MESSAGES/messages.po
+++ b/searx/translations/da/LC_MESSAGES/messages.po
@@ -7,183 +7,214 @@
# Morten Krogh Andersen <spam1@krogh.net>, 2017
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-31 07:17+0000\n"
"Last-Translator: Frederik From <frederikfrom@pm.me>\n"
-"Language-Team: Danish <https://weblate.bubu1.eu/projects/searxng/searxng/da/>"
-"\n"
"Language: da\n"
+"Language-Team: Danish "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/da/>\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 4.10.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "filer"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "generelt"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "musik"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "sociale medier"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "billeder"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "videoer"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "it"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "nyheder"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "kort"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "onion-links"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "videnskab"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr ""
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "automatisk"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "lys"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "mørk"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "udløbstid"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "fortolkningsfejl"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "HTTP-protokolfejl"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "netværksfejl"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "uventet nedbrud"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "HTTP-fejl"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "HTTP-tilkoblingsfejl"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "CAPTCHA"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "for mange forespørgsler"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "adgang nægtet"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "server-API-fejl"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Intet fundet"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "Kilde"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Ugyldige indstillinger, redigér venligst dine valg"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Ugyldig indstilling"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "søgefejl"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "for {minutes} minut(ter) siden"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "for {hours} time(r) og {minutes} minut(ter) siden"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Generator af tilfældig værdi"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Generér forskellige tilfældige værdier"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Statistiske funktioner"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Beregn {functions} af parametrene"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Få rutevejledning"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (FORÆLDET)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Denne værdi er blevet overskrevet af"
@@ -191,7 +222,7 @@ msgstr "Denne værdi er blevet overskrevet af"
msgid "No abstract is available for this publication."
msgstr "Intet sammendrag er tilgængelig for denne publikation."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "Kanal"
@@ -233,11 +264,11 @@ msgstr ""
"Undgå betalingsmure ved at viderestille til en åbent tilgængelig version,"
" hvis en sådan findes"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Søg på kategori i stedet"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -245,11 +276,11 @@ msgstr ""
"Udfør søgning straks, hvis en kategori vælges. Slå dette fra for at kunne"
" vælge flere kategorier (JavaScript påkrævet)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr "Selvinformation"
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -257,11 +288,11 @@ msgstr ""
"Viser din IP adresse hvis søgningen er \"ip\" og din user-agent i "
"søgningen indeholder \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Fjernelse af tracker URL"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Fjern trackeres parametre fra den returnerede URL"
@@ -312,35 +343,35 @@ msgstr "Luk"
msgid "Error!"
msgstr "Fejl!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Leveret af"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "en privatlivs--respekterende, hackbar meta-søgemaskine"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Kildekode"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Problemsporer"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Søgemaskine-statistik"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Offentlige instanser"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr "Kontakt tilbyderen af instansen"
@@ -377,11 +408,11 @@ msgid "proxied"
msgstr "viderestillet"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Tillad"
@@ -482,13 +513,13 @@ msgid "Engines"
msgstr "Søgemaskiner"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookies"
@@ -510,13 +541,13 @@ msgid "What language do you prefer for search?"
msgstr "Hvilket sprog foretrækker du til søgninger?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "SafeSearch"
@@ -696,112 +727,119 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Søgemaskinenavn"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Genvej"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Valgt sprog"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Tidsinterval"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Maks-tid"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Nøgleord"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Navn"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Beskrivelse"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Eksempler"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Cookie-navn"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Værdi"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -809,8 +847,8 @@ msgstr ""
"Disse indstillnger gemmes cookies på din enhed. Dette gør, at vi ikke "
"behøver at gemme data om dig."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -818,13 +856,13 @@ msgstr ""
"Disse cookies er kun til dine data. Vi benytter ikke disse til at spore "
"dig."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Søge-URL for den nuværende gemte indstilling"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -833,18 +871,18 @@ msgstr ""
"af beskyttelse ved at lække data til de sider der klikkes på i "
"resultatet."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "gem"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "tilbage"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Nustil til standard"
@@ -1217,7 +1255,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Pt. anvendte søgemaskiner"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Undstøtter valgte sprog"
@@ -1361,3 +1399,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/de/LC_MESSAGES/messages.mo b/searx/translations/de/LC_MESSAGES/messages.mo
index cee42c76f..6199569c6 100644
--- a/searx/translations/de/LC_MESSAGES/messages.mo
+++ b/searx/translations/de/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/de/LC_MESSAGES/messages.po b/searx/translations/de/LC_MESSAGES/messages.po
index b183beac4..c2e937a2c 100644
--- a/searx/translations/de/LC_MESSAGES/messages.po
+++ b/searx/translations/de/LC_MESSAGES/messages.po
@@ -21,8 +21,8 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
-"PO-Revision-Date: 2021-12-24 07:17+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
+"PO-Revision-Date: 2022-01-07 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"Language-Team: German <https://weblate.bubu1.eu/projects/searxng/searxng/de/>"
"\n"
@@ -31,171 +31,203 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.8.1\n"
+"X-Generator: Weblate 4.10.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "Dateien"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "Allgemein"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "Musik"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "Soziale Medien"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "Bilder"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "Videos"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "IT"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "Neuigkeiten"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "Karte"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "Onions"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "Wissenschaft"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr "Apps"
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr "Lexika"
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr "Songtexte"
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr "Pakete"
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr "Q&A"
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr "Repositories"
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr "Software Wikis"
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr "WEB"
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "auto"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "hell"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "dunkel"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "Timeout"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "Fehler beim Parsen"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "HTTP-Protokollfehler"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "Netzwerkfehler"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "unerwarteter Absturz"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "HTTP-Fehler"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "HTTP-Verbindungsfehler"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "Proxy-Fehler"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "CAPTCHA"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "zu viele Anfragen"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "Zugriff verweigert"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "Server-API-Fehler"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Keine Einträge gefunden"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "Quelle"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Ungültige Einstellungen. Bitte diese überprüfen"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Ungültige Einstellungen"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "Suchfehler"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "vor {minutes} Minute(n)"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "vor {hours} Stunde(n), {minutes} Minute(n)"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "Ausgesetzt"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Zufallswertgenerator"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Erzeugt diverse Zufallswerte"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Statistikfunktionen"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "{functions} der Argumente berechnen"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Richtung holen"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (OBSOLET)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Dieser Eintrag wurde überschrieben von"
@@ -203,7 +235,7 @@ msgstr "Dieser Eintrag wurde überschrieben von"
msgid "No abstract is available for this publication."
msgstr "Keine Zusammenfassung für die Veröffentlichung verfügbar."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "Kanal"
@@ -247,11 +279,11 @@ msgstr ""
"Bezahlbeschränkungen durch die Weiterleitung zu der verfügbaren Open-"
"Access-Version vermeiden"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Suche starten, wenn Kategorie angeklickt wird"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -260,11 +292,11 @@ msgstr ""
"dann nicht mehr möglich, mehrere Kategorien auszuwählen. (JavaScript wird"
" benötigt)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr "Selbstauskunft"
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -272,11 +304,11 @@ msgstr ""
"Zeigt deine IP-Adresse an, wenn die Suchabfrage \"ip\" lautet, und deinen"
" User-Agent, wenn deine Suchabfrage \"user agent\" beinhaltet."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Tracker-URL-Entferner"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Tracker-Argumente von den zurückgegebenen URLs entfernen"
@@ -328,35 +360,35 @@ msgstr "Schließen"
msgid "Error!"
msgstr "Fehler!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Betrieben mit"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "eine privatsphären-respektierende, hackbare Metasuchmaschine"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Quellcode"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Bugtracker"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Suchmaschinenstatistiken"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Öffentliche Instanzen"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr "Kontakt zum Betreuer der Instanz"
@@ -393,11 +425,11 @@ msgid "proxied"
msgstr "proxy"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Erlauben"
@@ -498,13 +530,13 @@ msgid "Engines"
msgstr "Suchmaschinen"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr "Besondere Abfragen"
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookies"
@@ -526,13 +558,13 @@ msgid "What language do you prefer for search?"
msgstr "welche Sprache bevorzugst du für die Suche?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Sichere Suche"
@@ -705,8 +737,8 @@ msgid ""
"When enabled, the result page's title contains your query. Your browser "
"can record this title"
msgstr ""
-"Bei Aktivierung wird der Suchbegriff im Titel und der Historie des Browsers "
-"angezeigt"
+"Bei Aktivierung wird der Suchbegriff im Titel und der Historie des "
+"Browsers angezeigt"
#: searx/templates/oscar/preferences.html:315
msgid "Allow all"
@@ -716,90 +748,99 @@ msgstr "Alle zulassen"
msgid "Disable all"
msgstr "Alle deaktivieren"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+"Diese Registerkarte zeigt keine Suchergebnisse an, aber Sie können die hier "
+"aufgelisteten Suchmaschinen über bangs (!) durchsuchen."
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Suchmaschinenname"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Abkürzung"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Ausgewählte Sprache"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Zeitbereich"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr "Antwortzeit"
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "max. Zeit"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr "Zuverlässigkeit"
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr "Abfrage"
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Schlüsselwörter"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Name"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Beschreibung"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Beispiele"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr "Dies ist die Liste der in SearXNG verfügbaren Module für Sofortantworten."
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr "Dies ist die Liste der Plugins."
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
@@ -807,23 +848,23 @@ msgstr ""
"Die nachfolgende Liste zeigt alle Cookies, die SearXNG auf deinem "
"Computer speichert."
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr "Mit dieser Liste können Sie die Transparenz von SearXNG einschätzen."
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Cookie-Name"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Wert"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -831,8 +872,8 @@ msgstr ""
"Diese Informationen werden in Cookies auf Ihrem Rechner gespeichert, "
"damit wir keine Ihrer persönlichen Daten speichern müssen."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -840,13 +881,13 @@ msgstr ""
"Diese Cookies dienen einzig Ihrem Komfort. Wir verwenden sie nicht, um "
"Sie zu überwachen."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Such-URL für die aktuell gespeicherten Einstellungen"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -855,18 +896,18 @@ msgstr ""
"Privatsphäre reduzieren, weil gegebenenfalls ungewollt Daten an die "
"ausgewählten Ergebnisseiten übermittelt werden."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "Speichern"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "Zurück"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Zurücksetzen"
@@ -1242,7 +1283,7 @@ msgstr "Wähle auto um die Browsereinstellungen zu übernehmen"
msgid "Currently used search engines"
msgstr "Aktuell benutzte Suchmaschinen"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Unterstützt die ausgewählten Sprachen"
diff --git a/searx/translations/el_GR/LC_MESSAGES/messages.mo b/searx/translations/el_GR/LC_MESSAGES/messages.mo
index 183e15cf2..adffd554b 100644
--- a/searx/translations/el_GR/LC_MESSAGES/messages.mo
+++ b/searx/translations/el_GR/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/el_GR/LC_MESSAGES/messages.po b/searx/translations/el_GR/LC_MESSAGES/messages.po
index 9e225ad3f..331d3eef3 100644
--- a/searx/translations/el_GR/LC_MESSAGES/messages.po
+++ b/searx/translations/el_GR/LC_MESSAGES/messages.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2020-07-09 13:10+0000\n"
"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
"Language: el_GR\n"
@@ -21,168 +21,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "αρχεία"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "γενικά"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "μουσική"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "κοινωνικά δίκτυα"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "εικόνες"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr ""
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr ""
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "νέα"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "χάρτης"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "επιστήμη"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr ""
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr ""
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr ""
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "λάθος αναζήτησης"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} λεπτά πριν"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr ""
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Γεννήτρια τυχαίων τιμών"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr ""
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr ""
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr ""
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr ""
@@ -190,7 +222,7 @@ msgstr ""
msgid "No abstract is available for this publication."
msgstr ""
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -228,11 +260,11 @@ msgid ""
"when available"
msgstr ""
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Αναζήτηση κατά την επιλογή κατηγορίας"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -240,11 +272,11 @@ msgstr ""
"Άμεση αναζήτηση κατά την επιλογή κατηγορίας. Απενεργοποιήστε για να "
"διαλέξετε πολλαπλές κατηγορίες. (απαιτείται JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -252,11 +284,11 @@ msgstr ""
"Προβολή της IP διεύθυνσης αν η αναζήτηση είναι \"ip\" και το user agent "
"αν η αναζήτηση περιέχει \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr ""
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr ""
@@ -305,35 +337,35 @@ msgstr ""
msgid "Error!"
msgstr "Λάθος!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr ""
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr ""
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Στατιστικά μηχανής"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -370,11 +402,11 @@ msgid "proxied"
msgstr ""
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Επέτρεψε"
@@ -475,13 +507,13 @@ msgid "Engines"
msgstr "Μηχανές"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr ""
@@ -503,13 +535,13 @@ msgid "What language do you prefer for search?"
msgstr "Τι γλώσσα προτιμάτε για αναζήτηση;"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Ασφαλής Αναζήτηση"
@@ -684,148 +716,155 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Όνομα μηχανής"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Συντόμευση"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Επιλεγμένη γλώσσα"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr ""
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr ""
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Λέξεις κλειδιά"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Όνομα"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Περιγραφή"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Παραδείγματα"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr ""
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Τιμή"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
msgstr ""
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr ""
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr ""
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "αποθήκευση"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "πίσω"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Επαναφορά προεπιλογών"
@@ -1198,7 +1237,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Μηχανές αναζήτησης που χρησιμοποιούνται"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Υποστηρίζει την επιλεγμένη γλώσσα"
diff --git a/searx/translations/en/LC_MESSAGES/messages.mo b/searx/translations/en/LC_MESSAGES/messages.mo
index c5f958638..59b94fd4c 100644
--- a/searx/translations/en/LC_MESSAGES/messages.mo
+++ b/searx/translations/en/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/en/LC_MESSAGES/messages.po b/searx/translations/en/LC_MESSAGES/messages.po
index 1c1a730c3..0777fb049 100644
--- a/searx/translations/en/LC_MESSAGES/messages.po
+++ b/searx/translations/en/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2014-01-30 15:22+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@@ -18,168 +18,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr ""
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr ""
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr ""
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr ""
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr ""
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr ""
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr ""
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr ""
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr ""
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr ""
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr ""
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr ""
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr ""
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr ""
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr ""
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr ""
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr ""
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr ""
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr ""
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr ""
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr ""
@@ -187,7 +219,7 @@ msgstr ""
msgid "No abstract is available for this publication."
msgstr ""
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -225,31 +257,31 @@ msgid ""
"when available"
msgstr ""
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr ""
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
msgstr ""
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr ""
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr ""
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr ""
@@ -298,35 +330,35 @@ msgstr ""
msgid "Error!"
msgstr ""
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr ""
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr ""
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr ""
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -363,11 +395,11 @@ msgid "proxied"
msgstr ""
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr ""
@@ -468,13 +500,13 @@ msgid "Engines"
msgstr ""
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr ""
@@ -496,13 +528,13 @@ msgid "What language do you prefer for search?"
msgstr ""
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr ""
@@ -677,148 +709,155 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr ""
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr ""
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr ""
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr ""
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr ""
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr ""
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr ""
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr ""
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr ""
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr ""
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr ""
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
msgstr ""
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr ""
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr ""
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr ""
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr ""
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr ""
@@ -1189,7 +1228,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr ""
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr ""
diff --git a/searx/translations/eo/LC_MESSAGES/messages.mo b/searx/translations/eo/LC_MESSAGES/messages.mo
index c150dd187..e9f477de6 100644
--- a/searx/translations/eo/LC_MESSAGES/messages.mo
+++ b/searx/translations/eo/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/eo/LC_MESSAGES/messages.po b/searx/translations/eo/LC_MESSAGES/messages.po
index 9ab14f87a..4cc9efcf3 100644
--- a/searx/translations/eo/LC_MESSAGES/messages.po
+++ b/searx/translations/eo/LC_MESSAGES/messages.po
@@ -9,183 +9,214 @@
# Venca24 <Vaclav.Zouzalik@seznam.cz>, 2018
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-10 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Esperanto <https://weblate.bubu1.eu/projects/searxng/searxng/"
-"eo/>\n"
"Language: eo\n"
+"Language-Team: Esperanto "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/eo/>\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 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "dosieroj"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "ĝenerala"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "muziko"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "sociaj retoj"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "bildoj"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "videoj"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "komputiko"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "novaĵoj"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "mapo"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "scienco"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Nenio trovita"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Nevalidaj agordoj, bonvolu redakti viajn agordojn"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Nevalidaj agordoj"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "serĉa eraro"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "antaŭ {minutes} minuto(j)"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "antaŭ {hours} horo(j), {minutes} minuto(j)"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Hazardvalora generilo"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Ĝi generas diversajn hazardajn valorojn"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Statistikaj funkcioj"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Kalkulas {functions} el la argumentoj"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Tiu ĉi enigo estis anstataŭigita per"
@@ -193,7 +224,7 @@ msgstr "Tiu ĉi enigo estis anstataŭigita per"
msgid "No abstract is available for this publication."
msgstr "Neniu resumo atingeblas por tiu ĉi eldonaĵo."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -233,11 +264,11 @@ msgstr ""
"Eviti pagomurojn per direkto al malfermaliraj versioj de eldonaĵoj, se "
"eblas"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Serĉi en elektita kategorio"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -245,11 +276,11 @@ msgstr ""
"Serĉi tuj se oni elektas kategorion. Malŝaltu ĝin por elekti plurajn "
"kategoriojn (ĜavoSkripto bezonata)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -257,11 +288,11 @@ msgstr ""
"Montras vian IP-adreson se la serĉofrazo estas \"ip\" kaj vian klientan "
"aplikaĵon se la serĉofrazo enhavas \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Forigilo de URL-spuriloj"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Forviŝi spurajn argumentojn el la ricevita URL"
@@ -312,35 +343,35 @@ msgstr "Fermi"
msgid "Error!"
msgstr "Eraro!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Funkciigita per"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "kodumebla metaserĉilo kiu respektas vian privatecon"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Statistikoj pri la motoro"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -377,11 +408,11 @@ msgid "proxied"
msgstr "prokurata"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Permesi"
@@ -482,13 +513,13 @@ msgid "Engines"
msgstr "Motoroj"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Kuketoj"
@@ -510,13 +541,13 @@ msgid "What language do you prefer for search?"
msgstr "Kiun lingvon vi pli ŝatas por serĉi?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "SekuraSerĉo"
@@ -646,9 +677,9 @@ msgid ""
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr ""
-"Ŝanĝi kiel formoj estas sendataj, <a href=\"http://en.wikipedia.org/wiki/"
-"Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">sciu pli pri "
-"peto-metodoj</a>"
+"Ŝanĝi kiel formoj estas sendataj, <a "
+"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
+" rel=\"external\">sciu pli pri peto-metodoj</a>"
#: searx/templates/oscar/preferences.html:273
#: searx/templates/simple/preferences.html:249
@@ -694,112 +725,119 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Motora nomo"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Fulmoklavo"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Elekti lingvon"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Tempa intervalo"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Maksimuma tempo"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Ŝlosilvortoj"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Nomo"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Priskribo"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Ekzemploj"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Nomo de kuketo"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Valoro"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -807,20 +845,20 @@ msgstr ""
"Tiuj ĉi agordoj estas konservitaj en viaj kuketoj, kio ebligas al ni ne "
"konservi tiujn datumojn pri vi en nia servilo."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr "Tiuj kuketoj estas nur por via plaĉo, ni ne uzas ilin por spuri vin."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Serĉo-URL kun aktuale konservitaj agordoj"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -828,18 +866,18 @@ msgstr ""
"Rimarko: Precizigo de propraj agordoj en la serĉo-URL povas malaltigi "
"privatecon per nevola diskonigo de la datumoj al alklikantaj retejoj."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "konservi"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "antaŭen"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Reagordi al defaŭlto"
@@ -1212,7 +1250,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Aktuale uzataj serĉiloj"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Subtenas elektitan lingvon"
@@ -1360,3 +1398,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/es/LC_MESSAGES/messages.mo b/searx/translations/es/LC_MESSAGES/messages.mo
index 96c07b91b..fea33a144 100644
--- a/searx/translations/es/LC_MESSAGES/messages.mo
+++ b/searx/translations/es/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/es/LC_MESSAGES/messages.po b/searx/translations/es/LC_MESSAGES/messages.po
index 1702b1615..2264c42c0 100644
--- a/searx/translations/es/LC_MESSAGES/messages.po
+++ b/searx/translations/es/LC_MESSAGES/messages.po
@@ -17,183 +17,214 @@
# wefwefew ewfewfewf <nnnedmz0d@moakt.ws>, 2016
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-10 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Spanish <https://weblate.bubu1.eu/projects/searxng/searxng/es/"
-">\n"
"Language: es\n"
+"Language-Team: Spanish "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/es/>\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 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "Archivos"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "General"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "Música"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "Medios sociales"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "Imágenes"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "Vídeos"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "Informática"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "Noticias"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "Mapa"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "onions"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "Ciencia"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr ""
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "auto"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "claro"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "oscuro"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "expirado"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "error de procesamiento"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "Error de protocolo HTTP"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "Error de red"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "cierre inesperado"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "Error de HTTP"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "Error de conexíon HTTP"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "error de proxy"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "CAPTCHA"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "demasiadas peticiones"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "acceso denegado"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "error en la API del servidor"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Ningún artículo encontrado"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "Fuente"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Parámetros incorrectos, por favor, cambia tus preferencias"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Ajustes no válidos"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "error en la búsqueda"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "hace {minutes} minuto(s)"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "hace {hours} hora(s) y {minutes} minuto(s)"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "Suspendido/a"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Generador de valores aleaorios"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Generar varios valores aleatorios"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Funciones de estadística"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Computar {functions} de parámetros"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Obtener indicaciones"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{titulo} (OBSOLETO)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Esta entrada la ha sustituido"
@@ -201,7 +232,7 @@ msgstr "Esta entrada la ha sustituido"
msgid "No abstract is available for this publication."
msgstr "No hay resúmenes disponibles para esta publicación."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "Canal"
@@ -243,11 +274,11 @@ msgstr ""
"Evitar barreras de pago redireccionando a las versiones de acceso libre "
"de las publicaciones cuando estén disponibles"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Buscar en la categoría seleccionada"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -255,11 +286,11 @@ msgstr ""
"Realizar una búsqueda inmediatamente si se ha seleccionado una categoría."
" Desactivar para seleccionar varias categorías. (Se requiere JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -267,11 +298,11 @@ msgstr ""
"Muestra tu dirección IP si la consulta es \"ip\" y tu Agente de Usuario "
"si la consulta contiene \"agente de usuario\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Eliminador de URL rastreadora"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Eliminar los argumentos de los rastreadores en la URL devuelta"
@@ -323,35 +354,35 @@ msgstr "Cerrar"
msgid "Error!"
msgstr "¡Error!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Creado por"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "un metabuscador hackable que respeta la privacidad"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Código fuente"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Gestor de incidencias"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Estadísticas del motor de búsqueda"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Instancias públicas"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -388,11 +419,11 @@ msgid "proxied"
msgstr "proxied"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Permitir"
@@ -493,13 +524,13 @@ msgid "Engines"
msgstr "Motores"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookies"
@@ -521,13 +552,13 @@ msgid "What language do you prefer for search?"
msgstr "¿Qué idioma prefieres para la búsqueda?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Búsqueda segura"
@@ -707,112 +738,119 @@ msgstr "Permitir todo"
msgid "Disable all"
msgstr "Deshabilitar todo"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Nombre del motor de búsqueda"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Atajo"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Idioma elegido"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Rango de tiempo"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Tiempo máximo"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Plabras clave"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Nombre"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Descripción"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Ejemplos"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Nombre de la cookie"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Valor"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -820,8 +858,8 @@ msgstr ""
"Esta configuración se guarda en sus cookies, lo que nos permite no "
"almacenar dicha información sobre usted."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -829,13 +867,13 @@ msgstr ""
"Estas cookies son para su propia comodidad, no las utilizamos para "
"rastrearle."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Buscar URL de las preferencias guardadas actualmente"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -844,18 +882,18 @@ msgstr ""
"puede reducir la privacidad al filtrar datos a los sitios de resultados "
"en los que se ha hecho clic."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "Guardar"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "Atrás"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Restablecer configuración por defecto"
@@ -1228,7 +1266,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Motores de búsqueda actualmente en uso"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Soporta el idioma seleccionado"
@@ -1380,3 +1418,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/et/LC_MESSAGES/messages.mo b/searx/translations/et/LC_MESSAGES/messages.mo
index c5c3c71a7..04f6bed9a 100644
--- a/searx/translations/et/LC_MESSAGES/messages.mo
+++ b/searx/translations/et/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/et/LC_MESSAGES/messages.po b/searx/translations/et/LC_MESSAGES/messages.po
index 23e09ef25..141c9610d 100644
--- a/searx/translations/et/LC_MESSAGES/messages.po
+++ b/searx/translations/et/LC_MESSAGES/messages.po
@@ -7,183 +7,214 @@
# Madis Otenurm, 2019
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-31 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Estonian <https://weblate.bubu1.eu/projects/searxng/searxng/"
-"et/>\n"
"Language: et\n"
+"Language-Team: Estonian "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/et/>\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.10.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "failid"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "üldine"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "muusika"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "sotsiaalmeedia"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "pildid"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "videod"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "tehnoloogia"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "uudised"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "kaardid"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "teadus"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "dark"
msgstr "pime"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Üksust ei leitud"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Sobimatud seaded, palun muuda oma eelistusi"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Sobimatud seaded"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "otsingu viga"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} minut(it) tagasi"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} tund(i), {minutes} minut(it) tagasi"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Juhusliku väärtuse generaator"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Genereeri erinevaid juhuslikke väärtusi"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Statistikafunktsioonid"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Arvuta argumentide {functions}"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Hangi juhised"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (VANANENUD)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "See üksus on asendatud:"
@@ -191,7 +222,7 @@ msgstr "See üksus on asendatud:"
msgid "No abstract is available for this publication."
msgstr "Selle väljaande jaoks pole abstraktset."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "Kanal"
@@ -231,11 +262,11 @@ msgstr ""
"Väldi maksumüüre, suunates võimalusel väljaannete avatud ligipääsuga "
"versioonidele"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Otsi kategooria valimisel"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -243,11 +274,11 @@ msgstr ""
"Teosta otsing koheselt, kui kategooria on valitud. Keela mitme kategooria"
" valimiseks. (Nõuab JavaScripti)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -255,11 +286,11 @@ msgstr ""
"Kuvab sinu IP'd, kui päringuks on \"ip\" ning kasutajaagenti, kui "
"päringuks on \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Jälitajate eemaldus URList"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Eemaldab jälitavad argumendid tagastatud URList"
@@ -311,35 +342,35 @@ msgstr "Sulge"
msgid "Error!"
msgstr "Viga!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Põhineb tarkvaral"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "privaatsust austaval, häkitaval metaotsingu mootoril"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Lähtekood"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Vigade loetelu"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Mootori statistika"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Avalikud eksemplarid"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -376,11 +407,11 @@ msgid "proxied"
msgstr "proksitud"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Luba"
@@ -481,13 +512,13 @@ msgid "Engines"
msgstr "Mootorid"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Küpsised"
@@ -509,13 +540,13 @@ msgid "What language do you prefer for search?"
msgstr "Mis keelt sa otsinguks eelistad?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Ohutuotsing"
@@ -695,112 +726,119 @@ msgstr "Luba kõik"
msgid "Disable all"
msgstr "Keela kõik"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Mootori nimi"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Otsetee"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Valitud keel"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Ajavahemik"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Maksimaalne aeg"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Märksõnad"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Nimi"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Kirjeldus"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Näited"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Küpsise nimi"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Väärtus"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -808,8 +846,8 @@ msgstr ""
"Need seaded salvestatakse sinu küpsistes, see lubab meil sinu kohta "
"andmeid mitte salvestada."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -817,13 +855,13 @@ msgstr ""
"Need küpsised on vaid mugavuse tarbeks, me ei kasuta neid sinu "
"jälitamiseks."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Otsingu URL hetkel salvestatud eelistuste kohta"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -831,18 +869,18 @@ msgstr ""
"Märkus: täpsemate seadete määramine otsingu URLis võib vähendada "
"privaatsust, lekitades andmed klõpsatud tulemuste saitidele."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "salvesta"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "tagasi"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Lähtesta vaikeseaded"
@@ -1215,7 +1253,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Hetkel kasutatud otsingumootorid"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Toetab valitud keelt"
@@ -1361,3 +1399,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/eu/LC_MESSAGES/messages.mo b/searx/translations/eu/LC_MESSAGES/messages.mo
index cb950b469..2594f54f1 100644
--- a/searx/translations/eu/LC_MESSAGES/messages.mo
+++ b/searx/translations/eu/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/eu/LC_MESSAGES/messages.po b/searx/translations/eu/LC_MESSAGES/messages.po
index 69ad8b3e8..d887bb806 100644
--- a/searx/translations/eu/LC_MESSAGES/messages.po
+++ b/searx/translations/eu/LC_MESSAGES/messages.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-11-03 08:06+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"Language: eu\n"
@@ -23,168 +23,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "fitxategiak"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "orokorra"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "musika"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "media soziala"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "irudiak"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "bideoak"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "informatika"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "berriak"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "mapa"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "zientzia"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Ez da elementurik aurkitu"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Ezarpen ez baliodunak, mesedez editatu zure hobespenak"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Ezarpen ez baliodunak"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "bilaketa akatsa"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "duela {minutes} minutu"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "duela {hours} ordu eta {minutes} minutu"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Ausazko balio sortzailea"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Ausazko balio ezberdinak sortu"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Funtzio estatistikoak"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Parametroen {functions} zenbatu"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Norabideak lortu"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (ZAHARKITUA)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Sarrera hau hurrengoarekin ordezkatu da"
@@ -192,7 +224,7 @@ msgstr "Sarrera hau hurrengoarekin ordezkatu da"
msgid "No abstract is available for this publication."
msgstr "Ez dago abstrakturik eskuragarri argitalpen honetarako."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -234,11 +266,11 @@ msgstr ""
"Ordainketa hormak sahiestu argitalpenen sartze-askeko bertsioetara "
"berbidaliz ahal denean"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Bilatu kategoria hautatzerakoan"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -246,11 +278,11 @@ msgstr ""
"Bilaketa egin kategoria hautatu bezain laster. Ezgaitu ezazu hainbat "
"kategoria hautatu ahal izateko. (JavaScript behar du)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -258,11 +290,11 @@ msgstr ""
"Zure IPa erakutsi bilatutakoa \"ip\" bada eta zure user agenta "
"bilatutakoa \"user agent\" bada."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "URL aztarnariak kendu"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Aztarnarien argumentuak kendu itzulitako URLtik"
@@ -314,35 +346,35 @@ msgstr "Itxi"
msgid "Error!"
msgstr "Errorea!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Honek bultzatua"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "pribatutasun-errespetatzaile, metabilaketa motor hackeagarri bat"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Iturburu-kodea"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Arazoak"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Bilatzaileen estatistikak"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Instantzia publikoak"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -379,11 +411,11 @@ msgid "proxied"
msgstr "proxyatuta"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Baimendu"
@@ -484,13 +516,13 @@ msgid "Engines"
msgstr "Bilatzaileak"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookieak"
@@ -512,13 +544,13 @@ msgid "What language do you prefer for search?"
msgstr "Zein hizkuntzan egin nahi duzu bilaketa?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Bilaketa segurua"
@@ -698,112 +730,119 @@ msgstr "Guztiak baimendu"
msgid "Disable all"
msgstr "Guztiak ezgaitu"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Bilatzailearen izena"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Lasterbidea"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Hautatutako hizkuntza"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Denbora tartea"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Gehienezko denbora"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Gako-hitzak"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Izena"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Deskripzioa"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Adibideak"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Cookiearen izena"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Balioa"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -811,8 +850,8 @@ msgstr ""
"Ezarpen hauek zure cookietan gordetzen dira, honek zuri buruzko "
"informaziorik ez gordetzea baimentzen digu."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -820,13 +859,13 @@ msgstr ""
"Cookie hauek zure onurarako besterik ez dira, ez ditugu zure jarraipenik "
"egiteko erabiltzen."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Une honetan gordetako hobespenen bilaketa URLa"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -834,18 +873,18 @@ msgstr ""
"Oharra: bilaketa URLan ezarpen pertsonalizatuak zehazteak pribatutasuna "
"txikiagotu dezake klikatutako erantzun guneetara datuak emanez."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "gorde"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "atzera"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Berrezarri lehenetsiak"
@@ -1218,7 +1257,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Erabiliak izaten ari diren bilatzaileak"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Hautatutako hizkuntza onartzen du"
diff --git a/searx/translations/fa_IR/LC_MESSAGES/messages.mo b/searx/translations/fa_IR/LC_MESSAGES/messages.mo
index 68ef6c061..759ee94fb 100644
--- a/searx/translations/fa_IR/LC_MESSAGES/messages.mo
+++ b/searx/translations/fa_IR/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/fa_IR/LC_MESSAGES/messages.po b/searx/translations/fa_IR/LC_MESSAGES/messages.po
index f449674d5..5799d47f4 100644
--- a/searx/translations/fa_IR/LC_MESSAGES/messages.po
+++ b/searx/translations/fa_IR/LC_MESSAGES/messages.po
@@ -10,183 +10,214 @@
# Noémi Ványi <sitbackandwait@gmail.com>, 2020
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-24 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Persian <https://weblate.bubu1.eu/projects/searxng/searxng/fa/"
-">\n"
"Language: fa_IR\n"
+"Language-Team: Persian "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/fa/>\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 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "فایل‌ها"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "عمومی"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "موسیقی"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "شبکهٔ اجتماعی"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "تصاویر"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "ویدیوها"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "فناوری اطلاعات"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "اخبار"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "نقشه"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "پیازها"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "علم"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr ""
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "خودکار"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "روشن"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "تاریک"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "تایم‌اوت"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "خطای تجزیه"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "خطای پروتکل HTTP"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "خطای شبکه"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "مشکل غیرمنتظره"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "خطای HTTP"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "خطای اتصال HTTP"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "خطای پروکسی"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "کپچا"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "درخواست‌های زیاد"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "دسترسی ممنوع است"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "خطای API سرور"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "چیزی پیدا نشد"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "منبع"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "تنظیمات نادرست است، لطفا پیش‌فرض‌های جستجو را تغییر دهید"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "تنظیمات نادرست"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "خطای جست‌وجو"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} دقیقه پیش"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} ساعت و {minutes} دقیقه پیش"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "تعلیق‌شده"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "ایجادگر مقدار تصادفی"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "ایجاد مقادیر تصادفی متفاوت"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "توابع آماری"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "پردازش {functions} نشانوندها"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "دستورهای دریافت"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (OBSOLETE)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "این ورودی معلق شده است، توسط"
@@ -194,7 +225,7 @@ msgstr "این ورودی معلق شده است، توسط"
msgid "No abstract is available for this publication."
msgstr "هیچ چکیده‌ای برای این انتشار در دسترس نیست."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "کانال"
@@ -231,38 +262,38 @@ msgid ""
"Avoid paywalls by redirecting to open-access versions of publications "
"when available"
msgstr ""
-"خودداری از منابع پرداختی با تغییر مسیر به نسخه‌های متن‌باز نشریات در صورت "
-"دسترسی"
+"خودداری از منابع پرداختی با تغییر مسیر به نسخه‌های متن‌باز نشریات در صورت"
+" دسترسی"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "جست‌وجو در دستهٔ انتخابی"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
msgstr ""
-"انجام جست‌وجو به‌محض اگر یک دسته انتخاب شد. برای انتخاب چندین دسته این گزینه "
-"را غیرفعال کنید. (نیازمند جاواسکریپت)"
+"انجام جست‌وجو به‌محض اگر یک دسته انتخاب شد. برای انتخاب چندین دسته این "
+"گزینه را غیرفعال کنید. (نیازمند جاواسکریپت)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr "اطلاعات خوداظهاری"
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr ""
-"نمایش آی‌پی شما، اگر ورودی «ip» باشد و نمایش عامل کاربر شما در صورتی که حاوی "
-"«user agent» باشد."
+"نمایش آی‌پی شما، اگر ورودی «ip» باشد و نمایش عامل کاربر شما در صورتی که "
+"حاوی «user agent» باشد."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "از بین برنده ی آدرس ردیاب ها<br>"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "حذف نشانوندهای ردیاب‌ها از URL برگشتی"
@@ -313,35 +344,35 @@ msgstr "بستن"
msgid "Error!"
msgstr "خطا!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "قدرت گرفته از<br>"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "یک ابرموتور جست‌وجوی حافظ حریم شخصی"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "کد منبع"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "دنبال‌گر مشکل"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "آمار موتور"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "شاهدهای عمومی"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr "نگهدارندهٔ شاهد تماس"
@@ -378,11 +409,11 @@ msgid "proxied"
msgstr "پروکسی‌شده"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "اجازه"
@@ -483,13 +514,13 @@ msgid "Engines"
msgstr "موتورها"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr "مقدارهای ویژه"
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "کلوچک‌ها"
@@ -511,13 +542,13 @@ msgid "What language do you prefer for search?"
msgstr "چه زبانی را برای جست‌وجو می‌پسندید؟"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "جست‌وجوی امن"
@@ -647,9 +678,9 @@ msgid ""
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr ""
-"تغییر در چگونگی ثبت فرم‌ها، <a href=\"http://en.wikipedia.org/wiki/"
-"Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">روش‌های "
-"درخواست بیش‌تر بیاموزید."
+"تغییر در چگونگی ثبت فرم‌ها، <a "
+"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
+" rel=\"external\">روش‌های درخواست بیش‌تر بیاموزید."
#: searx/templates/oscar/preferences.html:273
#: searx/templates/simple/preferences.html:249
@@ -686,8 +717,8 @@ msgid ""
"When enabled, the result page's title contains your query. Your browser "
"can record this title"
msgstr ""
-"هنگام فعال بودن، عنوان صفحهٔ نتیجه، ورودی شما را در بر می‌گیرد. مرورگر شما "
-"می‌تواند این عنوان را ضبط کند"
+"هنگام فعال بودن، عنوان صفحهٔ نتیجه، ورودی شما را در بر می‌گیرد. مرورگر "
+"شما می‌تواند این عنوان را ضبط کند"
#: searx/templates/oscar/preferences.html:315
msgid "Allow all"
@@ -697,155 +728,161 @@ msgstr "اجازه به همه"
msgid "Disable all"
msgstr "غیرفعال‌سازی همه"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "نام موتور"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "میان‌بر"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "زبان انتخابی"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "بازهٔ زمانی"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr "زمان پاسخ"
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "زمان بیشینه"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr "اعتمادپذیری"
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr "ورودی"
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "کلیدواژه‌ها"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "نام"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "توصیف"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "مثال‌ها"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr "این فهرست ماژول‌های پاسخ‌گوی فوری SearXNG است."
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr "این فهرست افزونه‌هاست."
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
-msgstr ""
-"این فهرست کلوچک‌ها و مقدارهایی است که SearXNG در رایانهٔ شما نگه می‌دارد."
+msgstr "این فهرست کلوچک‌ها و مقدارهایی است که SearXNG در رایانهٔ شما نگه می‌دارد."
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr "با این فهرست، می‌توانید شفافیت SearXNG را بیازمایید."
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "نام کلوچک"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "مقدار"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
msgstr ""
-"این تنظیمات در کلوچک‌های شما ذخیره می‌شوند و به ما توانایی ذخیرهٔ این دادهٔ "
-"مربوط به شما را نمی‌دهد."
+"این تنظیمات در کلوچک‌های شما ذخیره می‌شوند و به ما توانایی ذخیرهٔ این "
+"دادهٔ مربوط به شما را نمی‌دهد."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr ""
-"این کلوچک‌ها تنها برای آسودگی شما هستند و ما از این کلوچک‌ها برای ردیابی شما "
-"استفاده نمی‌کنیم."
+"این کلوچک‌ها تنها برای آسودگی شما هستند و ما از این کلوچک‌ها برای ردیابی "
+"شما استفاده نمی‌کنیم."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "URL جست‌وجوی پیش‌فرض‌های ذخیره‌شدهٔ کنونی"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr ""
-"هشدار: تعیین تنظیمات شخصی در URL جست‌وجو می‌تواند حریم شخصی شما را با درز "
-"دادن داده‌ها به سایت‌های نتایج کلیک‌شده به خطر اندازد."
+"هشدار: تعیین تنظیمات شخصی در URL جست‌وجو می‌تواند حریم شخصی شما را با درز"
+" دادن داده‌ها به سایت‌های نتایج کلیک‌شده به خطر اندازد."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "ذخیره"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "قبلی"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "بازنشانی پیش‌فرض‌ها"
@@ -1059,8 +1096,8 @@ msgid ""
"we didn't find any results. Please use another query or search in more "
"categories."
msgstr ""
-"چیزی پیدا نشد. لطفً ورودی دیگری را بیازمایید یا در دسته‌‌های بیش‌تری جست‌وجو "
-"کنید."
+"چیزی پیدا نشد. لطفً ورودی دیگری را بیازمایید یا در دسته‌‌های بیش‌تری "
+"جست‌وجو کنید."
#: searx/templates/oscar/messages/save_settings_successfull.html:7
msgid "Well done!"
@@ -1218,7 +1255,7 @@ msgstr "برای پیروی از تنظیمات مرورگرتان خودکار
msgid "Currently used search engines"
msgstr "موتورهای جستجوی در حال استفاده"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "زبان انتخاب شده را پشتیبانی می‌کند"
@@ -1366,3 +1403,4 @@ msgstr "موتور"
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/fi/LC_MESSAGES/messages.mo b/searx/translations/fi/LC_MESSAGES/messages.mo
index d19d61f26..66147040b 100644
--- a/searx/translations/fi/LC_MESSAGES/messages.mo
+++ b/searx/translations/fi/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/fi/LC_MESSAGES/messages.po b/searx/translations/fi/LC_MESSAGES/messages.po
index e1f17698f..fb76ea002 100644
--- a/searx/translations/fi/LC_MESSAGES/messages.po
+++ b/searx/translations/fi/LC_MESSAGES/messages.po
@@ -6,183 +6,214 @@
# Jiri Grönroos <jiri.gronroos@iki.fi>, 2017
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-24 07:17+0000\n"
"Last-Translator: Mico Hautaluoma <m@mha.fi>\n"
-"Language-Team: Finnish <https://weblate.bubu1.eu/projects/searxng/searxng/fi/"
-">\n"
"Language: fi\n"
+"Language-Team: Finnish "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/fi/>\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 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "tiedostot"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "yleiset"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "musiikki"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "sosiaalinen media"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "kuvat"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "videot"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "it"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "uutiset"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "kartta"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "onion-linkit"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "tiede"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr ""
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "automaattinen"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "vaalea"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "tumma"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "aikakatkaistu"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "jäsentämis virhe"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "HTTP-protokolli virhe"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "verkko virhe"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "odottamaton kaatuminen"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "HTTP-virhe"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "HTTP-yhteysvirhe"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "Proxy-virhe"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "CAPTCHA"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "liian monta pyyntöä"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "pääsy kielletty"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "palvelimen API-virhe"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Tietuetta ei löytynyt"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "Lähde"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Virheelliset asetukset, muokkaa siis asetuksia"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Virheelliset asetukset"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "hakuvirhe"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} min sitten"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} t, {minutes} min sitten"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "keskeytetty"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Satunnaisluvun generaattori"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Generoi satunnaislukuja"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Tilastolliset funktiot"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Laske argumenttien {functions}"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Reittiohjeet"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{otsikko} (VANHENTUNUT)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Tämän kohdan on korvannut"
@@ -190,7 +221,7 @@ msgstr "Tämän kohdan on korvannut"
msgid "No abstract is available for this publication."
msgstr "Tästä julkaisusta ei ole yhteenvetoa."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "Kanava"
@@ -232,11 +263,11 @@ msgstr ""
"Vältä maksumuureja ohjaamalla julkaisujen avoimiin versioihin jos "
"mahdollista"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Etsi valitsemalla luokka"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -244,11 +275,11 @@ msgstr ""
"Suorita haku välittömästi, jos luokka valitaan. Poista käytöstä "
"valitaksesi useita luokkia. (JavaScript vaaditaan)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr "Itsetiedot"
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -256,11 +287,11 @@ msgstr ""
"Näyttää IP-osoitteesi jos hakuehtosi on \"ip\" ja selaimen tunnistetiedot"
" jos hakuehtosi sisältää sanat \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Seurantapalvelimen osoitteen poistaja"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Poista seurantapalvelinten argumentit palautetusta osoitteesta"
@@ -311,35 +342,35 @@ msgstr "Sulje"
msgid "Error!"
msgstr "Virhe!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Taustavoimana"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "yksityisyyttä kunnioittava, muokattava metahakukone"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Lähdekoodi"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Ongelmien seuranta"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Hakukoneen tilastot"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Julkiset palvelimet"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr "Ota yhteyttä palvelun ylläpitäjään"
@@ -376,11 +407,11 @@ msgid "proxied"
msgstr "välityspalvelimella"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Salli"
@@ -481,13 +512,13 @@ msgid "Engines"
msgstr "Hakukoneet"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr "Erityisiä kyselyitä"
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Evästeet"
@@ -509,13 +540,13 @@ msgid "What language do you prefer for search?"
msgstr "Millä kielellä haluat etsiä ensisijaisesti?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "SafeSearch"
@@ -697,90 +728,97 @@ msgstr "Salli kaikki"
msgid "Disable all"
msgstr "Poista kaikki käytöstä"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Hakukoneen nimi"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Oikoreitti"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Valittu kieli"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Aikaväli"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr "Vastaus aika"
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Enimmäisaika"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr "Luotettavuus"
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr "Kysely"
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Avainsanat"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Nimi"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Kuvaus"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Esimerkit"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr "Tämä on luettelo SearXNG:n pikavastausmoduuleista."
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr "Tämä on lista lisäosista."
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
@@ -788,23 +826,23 @@ msgstr ""
"Tämä on luettelo evästeistä ja niiden arvoista, joita SearXNG tallentaa "
"tietokoneellesi."
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr "Tämän luettelon avulla voit arvioida, SearXNG:n läpinäkyvyyttä."
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Evästeen nimi"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Arvo"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -812,8 +850,8 @@ msgstr ""
"Nämä asetukset tallennetaan evästeisiisi. Näin Searxin ei tarvitse "
"tallentaa sinuun liittyviä henkilökohtaisia tietoja."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -821,13 +859,13 @@ msgstr ""
"Kyseiset evästeet palvelevat ainoastaan sinua, eikä niitä käytetä "
"seuraamiseesi."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Nykyisten asetusten hakuosoite"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -836,18 +874,18 @@ msgstr ""
"vuotamalla tietoja niille sivustoille, joihin kohdistuvia tuloksia "
"napsautetaan."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "Tallenna"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "Takaisin"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Palauta oletukset"
@@ -1220,7 +1258,7 @@ msgstr "Valitse auto seurataksesi selaimesi asetuksia"
msgid "Currently used search engines"
msgstr "Nyt käytetyt hakukoneet"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Tukee valittua kieltä"
@@ -1369,3 +1407,4 @@ msgstr "Hakukone"
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/fil/LC_MESSAGES/messages.mo b/searx/translations/fil/LC_MESSAGES/messages.mo
index 49452ebc2..e459340f6 100644
--- a/searx/translations/fil/LC_MESSAGES/messages.mo
+++ b/searx/translations/fil/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/fil/LC_MESSAGES/messages.po b/searx/translations/fil/LC_MESSAGES/messages.po
index deee62612..c1d9a5800 100644
--- a/searx/translations/fil/LC_MESSAGES/messages.po
+++ b/searx/translations/fil/LC_MESSAGES/messages.po
@@ -6,184 +6,215 @@
# gr01d, 2018
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-10 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Filipino <https://weblate.bubu1.eu/projects/searxng/searxng/"
-"fil/>\n"
"Language: fil\n"
+"Language-Team: Filipino "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/fil/>\n"
+"Plural-Forms: nplurals=2; plural=(n == 1 || n==2 || n==3) || (n % 10 != 4"
+" || n % 10 != 6 || n % 10 != 9)\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==2 || n==3) || (n % 10 != 4 || "
-"n % 10 != 6 || n % 10 != 9);\n"
-"X-Generator: Weblate 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "file"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "pangkalahatan"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "musika"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "social media"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "larawan"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "bidyo"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "it"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "balita"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "mapa"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "agham"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Walang nakita na aytem"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Maling settings, paki ayos ang preferences"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Maling settings"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "nagkaproblema sa paghahanap"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} na minuto ang nakalipas"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} oras at {minutes} na minto ang nakalipas"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Random value generator"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr ""
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Estatistika ng mga tungkulin"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Tuusin ang {functions} ng pangangatuwiran"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Ang tala na ito ay ipinagpaliban ng"
@@ -191,7 +222,7 @@ msgstr "Ang tala na ito ay ipinagpaliban ng"
msgid "No abstract is available for this publication."
msgstr "Walang nakita na abstract para sa pahahayag na ito."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -233,11 +264,11 @@ msgstr ""
"Iwasan ang paywall sa pag-redirect sa open-access na bersyon ng "
"pahahayagan kapagmakukuha"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Maghanap kapag nakapili ng uri"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -245,11 +276,11 @@ msgstr ""
"Gawin ang paghahanap hanggat maaari kapag nakapili ng uri. Alisin kapag "
"nakapili ng maraming uri. (Nangagailangan ng JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -257,11 +288,11 @@ msgstr ""
"Ipapakita ang iyong IP kapag ang tanong ay \"ip\" at ang iyong user agent"
" kapag ang sa tanong ay naglalaman ng \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Alisin ang URL tracker"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Alisin ang tracker sa ibabalik na URL"
@@ -313,35 +344,35 @@ msgstr "Isara"
msgid "Error!"
msgstr "Kamalian!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Pinapatakbo ng"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "isang gumagalang sa pagiging pribado, hackable na metasearch engine"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Engine stats"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -378,11 +409,11 @@ msgid "proxied"
msgstr ""
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Payagan"
@@ -483,13 +514,13 @@ msgid "Engines"
msgstr "Engines"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookies"
@@ -511,13 +542,13 @@ msgid "What language do you prefer for search?"
msgstr "Ano ang gusto mong wika sa paghahanap?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Ligtas na Paghahanap"
@@ -695,112 +726,119 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Pangalan ng engine"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr ""
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Piniling wika"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Agwat ng oras"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Ang max na oras"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Mga keyword"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Pangalan"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Paglalarawan"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Mga halimbawa"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Pangalan ng cookie"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr ""
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -808,8 +846,8 @@ msgstr ""
"Ang settings ay nakalagay sa cookies upang hindi kami makakuha ng datos "
"mula sa iyo."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -817,13 +855,13 @@ msgstr ""
"Hindi namin ginagamit ang cookies para i-track ka, ito ay para maging "
"maayos ang paggamit mo."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Search URL ng kasalukuyan na naka-save sa preferences"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -832,18 +870,18 @@ msgstr ""
"pagiging pribado dahil magkakaroon ng butas sa datos dahil sa pag-pindot "
"sa resulta na sites."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "i-save"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "bumalik"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "I-reset ang defaults"
@@ -1216,7 +1254,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Ang ginagamit natin na search engines"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Suportado ang pinili na wika"
@@ -1367,3 +1405,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/fr/LC_MESSAGES/messages.mo b/searx/translations/fr/LC_MESSAGES/messages.mo
index 875fe50e2..31f466595 100644
--- a/searx/translations/fr/LC_MESSAGES/messages.mo
+++ b/searx/translations/fr/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/fr/LC_MESSAGES/messages.po b/searx/translations/fr/LC_MESSAGES/messages.po
index d9b252406..eac0e4fc2 100644
--- a/searx/translations/fr/LC_MESSAGES/messages.po
+++ b/searx/translations/fr/LC_MESSAGES/messages.po
@@ -13,183 +13,214 @@
# rike, 2014
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-03 07:17+0000\n"
"Last-Translator: Alexandre Flament <alex@al-f.net>\n"
-"Language-Team: French <https://weblate.bubu1.eu/projects/searxng/searxng/fr/>"
-"\n"
"Language: fr\n"
+"Language-Team: French "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/fr/>\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 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "fichiers"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "général"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "musique"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "réseaux sociaux"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "images"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "vidéos"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "informatique"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "actualités"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "carte"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "onions"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "science"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr ""
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "auto"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "clair"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "sombre"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "délai dépassé"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "erreur d'analyse"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "erreur de protocole HTTP"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "Erreur réseau"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "erreur inattendue"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "erreur HTTP"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "erreur de connexion HTTP"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "Erreur proxy"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "CAPTCHA"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "trop de requêtes"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "accès refusé"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "erreur API du serveur"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Pas d'élément trouvé"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "Source"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Paramètres non valides, veuillez éditer vos préférences"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Paramètres non valides"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "erreur de recherche"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "il y a {minutes} minute(s)"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "il y a {hours} heure(s), {minutes} minute(s)"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "Suspendu"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Générateur de valeur aléatoire"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Crée des valeurs aléatoires différentes"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Fonctions statistiques"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Calcule les {functions} des arguments"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Obtenir l'itinéraire"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{titre} (OBSOLÈTE)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Cet item a été remplacé par"
@@ -197,7 +228,7 @@ msgstr "Cet item a été remplacé par"
msgid "No abstract is available for this publication."
msgstr "Aucun résumé disponible pour cette publication."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "Chaîne"
@@ -239,11 +270,11 @@ msgstr ""
"Contourne les verrous payants de certaines publications scientifiques en "
"redirigeant vers la version ouverte de ces papiers si elle est disponible"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Lancer la recherche lors du choix d'une catégorie"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -251,11 +282,11 @@ msgstr ""
"Exécute la recherche immédiatement si une catégorie est sélectionnée. "
"Désactiver pour sélectionner plusieurs catégories (nécessite JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr "Informations sur le navigateur"
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -263,11 +294,11 @@ msgstr ""
"Affiche votre adresse IP si la requête est \"ip\", et affiche votre user-"
"agent si la requête contient \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Nettoyeur d'URL de suivis"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Retire les arguments utilisés pour vous pister des URL retournées"
@@ -319,35 +350,35 @@ msgstr "Fermer"
msgid "Error!"
msgstr "Erreur !"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Propulsé par"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "un métamoteur de recherche hackable et respectueux de la vie privée"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Code source"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Suivi des problèmes"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Statistiques des moteurs"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Instances publiques"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr "Contacter le responsable de l'instance"
@@ -384,11 +415,11 @@ msgid "proxied"
msgstr "proxifié"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Autoriser"
@@ -489,13 +520,13 @@ msgid "Engines"
msgstr "Moteurs"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr "Requêtes spéciales"
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookies"
@@ -517,13 +548,13 @@ msgid "What language do you prefer for search?"
msgstr "Dans quelle langue préférez-vous effectuer la recherche ?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Recherche sécurisée"
@@ -694,8 +725,8 @@ msgid ""
"When enabled, the result page's title contains your query. Your browser "
"can record this title"
msgstr ""
-"Activer pour inclure la requête utilisateur dans le titre de la page HTML. "
-"Votre navigateur peut être enregistrer ce titre de page"
+"Activer pour inclure la requête utilisateur dans le titre de la page "
+"HTML. Votre navigateur peut être enregistrer ce titre de page"
#: searx/templates/oscar/preferences.html:315
msgid "Allow all"
@@ -705,114 +736,121 @@ msgstr "Tout autoriser"
msgid "Disable all"
msgstr "Tout désactiver"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Nom du moteur"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Raccourci"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Langue choisie"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Intervalle de temps"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr "Temps de réponse"
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Temps max"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr "Fiabilité"
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr "Requête"
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Mots clés"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Nom"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Description"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Exemples"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr "Liste des modules de réponse instantanée de SearXNG."
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr "Voici la liste des plugins."
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-"Les cookies et leurs valeurs que SearXNG stocke sur votre ordinateur sont "
-"énumérés ci-dessous."
+"Les cookies et leurs valeurs que SearXNG stocke sur votre ordinateur sont"
+" énumérés ci-dessous."
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr "Avec cette liste, vous pouvez juger de la transparence de searx."
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Nom du cookie"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Valeur"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -820,8 +858,8 @@ msgstr ""
"Ces paramètres sont stockés dans vos cookies ; ceci nous permet de ne pas"
" collecter vos données."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -829,13 +867,13 @@ msgstr ""
"Ces cookies existent pour votre confort d'utilisation, nous ne les "
"utilisons pas pour vous espionner."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Adresse de recherche des réglages actuels"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -844,18 +882,18 @@ msgstr ""
"peut réduire la vie privée en donnant accès à certaines données aux sites"
" des résultats sélectionnés."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "enregistrer"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "retour"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Remettre les valeurs par défaut"
@@ -1056,8 +1094,7 @@ msgstr "Les moteurs ne peuvent récupérer de résultats."
#: searx/templates/oscar/messages/no_results.html:13
#: searx/templates/simple/messages/no_results.html:15
msgid "Please, try again later or find another SearXNG instance."
-msgstr ""
-"Veuillez réessayer ultérieurement ou trouver une autre instance SearXNG."
+msgstr "Veuillez réessayer ultérieurement ou trouver une autre instance SearXNG."
#: searx/templates/oscar/messages/no_results.html:17
#: searx/templates/simple/messages/no_results.html:20
@@ -1229,7 +1266,7 @@ msgstr "Choisissez auto pour respecter les paramètres de votre navigateur"
msgid "Currently used search engines"
msgstr "Moteurs de recherche actuellement utilisés"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Supporte la langue sélectionnée"
@@ -1380,3 +1417,4 @@ msgstr "Moteur"
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/gl/LC_MESSAGES/messages.mo b/searx/translations/gl/LC_MESSAGES/messages.mo
index f9e6d1e38..5f31ab365 100644
--- a/searx/translations/gl/LC_MESSAGES/messages.mo
+++ b/searx/translations/gl/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/gl/LC_MESSAGES/messages.po b/searx/translations/gl/LC_MESSAGES/messages.po
index 0799b9e22..acd621d78 100644
--- a/searx/translations/gl/LC_MESSAGES/messages.po
+++ b/searx/translations/gl/LC_MESSAGES/messages.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-11-01 10:29+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"Language: gl\n"
@@ -21,168 +21,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "ficheiros"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "xeral"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "música"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "medios sociais"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "imaxes"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "vídeos"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "TIC"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "novas"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "mapa"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "ciencia"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Non se atoparon elementos"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Axustes non válidos, por favor edita a configuración"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Axustes non válidos"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "fallo na busca"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "fai {minutes} minuto(s)"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "fai {hours} hora(s), {minutes} minuto(s)"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Xerador de valor aleatorio"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Xerar diferentes valores aleatorios"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Funcións de estatística"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Calcula {functions} dos argumentos"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Obter direccións"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (OBSOLETO)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Esta entrada foi proporcionada por"
@@ -190,7 +222,7 @@ msgstr "Esta entrada foi proporcionada por"
msgid "No abstract is available for this publication."
msgstr "Non hai dispoñible un extracto para esta publicación."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -232,11 +264,11 @@ msgstr ""
"Evitar muros de pago redirecciionando a versións públicas das "
"publicacións cando estén dispoñibles"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Busca en categoría seleccionada"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -244,11 +276,11 @@ msgstr ""
"Busca ó momento se hai unha categoría seleccionada. Desactivar para "
"seleccionar múltiples categorías. (Require JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -256,11 +288,11 @@ msgstr ""
"Mostra o teu IP se a consulta é \"ip\" e o teu Use Agent se a consulta "
"contén \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Eliminador de rastrexadores na URL"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Elimina os argumentos de rastrexo da URL devolta"
@@ -312,35 +344,35 @@ msgstr "Pechar"
msgid "Error!"
msgstr "Fallo!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Proporcionado por"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "un metabuscador configurable que respecta a túa privacidade"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Código fonte"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Seguimento de problemas"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Estatísticas do buscador"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Instancias públicas"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -377,11 +409,11 @@ msgid "proxied"
msgstr "a través de proxy"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Permitir"
@@ -482,13 +514,13 @@ msgid "Engines"
msgstr "Motores"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Testemuños"
@@ -510,13 +542,13 @@ msgid "What language do you prefer for search?"
msgstr "Qué idioma prefires para buscar?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Busca segura"
@@ -696,112 +728,119 @@ msgstr "Permitir todo"
msgid "Disable all"
msgstr "Desactivar todo"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Nome do motor"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Atallo"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Idioma seleccionado"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Marco temporal"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Tempo máx."
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Palabras chave"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Nome"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Descrición"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Exemplos"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Nome do testemuño"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Valor"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -809,8 +848,8 @@ msgstr ""
"Estos axustes gárdanse en testemuños, esto permítenos non ter que gardar "
"ningún dato sobre ti."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -818,13 +857,13 @@ msgstr ""
"Estos testemuños son para a túa conveniencia, non utilizamos estos "
"testemuños para rastrexarte."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "URL de busca dos axustes gardados actualmente."
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -832,18 +871,18 @@ msgstr ""
"Nota: establecer axustes personalizados na URL de busca pode reducir a "
"túa privacidade ó filtrar datos ós sitios web dos resultados."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "gardar"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "atrás"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Restablecer"
@@ -1216,7 +1255,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Motores de busca utilizados actualmente"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Soporta o idioma seleccionado"
diff --git a/searx/translations/he/LC_MESSAGES/messages.mo b/searx/translations/he/LC_MESSAGES/messages.mo
index b66b54454..6ce8859f4 100644
--- a/searx/translations/he/LC_MESSAGES/messages.mo
+++ b/searx/translations/he/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/he/LC_MESSAGES/messages.po b/searx/translations/he/LC_MESSAGES/messages.po
index 8c822159a..95f5b8a83 100644
--- a/searx/translations/he/LC_MESSAGES/messages.po
+++ b/searx/translations/he/LC_MESSAGES/messages.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2020-12-13 17:24+0000\n"
"Last-Translator: Omer I.S. <omeritzicschwartz@gmail.com>\n"
"Language: he\n"
@@ -26,168 +26,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "קבצים"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "כללי"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "מוזיקה"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "מדיה חברתית"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "תמונות"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "סרטונים"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "IT"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "חדשות"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "מפות"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "מדע"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "לא נמצא פריט"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "הגדרות שגויות, אנא ערוך את ההעדפות שלך"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "הגדרה לא חוקית"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "שגיאת חיפוש"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "לפני {minutes} דקה/ות"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "לפני {hours} שעה/ות, {minutes} דקה/ות"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "מפיק ערך אקראי"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "צור ערכים אקראיים שונים"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "פונקציות סטטיסטיקה"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "מחשב {functions} מתוך הארגומנטים"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (OBSOLETE)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "רשומה זו הוחלפה על ידי"
@@ -195,7 +227,7 @@ msgstr "רשומה זו הוחלפה על ידי"
msgid "No abstract is available for this publication."
msgstr ""
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -235,11 +267,11 @@ msgstr ""
"הימנעות מקירות-תשלום (paywalls) על ידי הכוונה מחודשת לגרסאות כניסה-חופשית"
" של כתבי-עת כאשר זמינות"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "חיפוש בעת בחירת קטגוריה"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -247,11 +279,11 @@ msgstr ""
"ביצוע חיפוש כאשר קטגוריה נבחרת. יש לנטרל את תוסף זה כדי לבחור קטגוריות "
"מרובות. (מצריך JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -259,11 +291,11 @@ msgstr ""
"הצגת כתובת IP המשוייכת לך אם השאילתא היא \"ip\" וגם סוכן משתמש אם השאילתא"
" מכילה \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "הסרת Tracker URL"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "הסרת ארגומנטים מאתרים מתוך URL מוחזר"
@@ -314,35 +346,35 @@ msgstr "סגור"
msgid "Error!"
msgstr "שגיאה!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "מופעל באמצעות"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "מנוע מטא-חיפוש גמיש, ומכבד פרטיות"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "קוד מקור"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "מעקב בעיות"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "סטטיסטיקות מנוע"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "מופעים ציבוריים"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -379,11 +411,11 @@ msgid "proxied"
msgstr "דרך פרוקסי"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "התר"
@@ -484,13 +516,13 @@ msgid "Engines"
msgstr "מנועים"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "עוגיות"
@@ -512,13 +544,13 @@ msgid "What language do you prefer for search?"
msgstr "איזו שפה אתם מעדיפים לצורך חיפוש?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "חיפוש בטוח"
@@ -696,112 +728,119 @@ msgstr "לאפשר הכול"
msgid "Disable all"
msgstr "להשבית הכול"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "שם מנוע"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "קיצור דרך"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "שפה נבחרת"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "טווח זמן"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "זמן מירבי"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "מילות מפתח"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "שם"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "תיאור"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "דוגמאות"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "שם עוגייה"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "ערך"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -809,37 +848,37 @@ msgstr ""
"הגדרות אלו מאוחסנות בתוך העוגיות שלך, אלו מאפשרות לנו להימנע מלאחסן את "
"מידע זה אודותייך."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr "עוגיות אלו משרתות את נוחותך הבלעדית, אנחנו לא משתמשים בהן כדי לעקוב אחריך."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "כתובת חיפוש של ההעדפות השמורות כעת"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr ""
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "שמור"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "חזור"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "אפס ברירות מחדל"
@@ -1210,7 +1249,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "מנועי חיפוש בשימוש עתה"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "תומך בשפה נבחרת"
diff --git a/searx/translations/hr/LC_MESSAGES/messages.mo b/searx/translations/hr/LC_MESSAGES/messages.mo
index d326c4d33..070ae6bae 100644
--- a/searx/translations/hr/LC_MESSAGES/messages.mo
+++ b/searx/translations/hr/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/hr/LC_MESSAGES/messages.po b/searx/translations/hr/LC_MESSAGES/messages.po
index 53726c71d..131382e61 100644
--- a/searx/translations/hr/LC_MESSAGES/messages.po
+++ b/searx/translations/hr/LC_MESSAGES/messages.po
@@ -7,184 +7,215 @@
# Issa1552 <fairfull.playing@gmail.com>, 2020
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-24 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Croatian <https://weblate.bubu1.eu/projects/searxng/searxng/"
-"hr/>\n"
"Language: hr\n"
+"Language-Team: Croatian "
+"<https://weblate.bubu1.eu/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 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "datoteke"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "općenito"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "glazba"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "društveni mediji"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "slike"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "video zapisi"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "it"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "vijesti"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "karta"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "znanost"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Nije pronađena nijedna stavka"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Nevažeće postavke, uredite svoje postavke"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Nevažeće postavke"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "greška u pretraživanju"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "prije {minutes} minut(u,e,a)"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "prije {hours} sat(i) i {minutes} minut(u,e,a)"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Generator slučajnih vrijednosti"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Generirajte različite slučajne vrijednosti"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Funkcije statistike"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Izračunajte {functions} argumenata"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Uzmi upute za smjer"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (ZASTARJELO)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Ovaj je unos zamijenio"
@@ -192,7 +223,7 @@ msgstr "Ovaj je unos zamijenio"
msgid "No abstract is available for this publication."
msgstr "Nijedan sažetak nije dostupan za ovu objavu."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -232,11 +263,11 @@ msgid ""
"when available"
msgstr "Izbjegnite plaćanje u slučaju dostupnosti besplatne objave"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Traži u odabranoj kategoriji"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -244,11 +275,11 @@ msgstr ""
"Izvrši pretraživanje odmah ako je odabrana kategorija. Onemogući odabir "
"više kategorija. (Potreban je JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -256,11 +287,11 @@ msgstr ""
"Prikazuje vašu IP adresu ako je upit \"ip\" i vaš korisnički agent ako "
"upit sadrži \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Ukloni praćenje URL-ova"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Ukloni elemente za označavanje rezultata vraćenih s URL-a"
@@ -312,35 +343,35 @@ msgstr "Zatvori"
msgid "Error!"
msgstr "Greška!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Pokreće"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "meta-tražilica koja poštuje privatnost"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Izvorni kod"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Tragač problema"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Podaci o tražilic"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Javne instance"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -377,11 +408,11 @@ msgid "proxied"
msgstr "preko proxyja"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Dozvoli"
@@ -482,13 +513,13 @@ msgid "Engines"
msgstr "Tražilice"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Kolačići"
@@ -510,13 +541,13 @@ msgid "What language do you prefer for search?"
msgstr "Koji jezik želite za pretraživanje?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Sigurno pretraživanje"
@@ -696,112 +727,119 @@ msgstr "Dozvoli sve"
msgid "Disable all"
msgstr "Isključi sve"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Naziv tražilice"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Prečac"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Odabrani jezik"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Vremenski raspon"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Maksimalno vrijeme"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Ključne riječi"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Naziv"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Opis"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Primjeri"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Naziv kolačića"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Vrijednost"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -809,8 +847,8 @@ msgstr ""
"Ove postavke su pohranjene u Vašim kolačićima, što omogućuje da ne "
"spremamo podatke o Vama."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -818,33 +856,33 @@ msgstr ""
"Ovi kolačići služe Vašoj pogodnosti, ne upotrebljavamo te kolačiće da bi "
"Vas pratili."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Pretraži URL adresu trenutno spremljenih postavki"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr ""
-"Napomena: određivanje prilagođenih postavki u URL-u za pretraživanje može "
-"smanjiti privatnost zbog propuštanja podataka na kliknute web lokacije "
+"Napomena: određivanje prilagođenih postavki u URL-u za pretraživanje može"
+" smanjiti privatnost zbog propuštanja podataka na kliknute web lokacije "
"rezultata."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "spremi"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "natrag"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Vraćanje zadanih postavki"
@@ -1217,7 +1255,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Trenutno korištene tražilice"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Podržava odabrani jezik"
@@ -1365,3 +1403,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/hu/LC_MESSAGES/messages.mo b/searx/translations/hu/LC_MESSAGES/messages.mo
index 68cb9d3c4..a935adc3b 100644
--- a/searx/translations/hu/LC_MESSAGES/messages.mo
+++ b/searx/translations/hu/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/hu/LC_MESSAGES/messages.po b/searx/translations/hu/LC_MESSAGES/messages.po
index 595976654..aea4c3450 100644
--- a/searx/translations/hu/LC_MESSAGES/messages.po
+++ b/searx/translations/hu/LC_MESSAGES/messages.po
@@ -9,183 +9,214 @@
# Noémi Ványi <sitbackandwait@gmail.com>, 2016-2017
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-24 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Hungarian <https://weblate.bubu1.eu/projects/searxng/searxng/"
-"hu/>\n"
"Language: hu\n"
+"Language-Team: Hungarian "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/hu/>\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 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "fájlok"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "általános"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "zene"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "közösségi média"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "képek"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "videók"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "it"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "hírek"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "térkép"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "tudomány"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Nincs találat"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Érvénytelen beállítások"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "érvénytelen beállítások"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "keresési hiba"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} perce"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} óra, {minutes} perce"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Véletlen érték generátor"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Különböző random értékek generálása"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Statisztikai függvények"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "{functions} függvények alkalmazása az argumentumokon"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Útvonal tervezés"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (elavult)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Ezt a bejegyzést törölte:"
@@ -193,7 +224,7 @@ msgstr "Ezt a bejegyzést törölte:"
msgid "No abstract is available for this publication."
msgstr "Nem elérhető absztrakt a publikációhoz."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -231,11 +262,11 @@ msgid ""
"when available"
msgstr "Publikácós linkeknél szabad forrás használat, amennyiben lehetséges"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Azonnali keresés kategória választással"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -243,11 +274,11 @@ msgstr ""
"Keresés megkezdése kategória kiválasztáskor. Több kategória "
"kiválasztásához deaktiválás szükséges. (Javascript szükséges)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -255,11 +286,11 @@ msgstr ""
"Saját IP cím, user agent megjelenítés az \"ip\", \"user agent\" szavakra "
"keresve."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Tracker URL eltávolítás"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Felhasználó követéshez használt találati URL paraméterek eltávolítása"
@@ -311,35 +342,35 @@ msgstr "Bezár"
msgid "Error!"
msgstr "Hiba!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Az oldalt kiszolgálja"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "egy privátszféra tisztelő, könnyen módosítható metakereső"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Forrás kód"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Hibajegy kezelő"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Kereső statisztikák"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Publikus példányok"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -376,11 +407,11 @@ msgid "proxied"
msgstr "proxy nézet"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Engedélyezés"
@@ -481,13 +512,13 @@ msgid "Engines"
msgstr "Keresőmotorok"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Sütik"
@@ -509,13 +540,13 @@ msgid "What language do you prefer for search?"
msgstr "Preferált keresési nyelv?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Felnőtt tartalom szűrés"
@@ -693,119 +724,126 @@ msgstr "Mindent engedélyez"
msgid "Disable all"
msgstr "Mindent tilt"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Kereső neve"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Rövidítés"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Kiválasztott nyelv"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Idő szűrés"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Maximális idő"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Kulcsszavak"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Név"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Leírás"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Példák"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Süti név"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Érték"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
msgstr "Ezek a beállítások csak a böngésző cookie-jaiban tárolódnak."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -813,30 +851,30 @@ msgstr ""
"Ezek a cookie-k csak kényelmi funkciókat látnak el, nem használjuk a "
"felhasználók követésére."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Keresési URL a beállítások alapján"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr "Megjegyzés: URL-ben tárolt saját beállítások csökkenthetik az anonimitást."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "mentés"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "vissza"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Alapbeállítások visszaállítása"
@@ -1207,7 +1245,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Jelenleg használt keresők"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Támogatja a kiválasztott nyelvet"
@@ -1352,3 +1390,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/ia/LC_MESSAGES/messages.mo b/searx/translations/ia/LC_MESSAGES/messages.mo
index 555d17272..0ccc7fad7 100644
--- a/searx/translations/ia/LC_MESSAGES/messages.mo
+++ b/searx/translations/ia/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/ia/LC_MESSAGES/messages.po b/searx/translations/ia/LC_MESSAGES/messages.po
index bbb5df313..e2d6fbf81 100644
--- a/searx/translations/ia/LC_MESSAGES/messages.po
+++ b/searx/translations/ia/LC_MESSAGES/messages.po
@@ -6,183 +6,214 @@
# Guimarães Mello <matheus.mello@disroot.org>, 2017,2019
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-10 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Interlingua <https://weblate.bubu1.eu/projects/searxng/"
-"searxng/ia/>\n"
"Language: ia\n"
+"Language-Team: Interlingua "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/ia/>\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 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "files"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "general"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "musica"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "medios social"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "imagines"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "videos"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "software"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "novas"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "mappa"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "scientia"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Nulle item trovate"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Configurationes non valide, per favor, modifica tu preferentias"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Configurationes invalide"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "error in recerca"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} minuta(s) retro"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} hora(s), {minutes} minuta(s) retro"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Generator de valores aleatori"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Generar differente valores aleatori"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Functiones statistic"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Computa {functions} del argumentos"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Iste entrata esseva substituite per"
@@ -190,7 +221,7 @@ msgstr "Iste entrata esseva substituite per"
msgid "No abstract is available for this publication."
msgstr ""
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -232,11 +263,11 @@ msgstr ""
"Evita paywalls per redirectionar a versiones de publicationes in accesso "
"aperte, quando disponibile"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Recercar in le categoria selectionate"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -245,11 +276,11 @@ msgstr ""
"Disactiva lo pro selectionar multiple categorias. (JavaScript es "
"necessari)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -257,11 +288,11 @@ msgstr ""
"Monstra tu IP si le consulta es \"ip\"; e monstra tu agente de usator si "
"le consulta contine \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Remover tracker del URL"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Remover argumentos del tracker ab le URL retornate"
@@ -313,37 +344,37 @@ msgstr "Clauder"
msgid "Error!"
msgstr "Error!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Actionate per"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr ""
"un motor de meta-recerca, capabile de reprogrammation e respectuose al "
"confidentialitate"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Statisticas de motores"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -380,11 +411,11 @@ msgid "proxied"
msgstr "per proxy"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Permitter"
@@ -485,13 +516,13 @@ msgid "Engines"
msgstr "Motores"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookies"
@@ -513,13 +544,13 @@ msgid "What language do you prefer for search?"
msgstr "Qual lingua tu prefere pro recercar?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Filtro de contento potentialmente offensive"
@@ -697,112 +728,119 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Nomine del motor"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Via breve"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Lingua selectionate"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Intervallo de tempore"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Tempore maxime"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Parolas clave"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Nomine"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Description"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Exemplos"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Nomine de cookie"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Valor"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -810,8 +848,8 @@ msgstr ""
"Iste preferentias es salvate in tu cookies, le qual permitte nos non "
"salvar iste datos super vos."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -819,13 +857,13 @@ msgstr ""
"Iste cookies servi solmente a tu convenientia, nos non usa iste cookies "
"pro traciar te."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "URL de Recerca del preferentias actualmente salvate"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -834,18 +872,18 @@ msgstr ""
"reducer le confidentialitate per lassar escappar datos al sitos cliccate "
"in le resultatos."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "salveguardar"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "retroceder"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Restablir configurationes"
@@ -1218,7 +1256,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Motores de recerca actualmente usate"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Supporta le lingua selectionate"
@@ -1369,3 +1407,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/id/LC_MESSAGES/messages.mo b/searx/translations/id/LC_MESSAGES/messages.mo
index 1618e1ff7..e7692b373 100644
--- a/searx/translations/id/LC_MESSAGES/messages.mo
+++ b/searx/translations/id/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/id/LC_MESSAGES/messages.po b/searx/translations/id/LC_MESSAGES/messages.po
index 7f8c8e9eb..bce636cb5 100644
--- a/searx/translations/id/LC_MESSAGES/messages.po
+++ b/searx/translations/id/LC_MESSAGES/messages.po
@@ -1,4 +1,4 @@
-# Translations template for PROJECT.
+# Indonesian translations for PROJECT.
# Copyright (C) 2021 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
-"PO-Revision-Date: 2021-12-24 07:17+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
+"PO-Revision-Date: 2022-01-07 07:17+0000\n"
"Last-Translator: Linerly <linerly@protonmail.com>\n"
"Language-Team: Indonesian <https://weblate.bubu1.eu/projects/searxng/searxng/"
"id/>\n"
@@ -17,171 +17,203 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.8.1\n"
+"X-Generator: Weblate 4.10.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "berkas"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "umum"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "musik"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "media sosial"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "gambar"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "video"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "teknologi"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "berita"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "peta"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "onion"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "sains"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr "aplikasi"
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr "kamus"
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr "lirik"
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr "paket"
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr "pertanyaan"
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr "repositori"
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr "wiki perangkat lunak"
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr "web"
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "otomatis"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "terang"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "gelap"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "waktu habis"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "kesalahan penguraian"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "kesalahan protokol HTTP"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "kesalahan jaringan"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "kegagalan yang tak terduga"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "kesalahan HTTP"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "kesalahan koneksi HTTP"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "kesalahan proksi"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "CAPTCHA"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "terlalu banyak permintaan"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "akses ditolak"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "kesalahan server API"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Item tidak ditemukan"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "Sumber"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Pengaturan tidak valid, mohon ubah preferensi Anda"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Pengaturan tidak valid"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "kesalahan pencarian"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} menit yang lalu"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} jam, {minutes} menit yang lalu"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "Ditangguhkan"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Penghasil nilai acak"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Menghasilkan nilai-nilai acak yang berbeda"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Fungsi-fungsi statistik"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Menghitung {functions} dari argumen-argumen"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Mendapatkan arah-arah"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (USANG)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Masukan ini telah digantikan oleh"
@@ -189,7 +221,7 @@ msgstr "Masukan ini telah digantikan oleh"
msgid "No abstract is available for this publication."
msgstr "Tidak ada abstrak yang tersedia untuk publikasi ini."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "Saluran"
@@ -208,8 +240,8 @@ msgstr "Pengubah nama host"
#: searx/plugins/hostname_replace.py:10
msgid "Rewrite result hostnames or remove results based on the hostname"
msgstr ""
-"Menulis ulang nama-nama host hasil atau menghapus hasil-hasil berdasarkan "
-"pada nama host"
+"Menulis ulang nama-nama host hasil atau menghapus hasil-hasil berdasarkan"
+" pada nama host"
#: searx/plugins/infinite_scroll.py:3
msgid "Infinite scroll"
@@ -218,8 +250,8 @@ msgstr "Gulir tak terbatas"
#: searx/plugins/infinite_scroll.py:4
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr ""
-"Secara otomatis memuat halaman selanjutnya saat menggulir ke bawah halaman "
-"saat ini"
+"Secara otomatis memuat halaman selanjutnya saat menggulir ke bawah "
+"halaman saat ini"
#: searx/plugins/oa_doi_rewrite.py:9
msgid "Open Access DOI rewrite"
@@ -230,14 +262,14 @@ msgid ""
"Avoid paywalls by redirecting to open-access versions of publications "
"when available"
msgstr ""
-"Hindari paywall dengan mengalihkan ke versi yang terbuka dari publikasi saat "
-"tersedia"
+"Hindari paywall dengan mengalihkan ke versi yang terbuka dari publikasi "
+"saat tersedia"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Cari berdasarkan pilihan kategori"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -245,23 +277,23 @@ msgstr ""
"Melakukan pencarian segera jika sebuah kategori terpilih. Matikan untuk "
"memilih banyak kategori. (Membutuhkan JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr "Informasi Diri"
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr ""
-"Menampilkan IP Anda jika pencariannya adalah \"ip\" dan agen pengguna Anda "
-"jika pencariannya mengandung \"user agent\"."
+"Menampilkan IP Anda jika pencariannya adalah \"ip\" dan agen pengguna "
+"Anda jika pencariannya mengandung \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Penghapus URL pelacak"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Menghilangkan argumen-argumen pelacak dari URL yang dikembalikan"
@@ -274,9 +306,9 @@ msgid ""
"Navigate search results with Vim-like hotkeys (JavaScript required). "
"Press \"h\" key on main or result page to get help."
msgstr ""
-"Navigasikan hasil-hasil pencarian dengan tombol pintas mirip Vim ("
-"Membutuhkan JavaScript). Tekan tombol \"h\" pada halaman utama atau halaman "
-"hasil untuk mendapatkan bantuan."
+"Navigasikan hasil-hasil pencarian dengan tombol pintas mirip Vim "
+"(Membutuhkan JavaScript). Tekan tombol \"h\" pada halaman utama atau "
+"halaman hasil untuk mendapatkan bantuan."
#: searx/templates/oscar/404.html:4 searx/templates/simple/404.html:4
msgid "Page not found"
@@ -313,36 +345,35 @@ msgstr "Tutup"
msgid "Error!"
msgstr "Kesalahan!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Diberdayakan oleh"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
-msgstr ""
-"sebuah mesin pencari meta yang menghormati privasi, dan dapat dimodifikasi"
+msgstr "sebuah mesin pencari meta yang menghormati privasi, dan dapat dimodifikasi"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Kode sumber"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Pelacak masalah"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Statistik mesin"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Instansi umum"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr "Hubungi pengelola instansi"
@@ -379,11 +410,11 @@ msgid "proxied"
msgstr "di-proksi"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Izinkan"
@@ -484,13 +515,13 @@ msgid "Engines"
msgstr "Mesin"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr "Pencarian Khusus"
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookie"
@@ -512,13 +543,13 @@ msgid "What language do you prefer for search?"
msgstr "Bahasa apa yang Anda ingin pakai untuk pencarian?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Pencarian Aman"
@@ -650,9 +681,9 @@ msgid ""
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr ""
-"Ubah bagaimana formulir dikirimkan, <a href=\"http://en.wikipedia.org/wiki/"
-"Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">pelajari "
-"lebih lanjut tentang metode permintaan</a>"
+"Ubah bagaimana formulir dikirimkan, <a "
+"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
+" rel=\"external\">pelajari lebih lanjut tentang metode permintaan</a>"
#: searx/templates/oscar/preferences.html:273
#: searx/templates/simple/preferences.html:249
@@ -689,8 +720,8 @@ msgid ""
"When enabled, the result page's title contains your query. Your browser "
"can record this title"
msgstr ""
-"Ketika diaktifkan, judul halaman hasil mengandung pencarian Anda. Browser "
-"Anda dapat merekam judul ini"
+"Ketika diaktifkan, judul halaman hasil mengandung pencarian Anda. Browser"
+" Anda dapat merekam judul ini"
#: searx/templates/oscar/preferences.html:315
msgid "Allow all"
@@ -700,90 +731,99 @@ msgstr "Izinkan semua"
msgid "Disable all"
msgstr "Matikan semua"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+"Tab ini tidak ditampilkan untuk hasil pencarian tetapi Anda dapat mencari di "
+"mesin-mesin berikut ini melalui fitur bangs."
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Nama mesin"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Jalan pintas"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Bahasa yang dipilih"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Rentang waktu"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr "Waktu respons"
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Waktu maksimum"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr "Keandalan"
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr "Pencarian"
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Kata kunci"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Nama"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Deskripsi"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Contoh"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr "Ini adalah daftar dari modul penjawab instan SearXNG."
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr "Ini adalah daftar plugin."
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
@@ -791,65 +831,66 @@ msgstr ""
"Ini adalah daftar cookie dan nilai-nilai mereka yang SearXNG simpan di "
"komputer Anda."
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr "Dengan daftar itu, Anda dapat menilai transparansi SearXNG."
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Nama cookie"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Nilai"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
msgstr ""
-"Pengaturan ini disimpan di cookie Anda, ini memungkinkan kami untuk tidak "
-"menyimpan data ini tentang Anda."
+"Pengaturan ini disimpan di cookie Anda, ini memungkinkan kami untuk tidak"
+" menyimpan data ini tentang Anda."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr ""
-"Cookie ini hanya untuk kenyamanan Anda, kami tidak menggunakan cookie ini "
-"untuk melacak Anda."
+"Cookie ini hanya untuk kenyamanan Anda, kami tidak menggunakan cookie ini"
+" untuk melacak Anda."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "URL pencarian dari pengaturan yang tersimpan saat ini"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr ""
-"Catatan: menampilkan pengaturan khusus pada URL pencarian dapat mengurangi "
-"privasi dengan membocorkan data kepada situs hasil yang diklik."
+"Catatan: menampilkan pengaturan khusus pada URL pencarian dapat "
+"mengurangi privasi dengan membocorkan data kepada situs hasil yang "
+"diklik."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "simpan"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "kembali"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Atur ulang ke bawaan"
@@ -1063,8 +1104,8 @@ msgid ""
"we didn't find any results. Please use another query or search in more "
"categories."
msgstr ""
-"kami tidak menemukan hasil apa pun. Mohon menggunakan pencarian lain atau "
-"cari dalam kategori lain."
+"kami tidak menemukan hasil apa pun. Mohon menggunakan pencarian lain atau"
+" cari dalam kategori lain."
#: searx/templates/oscar/messages/save_settings_successfull.html:7
msgid "Well done!"
@@ -1076,7 +1117,7 @@ msgstr "Pengaturan berhasil disimpan."
#: searx/templates/oscar/messages/unknow_error.html:7
msgid "Oh snap!"
-msgstr "Sial!"
+msgstr "Aduh!"
#: searx/templates/oscar/messages/unknow_error.html:8
msgid "Something went wrong."
@@ -1222,7 +1263,7 @@ msgstr "Pilih otomatis untuk mengikuti pengaturan browser Anda"
msgid "Currently used search engines"
msgstr "Mesin pencari yang saat ini digunakan"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Mendukung bahasa yang dipilih"
diff --git a/searx/translations/it/LC_MESSAGES/messages.mo b/searx/translations/it/LC_MESSAGES/messages.mo
index d65388f92..b23f8e720 100644
--- a/searx/translations/it/LC_MESSAGES/messages.mo
+++ b/searx/translations/it/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/it/LC_MESSAGES/messages.po b/searx/translations/it/LC_MESSAGES/messages.po
index 2c8f1f1c9..1eaea4fee 100644
--- a/searx/translations/it/LC_MESSAGES/messages.po
+++ b/searx/translations/it/LC_MESSAGES/messages.po
@@ -14,183 +14,214 @@
# Random_R, 2018-2020
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-31 07:17+0000\n"
"Last-Translator: VaiTon <eyadlorenzo@gmail.com>\n"
-"Language-Team: Italian <https://weblate.bubu1.eu/projects/searxng/searxng/it/"
-">\n"
"Language: it\n"
+"Language-Team: Italian "
+"<https://weblate.bubu1.eu/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 4.10.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "documenti"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "generale"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "musica"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "social"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "immagini"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "video"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "IT"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "notizie"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "mappe"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "onions"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "scienza"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr ""
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "auto"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "chiaro"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "scuro"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "timeout"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "errore di analisi"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "errore protocollo HTTP"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "errore di rete"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "crash inaspettato"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "errore HTTP"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "errore di connessione HTTP"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "errore proxy"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "CAPTCHA"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "troppe richieste"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "accesso negato"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "errore server API"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Nessun oggetto trovato"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "Sorgente"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Impostazioni non valide, modifica le tue preferenze"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Impostazioni non valide"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "errore di ricerca"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "di {minutes} minuti fa"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "di {hours} ore e {minutes} minuti fa"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "Sospeso"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Generatore di numeri casuali"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Genera più numeri casuali"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Funzioni statistiche"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Calcola {functions} degli argomenti"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Ricevi direzioni"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (OBSOLETO)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Questa voce è stata sostituita da"
@@ -198,7 +229,7 @@ msgstr "Questa voce è stata sostituita da"
msgid "No abstract is available for this publication."
msgstr "Nessun sommario disponibile per questa pubblicazione."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "Canale"
@@ -242,11 +273,11 @@ msgstr ""
"Se possibile, evita il paywall di una pubblicazione reindirizzando ad una"
" versione ad accesso libero"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Cerca nella categoria selezionata"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -255,11 +286,11 @@ msgstr ""
"Disabilita questa opzione se vuoi selezionare più categorie. (Javascript "
"necessario)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr "Informazioni su di sé"
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -267,11 +298,11 @@ msgstr ""
"Mostra il tuo IP se hai cercato \"ip\" ed il tuo user agent se hai "
"cercato \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Rimuovi URL traccianti"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Elimina elementi traccianti dai link dei risultati"
@@ -322,35 +353,35 @@ msgstr "Chiudi"
msgid "Error!"
msgstr "Errore!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Offerto da"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "un metamotore di ricerca personalizzabile e rispettoso della privacy"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Codice sorgente"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Tracker problemi"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Statistiche dei motori"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Istanze pubbliche"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr "Contatta il manutentore dell'istanza"
@@ -387,11 +418,11 @@ msgid "proxied"
msgstr "proxy"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Autorizza"
@@ -492,13 +523,13 @@ msgid "Engines"
msgstr "Motori"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr "Richieste speciali"
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookie"
@@ -520,13 +551,13 @@ msgid "What language do you prefer for search?"
msgstr "Che lingua preferisci per la ricerca?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Ricerca Sicura"
@@ -710,114 +741,121 @@ msgstr "Permetti tutto"
msgid "Disable all"
msgstr "Disattiva tutto"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Nome del motore"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Scorciatoia"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Lingua selezionata"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Intervallo di tempo"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr "Tempo di risposta"
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Tempo massimo"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr "Affidabilità"
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr "Richiesta"
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Parole chiave"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Nome"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Descrizione"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Esempi"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr "Questa è la lista dei moduli di risposta istantanea di SearXNG."
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr "Questa è la lista di plugins."
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-"Questa è la lista di cookies e i loro valori che SearXNG sta salvando sul "
-"tuo computer."
+"Questa è la lista di cookies e i loro valori che SearXNG sta salvando sul"
+" tuo computer."
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr "Con questa lista, potete valutare la trasparenza di SearXNG."
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Nome del cookie"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Valore"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -825,8 +863,8 @@ msgstr ""
"Le impostazioni vengono salvate nei tuoi cookie, consentendoci di non "
"conservare dati su di te."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -834,13 +872,13 @@ msgstr ""
"Questi cookie servono solo ad offrirti un servizio migliore. Non li "
"usiamo per tracciarti."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "URL di ricerca delle preferenze attualmente salvate"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -848,18 +886,18 @@ msgstr ""
"Nota: specificare impostazioni personalizzate nell'URL di ricerca può "
"ridurre la privacy facendo trapelare dati ai siti cliccati."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "salva"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "indietro"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Reimposta i valori iniziali"
@@ -1232,7 +1270,7 @@ msgstr "Seleziona auto per seguire le impostazioni del tuo browser"
msgid "Currently used search engines"
msgstr "Motori di ricerca attualmente in uso"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "La lingua selezionata è disponibile"
@@ -1377,3 +1415,4 @@ msgstr "Motore"
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/ja/LC_MESSAGES/messages.mo b/searx/translations/ja/LC_MESSAGES/messages.mo
index f887ef270..85d63002a 100644
--- a/searx/translations/ja/LC_MESSAGES/messages.mo
+++ b/searx/translations/ja/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/ja/LC_MESSAGES/messages.po b/searx/translations/ja/LC_MESSAGES/messages.po
index fb28b8f67..2d79e440d 100644
--- a/searx/translations/ja/LC_MESSAGES/messages.po
+++ b/searx/translations/ja/LC_MESSAGES/messages.po
@@ -14,183 +14,214 @@
# Thomas Pointhuber, 2015-2016
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
-"PO-Revision-Date: 2021-12-31 07:17+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
+"PO-Revision-Date: 2022-01-06 08:26+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Japanese <https://weblate.bubu1.eu/projects/searxng/searxng/"
-"ja/>\n"
"Language: ja\n"
+"Language-Team: Japanese "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/ja/>\n"
+"Plural-Forms: nplurals=1; plural=0\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.10.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "ファイル"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "一般"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "音楽"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "ソーシャルメディア"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "画像"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "動画"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "情報技術"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "ニュース"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "地図"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "オニオン"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "学問"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr ""
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "自動"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "ライト"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "ダーク"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "タイムアウト"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "パースエラー"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "HTTPプロトコルエラー"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "ネットワークエラー"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "予期しないクラッシュ"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "HTTPエラー"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "HTTP接続エラー"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "プロキシエラー"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "CAPTCHA"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "多すぎるリクエスト"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "アクセスが拒否されました"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "サーバーAPIエラー"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "アイテムが見つかりません"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "ソース"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "不正な設定です。設定を編集してください"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "不正な設定"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "検索エラー"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes}分前"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours}時間と{minutes}分前"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "一時停止"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "ランダム値の生成"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "新しいランダム値を生成する"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "統計機能"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "変数の{functions}を計算する"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "経路を"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (廃棄済み)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "このエントリーの優先"
@@ -198,7 +229,7 @@ msgstr "このエントリーの優先"
msgid "No abstract is available for this publication."
msgstr "この出版物には要約がありません。"
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "チャンネル"
@@ -216,7 +247,7 @@ msgstr "ホストネーム入れ替え"
#: searx/plugins/hostname_replace.py:10
msgid "Rewrite result hostnames or remove results based on the hostname"
-msgstr ""
+msgstr "結果のホスト名を書き換えるか、ホスト名に基づいて結果を削除します"
#: searx/plugins/infinite_scroll.py:3
msgid "Infinite scroll"
@@ -236,31 +267,31 @@ msgid ""
"when available"
msgstr "可能ならば出版物のオープンアクセス版へリダイレクトして有料の壁を避ける"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "カテゴリ選択したら検索を実行"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
msgstr "カテゴリが選択されたときに検索を実行します。複数のカテゴリを選択する場合は無効にします。(JavaScript が必要です)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr "自分の情報"
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr "クエリが \"ip\" の場合にあなたのIPを、クエリに \"user agent\" が含まれる場合にあなたのユーザーエージェントを表示します。"
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "トラッカー URL リムーバー"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "返された URL からトラッカー引数を消去する"
@@ -311,35 +342,35 @@ msgstr "閉じる"
msgid "Error!"
msgstr "エラー!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Powered by"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "プライバシー保護を重視した、ハッカブルなメタサーチエンジン"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "ソースコード"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "イシュートラッカー"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "検索エンジンの状態"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -376,11 +407,11 @@ msgid "proxied"
msgstr "プロキシされている"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "許可する"
@@ -481,13 +512,13 @@ msgid "Engines"
msgstr "検索エンジン"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr "特殊クエリー"
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "クッキー"
@@ -509,13 +540,13 @@ msgid "What language do you prefer for search?"
msgstr "検索に使う言語はどれが良いですか?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "安全な検索"
@@ -645,9 +676,9 @@ msgid ""
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr ""
-"フォームがどの方法で送信されるかを変更できます。<a href=\"http://en.wikipedia.org/wiki/"
-"Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\""
-">リクエストメソッドについて詳しく知るにはここをクリック</a>"
+"フォームがどの方法で送信されるかを変更できます。<a "
+"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
+" rel=\"external\">リクエストメソッドについて詳しく知るにはここをクリック</a>"
#: searx/templates/oscar/preferences.html:273
#: searx/templates/simple/preferences.html:249
@@ -693,148 +724,155 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "検索エンジン名"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "ショートカット"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "選択された言語"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "時間範囲"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "最大時間"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr "クエリー"
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "キーワード"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "名前"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "説明"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "例"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "クッキー名"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "値"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
msgstr "これらの設定はあなたのクッキーに保存されますが、これはサーバーがあなたの情報の保存するわけではありません。"
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr "クッキーはあなたが便利に使えるようにするために使うのであって、サーバーはあなたを追跡するためにクッキーを使うことはありません。"
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "現在保存されている設定の検索 URL"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr "注意: 検索 URL にカスタム設定を指定すると、クリックした結果サイトにデータが漏洩し、プライバシーが低下する恐れがあります。"
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "保存"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "戻る"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "デフォルト設定に戻す"
@@ -1205,7 +1243,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "現在使用中の検索エンジン"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "選択された言語のサポート"
@@ -1347,3 +1385,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/lt/LC_MESSAGES/messages.mo b/searx/translations/lt/LC_MESSAGES/messages.mo
index 8777e7644..63ad33859 100644
--- a/searx/translations/lt/LC_MESSAGES/messages.mo
+++ b/searx/translations/lt/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/lt/LC_MESSAGES/messages.po b/searx/translations/lt/LC_MESSAGES/messages.po
index 23727ae77..9a5bab5dc 100644
--- a/searx/translations/lt/LC_MESSAGES/messages.po
+++ b/searx/translations/lt/LC_MESSAGES/messages.po
@@ -6,185 +6,216 @@
# Moo, 2019-2020
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-10 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Lithuanian <https://weblate.bubu1.eu/projects/searxng/searxng/"
-"lt/>\n"
"Language: lt\n"
+"Language-Team: Lithuanian "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/lt/>\n"
+"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100"
+" < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < "
+"11) ? 1 : n % 1 != 0 ? 2: 3)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < "
-"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 :"
-" n % 1 != 0 ? 2: 3);\n"
-"X-Generator: Weblate 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "failai"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "bendra"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "muzika"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "socialinė medija"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "paveikslai"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "vaizdo įrašai"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "IT"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "naujienos"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "žemėlapis"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "mokslas"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Elementų nerasta"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Neteisingi nustatymai, pataisykite savo nuostatas"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Neteisingi nustatymai"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "paieškos klaida"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "prieš {minutes} min"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "prieš {hours} val., {minutes} min"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Atsitiktinių reikmių generatorius"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Generuoja įvairias atsitiktines reikšmes"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Statistikos funkcijos"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Skaičiuoti argumentų {functions} funkcijas"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Gauti nurodymus"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (PASENĘS)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Šį įrašą pakeitė"
@@ -192,7 +223,7 @@ msgstr "Šį įrašą pakeitė"
msgid "No abstract is available for this publication."
msgstr "Šiai publikacijai nėra prieinama jokia santrauka."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -232,11 +263,11 @@ msgstr ""
"Vengti apmokamų sienų, kai įmanoma, peradresuojant į atviros prieigos "
"publikacijų versijas"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Pasirinkus kategoriją, atlikti paiešką"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -244,11 +275,11 @@ msgstr ""
"Jei pasirenkama kategorija, nedelsiant atlikti paiešką. Išjunkite "
"norėdami pasirinkti kelias kategorijas. (reikalinga JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -256,11 +287,11 @@ msgstr ""
"Rodo jūsų IP adresą, jei užklausa yra \"ip\" ir jūsų naudotojo agentą, "
"jei užklausoje yra \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Seklių URL šalintojas"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Šalinti seklių argumentus iš grąžinamų URL"
@@ -312,35 +343,35 @@ msgstr "Užverti"
msgid "Error!"
msgstr "Klaida!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Veikia su"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "gerbianti privatumą, programuojama metapaieškos sistema"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Pradinis kodas"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Klaidų sekiklis"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Sistemos statistika"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Viešieji egzemplioriai"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -377,11 +408,11 @@ msgid "proxied"
msgstr "per įgaliotąjį serverį"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Leisti"
@@ -482,13 +513,13 @@ msgid "Engines"
msgstr "Sistemos"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Slapukai"
@@ -510,13 +541,13 @@ msgid "What language do you prefer for search?"
msgstr "Kokią kalbą pageidaujate paieškai?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Saugi paieška"
@@ -696,112 +727,119 @@ msgstr "Leisti visus"
msgid "Disable all"
msgstr "Išjungti visus"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Sistemos pavadinimas"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Trumpinys"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Pasirinkta kalba"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Laiko rėžis"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Maks. laikas"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Raktažodžiai"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Pavadinimas"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Aprašas"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Pavyzdžiai"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Slapuko pavadinimas"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Reikšmė"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -809,8 +847,8 @@ msgstr ""
"Šie nustatymai yra laikomi jūsų slapukuose, tai leidžia mums nesaugoti "
"šių duomenų apie jus."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -818,13 +856,13 @@ msgstr ""
"Šie slapukai yra naudojami išskirtinai jūsų patogumui, mes nenaudojame "
"jų, kad jus sektume."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Šiuo metu įrašytų nuostatų paieškos URL"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -833,18 +871,18 @@ msgstr ""
"sumažintas jūsų privatumas, atskleidžiant duomenis toms rezultatų "
"svetainėms, ant kurių spustelėjate."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "Įrašyti"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "Atgal"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Atstatyti numatytuosius"
@@ -1217,7 +1255,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Šiuo metu naudojamos paieškos sistemos"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Palaiko pasirinktą kalbą"
@@ -1365,3 +1403,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/messages.pot b/searx/translations/messages.pot
index cbcccea4e..a644fb7e6 100644
--- a/searx/translations/messages.pot
+++ b/searx/translations/messages.pot
@@ -1,14 +1,14 @@
# Translations template for PROJECT.
-# Copyright (C) 2021 ORGANIZATION
+# Copyright (C) 2022 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,168 +17,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr ""
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr ""
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr ""
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr ""
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr ""
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr ""
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr ""
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr ""
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr ""
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr ""
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr ""
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr ""
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr ""
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr ""
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr ""
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr ""
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr ""
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr ""
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr ""
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr ""
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr ""
@@ -186,7 +218,7 @@ msgstr ""
msgid "No abstract is available for this publication."
msgstr ""
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -224,31 +256,31 @@ msgid ""
"when available"
msgstr ""
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr ""
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
msgstr ""
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr ""
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr ""
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr ""
@@ -297,35 +329,35 @@ msgstr ""
msgid "Error!"
msgstr ""
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr ""
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr ""
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr ""
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -362,11 +394,11 @@ msgid "proxied"
msgstr ""
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr ""
@@ -467,13 +499,13 @@ msgid "Engines"
msgstr ""
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr ""
@@ -495,13 +527,13 @@ msgid "What language do you prefer for search?"
msgstr ""
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr ""
@@ -676,148 +708,155 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr ""
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr ""
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr ""
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr ""
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr ""
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr ""
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr ""
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr ""
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr ""
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr ""
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr ""
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
msgstr ""
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr ""
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr ""
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr ""
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr ""
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr ""
@@ -1188,7 +1227,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr ""
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr ""
diff --git a/searx/translations/nb_NO/LC_MESSAGES/messages.mo b/searx/translations/nb_NO/LC_MESSAGES/messages.mo
index 143432347..bfd3fc7fd 100644
--- a/searx/translations/nb_NO/LC_MESSAGES/messages.mo
+++ b/searx/translations/nb_NO/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/nb_NO/LC_MESSAGES/messages.po b/searx/translations/nb_NO/LC_MESSAGES/messages.po
index 2bee27450..cdc5add79 100644
--- a/searx/translations/nb_NO/LC_MESSAGES/messages.po
+++ b/searx/translations/nb_NO/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-11-01 23:48+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"Language: nb_NO\n"
@@ -19,168 +19,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "filer"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "generelt"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "musikk"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "sosiale media"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "bilder"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "videoer"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "IT"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "nyheter"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "kart"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "løktjenester"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "vitenskap"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr "tidsavbrudd"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "tolkningsfeil"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "HTTP-protokollfeil"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "nettverksfeil"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "uventet krasj"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "HTTP-feil"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "HTTP-tilkoblingsfeil"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "mellomtjenerfeil"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "CAPTCHA"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "for mange forespørsler"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "tilgang nektet"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "Tjener-API-feil"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Fant ingen elementer"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "Kilde"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Ugyldige innstillinger. Rediger dine preferanser."
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Ugyldige innstillinger"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "søkefeil"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "for {minutes} minute(s) siden"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "for {hours} time(r), {minutes} minutt(er) siden"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "I hvilemodus"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Generator for tilfeldige tall"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Generer forskjellige tilfeldige verdier"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Statistikkfunksjoner"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Regn ut {functions} av parameterne"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Få veibeskrivelser"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (FORELDET)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Denne oppføringen har blitt erstattet av"
@@ -188,7 +220,7 @@ msgstr "Denne oppføringen har blitt erstattet av"
msgid "No abstract is available for this publication."
msgstr "Sammendrag er ikke tilgjengelig for denne publikasjonen."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "Kanal"
@@ -228,11 +260,11 @@ msgstr ""
"Tillat betalingsmurer ved å videresende til åpen-tilgang -versjoner av "
"publikasjoner når de forefinnes"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Søk ved kategorivalg"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -240,11 +272,11 @@ msgstr ""
"Utfør søk umiddelbart når en kategori velges. Skru av for å velge flere "
"kategorier. (JavaScript kreves)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr "Selv-informasjon"
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -252,11 +284,11 @@ msgstr ""
"Viser din IP hvis spørringen er \"ip\" og din brukeragent hvis spørringen"
" inneholder \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Sporings-nettadressefjerner"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Fjern sporer-argumenter fra returnert nettadresse"
@@ -307,35 +339,35 @@ msgstr "Lukk"
msgid "Error!"
msgstr "Feil!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Drevet av"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "en personvernsrespekterende, hackbar metasøkemotor"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Kildekode"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Problemsporer"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Søkemotorstatistikk"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Offentlige instanser"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr "Kontakt tilbyderen av instansen"
@@ -372,11 +404,11 @@ msgid "proxied"
msgstr "mellomtjent"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Tillat"
@@ -477,13 +509,13 @@ msgid "Engines"
msgstr "Søkemotorer"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr "Spesialspørringer"
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Kaker"
@@ -505,13 +537,13 @@ msgid "What language do you prefer for search?"
msgstr "Hvilket språk foretrekker du for søk?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "TrygtSøk"
@@ -691,112 +723,119 @@ msgstr "Tillat alle"
msgid "Disable all"
msgstr "Nekt alle"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Søkemotornavn"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Snarvei"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Valgt språk"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Tidsområde"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr "Svartid"
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Mak. tid"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr "Pålitelighet"
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr "Spørring"
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Nøkkelord"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Navn"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Beskrivelse"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Eksempler"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr "Dette er en liste over programtillegg."
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Kakenavn"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Verdi"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -804,8 +843,8 @@ msgstr ""
"Disse innstillingene lagres i informasjonskapslene dine, noe som tillater"
" oss å ikke lagre denne dataen om deg."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -813,13 +852,13 @@ msgstr ""
"Disse informasjonskapslene er kun til din nytte, de brukes ikke til å "
"spore deg."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Søkenettadresse med nåværende lagrede innstillinger"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -827,18 +866,18 @@ msgstr ""
"Merk: Å angi egendefinerte innstillinger i søkenettadressen kan redusere "
"personvernet ved å lekke data til sidene det klikkes på i resultatet."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "lagre"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "tilbake"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Tilbakestill forvalg"
@@ -1209,7 +1248,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Brukte søkemotorer"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Støtter valgt språk"
diff --git a/searx/translations/nl/LC_MESSAGES/messages.mo b/searx/translations/nl/LC_MESSAGES/messages.mo
index 846ffcda6..e4514023f 100644
--- a/searx/translations/nl/LC_MESSAGES/messages.mo
+++ b/searx/translations/nl/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/nl/LC_MESSAGES/messages.po b/searx/translations/nl/LC_MESSAGES/messages.po
index 0acfae81a..27b91307e 100644
--- a/searx/translations/nl/LC_MESSAGES/messages.po
+++ b/searx/translations/nl/LC_MESSAGES/messages.po
@@ -9,183 +9,214 @@
# Rejo Zenger <rejo@zenger.nl>, 2016-2017
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-31 07:17+0000\n"
"Last-Translator: Gert-dev <gert+github@disroot.org>\n"
-"Language-Team: Dutch <https://weblate.bubu1.eu/projects/searxng/searxng/nl/>"
-"\n"
"Language: nl\n"
+"Language-Team: Dutch "
+"<https://weblate.bubu1.eu/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 4.10.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "bestanden"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "algemeen"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "muziek"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "sociale media"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "afbeeldingen"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "video’s"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "IT"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "nieuws"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "kaart"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "uien"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "wetenschap"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr ""
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "auto"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "licht"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "donker"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "verlopen"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "fout bij ontleden"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "HTTP-protocolfout"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "netwerkfout"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "onverwacht falen"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "HTTP-fout"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "HTTP-verbindingsfout"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "proxy-fout"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "CAPTCHA"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "te veel aanvragen"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "toegang geweigerd"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "server-API-fout"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Geen resultaat gevonden"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "Bron"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Ongeldige instellingen, gelieve je voorkeuren bij te werken"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Ongeldige instellingen"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "zoekfout"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} minu(u)t(en) geleden"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} uur, {minutes} minu(u)t(en) geleden"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "Geschorst"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Generator van willekeurige waarden"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Genereer verschillende willekeurige waarden"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Statistische functies"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Bereken {functions} van de argumenten"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Routebeschrijving"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (VEROUDERD)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Dit object is overbodig gemaakt door"
@@ -193,7 +224,7 @@ msgstr "Dit object is overbodig gemaakt door"
msgid "No abstract is available for this publication."
msgstr "Voor deze publicatie is geen abstract beschikbaar."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "Kanaal"
@@ -222,7 +253,8 @@ msgstr "Oneindig scrollen"
#: searx/plugins/infinite_scroll.py:4
msgid "Automatically load next page when scrolling to bottom of current page"
msgstr ""
-"Volgende pagina automatisch laden bij bereiken van onderkant huidige pagina"
+"Volgende pagina automatisch laden bij bereiken van onderkant huidige "
+"pagina"
#: searx/plugins/oa_doi_rewrite.py:9
msgid "Open Access DOI rewrite"
@@ -236,11 +268,11 @@ msgstr ""
"Omzeil betaalmuren met een doorverwijzing naar vrij toegankelijke versies"
" van publicaties indien beschikbaar"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Zoeken bij selecteren van categorie"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -249,11 +281,11 @@ msgstr ""
"wordt. Zet dit uit om meerdere categorieën te selecteren. (JavaScript "
"vereist)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr "Informatie Over Jezelf"
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -261,11 +293,11 @@ msgstr ""
"Geeft je IP-adres weer als de zoekopdracht ‘ip’ is en je gebruikersagent "
"als de zoekopdracht ‘user agent’ bevat."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Tracker-URL-verwijderaar"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Verwijdert trackerargumenten van de gekregen URL"
@@ -317,35 +349,35 @@ msgstr "Sluiten"
msgid "Error!"
msgstr "Fout!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Zoekmachine"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "een privacy-respecterende, aanpasbare meta-zoekmachine"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Broncode"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Probleem-tracker"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Zoekmachinestatistieken"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Openbare instanties"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr "Neem contact op met beheerder instantie"
@@ -382,11 +414,11 @@ msgid "proxied"
msgstr "geproxyt"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Toestaan"
@@ -487,13 +519,13 @@ msgid "Engines"
msgstr "Zoekmachines"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr "Speciale Zoekopdrachten"
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookies"
@@ -515,13 +547,13 @@ msgid "What language do you prefer for search?"
msgstr "Welke taal wil je gebruiken voor het zoeken?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "SafeSearch"
@@ -692,8 +724,8 @@ msgid ""
"When enabled, the result page's title contains your query. Your browser "
"can record this title"
msgstr ""
-"Indien aangevinkt, zal de paginatitel je zoekopdracht bevatten. Je browser "
-"kan deze titel mogelijk opslaan"
+"Indien aangevinkt, zal de paginatitel je zoekopdracht bevatten. Je "
+"browser kan deze titel mogelijk opslaan"
#: searx/templates/oscar/preferences.html:315
msgid "Allow all"
@@ -703,90 +735,97 @@ msgstr "Alles inschakelen"
msgid "Disable all"
msgstr "Alles uitschakelen"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Naam zoekmachine"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Snelkoppeling"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Geselecteerde taal"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Tijdspanne"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr "Responstijd"
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Max. duur"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr "Betrouwbaarheid"
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr "Zoekopdracht"
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Kernwoorden"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Naam"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Beschrijving"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Voorbeelden"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr "Dit is de lijst met SearXNG's \"onmiddellijk antwoord\"-modules."
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr "Dit is de lijst met plug-ins."
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
@@ -794,23 +833,23 @@ msgstr ""
"Dit is de lijst met cookies en hun waarden die SearXNG op je computer "
"opslaat."
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr "Met die lijst kan je de transparantie van SearXNG beoordelen."
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Cookienaam"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Waarde"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -818,8 +857,8 @@ msgstr ""
"Deze instellingen worden bewaard in je cookies. Hierdoor hoeven wij niets"
" over jou te bewaren."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -827,13 +866,13 @@ msgstr ""
"Deze cookies zijn alleen voor je eigen gemak, we gebruiken deze cookies "
"niet om je te volgen."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Zoek-URL van de huidig opgeslagen voorkeuren"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -842,18 +881,18 @@ msgstr ""
"voor je privacy, omdat het gegevens lekt aan de aangeklikte "
"resultaatwebsites."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "bewaren"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "terug"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Standaardinstellingen herstellen"
@@ -1228,7 +1267,7 @@ msgstr "Kies auto om je browserinstellingen te gebruiken"
msgid "Currently used search engines"
msgstr "Momenteel gebruikte zoekmachines"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Ondersteunt geselecteerde taal"
@@ -1376,3 +1415,4 @@ msgstr "Zoekmachine"
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/nl_BE/LC_MESSAGES/messages.mo b/searx/translations/nl_BE/LC_MESSAGES/messages.mo
deleted file mode 100644
index 302c6ce4d..000000000
--- a/searx/translations/nl_BE/LC_MESSAGES/messages.mo
+++ /dev/null
Binary files differ
diff --git a/searx/translations/nl_BE/LC_MESSAGES/messages.po b/searx/translations/nl_BE/LC_MESSAGES/messages.po
deleted file mode 100644
index e5e010f75..000000000
--- a/searx/translations/nl_BE/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,1371 +0,0 @@
-# Dutch (Belgium) translations for .
-# Copyright (C) 2020 ORGANIZATION
-# This file is distributed under the same license as the project.
-#
-# Translators:
-# Issa1552 <fairfull.playing@gmail.com>, 2020
-# Nathan Follens, 2018-2019
-msgid ""
-msgstr ""
-"Project-Id-Version: searx\n"
-"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
-"PO-Revision-Date: 2021-12-17 07:17+0000\n"
-"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Flemish <https://weblate.bubu1.eu/projects/searxng/searxng/"
-"nl_BE/>\n"
-"Language: nl_BE\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 4.8.1\n"
-"Generated-By: Babel 2.9.1\n"
-
-#: searx/webapp.py:164
-msgid "files"
-msgstr "bestanden"
-
-#: searx/webapp.py:165
-msgid "general"
-msgstr "algemeen"
-
-#: searx/webapp.py:166
-msgid "music"
-msgstr "muziek"
-
-#: searx/webapp.py:167
-msgid "social media"
-msgstr "sociale media"
-
-#: searx/webapp.py:168
-msgid "images"
-msgstr "afbeeldingen"
-
-#: searx/webapp.py:169
-msgid "videos"
-msgstr "video’s"
-
-#: searx/webapp.py:170
-msgid "it"
-msgstr "IT"
-
-#: searx/webapp.py:171
-msgid "news"
-msgstr "nieuws"
-
-#: searx/webapp.py:172
-msgid "map"
-msgstr "kaart"
-
-#: searx/webapp.py:173
-msgid "onions"
-msgstr ""
-
-#: searx/webapp.py:174
-msgid "science"
-msgstr "wetenschap"
-
-#: searx/webapp.py:178
-msgid "auto"
-msgstr "automatisch"
-
-#: searx/webapp.py:179
-msgid "light"
-msgstr "licht"
-
-#: searx/webapp.py:180
-msgid "dark"
-msgstr "donker"
-
-#: searx/webapp.py:184
-msgid "timeout"
-msgstr "time-out"
-
-#: searx/webapp.py:185
-msgid "parsing error"
-msgstr "parseerfout"
-
-#: searx/webapp.py:186
-msgid "HTTP protocol error"
-msgstr "HTTP protocol fout"
-
-#: searx/webapp.py:187
-msgid "network error"
-msgstr "netwerkfout"
-
-#: searx/webapp.py:189
-msgid "unexpected crash"
-msgstr "onverwachte crash"
-
-#: searx/webapp.py:196
-msgid "HTTP error"
-msgstr "HTTP fout"
-
-#: searx/webapp.py:197
-msgid "HTTP connection error"
-msgstr "HTTP-verbindingsfout"
-
-#: searx/webapp.py:203
-msgid "proxy error"
-msgstr "proxy fout"
-
-#: searx/webapp.py:204
-msgid "CAPTCHA"
-msgstr "CAPTCHA"
-
-#: searx/webapp.py:205
-msgid "too many requests"
-msgstr "te veel verzoeken"
-
-#: searx/webapp.py:206
-msgid "access denied"
-msgstr "toegang geweigerd"
-
-#: searx/webapp.py:207
-msgid "server API error"
-msgstr "server API-fout"
-
-#: searx/webapp.py:399
-msgid "No item found"
-msgstr "Geen resultaat gevonden"
-
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
-msgid "Source"
-msgstr "Bron"
-
-#: searx/webapp.py:523 searx/webapp.py:935
-msgid "Invalid settings, please edit your preferences"
-msgstr "Ongeldige instellingen, werkt uw voorkeuren bij"
-
-#: searx/webapp.py:539
-msgid "Invalid settings"
-msgstr "Ongeldige instellingen"
-
-#: searx/webapp.py:617 searx/webapp.py:688
-msgid "search error"
-msgstr "zoekfout"
-
-#: searx/webapp.py:731
-msgid "{minutes} minute(s) ago"
-msgstr "{minutes} min geleden"
-
-#: searx/webapp.py:733
-msgid "{hours} hour(s), {minutes} minute(s) ago"
-msgstr "{hours} uur, {minutes} min geleden"
-
-#: searx/webapp.py:856
-msgid "Suspended"
-msgstr "Geschorst"
-
-#: searx/answerers/random/answerer.py:65
-msgid "Random value generator"
-msgstr "Willekeurige waardegenerator"
-
-#: searx/answerers/random/answerer.py:66
-msgid "Generate different random values"
-msgstr "Genereert verschillende willekeurige waarden"
-
-#: searx/answerers/statistics/answerer.py:50
-msgid "Statistics functions"
-msgstr "Statistische functies"
-
-#: searx/answerers/statistics/answerer.py:51
-msgid "Compute {functions} of the arguments"
-msgstr "Berekent {functions} van de argumenten"
-
-#: searx/engines/openstreetmap.py:155
-msgid "Get directions"
-msgstr "Routebeschrijving"
-
-#: searx/engines/pdbe.py:90
-msgid "{title} (OBSOLETE)"
-msgstr "{title} (VEROUDERD)"
-
-#: searx/engines/pdbe.py:97
-msgid "This entry has been superseded by"
-msgstr "Dit object is vervangen door"
-
-#: searx/engines/pubmed.py:78
-msgid "No abstract is available for this publication."
-msgstr "Voor deze publicatie is geen abstract beschikbaar."
-
-#: searx/engines/qwant.py:200
-msgid "Channel"
-msgstr "Kanaal"
-
-#: searx/plugins/hash_plugin.py:24
-msgid "Converts strings to different hash digests."
-msgstr "Converteert strings naar verschillende hash-samenvattingen."
-
-#: searx/plugins/hash_plugin.py:52
-msgid "hash digest"
-msgstr "hash-samenvattingen"
-
-#: searx/plugins/hostname_replace.py:9
-msgid "Hostname replace"
-msgstr "Hostnaam vervangen"
-
-#: searx/plugins/hostname_replace.py:10
-msgid "Rewrite result hostnames or remove results based on the hostname"
-msgstr ""
-"Herschrijf resultaathostnamen of verwijder resultaten op basis van de "
-"hostnaam"
-
-#: searx/plugins/infinite_scroll.py:3
-msgid "Infinite scroll"
-msgstr "Oneindig scrollen"
-
-#: searx/plugins/infinite_scroll.py:4
-msgid "Automatically load next page when scrolling to bottom of current page"
-msgstr ""
-"Volgende pagina automatisch laden bij bereiken van den onderkant van de "
-"huidige pagina"
-
-#: searx/plugins/oa_doi_rewrite.py:9
-msgid "Open Access DOI rewrite"
-msgstr "Open Access DOI herschrijven"
-
-#: searx/plugins/oa_doi_rewrite.py:10
-msgid ""
-"Avoid paywalls by redirecting to open-access versions of publications "
-"when available"
-msgstr ""
-"Omzeilt betaalmuren met een doorverwijzing naar vrij toegankelijke "
-"versies van publicaties indien beschikbaar"
-
-#: searx/plugins/search_on_category_select.py:18
-msgid "Search on category select"
-msgstr "Zoeken bij selecteren van categorie"
-
-#: searx/plugins/search_on_category_select.py:19
-msgid ""
-"Perform search immediately if a category selected. Disable to select "
-"multiple categories. (JavaScript required)"
-msgstr ""
-"Zoekopdracht onmiddellijk uitvoeren wanneer dat een categorie wordt "
-"geselecteerd. Zet dit uit voor meerdere categorieën te selecteren. "
-"(JavaScript vereist)"
-
-#: searx/plugins/self_info.py:19
-msgid "Self Informations"
-msgstr "Zelf informatie"
-
-#: searx/plugins/self_info.py:20
-msgid ""
-"Displays your IP if the query is \"ip\" and your user agent if the query "
-"contains \"user agent\"."
-msgstr ""
-"Geeft uw IP-adres weer als de zoekopdracht ‘ip’ is, en uwe "
-"gebruikersagent als de zoekopdracht ‘user agent’ bevat."
-
-#: searx/plugins/tracker_url_remover.py:27
-msgid "Tracker URL remover"
-msgstr "Tracker-URL-verwijderaar"
-
-#: searx/plugins/tracker_url_remover.py:28
-msgid "Remove trackers arguments from the returned URL"
-msgstr "Verwijdert trackerargumenten van de gekregen URL"
-
-#: searx/plugins/vim_hotkeys.py:3
-msgid "Vim-like hotkeys"
-msgstr "Sneltoetsen gelijk in Vim"
-
-#: searx/plugins/vim_hotkeys.py:4
-msgid ""
-"Navigate search results with Vim-like hotkeys (JavaScript required). "
-"Press \"h\" key on main or result page to get help."
-msgstr ""
-"Bladert door zoekresultaten met sneltoetsen gelijk die in Vim (JavaScript"
-" vereist). Drukt op ‘h’ op de hoofdpagina of de pagina met resultaten "
-"voor hulp."
-
-#: searx/templates/oscar/404.html:4 searx/templates/simple/404.html:4
-msgid "Page not found"
-msgstr "Pagina niet gevonden"
-
-#: searx/templates/oscar/404.html:6 searx/templates/simple/404.html:6
-#, python-format
-msgid "Go to %(search_page)s."
-msgstr "Ga naar %(search_page)s."
-
-#: searx/templates/oscar/404.html:6 searx/templates/simple/404.html:6
-msgid "search page"
-msgstr "zoekpagina"
-
-#: searx/templates/oscar/about.html:2 searx/templates/oscar/navbar.html:6
-msgid "about"
-msgstr "over"
-
-#: searx/templates/oscar/advanced.html:4
-msgid "Advanced settings"
-msgstr "Geavanceerde instellingen"
-
-#: searx/templates/oscar/base.html:55
-#: searx/templates/oscar/messages/first_time.html:4
-#: searx/templates/oscar/messages/save_settings_successfull.html:5
-#: searx/templates/oscar/messages/unknow_error.html:5
-msgid "Close"
-msgstr "Sluiten"
-
-#: searx/templates/oscar/base.html:57
-#: searx/templates/oscar/messages/no_results.html:4
-#: searx/templates/simple/messages/no_results.html:6
-#: searx/templates/simple/results.html:47
-msgid "Error!"
-msgstr "Fout!"
-
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
-msgid "Powered by"
-msgstr "Aangedreven door"
-
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
-msgid "a privacy-respecting, hackable metasearch engine"
-msgstr "een privacyrespecterend, aanpasbaar metazoekmachien"
-
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
-msgid "Source code"
-msgstr "Broncode"
-
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
-msgid "Issue tracker"
-msgstr "Probleem tracker"
-
-#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
-msgid "Engine stats"
-msgstr "Zoekmachienstatistieken"
-
-#: searx/templates/oscar/base.html:89
-#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
-#: searx/templates/simple/messages/no_results.html:15
-msgid "Public instances"
-msgstr "Openbare instanties"
-
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
-msgid "Contact instance maintainer"
-msgstr ""
-
-#: searx/templates/oscar/languages.html:2
-msgid "Language"
-msgstr "Taal"
-
-#: searx/templates/oscar/languages.html:4
-#: searx/templates/simple/filters/languages.html:2
-#: searx/templates/simple/preferences.html:120
-msgid "Default language"
-msgstr "Standaardtaal"
-
-#: searx/templates/oscar/macros.html:23
-#: searx/templates/simple/result_templates/torrent.html:6
-msgid "magnet link"
-msgstr "magneetkoppeling"
-
-#: searx/templates/oscar/macros.html:24
-#: searx/templates/simple/result_templates/torrent.html:7
-msgid "torrent file"
-msgstr "torrentbestand"
-
-#: searx/templates/oscar/macros.html:37 searx/templates/oscar/macros.html:39
-#: searx/templates/oscar/macros.html:73 searx/templates/oscar/macros.html:75
-#: searx/templates/simple/macros.html:41
-msgid "cached"
-msgstr "gecachet"
-
-#: searx/templates/oscar/macros.html:43 searx/templates/oscar/macros.html:59
-#: searx/templates/oscar/macros.html:79 searx/templates/oscar/macros.html:93
-#: searx/templates/simple/macros.html:41
-msgid "proxied"
-msgstr "geproxyt"
-
-#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
-msgid "Allow"
-msgstr "Toestaan"
-
-#: searx/templates/oscar/macros.html:139
-msgid "broken"
-msgstr ""
-
-#: searx/templates/oscar/macros.html:141
-msgid "supported"
-msgstr "ondersteund"
-
-#: searx/templates/oscar/macros.html:143
-msgid "not supported"
-msgstr "niet ondersteund"
-
-#: searx/templates/oscar/navbar.html:7
-#: searx/templates/oscar/preferences.html:90
-msgid "preferences"
-msgstr "voorkeuren"
-
-#: searx/templates/oscar/preferences.html:12
-#: searx/templates/simple/preferences.html:29
-msgid "No HTTPS"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:14
-#: searx/templates/oscar/results.html:27 searx/templates/simple/results.html:40
-msgid "Number of results"
-msgstr "Aantal zoekresultaten"
-
-#: searx/templates/oscar/preferences.html:14
-msgid "Avg."
-msgstr ""
-
-#: searx/templates/oscar/messages/no_results.html:8
-#: searx/templates/oscar/preferences.html:17
-#: searx/templates/oscar/preferences.html:18
-#: searx/templates/oscar/results.html:36
-#: searx/templates/simple/messages/no_results.html:10
-#: searx/templates/simple/preferences.html:31
-#: searx/templates/simple/preferences.html:32
-#: searx/templates/simple/results.html:50
-msgid "View error logs and submit a bug report"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:38
-#: searx/templates/oscar/stats.html:70
-#: searx/templates/simple/preferences.html:53
-#: searx/templates/simple/stats.html:70
-msgid "Median"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:39
-#: searx/templates/oscar/stats.html:76
-#: searx/templates/simple/preferences.html:54
-#: searx/templates/simple/stats.html:76
-msgid "P80"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:40
-#: searx/templates/oscar/stats.html:82
-#: searx/templates/simple/preferences.html:55
-#: searx/templates/simple/stats.html:82
-msgid "P95"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:68
-#: searx/templates/simple/preferences.html:83
-msgid "Failed checker test(s): "
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:96
-#: searx/templates/simple/preferences.html:101
-msgid "Preferences"
-msgstr "Voorkeuren"
-
-#: searx/templates/oscar/preferences.html:101
-#: searx/templates/oscar/preferences.html:111
-#: searx/templates/simple/preferences.html:107
-msgid "General"
-msgstr "Algemeen"
-
-#: searx/templates/oscar/preferences.html:102
-#: searx/templates/oscar/preferences.html:193
-msgid "User Interface"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:103
-#: searx/templates/oscar/preferences.html:257
-#: searx/templates/simple/preferences.html:234
-msgid "Privacy"
-msgstr "Privacy"
-
-#: searx/templates/oscar/preferences.html:104
-#: searx/templates/oscar/preferences.html:307
-#: searx/templates/simple/preferences.html:274
-msgid "Engines"
-msgstr "Zoekmachienen"
-
-#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
-msgid "Special Queries"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
-msgid "Cookies"
-msgstr "Cookies"
-
-#: searx/templates/oscar/preferences.html:123
-#: searx/templates/oscar/preferences.html:125
-#: searx/templates/simple/preferences.html:110
-msgid "Default categories"
-msgstr "Standaardcategorieën"
-
-#: searx/templates/oscar/preferences.html:133
-#: searx/templates/simple/preferences.html:117
-#: searx/templates/simple/preferences.html:244
-msgid "Search language"
-msgstr "Zoektaal"
-
-#: searx/templates/oscar/preferences.html:134
-#: searx/templates/simple/preferences.html:126
-msgid "What language do you prefer for search?"
-msgstr "Welke taal wilt ge gebruiken voor het zoeken?"
-
-#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
-#: searx/templates/simple/filters/safesearch.html:2
-#: searx/templates/simple/filters/safesearch.html:3
-#: searx/templates/simple/filters/safesearch.html:4
-#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
-msgid "SafeSearch"
-msgstr "SafeSearch"
-
-#: searx/templates/oscar/preferences.html:142
-#: searx/templates/simple/preferences.html:153
-msgid "Filter content"
-msgstr "Filteren op inhoud"
-
-#: searx/templates/oscar/preferences.html:145
-#: searx/templates/simple/filters/safesearch.html:2
-#: searx/templates/simple/preferences.html:148
-msgid "Strict"
-msgstr "Strikt"
-
-#: searx/templates/oscar/preferences.html:146
-#: searx/templates/simple/filters/safesearch.html:3
-#: searx/templates/simple/preferences.html:149
-msgid "Moderate"
-msgstr "Gemiddeld"
-
-#: searx/templates/oscar/preferences.html:147
-#: searx/templates/simple/filters/safesearch.html:4
-#: searx/templates/simple/preferences.html:150
-msgid "None"
-msgstr "Geen"
-
-#: searx/templates/oscar/preferences.html:153
-#: searx/templates/simple/preferences.html:131
-msgid "Autocomplete"
-msgstr "Auto-aanvullen"
-
-#: searx/templates/oscar/preferences.html:154
-#: searx/templates/simple/preferences.html:140
-msgid "Find stuff as you type"
-msgstr "Zoekt tijdens het typen"
-
-#: searx/templates/oscar/preferences.html:168
-#: searx/templates/simple/preferences.html:159
-msgid "Open Access DOI resolver"
-msgstr "Open Access DOI herschrijven"
-
-#: searx/templates/oscar/preferences.html:169
-#: searx/templates/simple/preferences.html:169
-msgid ""
-"Redirect to open-access versions of publications when available (plugin "
-"required)"
-msgstr ""
-"Doorverwijzen naar vrij toegankelijke versies van publicaties, indien "
-"beschikbaar (plug-in vereist)"
-
-#: searx/templates/oscar/preferences.html:183
-#: searx/templates/simple/preferences.html:173
-msgid "Engine tokens"
-msgstr "Motortokens"
-
-#: searx/templates/oscar/preferences.html:184
-#: searx/templates/simple/preferences.html:177
-msgid "Access tokens for private engines"
-msgstr "Toegangstokens voor privé-engines"
-
-#: searx/templates/oscar/preferences.html:198
-#: searx/templates/simple/preferences.html:184
-msgid "Interface language"
-msgstr "Interfacetaal"
-
-#: searx/templates/oscar/preferences.html:199
-#: searx/templates/simple/preferences.html:192
-msgid "Change the language of the layout"
-msgstr "Wijzigt de taal van den opmaak"
-
-#: searx/templates/oscar/preferences.html:210
-#: searx/templates/simple/preferences.html:197
-msgid "Theme"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:211
-#: searx/templates/simple/preferences.html:205
-msgid "Change SearXNG layout"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:222
-#: searx/templates/oscar/preferences.html:228
-msgid "Choose style for this theme"
-msgstr "Kiest ne stijl voor dit thema"
-
-#: searx/templates/oscar/preferences.html:222
-#: searx/templates/oscar/preferences.html:228
-msgid "Style"
-msgstr "Stijl"
-
-#: searx/templates/oscar/preferences.html:231
-msgid "Show advanced settings"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:232
-msgid "Show advanced settings panel in the home page by default"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:235
-#: searx/templates/oscar/preferences.html:245
-#: searx/templates/simple/preferences.html:224
-msgid "On"
-msgstr "Aan"
-
-#: searx/templates/oscar/preferences.html:236
-#: searx/templates/oscar/preferences.html:246
-#: searx/templates/simple/preferences.html:225
-msgid "Off"
-msgstr "Uit"
-
-#: searx/templates/oscar/preferences.html:241
-#: searx/templates/simple/preferences.html:221
-msgid "Results on new tabs"
-msgstr "Resultaten op nieuwe tabbladen"
-
-#: searx/templates/oscar/preferences.html:242
-#: searx/templates/simple/preferences.html:228
-msgid "Open result links on new browser tabs"
-msgstr "Koppelingen openen in nieuwe tabbladen"
-
-#: searx/templates/oscar/preferences.html:262
-#: searx/templates/simple/preferences.html:237
-msgid "Method"
-msgstr "Methode"
-
-#: searx/templates/oscar/preferences.html:263
-msgid ""
-"Change how forms are submited, <a "
-"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
-" rel=\"external\">learn more about request methods</a>"
-msgstr ""
-"Bepaalt hoe dat de formulieren worden ingestuurd, <a "
-"href=\"http://nl.wikipedia.org/wiki/Hypertext_Transfer_Protocol#HTTP-"
-"requests\" rel=\"external\">leest meer over opvraagmethodes</a>"
-
-#: searx/templates/oscar/preferences.html:273
-#: searx/templates/simple/preferences.html:249
-msgid "Image proxy"
-msgstr "Afbeeldingsproxy"
-
-#: searx/templates/oscar/preferences.html:274
-#: searx/templates/simple/preferences.html:256
-msgid "Proxying image results through SearXNG"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:277
-#: searx/templates/oscar/preferences.html:288
-#: searx/templates/simple/preferences.html:252
-#: searx/templates/simple/preferences.html:264
-msgid "Enabled"
-msgstr "Ingeschakeld"
-
-#: searx/templates/oscar/preferences.html:278
-#: searx/templates/oscar/preferences.html:289
-#: searx/templates/simple/preferences.html:253
-#: searx/templates/simple/preferences.html:265
-msgid "Disabled"
-msgstr "Uitgeschakeld"
-
-#: searx/templates/oscar/preferences.html:284
-#: searx/templates/simple/preferences.html:261
-msgid "Query in the page's title"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:285
-#: searx/templates/simple/preferences.html:268
-msgid ""
-"When enabled, the result page's title contains your query. Your browser "
-"can record this title"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:315
-msgid "Allow all"
-msgstr "Alles inschakelen"
-
-#: searx/templates/oscar/preferences.html:316
-msgid "Disable all"
-msgstr "Alles uitschakelen"
-
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
-#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
-#: searx/templates/simple/stats.html:28
-msgid "Engine name"
-msgstr "Naam zoekmachien"
-
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
-msgid "Shortcut"
-msgstr "Snelkoppeling"
-
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
-msgid "Selected language"
-msgstr "Geselecteerde taal"
-
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
-#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
-msgid "Time range"
-msgstr "Tijdspanne"
-
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
-#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
-#: searx/templates/simple/stats.html:31
-msgid "Response time"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
-msgid "Max time"
-msgstr "Max. duur"
-
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
-#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
-#: searx/templates/simple/stats.html:32
-msgid "Reliability"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:396
-msgid "Query"
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
-msgid "Keywords"
-msgstr "Kernwoorden"
-
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
-msgid "Name"
-msgstr "Naam"
-
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
-msgid "Description"
-msgstr "Beschrijving"
-
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
-msgid "Examples"
-msgstr "Voorbeelden"
-
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
-msgid "This is the list of SearXNG's instant answering modules."
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
-msgid "This is the list of plugins."
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
-msgid ""
-"This is the list of cookies and their values SearXNG is storing on your "
-"computer."
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
-msgid "With that list, you can assess SearXNG transparency."
-msgstr ""
-
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
-msgid "Cookie name"
-msgstr "Cookienaam"
-
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
-msgid "Value"
-msgstr "Waarde"
-
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
-msgid ""
-"These settings are stored in your cookies, this allows us not to store "
-"this data about you."
-msgstr ""
-"Deze instellingen worden bewaard in uw cookies. Hierdoor hoeven wij niks "
-"over u te bewaren."
-
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
-msgid ""
-"These cookies serve your sole convenience, we don't use these cookies to "
-"track you."
-msgstr ""
-"Deze cookies zijn alleen voor uw eigen gemak, we gebruiken deze cookies "
-"niet voor u te volgen."
-
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
-msgid "Search URL of the currently saved preferences"
-msgstr "Zoek-URL van de momenteel opgeslagen voorkeuren"
-
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
-msgid ""
-"Note: specifying custom settings in the search URL can reduce privacy by "
-"leaking data to the clicked result sites."
-msgstr ""
-"Let op: aangepaste instellingen opgeven in de zoek-URL kan nadelig zijn "
-"voor uw privacy, omdat het gegevens lekt aan de aangeklikte "
-"resultaatwebsites."
-
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
-msgid "save"
-msgstr "opslaan"
-
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
-msgid "back"
-msgstr "terug"
-
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
-msgid "Reset defaults"
-msgstr "Standaardinstellingen herstellen"
-
-#: searx/templates/oscar/results.html:32 searx/templates/simple/results.html:47
-msgid "Engines cannot retrieve results"
-msgstr "Zoekmachienen konden geen resultaten ophalen"
-
-#: searx/templates/oscar/results.html:53 searx/templates/simple/results.html:69
-msgid "Suggestions"
-msgstr "Suggesties"
-
-#: searx/templates/oscar/results.html:74
-msgid "Links"
-msgstr "Koppelingen"
-
-#: searx/templates/oscar/results.html:79 searx/templates/simple/results.html:87
-msgid "Search URL"
-msgstr "Zoek-URL"
-
-#: searx/templates/oscar/results.html:84 searx/templates/simple/results.html:92
-msgid "Download results"
-msgstr "Zoekresultaten downloaden"
-
-#: searx/templates/oscar/results.html:95
-msgid "RSS subscription"
-msgstr "RSS-abonnement"
-
-#: searx/templates/oscar/results.html:104
-msgid "Search results"
-msgstr "Zoekresultaten"
-
-#: searx/templates/oscar/results.html:109
-#: searx/templates/simple/results.html:116
-msgid "Try searching for:"
-msgstr "Probeert te zoeken naar:"
-
-#: searx/templates/oscar/results.html:162
-#: searx/templates/oscar/results.html:187
-#: searx/templates/simple/results.html:182
-msgid "next page"
-msgstr "volgende pagina"
-
-#: searx/templates/oscar/results.html:169
-#: searx/templates/oscar/results.html:180
-#: searx/templates/simple/results.html:165
-msgid "previous page"
-msgstr "vorige pagina"
-
-#: searx/templates/oscar/search.html:6 searx/templates/oscar/search_full.html:9
-#: searx/templates/simple/search.html:8
-#: searx/templates/simple/simple_search.html:4
-msgid "Search for..."
-msgstr "Zoeken naar..."
-
-#: searx/templates/oscar/search.html:8
-#: searx/templates/oscar/search_full.html:11
-msgid "Start search"
-msgstr "Start zoeken"
-
-#: searx/templates/oscar/search.html:9
-#: searx/templates/oscar/search_full.html:12
-msgid "Clear search"
-msgstr "Zoekopdracht wissen"
-
-#: searx/templates/oscar/search_full.html:12
-msgid "Clear"
-msgstr "Wissen"
-
-#: searx/templates/oscar/stats.html:4
-msgid "stats"
-msgstr "stats"
-
-#: searx/templates/oscar/stats.html:30 searx/templates/simple/stats.html:29
-msgid "Scores"
-msgstr "Scores"
-
-#: searx/templates/oscar/stats.html:31 searx/templates/simple/stats.html:30
-msgid "Result count"
-msgstr ""
-
-#: searx/templates/oscar/stats.html:42 searx/templates/simple/stats.html:41
-msgid "Scores per result"
-msgstr "Scores per zoekresultaat"
-
-#: searx/templates/oscar/stats.html:65 searx/templates/simple/stats.html:65
-msgid "Total"
-msgstr ""
-
-#: searx/templates/oscar/stats.html:66 searx/templates/simple/stats.html:66
-msgid "HTTP"
-msgstr ""
-
-#: searx/templates/oscar/stats.html:67 searx/templates/simple/stats.html:67
-msgid "Processing"
-msgstr ""
-
-#: searx/templates/oscar/stats.html:106 searx/templates/simple/stats.html:105
-msgid "Warnings"
-msgstr ""
-
-#: searx/templates/oscar/stats.html:106 searx/templates/simple/stats.html:105
-msgid "Errors and exceptions"
-msgstr ""
-
-#: searx/templates/oscar/stats.html:112 searx/templates/simple/stats.html:111
-msgid "Exception"
-msgstr ""
-
-#: searx/templates/oscar/stats.html:114 searx/templates/simple/stats.html:113
-msgid "Message"
-msgstr ""
-
-#: searx/templates/oscar/stats.html:116 searx/templates/simple/stats.html:115
-msgid "Percentage"
-msgstr ""
-
-#: searx/templates/oscar/stats.html:118 searx/templates/simple/stats.html:117
-msgid "Parameter"
-msgstr ""
-
-#: searx/templates/oscar/result_templates/files.html:35
-#: searx/templates/oscar/stats.html:126 searx/templates/simple/stats.html:125
-msgid "Filename"
-msgstr ""
-
-#: searx/templates/oscar/stats.html:127 searx/templates/simple/stats.html:126
-msgid "Function"
-msgstr ""
-
-#: searx/templates/oscar/stats.html:128 searx/templates/simple/stats.html:127
-msgid "Code"
-msgstr ""
-
-#: searx/templates/oscar/stats.html:135 searx/templates/simple/stats.html:134
-msgid "Checker"
-msgstr ""
-
-#: searx/templates/oscar/stats.html:138 searx/templates/simple/stats.html:137
-msgid "Failed test"
-msgstr ""
-
-#: searx/templates/oscar/stats.html:139 searx/templates/simple/stats.html:138
-msgid "Comment(s)"
-msgstr ""
-
-#: searx/templates/oscar/time-range.html:5
-#: searx/templates/simple/filters/time_range.html:3
-msgid "Anytime"
-msgstr "Altijd"
-
-#: searx/templates/oscar/time-range.html:8
-#: searx/templates/simple/filters/time_range.html:6
-msgid "Last day"
-msgstr "Voorbijen dag"
-
-#: searx/templates/oscar/time-range.html:11
-#: searx/templates/simple/filters/time_range.html:9
-msgid "Last week"
-msgstr "Voorbije week"
-
-#: searx/templates/oscar/time-range.html:14
-#: searx/templates/simple/filters/time_range.html:12
-msgid "Last month"
-msgstr "Voorbije maand"
-
-#: searx/templates/oscar/time-range.html:17
-#: searx/templates/simple/filters/time_range.html:15
-msgid "Last year"
-msgstr "Voorbije jaar"
-
-#: searx/templates/oscar/messages/first_time.html:6
-#: searx/templates/oscar/messages/no_data_available.html:3
-msgid "Heads up!"
-msgstr "Opgelet!"
-
-#: searx/templates/oscar/messages/first_time.html:7
-msgid "It look like you are using SearXNG first time."
-msgstr ""
-
-#: searx/templates/oscar/messages/no_cookies.html:3
-msgid "Information!"
-msgstr "Informatie!"
-
-#: searx/templates/oscar/messages/no_cookies.html:4
-msgid "currently, there are no cookies defined."
-msgstr "der zijn momenteel geen cookies gedefinieerd."
-
-#: searx/templates/oscar/messages/no_data_available.html:4
-#: searx/templates/simple/stats.html:24
-msgid "There is currently no data available. "
-msgstr "Der zijn momenteel geen gegevens beschikbaar."
-
-#: searx/templates/oscar/messages/no_results.html:4
-#: searx/templates/simple/messages/no_results.html:6
-msgid "Engines cannot retrieve results."
-msgstr "Zoekmachinen konden geen resultaten ophalen."
-
-#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/messages/no_results.html:15
-msgid "Please, try again later or find another SearXNG instance."
-msgstr ""
-
-#: searx/templates/oscar/messages/no_results.html:17
-#: searx/templates/simple/messages/no_results.html:20
-msgid "Sorry!"
-msgstr "Sorry!"
-
-#: searx/templates/oscar/messages/no_results.html:18
-#: searx/templates/simple/messages/no_results.html:21
-msgid ""
-"we didn't find any results. Please use another query or search in more "
-"categories."
-msgstr ""
-"We konden geen resultaten vinden. Probeert nen andere zoekopdracht, of "
-"zoekt in meer categorieën."
-
-#: searx/templates/oscar/messages/save_settings_successfull.html:7
-msgid "Well done!"
-msgstr "Goed gedaan!"
-
-#: searx/templates/oscar/messages/save_settings_successfull.html:8
-msgid "Settings saved successfully."
-msgstr "Instellingen opgeslagen."
-
-#: searx/templates/oscar/messages/unknow_error.html:7
-msgid "Oh snap!"
-msgstr "Oeps!"
-
-#: searx/templates/oscar/messages/unknow_error.html:8
-msgid "Something went wrong."
-msgstr "Der is iets misgegaan."
-
-#: searx/templates/oscar/result_templates/default.html:7
-#: searx/templates/oscar/result_templates/files.html:7
-#: searx/templates/oscar/result_templates/files.html:10
-#: searx/templates/simple/result_templates/default.html:6
-msgid "show media"
-msgstr "media tonen"
-
-#: searx/templates/oscar/result_templates/default.html:7
-#: searx/templates/oscar/result_templates/files.html:7
-#: searx/templates/simple/result_templates/default.html:6
-msgid "hide media"
-msgstr "media verbergen"
-
-#: searx/templates/oscar/result_templates/files.html:33
-#: searx/templates/oscar/result_templates/videos.html:19
-#: searx/templates/simple/result_templates/images.html:21
-msgid "Author"
-msgstr "Auteur"
-
-#: searx/templates/oscar/result_templates/files.html:37
-#: searx/templates/oscar/result_templates/torrent.html:7
-#: searx/templates/simple/result_templates/torrent.html:11
-msgid "Filesize"
-msgstr "Bestandsgrootte"
-
-#: searx/templates/oscar/result_templates/files.html:38
-#: searx/templates/oscar/result_templates/torrent.html:9
-#: searx/templates/simple/result_templates/torrent.html:12
-msgid "Bytes"
-msgstr "Bytes"
-
-#: searx/templates/oscar/result_templates/files.html:39
-#: searx/templates/oscar/result_templates/torrent.html:10
-#: searx/templates/simple/result_templates/torrent.html:13
-msgid "kiB"
-msgstr "kiB"
-
-#: searx/templates/oscar/result_templates/files.html:40
-#: searx/templates/oscar/result_templates/torrent.html:11
-#: searx/templates/simple/result_templates/torrent.html:14
-msgid "MiB"
-msgstr "MiB"
-
-#: searx/templates/oscar/result_templates/files.html:41
-#: searx/templates/oscar/result_templates/torrent.html:12
-#: searx/templates/simple/result_templates/torrent.html:15
-msgid "GiB"
-msgstr "GiB"
-
-#: searx/templates/oscar/result_templates/files.html:42
-#: searx/templates/oscar/result_templates/torrent.html:13
-#: searx/templates/simple/result_templates/torrent.html:16
-msgid "TiB"
-msgstr "TiB"
-
-#: searx/templates/oscar/result_templates/files.html:46
-msgid "Date"
-msgstr ""
-
-#: searx/templates/oscar/result_templates/files.html:48
-msgid "Type"
-msgstr ""
-
-#: searx/templates/oscar/result_templates/images.html:27
-msgid "Get image"
-msgstr "Afbeelding tonen"
-
-#: searx/templates/oscar/result_templates/images.html:30
-#: searx/templates/simple/result_templates/images.html:25
-msgid "View source"
-msgstr "Bron bekijken"
-
-#: searx/templates/oscar/result_templates/map.html:26
-#: searx/templates/simple/result_templates/map.html:12
-msgid "address"
-msgstr ""
-
-#: searx/templates/oscar/result_templates/map.html:59
-#: searx/templates/simple/result_templates/map.html:43
-msgid "show map"
-msgstr "kaart tonen"
-
-#: searx/templates/oscar/result_templates/map.html:59
-#: searx/templates/simple/result_templates/map.html:43
-msgid "hide map"
-msgstr "kaart verbergen"
-
-#: searx/templates/oscar/result_templates/torrent.html:6
-#: searx/templates/simple/result_templates/torrent.html:9
-msgid "Seeder"
-msgstr "Seeders"
-
-#: searx/templates/oscar/result_templates/torrent.html:6
-#: searx/templates/simple/result_templates/torrent.html:9
-msgid "Leecher"
-msgstr "Leechers"
-
-#: searx/templates/oscar/result_templates/torrent.html:15
-#: searx/templates/simple/result_templates/torrent.html:20
-msgid "Number of Files"
-msgstr "Aantal bestanden"
-
-#: searx/templates/oscar/result_templates/videos.html:7
-#: searx/templates/simple/result_templates/videos.html:6
-msgid "show video"
-msgstr "video tonen"
-
-#: searx/templates/oscar/result_templates/videos.html:7
-#: searx/templates/simple/result_templates/videos.html:6
-msgid "hide video"
-msgstr "video verbergen"
-
-#: searx/templates/oscar/result_templates/videos.html:20
-msgid "Length"
-msgstr "Lengte"
-
-#: searx/templates/simple/categories.html:16
-msgid "Click on the magnifier to perform search"
-msgstr "Klikt op het vergrootglas voor te zoeken"
-
-#: searx/templates/simple/preferences.html:85
-msgid "Errors:"
-msgstr ""
-
-#: searx/templates/simple/preferences.html:181
-msgid "User interface"
-msgstr "Gebruikersinterface"
-
-#: searx/templates/simple/preferences.html:208
-msgid "Theme style"
-msgstr ""
-
-#: searx/templates/simple/preferences.html:216
-msgid "Choose auto to follow your browser settings"
-msgstr ""
-
-#: searx/templates/simple/preferences.html:275
-msgid "Currently used search engines"
-msgstr "Momenteel gebruikte zoekmachienen"
-
-#: searx/templates/simple/preferences.html:285
-msgid "Supports selected language"
-msgstr "Ondersteunt geselecteerde taal"
-
-#: searx/templates/simple/results.html:24
-msgid "Answers"
-msgstr "Antwoorden"
-
-#: searx/templates/simple/search.html:9
-#: searx/templates/simple/simple_search.html:5
-msgid "clear"
-msgstr ""
-
-#: searx/templates/simple/search.html:10
-#: searx/templates/simple/simple_search.html:6
-msgid "search"
-msgstr ""
-
-#: searx/templates/simple/result_templates/default.html:14
-#: searx/templates/simple/result_templates/videos.html:14
-msgid "This site did not provide any description."
-msgstr ""
-
-#: searx/templates/simple/result_templates/images.html:22
-msgid "Format"
-msgstr ""
-
-#: searx/templates/simple/result_templates/images.html:24
-msgid "Engine"
-msgstr ""
-
-#~ msgid "Engine time (sec)"
-#~ msgstr "Snelheid zoekmachien (sec)"
-
-#~ msgid "Page loads (sec)"
-#~ msgstr "Laden van pagina’s (sec)"
-
-#~ msgid "Errors"
-#~ msgstr "Fouten"
-
-#~ msgid "CAPTCHA required"
-#~ msgstr "CAPTCHA vereist"
-
-#~ msgid "Rewrite HTTP links to HTTPS if possible"
-#~ msgstr "Herschrijft HTTP-koppelingen naar HTTPS, indien mogelijk"
-
-#~ msgid ""
-#~ "Results are opened in the same "
-#~ "window by default. This plugin "
-#~ "overwrites the default behaviour to open"
-#~ " links on new tabs/windows. (JavaScript "
-#~ "required)"
-#~ msgstr ""
-#~ "Resultaten worden standaard in hetzelfde "
-#~ "venster geopend. Deze plug-in "
-#~ "overschrijft het standaardgedrag zodat "
-#~ "koppelingen in nieuwe tabbladen/vensters "
-#~ "worden geopend. (JavaScript vereist)"
-
-#~ msgid "Color"
-#~ msgstr "Kleur"
-
-#~ msgid "Blue (default)"
-#~ msgstr "Blauw (standaard)"
-
-#~ msgid "Violet"
-#~ msgstr "Paars"
-
-#~ msgid "Green"
-#~ msgstr "Groen"
-
-#~ msgid "Cyan"
-#~ msgstr "Appelblauwzeegroen"
-
-#~ msgid "Orange"
-#~ msgstr "Oranje"
-
-#~ msgid "Red"
-#~ msgstr "Rood"
-
-#~ msgid "Category"
-#~ msgstr "Categorie"
-
-#~ msgid "Block"
-#~ msgstr "Blokkeren"
-
-#~ msgid "original context"
-#~ msgstr "oorspronkelijke context"
-
-#~ msgid "Plugins"
-#~ msgstr "Plug-ins"
-
-#~ msgid "Answerers"
-#~ msgstr "Beantwoorders"
-
-#~ msgid "Avg. time"
-#~ msgstr "Gem. duur"
-
-#~ msgid "show details"
-#~ msgstr "details tonen"
-
-#~ msgid "hide details"
-#~ msgstr "details verbergen"
-
-#~ msgid "Load more..."
-#~ msgstr "Meer laden…"
-
-#~ msgid "Loading..."
-#~ msgstr "Laden..."
-
-#~ msgid "Change searx layout"
-#~ msgstr "Opmaak van searx aanpassen"
-
-#~ msgid "Proxying image results through searx"
-#~ msgstr "Afbeeldingsresultaten via searx laden"
-
-#~ msgid "This is the list of searx's instant answering modules."
-#~ msgstr "Dit is het overzicht van de instantantwoordmodules van searx."
-
-#~ msgid ""
-#~ "This is the list of cookies and"
-#~ " their values searx is storing on "
-#~ "your computer."
-#~ msgstr ""
-#~ "Dit is de lijst van cookies en "
-#~ "hun waarden die searx op uwe "
-#~ "computer opslaat."
-
-#~ msgid "With that list, you can assess searx transparency."
-#~ msgstr "Met deze lijst kunt ge de openheid van searx beoordelen."
-
-#~ msgid "It look like you are using searx first time."
-#~ msgstr "Het lijkt erop dat ge searx voor den eerste keer gebruikt."
-
-#~ msgid "Please, try again later or find another searx instance."
-#~ msgstr "Probeert het later opnieuw, of gebruikt een andere instantie van searx."
-
-#~ msgid "Themes"
-#~ msgstr "Thema’s"
-
-#~ msgid "Reliablity"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "When enabled, the result page's title"
-#~ " contains your query. Your browser "
-#~ "can record this title."
-#~ msgstr ""
diff --git a/searx/translations/oc/LC_MESSAGES/messages.mo b/searx/translations/oc/LC_MESSAGES/messages.mo
index 892047b08..50278290b 100644
--- a/searx/translations/oc/LC_MESSAGES/messages.mo
+++ b/searx/translations/oc/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/oc/LC_MESSAGES/messages.po b/searx/translations/oc/LC_MESSAGES/messages.po
index 9175d5bab..efb3a3bfa 100644
--- a/searx/translations/oc/LC_MESSAGES/messages.po
+++ b/searx/translations/oc/LC_MESSAGES/messages.po
@@ -7,183 +7,213 @@
# Marc Abonce Seguin, 2019
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-10 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Occitan <https://weblate.bubu1.eu/projects/searxng/searxng/oc/"
-">\n"
"Language: oc\n"
+"Language-Team: Occitan "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/oc/>\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 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "fichièrs"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "general"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "musica"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "mèdias socials"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "imatges"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "vidèos"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "tecnologia"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "actualitat"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "mapa"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "sciéncia"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Cap d’element pas trobat"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Paramètre pas valide, mercés de modificar vòstras preferéncias"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Paramètres invalids"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "error de recèrca"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "fa {minutes} minuta(s)"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "Fa {hours} ora(s), {minutes} minuta(s)"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Generator aleatòri"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Crèa de valors aleatòrias diferentas"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Foncions estatisticas"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Calcula las {functions} dels arguments"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Aqueste element es estat remplaçat per"
@@ -191,7 +221,7 @@ msgstr "Aqueste element es estat remplaçat per"
msgid "No abstract is available for this publication."
msgstr "Cap de resumit pas disponible per aquesta publicacion."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -231,23 +261,23 @@ msgstr ""
"Evitar las paginas de pagament ne virant sus la version en accès liure "
"quand es disponibla"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Cercar dins la categoria causida"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
msgstr ""
-"Lança la recèrca sul còp se una categoria es seleccionada. Desactivar per "
-"seleccionar mai d'una categoria (Javascript necessari)"
+"Lança la recèrca sul còp se una categoria es seleccionada. Desactivar per"
+" seleccionar mai d'una categoria (Javascript necessari)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -255,11 +285,11 @@ msgstr ""
"Aficha vòstre adreça IP se la demanda es \"ip\", e aficha vòstre user-"
"agent se la demanda conten \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Netejador d'URL de traçat"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Lèva los arguments de las URL utilizats per vos traçar"
@@ -311,35 +341,35 @@ msgstr "Tampar"
msgid "Error!"
msgstr "Error !"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Propulsat per"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "un meta-motor de recèrca hackable e respectuós de la vida privada"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Estatistica del motor"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -376,11 +406,11 @@ msgid "proxied"
msgstr "proxifiat"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Autorizar"
@@ -481,13 +511,13 @@ msgid "Engines"
msgstr "Motors de cerca"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookies"
@@ -509,13 +539,13 @@ msgid "What language do you prefer for search?"
msgstr "Dins quina lenga vos agrada mai cercar ?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Recèrca segurizada"
@@ -695,112 +725,119 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Nom del motor de cerca"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Acorchis"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Seleccionatz una lenga"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Espaci temporal"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Temps max"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Mots claus"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Nom"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Descripcion"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Exemples"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Nom del cookie"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Valor"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -808,8 +845,8 @@ msgstr ""
"Aquestes paramètres son gardats dins vòstres cookies : aquò nos permet "
"pas de collectar vòstras donadas."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -817,13 +854,13 @@ msgstr ""
"Aquestes cookies existon per vòstre confòrt d'utilizacion, los empleguem "
"pas per vos espiar."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "URL de recèrca actuala dels paramètres enregistrats"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -831,18 +868,18 @@ msgstr ""
"Nòta : especificar de paramètres personalizats en l’URL pòt reduire la "
"privacitat en revelar de donadas als sites de resultat clicats."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "enregistrar"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "tornar"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Reïnicializar per defaut"
@@ -1215,7 +1252,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Motors de recèrca utilizat actualament"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Compatible amb las lengas seleccionadas"
@@ -1364,3 +1401,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/pl/LC_MESSAGES/messages.mo b/searx/translations/pl/LC_MESSAGES/messages.mo
index 28c7b8dc5..629537a0b 100644
--- a/searx/translations/pl/LC_MESSAGES/messages.mo
+++ b/searx/translations/pl/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/pl/LC_MESSAGES/messages.po b/searx/translations/pl/LC_MESSAGES/messages.po
index 6edc6aed3..a85e4f01d 100644
--- a/searx/translations/pl/LC_MESSAGES/messages.po
+++ b/searx/translations/pl/LC_MESSAGES/messages.po
@@ -6,185 +6,216 @@
# Artur <artur@komoter.pl>, 2017
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-24 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Polish <https://weblate.bubu1.eu/projects/searxng/searxng/pl/>"
-"\n"
"Language: pl\n"
+"Language-Team: Polish "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/pl/>\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && "
+"(n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && "
+"n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n"
-"%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n"
-"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
-"X-Generator: Weblate 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "pliki"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "ogólne"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "muzyka"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "media społecznościowe"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "zdjęcia"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "wideo"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "informatyka"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "wiadomości"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "mapa"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "nauka"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr ""
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "autonatycznie"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "jasny"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "ciemny"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "przekroczenie maksymalnego dozwolonego czasu"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "błąd przetwarzania"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "błąd protokołu HTTP"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "błąd sieci"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "niespodziewana awaria"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "błąd HTTP"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "błąd połączenia HTTP"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "błąd serwera proxy"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "CAPTCHA"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "za dużo zapytań"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "odmowa dostępu"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Nie znaleziono elementu"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "Źródło"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Nieprawidłowe ustawienia, proszę zmienić swoje preferencje"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Nieprawidłowe ustawienia"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "błąd wyszukiwania"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} minut(y) temu"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} godzin(y), {minutes} minut(y) temu"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "Zawieszone"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Generator wartości losowych"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Wygeneruj różne wartości losowe"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Funkcje statystyczne"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Oblicz {functions} argumentów"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (PRZESTARZAŁY)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Ten wpis został zastąpiony przez"
@@ -192,7 +223,7 @@ msgstr "Ten wpis został zastąpiony przez"
msgid "No abstract is available for this publication."
msgstr "Streszczenie nie jest dostępne dla tej publikacji."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "Kanał"
@@ -234,11 +265,11 @@ msgstr ""
"Unikaj opłat za dostęp, przekierowując do otwartych wersji publikacji, "
"gdy są dostępne"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Szukaj po wybraniu kategorii"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -246,11 +277,11 @@ msgstr ""
"Wykonaj wyszukiwanie natychmiast po wybraniu kategorii. Wyłącz, aby "
"wybrać wiele kategorii. (Wymagany Javascript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -258,11 +289,11 @@ msgstr ""
"Wyświetla Twój adres IP, jeśli zapytanie to \"ip\", i Twojego agenta "
"użytkownika, jeśli zapytanie zawiera \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Usuwanie elementów śledzących z URL-ów"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Usuń argumenty elementów śledzących ze zwróconego adresu URL"
@@ -314,35 +345,35 @@ msgstr "Zamknij"
msgid "Error!"
msgstr "Błąd!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Obsługiwane przez"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "szanująca prywatność, hackowalna wyszukiwarka metasearch"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Kod źródłowy"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Śledzenie błędów"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Statystyki wyszukiwarki"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Publiczne instancje"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -379,11 +410,11 @@ msgid "proxied"
msgstr "przesłane poprzez proxy"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Pozwól"
@@ -484,13 +515,13 @@ msgid "Engines"
msgstr "Wyszukiwarki"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr "Specialne Zapytania"
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Ciasteczka"
@@ -512,13 +543,13 @@ msgid "What language do you prefer for search?"
msgstr "W jakim języku wolisz wyszukiwać?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Bezpieczne wyszukiwanie"
@@ -689,8 +720,8 @@ msgid ""
"When enabled, the result page's title contains your query. Your browser "
"can record this title"
msgstr ""
-"Gdy włączone, tytuł strony z wynikiem będzie zawierał twoje zapytanie. Twoja "
-"przeglądarka może widzieć to."
+"Gdy włączone, tytuł strony z wynikiem będzie zawierał twoje zapytanie. "
+"Twoja przeglądarka może widzieć to."
#: searx/templates/oscar/preferences.html:315
msgid "Allow all"
@@ -700,114 +731,121 @@ msgstr "Zezwól na wszystkie"
msgid "Disable all"
msgstr "Wyłącz wszystkie"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Nazwa wyszukiwarki"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Skrót"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Wybrany język"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Zakres czasu"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr "Czas odpowiedzi"
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Maksymalny czas"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr "Niezawodność"
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr "Zapytanie"
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Słowa kluczowe"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Nazwa"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Opis"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Przykłady"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr "To jest list wtyczek."
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-"To jest lista plików cookies i ich zawartości, które SearXNG przechowuje na "
-"twoim komputerze."
+"To jest lista plików cookies i ich zawartości, które SearXNG przechowuje "
+"na twoim komputerze."
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Nazwa ciasteczka"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Wartość"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -815,8 +853,8 @@ msgstr ""
"Ustawienia te są przechowywane w ciasteczkach, co pozwala nam nie "
"przechowywać tych danych o Tobie."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -824,13 +862,13 @@ msgstr ""
"Te ciasteczka służą wyłącznie Twojej wygodzie, nie używamy tych "
"ciasteczek do śledzenia Ciebie."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Wyszukaj adres URL aktualnie zapisanych preferencji"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -839,18 +877,18 @@ msgstr ""
"może zmniejszyć prywatność, przenosząc dane do klikniętych stron z "
"wyników."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "zapisz"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "z powrotem"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Przywróć domyślne"
@@ -1223,7 +1261,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Obecnie używane wyszukiwarki"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Obsługuje wybrany język"
@@ -1371,3 +1409,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/pt/LC_MESSAGES/messages.mo b/searx/translations/pt/LC_MESSAGES/messages.mo
index 16d56d04e..b9c300f92 100644
--- a/searx/translations/pt/LC_MESSAGES/messages.mo
+++ b/searx/translations/pt/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/pt/LC_MESSAGES/messages.po b/searx/translations/pt/LC_MESSAGES/messages.po
index dea10b3b2..5c1d0c212 100644
--- a/searx/translations/pt/LC_MESSAGES/messages.po
+++ b/searx/translations/pt/LC_MESSAGES/messages.po
@@ -7,183 +7,214 @@
# C. E., 2018
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-10 07:17+0000\n"
"Last-Translator: Alexandre Flament <alex@al-f.net>\n"
-"Language-Team: Portuguese <https://weblate.bubu1.eu/projects/searxng/searxng/"
-"pt/>\n"
"Language: pt\n"
+"Language-Team: Portuguese "
+"<https://weblate.bubu1.eu/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 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "ficheiros"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "geral"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "música"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "redes sociais"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "imagens"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "vídeos"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "ti"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "notícias"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "mapa"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "Cebolas"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "ciência"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr ""
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "automático"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "claro"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "escuro"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "tempo esgotado"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "Erro de protocolo HTTP"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "erro de rede"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "acidente inesperado"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "Erro HTTP"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "Erro de conexão HTTP"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "erro de proxy"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "CAPTCHA"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "muitos pedidos"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "acesso negado"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "erro de API do servidor"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Nenhum item encontrado"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "Fonte"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Definições inválidas, por favor edite as suas preferências"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Configurações inválidas"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "erro de procura"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} minuto(s) atrás"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} hora(s), {minutes} minuto(s) atrás"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "Suspenso"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Gerador de valores aleatórios"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Gerar valores aleatórios diferentes"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Funções de estatística"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Calcular {functions} dos argumentos"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Obter direções"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{título} (OBSOLETO)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Esta entrada foi substituída por"
@@ -191,7 +222,7 @@ msgstr "Esta entrada foi substituída por"
msgid "No abstract is available for this publication."
msgstr "Nenhum resumo está disponível para esta publicação."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "Canal"
@@ -235,11 +266,11 @@ msgstr ""
"Evite acessos pagos acedendo a versões de livre acesso sempre que "
"disponível"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Pesquisar na seleção de categoria"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -248,11 +279,11 @@ msgstr ""
"Desative esta opção para selecionar várias categorias. (Necessário "
"JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -260,11 +291,11 @@ msgstr ""
"Mostrar IP se a pesquisar por \"IP\" e mostrar o user agent se pesquisar "
"por \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Remover rastreio de hiperligação"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Remover argumentos de rastreio da hiperligação devolvida"
@@ -315,35 +346,35 @@ msgstr "Fechar"
msgid "Error!"
msgstr "Erro!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Produzido por"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "um motor de metapesquisa editável e respeitador da sua privacidade"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Código fonte"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Rastreador de problemas"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Estatísticas de motor de pesquisa"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Instâncias públicas"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr "Contate o mantenedor da instância"
@@ -380,11 +411,11 @@ msgid "proxied"
msgstr "via proxy"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Permitir"
@@ -485,13 +516,13 @@ msgid "Engines"
msgstr "Motores de pesquisa"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr "Consultas especiais"
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookies"
@@ -513,13 +544,13 @@ msgid "What language do you prefer for search?"
msgstr "Que idioma de pesquisa prefere?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Pesquisa segura"
@@ -699,112 +730,119 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Nome do motor de pesquisa"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Atalho"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Idioma selecionado"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Período de tempo"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Tempo máximo"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Palavras-chave"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Nome"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Descrição"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Exemplos"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Nome de cookie"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Valor"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -812,8 +850,8 @@ msgstr ""
"Estas definições são guardadas nos seus cookies, isto permite-nos que não"
" guardemos informação sobre si."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -821,13 +859,13 @@ msgstr ""
"Estes cookies servem somente para sua conveniência, não os utilizamos "
"para o rastrear."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "URL de pesquisa das preferências salvas atualmente"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -836,18 +874,18 @@ msgstr ""
"pode reduzir a privacidade ao vazar dados para os sites de resultados "
"clicados."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "Guardar"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "Atrás"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Repor predefinições"
@@ -1220,7 +1258,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Motores de pesquisa utilizados"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Suporta idioma selecionado"
@@ -1371,3 +1409,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/pt_BR/LC_MESSAGES/messages.mo b/searx/translations/pt_BR/LC_MESSAGES/messages.mo
index a69839949..1a581526b 100644
--- a/searx/translations/pt_BR/LC_MESSAGES/messages.mo
+++ b/searx/translations/pt_BR/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/pt_BR/LC_MESSAGES/messages.po b/searx/translations/pt_BR/LC_MESSAGES/messages.po
index 5e7c9d907..e8b43314d 100644
--- a/searx/translations/pt_BR/LC_MESSAGES/messages.po
+++ b/searx/translations/pt_BR/LC_MESSAGES/messages.po
@@ -15,8 +15,8 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
-"PO-Revision-Date: 2021-11-23 10:08+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
+"PO-Revision-Date: 2022-01-06 08:26+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"Language: pt_BR\n"
"Language-Team: Portuguese (Brazil) "
@@ -27,168 +27,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "arquivos"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "geral"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "áudio"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "redes sociais"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "imagens"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "vídeos"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "códigos"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "notícias"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "mapas"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "ciência"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
-msgid "timeout"
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:189
+msgid "light"
+msgstr "claro"
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr "escuro"
+
+#: searx/webapp.py:192
+msgid "timeout"
+msgstr "tempo esgotado"
+
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
-msgstr ""
+msgstr "erro de rede"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
-msgstr ""
+msgstr "erro HTTP"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
-msgstr ""
+msgstr "erro de conexão HTTP"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
-msgstr ""
+msgstr "erro de proxy"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
-msgstr ""
+msgstr "CAPTCHA"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
-msgstr ""
+msgstr "muitas solicitações"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
-msgstr ""
+msgstr "acesso negado"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
-msgstr ""
+msgstr "erro de API do servidor"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Nenhum item encontrado"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Configurações inválidas, por favor, edite suas preferências"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Configurações inválidas"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "erro de busca"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutos} minuto(s) atrás"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} hora(s), {minutes} minuto(s) atrás"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Gerador de valor aleatório"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Gere diferentes valores aleatórios"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Funções estatísticas"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Compute {functions} dos argumentos"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Obter instruções"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (OBSOLETO)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Esta entrada foi substituída por"
@@ -196,7 +228,7 @@ msgstr "Esta entrada foi substituída por"
msgid "No abstract is available for this publication."
msgstr "Nenhum resumo disponível para essa publicação."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -238,11 +270,11 @@ msgstr ""
"Evita \"paywalls\" ao redirecionar para versões de acesso livre de "
"publicações, quando possível"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Pesquisar na categoria selecionada"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -250,11 +282,11 @@ msgstr ""
"Executar a busca imediatamente se a categoria está selecionada. Desativar"
" para selecionar várias categorias. (Necessário JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -262,11 +294,11 @@ msgstr ""
"Exibe o seu IP se a consulta é \"ip\" e seu agente de usuário, se a "
"consulta contém \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Remover Tracker da url"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Remover argumentos de url retornáveis"
@@ -317,35 +349,35 @@ msgstr "Fechar"
msgid "Error!"
msgstr "Erro!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Distribuído por"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "um mecanismo de metabusca que respeita a sua privacidade"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Código fonte"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Rastreador de problemas"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Estatísticas de busca"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Instâncias públicas"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -382,11 +414,11 @@ msgid "proxied"
msgstr "por proxy"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Ativo"
@@ -487,13 +519,13 @@ msgid "Engines"
msgstr "Buscadores"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookies"
@@ -515,13 +547,13 @@ msgid "What language do you prefer for search?"
msgstr "Qual idioma padrão para pesquisar?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Busca Segura"
@@ -701,112 +733,119 @@ msgstr "Permitir tudo"
msgid "Disable all"
msgstr "Desativar tudo"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Nome do serviço"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Atalhos"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Idioma selecionado"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Intervalo de tempo"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Tempo máximo"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Palavras-chave"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Nome"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Descrição"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Exemplos"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Nome do cookie"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Valor"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -814,8 +853,8 @@ msgstr ""
"Essas configurações são armazenadas em seus cookies, nos não armazenamos "
"nenhum dado a seu respeito."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -823,13 +862,13 @@ msgstr ""
"Estes cookies servem ao seu único propósito, nós não usamos esses cookies"
" para rastreá-lo."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "URL de Pesquisa das configurações salvas atuais"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -838,18 +877,18 @@ msgstr ""
"reduzir a privacidade ao vazar dados para os sites clicados nos "
"resultados."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "salvar"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "voltar"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Redefinir configurações"
@@ -1222,7 +1261,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Serviço de busca usado atualmente"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Suporta a língua selecionada"
diff --git a/searx/translations/ro/LC_MESSAGES/messages.mo b/searx/translations/ro/LC_MESSAGES/messages.mo
index b23e02c3d..c4c0ef0a9 100644
--- a/searx/translations/ro/LC_MESSAGES/messages.mo
+++ b/searx/translations/ro/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/ro/LC_MESSAGES/messages.po b/searx/translations/ro/LC_MESSAGES/messages.po
index ef8720179..bb5e5c9e2 100644
--- a/searx/translations/ro/LC_MESSAGES/messages.po
+++ b/searx/translations/ro/LC_MESSAGES/messages.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2020-07-09 13:10+0000\n"
"Last-Translator: Daniel Șerbănescu <daniel@serbanescu.dk>\n"
"Language: ro\n"
@@ -23,168 +23,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "fișiere"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "generale"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "muzică"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "rețele sociale"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "imagini"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "videouri"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "informatică"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "știri"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "hărți"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "știință"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Niciun element găsit"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Configurări nevalide, editați preferințele"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Configurări nevalide"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "eroare de căutare"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} minut(e) în urmă"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} oră(e), {minutes} minut(e) în urmă"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Generator de valori aleatorii"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Generează valori aleatoare diferite"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Funcții statistice"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Calculează {functions} din argumente"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Această intrare a fost perimată de"
@@ -192,7 +224,7 @@ msgstr "Această intrare a fost perimată de"
msgid "No abstract is available for this publication."
msgstr "Niciun abstract disponibil pentru această publicație."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -232,11 +264,11 @@ msgstr ""
"Evită „zidurile de plată” redirecționând către versiuni cu acces deschis "
"ale publicațiilor când sunt disponibile"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Caută la selectarea categoriei"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -244,11 +276,11 @@ msgstr ""
"Execută căutarea imediat dacă o categorie este selectată. Dezactivează "
"pentru a selecta categorii multiple. (Necesită JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -256,11 +288,11 @@ msgstr ""
"Afișează IP-ul dacă interogarea este „ip” și agentul de utilizator dacă "
"interogarea conține „user agent”."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Eliminator de URL pentru urmăritor"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Elimină argumentele urmăritorului din URL-ul returnat"
@@ -312,35 +344,35 @@ msgstr "Închide"
msgid "Error!"
msgstr "Eroare!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Motorizat de"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "un meta-motor de căutare care respectă confidențialitatea"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Statisticile motorului"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -377,11 +409,11 @@ msgid "proxied"
msgstr "delegat"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Permite"
@@ -482,13 +514,13 @@ msgid "Engines"
msgstr "Motoare"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookie-uri"
@@ -510,13 +542,13 @@ msgid "What language do you prefer for search?"
msgstr "Ce limbă preferați pentru căutare?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "CăutareSigură"
@@ -696,112 +728,119 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Numele motorului"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Scurtătură"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Limba selectată"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Interval de timp"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Timp maxim"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Cuvinte cheie"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Nume"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Descriere"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Exemple"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Nume cookie"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Valuare"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -809,8 +848,8 @@ msgstr ""
"Aceste configurări sunt stocate în cookie-uri, ceea ce ne permite să nu "
"stocăm aceste date despre dumeavoastră."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -818,13 +857,13 @@ msgstr ""
"Aceste cookie-uri servesc doar pentru conveniența dumneavoastră, noi nu "
"stocăm aceste cookie-uri pentru a vă urmări."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "URL-ul de căutare al preferințelor salvate curent"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -833,18 +872,18 @@ msgstr ""
"reduce nivelul de confidențialitate prin scurgerea datelor către siturile"
" accesate la căutare."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "salvează"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "înapoi"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Restabilește la valorile implicite"
@@ -1217,7 +1256,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Motoarele de căutare folosite curent"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Suportă limba selectată"
diff --git a/searx/translations/ru/LC_MESSAGES/messages.mo b/searx/translations/ru/LC_MESSAGES/messages.mo
index 70b100f8e..4cb9ea23a 100644
--- a/searx/translations/ru/LC_MESSAGES/messages.mo
+++ b/searx/translations/ru/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/ru/LC_MESSAGES/messages.po b/searx/translations/ru/LC_MESSAGES/messages.po
index 5b98864fe..8d2ac61ec 100644
--- a/searx/translations/ru/LC_MESSAGES/messages.po
+++ b/searx/translations/ru/LC_MESSAGES/messages.po
@@ -12,185 +12,216 @@
# Дмитрий Михирев, 2016-2017
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-17 07:17+0000\n"
"Last-Translator: Alexandre Flament <alex@al-f.net>\n"
-"Language-Team: Russian <https://weblate.bubu1.eu/projects/searxng/searxng/ru/"
-">\n"
"Language: ru\n"
+"Language-Team: Russian "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/ru/>\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) "
+"|| (n%100>=11 && n%100<=14)? 2 : 3)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
-"%100>=11 && n%100<=14)? 2 : 3);\n"
-"X-Generator: Weblate 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "файлы"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "общие"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "музыка"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "социальные сети"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "картинки"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "видео"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "ИТ"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "новости"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "карты"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "онион"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "наука"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr ""
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "автоматически"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "светлая"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "тёмная"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "перерыв"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "ошибка парсинга"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "ошибка HTTP протокола"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "ошибка сети"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "неожиданная поломка"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "ошибка HTTP"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "ошибка HTTP соединения"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "ошибка прокси"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "CAPTCHA"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "слишком много запросов"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "доступ запрещён"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "ошибка API сервера"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Ничего не найдено"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "Источник"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Неправильные параметры, пожалуйста измените Ваши настройки"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Неверные настройки"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "ошибка поиска"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} минут(а) назад"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} час(ов), {minutes} минут(а) назад"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "Приостановлено"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Генератор случайных значений"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Генерировать разные случайные значения"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Статистические функции"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Вычислить {functions} аргументов"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Получить инструкции"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (УСТАРЕВШЕЕ)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Эта запись была заменена на"
@@ -198,7 +229,7 @@ msgstr "Эта запись была заменена на"
msgid "No abstract is available for this publication."
msgstr "Нет доступного примечания для этой публикации."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "Канал"
@@ -240,11 +271,11 @@ msgstr ""
"Позволяет получить бесплатную версию запрашиваемой статьи, если таковая "
"имеется"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Поиск по выбранной категории"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -252,11 +283,11 @@ msgstr ""
"Выполнять поиск немедленно, если выбрана категория. Отключите для выбора "
"нескольких категорий. (требуется JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr "Самоиформация"
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -264,11 +295,11 @@ msgstr ""
"Отображать Ваш IP-адрес при запросе \"ip\" и Ваш юзер-агент при запросе "
"\"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Удаление трекинга из URL-адреса"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Удаление аргументов трекинга из URL-адреса"
@@ -320,35 +351,35 @@ msgstr "Закрыть"
msgid "Error!"
msgstr "Ошибка!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Основано на"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "уважающая Вашу приватность, открытая метапоисковая система"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Исходный код"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Трекер проблем"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Статистика поисковых систем"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Публичные экземпляры"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr "Сопровождение контактного экземпляра"
@@ -385,11 +416,11 @@ msgid "proxied"
msgstr "проксируемого"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Разрешить"
@@ -490,13 +521,13 @@ msgid "Engines"
msgstr "Поисковые системы"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr "Специальные настройки"
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookies"
@@ -518,13 +549,13 @@ msgid "What language do you prefer for search?"
msgstr "Какой язык предпочтителен для поиска?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Безопасный поиск"
@@ -706,112 +737,119 @@ msgstr "Разрешить все"
msgid "Disable all"
msgstr "Отключить все"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Имя поисковой системы"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Сокращение"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Выбранный язык"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Временной диапазон"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr "Время отклика"
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Максимальное время"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr "Надёжность"
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr "Запрос"
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Ключевые слова"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Имя"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Описание"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Примеры"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr "Список моделей мгновенных ответов в SearXNG."
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr "Это список плагинов."
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr "Список куков и их значений, которые SearXNG хранит на Вашем компьютере."
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr "С этим списком, Вы можете использовать SearXNG прозрачно."
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Имя cookie-файла"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Значение"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -819,8 +857,8 @@ msgstr ""
"Настройки сохраняются в Ваших cookie-файлах, что позволяет нам не хранить"
" никаких сведений о Вас."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -828,13 +866,13 @@ msgstr ""
"Cookie-файлы служат исключительно для Вашего удобства, мы не используем "
"cookie-файлы что-бы следить за Вами."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Настройки поиска URL-адреса были сохранены"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -843,18 +881,18 @@ msgstr ""
"снизить Вашу конфиденциальность из-за утечки данных на сайтах из "
"поисковой выдачи, которые Вы посещаете."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "сохранить"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "назад"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Восстановить настройки по умолчанию"
@@ -1227,7 +1265,7 @@ msgstr "Выберите \"автоматически\" для использо
msgid "Currently used search engines"
msgstr "Используемые поисковые системы"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Поддержка выбранного языка"
@@ -1375,3 +1413,4 @@ msgstr "Движок"
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/sk/LC_MESSAGES/messages.mo b/searx/translations/sk/LC_MESSAGES/messages.mo
index b0311bdb7..15a30a111 100644
--- a/searx/translations/sk/LC_MESSAGES/messages.mo
+++ b/searx/translations/sk/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/sk/LC_MESSAGES/messages.po b/searx/translations/sk/LC_MESSAGES/messages.po
index fa0b47465..91c0f34d5 100644
--- a/searx/translations/sk/LC_MESSAGES/messages.po
+++ b/searx/translations/sk/LC_MESSAGES/messages.po
@@ -6,184 +6,215 @@
# Jan Hovancik, 2017
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-10 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Slovak <https://weblate.bubu1.eu/projects/searxng/searxng/sk/>"
-"\n"
"Language: sk\n"
+"Language-Team: Slovak "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/sk/>\n"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 "
+"&& n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n "
-">= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
-"X-Generator: Weblate 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "súbory"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "všeobecné"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "hudba"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "sociálne médiá"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "obrázky"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "videá"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "technika"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "správy"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "mapy"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "veda"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr ""
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Neplatné nastavenia, upravte svoje hodnoty, prosím"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr ""
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "chyba vyhľadávania"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} min. pred"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} hod., {minutes} min. pred"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Generátor nahodných hodnôt"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Vytvoriť iné náhodné hodnoty"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Štatistické funkcie"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Vypočítať {functions} argumentov"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Táto položka bola nahradená"
@@ -191,7 +222,7 @@ msgstr "Táto položka bola nahradená"
msgid "No abstract is available for this publication."
msgstr ""
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -233,11 +264,11 @@ msgstr ""
"Vyhnúť sa plateným bránam presmerovaním na verejne prístupné verzie "
"publikácií ak sú k dispozícii"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Vyhľadávanie pri výbere kategórie"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -245,11 +276,11 @@ msgstr ""
"Vyhľadávať okamžite, ak je kategória vybraná. Vypnúť pre vyberanie "
"viacerých kategórií. (Je potrebný JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -257,11 +288,11 @@ msgstr ""
"Zobrazí vašu IP ak je dotaz \"ip\" a user agenta ak dotaz obsahuje \"user"
" agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Odstraňovanie sledovacích argumentov"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Odstrániť sledovacie argumenty z vrátenej URL"
@@ -313,35 +344,35 @@ msgstr "Zatvoriť"
msgid "Error!"
msgstr "Chyba!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Používame"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "prispôsobitelný meta-vyhľadávač, ktorý rešpektuje vaše súkromie"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Štatistiky vyhľadávača"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -378,11 +409,11 @@ msgid "proxied"
msgstr "cez proxy"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Povoliť"
@@ -483,13 +514,13 @@ msgid "Engines"
msgstr "Vyhľadávače"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookies"
@@ -511,13 +542,13 @@ msgid "What language do you prefer for search?"
msgstr "Aký jazyk preferujete pre vyhľadávanie?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Bezpečné vyhľadávanie"
@@ -695,112 +726,119 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Názov vyhľadávača"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Skratka"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr ""
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Časový rozsah"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Maximálny čas"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Kľúčové slová"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Názov"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Popis"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Príklady"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Názov cookie"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Hodnota"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -808,8 +846,8 @@ msgstr ""
"Tieto nastavenia sú uložené v cookies, čo nám umožňuje neukladať dáta o "
"vás na našej strane."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -817,30 +855,30 @@ msgstr ""
"Tieto cookies slúžia výhradné pre vaše pohodlie a nie sú používané na "
"sledovanie."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr ""
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "uložiť"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "späť"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Obnoviť predvolené"
@@ -1213,7 +1251,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "poruba@contours.cz"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Podporuje zvolený jazyk"
@@ -1358,3 +1396,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/sl/LC_MESSAGES/messages.mo b/searx/translations/sl/LC_MESSAGES/messages.mo
index 16a0778ee..c70ad7305 100644
--- a/searx/translations/sl/LC_MESSAGES/messages.mo
+++ b/searx/translations/sl/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/sl/LC_MESSAGES/messages.po b/searx/translations/sl/LC_MESSAGES/messages.po
index 358c97d65..25eb9ad43 100644
--- a/searx/translations/sl/LC_MESSAGES/messages.po
+++ b/searx/translations/sl/LC_MESSAGES/messages.po
@@ -8,189 +8,221 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
-"PO-Revision-Date: 2020-07-09 13:10+0000\n"
-"Last-Translator: asladic <ales.sladic@gmail.com>\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
+"PO-Revision-Date: 2022-01-06 08:26+0000\n"
+"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"Language: sl\n"
"Language-Team: Slovenian "
-"(http://www.transifex.com/asciimoo/searx/language/sl/)\n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 "
-"|| n%100==4 ? 2 : 3)\n"
+"<https://weblate.bubu1.eu/projects/searxng/searxng/sl/>\n"
+"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 "
+"|| n%100==4 ? 2 : 3\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "datoteke"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "splošno"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "glasba"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "družabna omrežja"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "slike"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "videi"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "informatika"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "novice"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "zemljevid"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "znanost"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Ni zadetkov"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Neveljavne nastavitve. Prosimo, preverite vašo konfiguracijo"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Neveljavne nastavitve"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "napaka pri iskanju"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} minut nazaj"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "pred {hours} urami in {minutes} minut"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Generator naključnih števil"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Generiraj različne naključne vrednosti"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Statistične funkcije"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Izračunaj {functions} argumentov"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
-msgstr "Ta vnos je presegel"
+msgstr "Ta vnos je bil presezen"
#: searx/engines/pubmed.py:78
msgid "No abstract is available for this publication."
msgstr ""
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -230,23 +262,23 @@ msgstr ""
"Izogibanje plačilom s preusmeritvijo na prostodostopne različice "
"publikacij, ko so na voljo"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Išči ob izboru kategorije"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
msgstr ""
-"Takoj izvedi iskanje, če je izbrana kategorija. Onemogočiti za izbor več "
-"kategorij. Potrebuje (JavaScript)"
+"Če je kategorija izbrana, takoj izvedi iskanje. Za izbor več kategorij "
+"onemogocite. (Potrebna je JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -254,11 +286,11 @@ msgstr ""
"Prikaže IP naslov, če je niz poizvedbe \"ip\", in uporabniški agent, če "
"je niz \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Odstranjevalec sledilcev URL"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Odstrani argumente sledilcev iz vrnjenega URL"
@@ -310,35 +342,35 @@ msgstr "Zapri"
msgid "Error!"
msgstr "Napaka!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Omogočeno z"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "razširljiv metaiskalnik, ki spoštuje vašo zasebnost"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
-msgstr "Statistike searx"
+msgstr "Statistike iskalnika"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -355,12 +387,12 @@ msgstr "Privzeti jezik"
#: searx/templates/oscar/macros.html:23
#: searx/templates/simple/result_templates/torrent.html:6
msgid "magnet link"
-msgstr "magnetna povezava"
+msgstr "magnet povezava"
#: searx/templates/oscar/macros.html:24
#: searx/templates/simple/result_templates/torrent.html:7
msgid "torrent file"
-msgstr "datoteka .torrent"
+msgstr "torrent datoteka"
#: searx/templates/oscar/macros.html:37 searx/templates/oscar/macros.html:39
#: searx/templates/oscar/macros.html:73 searx/templates/oscar/macros.html:75
@@ -375,11 +407,11 @@ msgid "proxied"
msgstr "preko posredniškega strežnika"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Dovoli"
@@ -412,7 +444,7 @@ msgstr "Število zadetkov"
#: searx/templates/oscar/preferences.html:14
msgid "Avg."
-msgstr ""
+msgstr "Povprečje"
#: searx/templates/oscar/messages/no_results.html:8
#: searx/templates/oscar/preferences.html:17
@@ -480,13 +512,13 @@ msgid "Engines"
msgstr "Iskalniki"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Piškotki"
@@ -508,13 +540,13 @@ msgid "What language do you prefer for search?"
msgstr "V katerem jeziku želite iskati?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Varno iskanje"
@@ -694,112 +726,119 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Ime iskalnika"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Bližnjica"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Izbrani jezik"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Časovni razpon"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Največji čas"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Ključne besede"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Ime"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Opis"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Primeri"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Ime piškotka"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Vrednost"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -807,20 +846,20 @@ msgstr ""
"Te nastavitve so shranjene v vaših piškotkih; to nam omogoča, da ne "
"hranimo teh podatkov o vas."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr "Ti piškotki so za boljšo izkušnjo, ne uporabljamo jih za sledenje."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Iskalni URL trenutno shranjenih nastavitev"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -828,18 +867,18 @@ msgstr ""
"Opomba: navajanje lastnih nastavitev v iskalnem URL lahko vodi do "
"zmanjšane zasebnosti preko podajanja podatkov izbranim rezultatom."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "shrani"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "nazaj"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Ponastavi na privzeto"
@@ -1212,7 +1251,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Trenutno uporabljeni iskalniki"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Podpira izbrani jezik"
diff --git a/searx/translations/sr/LC_MESSAGES/messages.mo b/searx/translations/sr/LC_MESSAGES/messages.mo
index 63719e699..14bd56462 100644
--- a/searx/translations/sr/LC_MESSAGES/messages.mo
+++ b/searx/translations/sr/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/sr/LC_MESSAGES/messages.po b/searx/translations/sr/LC_MESSAGES/messages.po
index 3d8610dd1..e8b2cd8c4 100644
--- a/searx/translations/sr/LC_MESSAGES/messages.po
+++ b/searx/translations/sr/LC_MESSAGES/messages.po
@@ -8,184 +8,215 @@
# jugi1, 2017
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-10 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Serbian <https://weblate.bubu1.eu/projects/searxng/searxng/sr/"
-">\n"
"Language: sr\n"
+"Language-Team: Serbian "
+"<https://weblate.bubu1.eu/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 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "фајлови"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "уопштено"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "музика"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "друштвени медији"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "слике"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "видео"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "ит"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "новости"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "мапа"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "наука"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Ставка није пронађена"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Неважеће поставке, молимо уредите свој избор"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Неважећа подешавања"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "грешка у претрази"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "пре {minutes} минут(у,е,а)"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "пре {hours} час(a) и {minutes} минут(у,е,а)"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Генератор случајних вредности"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Генеришите различите случајне вредности"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Статистичке функције"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Израчунајте {functions} аргумената"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Упутства за правац"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (ЗАСТАРЕЛО)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Овај унос је заменио"
@@ -193,7 +224,7 @@ msgstr "Овај унос је заменио"
msgid "No abstract is available for this publication."
msgstr "Абстракт није доступан за ову публикацију."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -233,11 +264,11 @@ msgid ""
"when available"
msgstr "Избегните плаћање у случају да је доступна бесплатна публикација"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Тражите категорију избора"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -245,11 +276,11 @@ msgstr ""
"Одмах извршите претрагу ако је изабрана категорија. Онемогућите да би "
"изабрали више категорија. (Потребан је JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -257,11 +288,11 @@ msgstr ""
"Прикажите своју IP адресу ако је упит \"ip\" и ако кориснички агент "
"садржи \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Уклони трекер URL адресе"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Уклања аргументе трекера од повратне URL адресе"
@@ -313,35 +344,35 @@ msgstr "Затвори"
msgid "Error!"
msgstr "Грешка!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Покреће"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "мета-претраживач који поштује приватност"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Изворни код"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Трагач проблема"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Статистика"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Јавне инстанце"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -378,11 +409,11 @@ msgid "proxied"
msgstr "прокси"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Допусти"
@@ -483,13 +514,13 @@ msgid "Engines"
msgstr "Претраживачи"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Колачићи"
@@ -511,13 +542,13 @@ msgid "What language do you prefer for search?"
msgstr "Који језик преферирате за претрагу?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Безбедна Претрага"
@@ -565,8 +596,8 @@ msgid ""
"Redirect to open-access versions of publications when available (plugin "
"required)"
msgstr ""
-"Преусмери на верзије публикација отвореног приступа кад је доступно ("
-"потребан је плагин)"
+"Преусмери на верзије публикација отвореног приступа кад је доступно "
+"(потребан је плагин)"
#: searx/templates/oscar/preferences.html:183
#: searx/templates/simple/preferences.html:173
@@ -697,112 +728,119 @@ msgstr "Дозволи све"
msgid "Disable all"
msgstr "Онемогући све"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Име претраживача"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Пречица"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Изабрани језик"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Временски опсег"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Макс. време"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Кључне речи"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Име"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Опис"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Примери"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Име колачића"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Вредност"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -810,8 +848,8 @@ msgstr ""
"Ова подешавања се чувају у вашим колачићима, што нам омогућава да не "
"сачувамо ове податке о вама."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -819,13 +857,13 @@ msgstr ""
"Ови колачићи служе Вашој погодности, ми не користимо ове колачиће да вас "
"пратимо."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Pretražite URL адресу тренутно сачуваних поставки"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -833,18 +871,18 @@ msgstr ""
"Напомена: навођење прилагођених поставки у URL претрази може смањити "
"приватност цурењем података кликнутих страница."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "сними"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "назад"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Врати на подразумевано"
@@ -1217,7 +1255,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Тренутно коришћени претраживачи"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Подржава изабрани језик"
@@ -1362,3 +1400,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/sv/LC_MESSAGES/messages.mo b/searx/translations/sv/LC_MESSAGES/messages.mo
index c379ab16a..65b50a0af 100644
--- a/searx/translations/sv/LC_MESSAGES/messages.mo
+++ b/searx/translations/sv/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/sv/LC_MESSAGES/messages.po b/searx/translations/sv/LC_MESSAGES/messages.po
index 98c7ae689..983f86d69 100644
--- a/searx/translations/sv/LC_MESSAGES/messages.po
+++ b/searx/translations/sv/LC_MESSAGES/messages.po
@@ -8,183 +8,214 @@
# efef6ec5b435a041fce803c7f8af77d2_2341d43, 2017-2018
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-10 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Swedish <https://weblate.bubu1.eu/projects/searxng/searxng/sv/"
-">\n"
"Language: sv\n"
+"Language-Team: Swedish "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/sv/>\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 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "filer"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "allmänt"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "musik"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "sociala medier"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "bilder"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "videor"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "it"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "nyheter"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "karta"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "vetenskap"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Inga artiklar hittade"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Ogiltiga inställningar, vänligen redigerar dina inställningar"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Ogiltiga inställningar"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "sökfel"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} minut(er) sedan"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} timm(e/ar), {minutes} minut(er) sedan"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Slumpvärdesgenerator"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Generera olika slumpmässiga värden"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Statistikfunktioner"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Beräkna {functions} av argumenten"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Få vägbeskrivningar"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (FÖRÅLDRAD)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Detta inlägg har ersatts av"
@@ -192,7 +223,7 @@ msgstr "Detta inlägg har ersatts av"
msgid "No abstract is available for this publication."
msgstr "Inget abstract är tillgänglig för denna publikation."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -232,11 +263,11 @@ msgstr ""
"Undvik betalväggar genom att omdirigera till öppen tillgång versioner av "
"publikationer när de är tillgängliga"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Sök vid val av kategori"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -244,11 +275,11 @@ msgstr ""
"Utför sökning omedelbart om en kategori är vald. Inaktivera att välja "
"flera kategorier. (JavaScript krävs)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -256,11 +287,11 @@ msgstr ""
"Visar din IP om förfrågan är \"ip\" och din användaragent om förfrågan "
"innehåller \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Bevakningswebbadress borttagare"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Ta bort tracker-argument från den återgivna webbadressen"
@@ -311,35 +342,35 @@ msgstr "Stäng"
msgid "Error!"
msgstr "Fel!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Drivet av"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "en integritetsrespekterande, hackningsbar metasökmotor"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Källkod"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Ärenehanterare"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Sökmotor statistik"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Publika instanser"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -376,11 +407,11 @@ msgid "proxied"
msgstr "proxade"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Tillåt"
@@ -481,13 +512,13 @@ msgid "Engines"
msgstr "Sökmotorer"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Kakor"
@@ -509,13 +540,13 @@ msgid "What language do you prefer for search?"
msgstr "Vilket språk föredrar du för att söka?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "SafeSearch"
@@ -695,112 +726,119 @@ msgstr "Tillåt alla"
msgid "Disable all"
msgstr "Inaktivera alla"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Sökmotorns namn"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Genväg"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Valt språk"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Tidsintervall"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Max tid"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Nyckelord"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Namn"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Beskrivning"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Exempel"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Kaknamn"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Värde"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -808,8 +846,8 @@ msgstr ""
"Dessa inställningar lagras i dina kakor, vilket gör att vi inte lagrar "
"data om dig."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -817,13 +855,13 @@ msgstr ""
"Dessa kakor tjänar din egen bekvämlighet, vi använder inte dessa kakor "
"för att spåra dig."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Sökadressen för de för nuvarande sparade inställningarna"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -831,18 +869,18 @@ msgstr ""
"Obs: Att ange anpassade inställningar i sökadressen kan minska sekretess "
"genom att läcka data till de klickade resultatwebbplatserna."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "spara"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "tillbaka"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Återställ standardvärden"
@@ -1215,7 +1253,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "För tillfället används sökmotorer"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Stöder valda språket"
@@ -1362,3 +1400,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/ta/LC_MESSAGES/messages.mo b/searx/translations/ta/LC_MESSAGES/messages.mo
index 216987087..9aac0907b 100644
--- a/searx/translations/ta/LC_MESSAGES/messages.mo
+++ b/searx/translations/ta/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/ta/LC_MESSAGES/messages.po b/searx/translations/ta/LC_MESSAGES/messages.po
index e91a37dce..d245727e2 100644
--- a/searx/translations/ta/LC_MESSAGES/messages.po
+++ b/searx/translations/ta/LC_MESSAGES/messages.po
@@ -11,183 +11,214 @@
# Prasanna Venkadesh <prasmailme@gmail.com>, 2019
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-31 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Tamil <https://weblate.bubu1.eu/projects/searxng/searxng/ta/>"
-"\n"
"Language: ta\n"
+"Language-Team: Tamil "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/ta/>\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 4.10.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "கோப்புகள்"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "பொதுத் தேடல்"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "இசை"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "சமூக தளங்கள்"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "படங்கள்"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "காணொளிகள்"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "அது"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "செய்திகள்"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "வரைப்படம்"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "வெங்காயம்"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "அறிவியல்"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr ""
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "ஆட்டோ"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "ஒளி"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "இருள்"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "நேரம் முடிந்தது"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "பாகுபடுத்தும் பிழை"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "HTTP நெறிமுறை பிழை"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "பிணைய பிழை"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "எதிர்பாராத விபத்து"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "HTTP பிழை"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "HTTP இணைப்பு பிழை"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "ப்ராக்ஸி பிழை"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "கேப்ட்சா"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "பல கோரிக்கைகள்"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "அணுகல் மறுக்கப்பட்டது"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "சேவையக API பிழை"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "எதுவும் கிடைக்கவில்லை"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "ஆதாரம்"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "ஏற்க முடியாத அமைப்பு,உங்கள் விருப்பத்தை தொகுக்கவும்"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "ஏற்கமுடியாத அமைப்பு"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "தேடல் பிழை"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} நிமிடங்களுக்கு முன்னால்"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} மணிநேரம், {minutes} நிமிடங்களுக்கு முன்னால்"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "இடைநிறுத்தப்பட்டது"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "சீரற்ற மதிப்பு உருவாக்கி"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "வெவ்வாறான சீரற்ற மதிப்புகளை உருவாக்கு"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "புள்ளியியல் செயல்பாடுகள்"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "வாதங்களின் {செயல்பாடுகளை} கணக்கிடவும்"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "திசைகளைப் பெறுங்கள்"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (காலாவதியானது)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "இந்த நுழைவு மாற்றப்பட்டது"
@@ -195,7 +226,7 @@ msgstr "இந்த நுழைவு மாற்றப்பட்டது"
msgid "No abstract is available for this publication."
msgstr "இந்த பிரசுரத்திற்கு சுருக்கம் இல்லை."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "சேனல்"
@@ -214,8 +245,8 @@ msgstr "ஹோஸ்ட்பெயர் மாற்றீடு"
#: searx/plugins/hostname_replace.py:10
msgid "Rewrite result hostnames or remove results based on the hostname"
msgstr ""
-"முடிவு ஹோஸ்ட்பெயர்களை மீண்டும் எழுதவும் அல்லது ஹோஸ்ட்பெயரின் அடிப்படையில் "
-"முடிவுகளை அகற்றவும்"
+"முடிவு ஹோஸ்ட்பெயர்களை மீண்டும் எழுதவும் அல்லது ஹோஸ்ட்பெயரின் அடிப்படையில்"
+" முடிவுகளை அகற்றவும்"
#: searx/plugins/infinite_scroll.py:3
msgid "Infinite scroll"
@@ -237,11 +268,11 @@ msgstr ""
"பணம் பறிக்கும் தளங்களை தவிர்த்து முடிந்த வரையில் open-access பதிப்புகளை "
"வழங்கும் தளங்களுக்கு செல்லவும்"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "தேர்ந்தெடுத்தப் பிரிவில் தேடுக"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -249,11 +280,11 @@ msgstr ""
"பிரிவு தேர்வு செய்யப்பட்டால் தேடல் உடனடியாகச் செயற்படுத்தும். பல "
"பிரிவுகளைத் தேர்வு செய்ய முடக்கவும். (ஜாவா ஸ்கிரிப்ட் தேவைப்படும்)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr "சுய தகவல்கள்"
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -261,11 +292,11 @@ msgstr ""
"\"ip\" என்று தேடினால் உங்கள் ip முகவரியையும், \"user agent\" என்று "
"தேடினால் உங்கள் user-agent-ம் காட்டப்படும்."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "உளவுப் பார்க்கும் வலைதள முகவரி நீக்கி"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr ""
"உங்களை உளவு பார்த்து பின்தொடர பயன்படும் எழுத்துக்களை வலைதள "
@@ -280,9 +311,9 @@ msgid ""
"Navigate search results with Vim-like hotkeys (JavaScript required). "
"Press \"h\" key on main or result page to get help."
msgstr ""
-"Vim போன்ற ஹாட்ஸ்கிகள் மூலம் தேடல் முடிவுகளை வழிசெலுத்தவும் (ஜாவாஸ்கிரிப்ட் "
-"தேவை). உதவியைப் பெற, பிரதான அல்லது முடிவுப் பக்கத்தில் \"h\" விசையை "
-"அழுத்தவும்."
+"Vim போன்ற ஹாட்ஸ்கிகள் மூலம் தேடல் முடிவுகளை வழிசெலுத்தவும் "
+"(ஜாவாஸ்கிரிப்ட் தேவை). உதவியைப் பெற, பிரதான அல்லது முடிவுப் பக்கத்தில் "
+"\"h\" விசையை அழுத்தவும்."
#: searx/templates/oscar/404.html:4 searx/templates/simple/404.html:4
msgid "Page not found"
@@ -319,35 +350,35 @@ msgstr "மூடு"
msgid "Error!"
msgstr "பிழை!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "மூலம் இயக்கப்படுகிறது"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "உங்கள் அகவுரிமையை மதிக்கும் மாற்றியமைக்ககூடிய ஒரு தேடல் எந்திரம்"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "மூல குறியீடு"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "பிரச்சினை டிராக்கர்"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "எந்திரத்தின் புள்ளி விவரங்கள்"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "பொது நிகழ்வுகள்"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr "நிகழ்வு பராமரிப்பாளரைத் தொடர்பு கொள்ளவும்"
@@ -384,11 +415,11 @@ msgid "proxied"
msgstr "ப்ராக்ஸி"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "அனுமதி"
@@ -489,13 +520,13 @@ msgid "Engines"
msgstr "எந்திரங்கள்"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr "சிறப்பு வினாக்கள்"
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "நினைவிகள்"
@@ -517,13 +548,13 @@ msgid "What language do you prefer for search?"
msgstr "தேடலுக்கு எந்த மொழியை விரும்புகிறீர்கள்?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "பாதுகாப்பன தேடல்"
@@ -571,8 +602,8 @@ msgid ""
"Redirect to open-access versions of publications when available (plugin "
"required)"
msgstr ""
-"கிடைக்கும் போது வெளியீடுகளின் திறந்த அணுகல் பதிப்புகளுக்குத் திருப்பிவிடவும் "
-"(சொருகி தேவை)"
+"கிடைக்கும் போது வெளியீடுகளின் திறந்த அணுகல் பதிப்புகளுக்குத் "
+"திருப்பிவிடவும் (சொருகி தேவை)"
#: searx/templates/oscar/preferences.html:183
#: searx/templates/simple/preferences.html:173
@@ -655,9 +686,9 @@ msgid ""
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr ""
-"படிவங்கள் எவ்வாறு சமர்ப்பிக்கப்படுகின்றன என்பதை மாற்றவும், <a href=\"http"
-"://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel="
-"\"external\">கோரிக்கை முறைகள் பற்றி மேலும் அறிக</a>"
+"படிவங்கள் எவ்வாறு சமர்ப்பிக்கப்படுகின்றன என்பதை மாற்றவும், <a "
+"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
+" rel=\"external\">கோரிக்கை முறைகள் பற்றி மேலும் அறிக</a>"
#: searx/templates/oscar/preferences.html:273
#: searx/templates/simple/preferences.html:249
@@ -694,8 +725,8 @@ msgid ""
"When enabled, the result page's title contains your query. Your browser "
"can record this title"
msgstr ""
-"இயக்கப்பட்டால், முடிவுப் பக்கத்தின் தலைப்பில் உங்கள் வினவல் இருக்கும். உங்கள்"
-" உலாவி இந்தத் தலைப்பைப் பதிவுசெய்ய முடியும்"
+"இயக்கப்பட்டால், முடிவுப் பக்கத்தின் தலைப்பில் உங்கள் வினவல் இருக்கும். "
+"உங்கள் உலாவி இந்தத் தலைப்பைப் பதிவுசெய்ய முடியும்"
#: searx/templates/oscar/preferences.html:315
msgid "Allow all"
@@ -705,123 +736,130 @@ msgstr "அனைத்தையும் அனுமதிக்கவும
msgid "Disable all"
msgstr "அனைத்தையும் முடக்கு"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "எந்திரத்தின் பெயர்"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "குறுக்குவழி"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "தேர்வு செய்யப்பட்ட மொழி"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "நேர வரம்பு"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr "பதில் நேரம்"
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "அதிகபட்ச நேரம்"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr "நம்பகத்தன்மை"
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr "வினவு"
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "குறிப்புச்சொற்கள்"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "பெயர்"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "விளக்கம்"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "எடுத்துக்காட்டுகள்"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr "இது SearXNG இன் உடனடி பதில் தொகுதிகளின் பட்டியல்."
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr "இது செருகுநிரல்களின் பட்டியல்."
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-"இது உங்கள் கணினியில் SearXNG சேமிக்கும் குக்கீகளின் பட்டியல் மற்றும் அவற்றின்"
-" மதிப்புகள்."
+"இது உங்கள் கணினியில் SearXNG சேமிக்கும் குக்கீகளின் பட்டியல் மற்றும் "
+"அவற்றின் மதிப்புகள்."
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr "அந்த பட்டியலின் மூலம், நீங்கள் SearXNG வெளிப்படைத்தன்மையை மதிப்பிடலாம்."
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "நினைவியின் பெயர்"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "மதிப்பு"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
msgstr ""
-"இந்த அமைப்புகள் உங்கள் குக்கீகளில் சேமிக்கப்பட்டுள்ளன, இது உங்களைப் பற்றிய "
-"இந்தத் தரவைச் சேமிக்காமல் இருக்க அனுமதிக்கிறது."
+"இந்த அமைப்புகள் உங்கள் குக்கீகளில் சேமிக்கப்பட்டுள்ளன, இது உங்களைப் "
+"பற்றிய இந்தத் தரவைச் சேமிக்காமல் இருக்க அனுமதிக்கிறது."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -829,13 +867,13 @@ msgstr ""
"இந்த நினைவிகள் உங்களின் வசதிக்காக மட்டுமே. இந்த நினைவிகள் உங்களை உளவு "
"பார்க்காது."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "தற்போது சேமிக்கப்பட்ட விருப்பத்தேர்வுகளில் வலைதள முகவரியைத் தேடு"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -843,18 +881,18 @@ msgstr ""
"குறிப்பு : தேடல் வலைதள முகவரியில் குறிப்பிட்ட விருப்ப அமைப்புகள், "
"கிடைத்தத் தளங்களை சொடுக்குவதன் மூலம் தரவுகள் கசிவதால் அகவுரிமை குறையும்."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "சேமி"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "பின்செல்"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "இயல்புநிலைக்குத் திருப்பவும்"
@@ -1229,7 +1267,7 @@ msgstr "உங்கள் உலாவி அமைப்புகளைப்
msgid "Currently used search engines"
msgstr "தற்போது பயன்படுத்திய தேடுபொறிகள்"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "தேர்ந்தெடுத்த மொழிக்கு ஆதரவு உள்ளது."
@@ -1372,3 +1410,4 @@ msgstr "இயந்திரம்"
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/te/LC_MESSAGES/messages.mo b/searx/translations/te/LC_MESSAGES/messages.mo
index 9edd954e4..3e5fc8ff3 100644
--- a/searx/translations/te/LC_MESSAGES/messages.mo
+++ b/searx/translations/te/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/te/LC_MESSAGES/messages.po b/searx/translations/te/LC_MESSAGES/messages.po
index 456523900..77fd6d48c 100644
--- a/searx/translations/te/LC_MESSAGES/messages.po
+++ b/searx/translations/te/LC_MESSAGES/messages.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2020-07-09 13:10+0000\n"
"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
"Language: te\n"
@@ -20,168 +20,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "ఫైళ్ళు"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "సాధారణ"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "సంగీతం"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "సోషల్ మీడియా"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "చిత్రాలు"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "వీడియోలు"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "ఐటి"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "వార్తలు"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "పటము"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "విజ్ఞానశాస్త్రం"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "ఏమీ దొరకలేదు"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr ""
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "చెల్లని అమరికలు"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "శోధనలో దోషము"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} నిమిషము(ల) క్రిందట"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr ""
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr ""
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr ""
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "సాంఖ్యకశాస్త్ర ప్రమేయాలు"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr ""
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr ""
@@ -189,7 +221,7 @@ msgstr ""
msgid "No abstract is available for this publication."
msgstr ""
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -227,31 +259,31 @@ msgid ""
"when available"
msgstr ""
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr ""
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
msgstr ""
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr ""
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr ""
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr ""
@@ -300,35 +332,35 @@ msgstr "మూసివేయు"
msgid "Error!"
msgstr "దోషం!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr ""
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr ""
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr ""
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -365,11 +397,11 @@ msgid "proxied"
msgstr ""
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "అనుమతించు"
@@ -470,13 +502,13 @@ msgid "Engines"
msgstr "యంత్రాలు"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "కుకీలు"
@@ -498,13 +530,13 @@ msgid "What language do you prefer for search?"
msgstr ""
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "సురక్షితశోధన"
@@ -679,148 +711,155 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "యంత్రం పేరు"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "సత్వరమార్గం"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "ఎంచుకున్న భాష"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "కాల శ్రేణి"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "గరిష్ఠ సమయం"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr ""
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "పేరు"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "వర్ణన"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "ఉదాహరణలు"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "కుకీ పేరు"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "విలువ"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
msgstr ""
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr ""
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr ""
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "దాచు"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "వెనక్కి"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "నిష్క్రియాలకు అమర్చు"
@@ -1191,7 +1230,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "ప్రస్తుతం ఉపయోగించబడుతున్న శోధన యంత్రాలు"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr ""
diff --git a/searx/translations/tr/LC_MESSAGES/messages.mo b/searx/translations/tr/LC_MESSAGES/messages.mo
index a88ddfe48..76d133ac0 100644
--- a/searx/translations/tr/LC_MESSAGES/messages.mo
+++ b/searx/translations/tr/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/tr/LC_MESSAGES/messages.po b/searx/translations/tr/LC_MESSAGES/messages.po
index 3718bc4ca..a87c90231 100644
--- a/searx/translations/tr/LC_MESSAGES/messages.po
+++ b/searx/translations/tr/LC_MESSAGES/messages.po
@@ -9,183 +9,214 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-17 07:17+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
-"Language-Team: Turkish <https://weblate.bubu1.eu/projects/searxng/searxng/tr/"
-">\n"
"Language: tr\n"
+"Language-Team: Turkish "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/tr/>\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 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "dosyalar"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "genel"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "müzik"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "sosyal medya"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "görseller"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "görüntüler"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "bilişim"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "haberler"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "harita"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "bilim"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "HTTP protokol hatası"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "HTTP hatası"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "HTTP bağlantı hatası"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Bulunan öğe yok"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "Kaynak"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Geçersiz ayarlar, lütfen tercihlerinizi düzenleyin"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Geçersiz ayarlar"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "arama hatası"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} dakika önce"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} saat, {minutes} dakika önce"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Rastgele değer üreteci"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Farklı rastgele değerler üret"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "İstatistik işlevleri"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Bağımsız değişkenlerin {functions} değerini hesapla"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "Yönleri al"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (ESKİ)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Bu girişin yerini alan"
@@ -193,7 +224,7 @@ msgstr "Bu girişin yerini alan"
msgid "No abstract is available for this publication."
msgstr "Bu yayın için özet mevcut değil."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -235,11 +266,11 @@ msgstr ""
"Mevcut olduğunda yayınların açık erişim sürümlerine yeniden yönlendirerek"
" ödeme ekranlarını önle"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Kategori seçimine göre ara"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -247,11 +278,11 @@ msgstr ""
"Bir kategori seçilirse hemen arama yap. Birden çok kategori seçmeyi "
"etkisizleştir. (JavaScript gerekli)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -259,11 +290,11 @@ msgstr ""
"Sorgu \"ip\" ise IP'nizi ve sorgu \"kullanıcı tanıtıcısı\" içeriyorsa "
"kullanıcı tanıtıcınızı görüntüler."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "İzleyici URL'si kaldırıcısı"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "İzleyici bağımsız değişkenlerini döndürülen URL'den kaldır"
@@ -315,35 +346,35 @@ msgstr "Kapat"
msgid "Error!"
msgstr "Hata!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Destekleyen"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "gizliliğe saygılı, kurcalanabilir bir meta arama motoru"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "Kaynak kodu"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "Sorun izleyici"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Motor istatistikleri"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "Herkese açık örnekler"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -380,11 +411,11 @@ msgid "proxied"
msgstr "vekaleten"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "İzin ver"
@@ -485,13 +516,13 @@ msgid "Engines"
msgstr "Motorlar"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Tanımlama Bilgileri"
@@ -513,13 +544,13 @@ msgid "What language do you prefer for search?"
msgstr "Arama için hangi dili tercih edersiniz?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Güvenli Arama"
@@ -699,112 +730,119 @@ msgstr "Tümüne izin ver"
msgid "Disable all"
msgstr "Tümünü etkisizleştir"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Motor adı"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Kısayol"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Seçilen dil"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Zaman aralığı"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "En fazla zaman"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Anahtar kelimeler"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Ad"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Açıklama"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Örnekler"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Tanımlama bilgisi adı"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Değer"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -812,8 +850,8 @@ msgstr ""
"Bu ayarlar tanımlama bilgilerinde saklanır, bu sizin hakkınızda bu "
"verileri saklamamamıza izin verir."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -821,13 +859,13 @@ msgstr ""
"Bu tanımlama bilgileri size kolaylık sağlar, sizi izlemek için bu "
"çerezleri kullanmayız."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "Şu anda kaydedilmiş tercihlerin arama URL'si"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -835,18 +873,18 @@ msgstr ""
"Not: Arama URL'sinde özel ayarların belirtilmesi, tıklanan sonuç "
"sitelerine veri sızdırarak gizliliği azaltabilir."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "kaydet"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "geri"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Varsayılanları sıfırla"
@@ -1219,7 +1257,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Şu anda kullanılan arama motorları"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Seçili dili destekler"
@@ -1365,3 +1403,4 @@ msgstr ""
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/uk/LC_MESSAGES/messages.mo b/searx/translations/uk/LC_MESSAGES/messages.mo
index c6d761a07..cc42f7d4d 100644
--- a/searx/translations/uk/LC_MESSAGES/messages.mo
+++ b/searx/translations/uk/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/uk/LC_MESSAGES/messages.po b/searx/translations/uk/LC_MESSAGES/messages.po
index 34465f5a6..d7c2c9162 100644
--- a/searx/translations/uk/LC_MESSAGES/messages.po
+++ b/searx/translations/uk/LC_MESSAGES/messages.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2020-07-09 13:10+0000\n"
"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
"Language: uk\n"
@@ -24,168 +24,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "файли"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "загальні"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "музика"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "соцмережі"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "зображення"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "відео"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "IT"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "новини"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "карти"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "наука"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr ""
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Невірні налаштування, будь ласка, зробіть зміни в налаштуваннях"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr ""
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "помилка пошуку"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} хвилин тому"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} годин, {minutes} хвилин тому"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Генератор випадкових значень"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Створити різні випадкові значення"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Функції статистики"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Розрахувати {functions} аргументів"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Цей запис був змінений"
@@ -193,7 +225,7 @@ msgstr "Цей запис був змінений"
msgid "No abstract is available for this publication."
msgstr ""
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -235,11 +267,11 @@ msgstr ""
"Уникайте платіжних каналів шляхом переадресації на версії публікацій з "
"відкритим доступом, коли це можливо"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Пошук по обраній категорії"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -247,11 +279,11 @@ msgstr ""
"Виконувати пошук зразу при обранні категорії. Вимкнути вибір декількох "
"категорій. (Необхідний JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
@@ -259,11 +291,11 @@ msgstr ""
"Відображає IP-адресу при запиті \"ip\" та ваш user-agent при запиті "
"\"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Видалення URL-адреси трекера"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Вилучіть аргументи трекера з поверненої URL-адреси"
@@ -315,35 +347,35 @@ msgstr "Закрити"
msgid "Error!"
msgstr "Помилка!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Використовується"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "вільна система метапошуку, яка поважає вашу приватність"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Статистика пошукової системи"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -380,11 +412,11 @@ msgid "proxied"
msgstr "проксовано"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Дозволити"
@@ -485,13 +517,13 @@ msgid "Engines"
msgstr "Пошукові системи"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookie-файли"
@@ -513,13 +545,13 @@ msgid "What language do you prefer for search?"
msgstr "Якій мові ви віддаєте перевагу для пошуку?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "БезпечнийПошук"
@@ -697,112 +729,119 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Назва пошукової системи"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Гарячі клавіші"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr ""
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Часовий діапазон"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Максимальний час"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Ключові слова"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Назва"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Опис"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Приклади"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Ім'я cookie"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Значення"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -810,8 +849,8 @@ msgstr ""
"Налаштування зберігаються в ваших cookie-файлах, що дає нам змогу не "
"зберігати ці відомості про вас."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -819,30 +858,30 @@ msgstr ""
"Ці cookie-файли необхідні винятково для вашої зручності, ми не "
"використовуємо ці cookie-файли, щоб відслідковувати вас."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr ""
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr ""
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "зберегти"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "назад"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Відновити стандартні налаштування"
@@ -1215,7 +1254,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Пошукові системи, які використовуються"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Підтримка обраної мови"
diff --git a/searx/translations/vi/LC_MESSAGES/messages.mo b/searx/translations/vi/LC_MESSAGES/messages.mo
index b1fc98241..3d91ef0de 100644
--- a/searx/translations/vi/LC_MESSAGES/messages.mo
+++ b/searx/translations/vi/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/vi/LC_MESSAGES/messages.po b/searx/translations/vi/LC_MESSAGES/messages.po
index 79b210033..9183147e8 100644
--- a/searx/translations/vi/LC_MESSAGES/messages.po
+++ b/searx/translations/vi/LC_MESSAGES/messages.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2020-07-09 13:10+0000\n"
"Last-Translator: dd721411 <dd721411@gmail.com>\n"
"Language: vi\n"
@@ -20,168 +20,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "các tập tin"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "tổng quát"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "âm nhạc"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "mạng xã hội"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "hình ảnh"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "phim"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "CNTT"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "tin tức"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "bản đồ"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "khoa học"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "Không tìm thấy gì"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "Cài đặt không hợp lệ, xin xem lại tuỳ chỉnh"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "Cài đặt không hợp lệ"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "lỗi tìm kiếm"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} phút() trước"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} giờ(), {minutes} phút() trước"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "Trình tạo giá trị ngẫu nhiên"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "Tạo các giá trị ngẫu nhiên khác nhau"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "Các hàm thống kê"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "Tính toán {functions} của các đối số"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr ""
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr ""
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "Mục này đã được thay thế bởi"
@@ -189,7 +221,7 @@ msgstr "Mục này đã được thay thế bởi"
msgid "No abstract is available for this publication."
msgstr "Không có bản tóm tắt nào cho ấn phẩm này."
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -229,11 +261,11 @@ msgstr ""
"Tránh việc trả phí bằng cách chuyển hướng đến các phiên bản truy cập miễn"
" phí của ấn phẩm khi có thể"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "Tìm kiếm khi chọn danh mục đơn"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
@@ -241,21 +273,21 @@ msgstr ""
"Thực thi tìm kiếm ngay khi chọn một danh mục. Tắt đi để chọn nhiều danh "
"mục. (yêu cầu JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr "Hiện IP của bạn khi gõ \"ip\" và hiện user agent khi gõ \"user agent\"."
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "Trình loại bỏ URL theo dõi"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "Loại bỏ các đối số theo dõi từ URL trả về"
@@ -307,35 +339,35 @@ msgstr "Đóng"
msgid "Error!"
msgstr "Lỗi!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "Được cung cấp bởi"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "một trình tìm kiếm đa nguồn, dễ tuỳ biến và tôn trọng quyền riêng tư"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr ""
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr ""
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "Các thông số về trình tìm kiếm"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr ""
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -372,11 +404,11 @@ msgid "proxied"
msgstr "đã proxy"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "Cho phép"
@@ -477,13 +509,13 @@ msgid "Engines"
msgstr "Các trình tìm kiếm"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Các cookie"
@@ -505,13 +537,13 @@ msgid "What language do you prefer for search?"
msgstr "Bạn muốn tìm kiếm bằng ngôn ngữ nào?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "Tìm Kiếm An Toàn"
@@ -691,112 +723,119 @@ msgstr ""
msgid "Disable all"
msgstr ""
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "Tên trình tìm kiếm"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "Lối tắt"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "Ngôn ngữ được chọn"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "Khoảng thời gian"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "Thời gian tối đa"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "Các từ khoá"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "Tên"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "Mô tả"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "Các ví dụ"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Tên cookie"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "Giá trị"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
@@ -804,8 +843,8 @@ msgstr ""
"Những cài đặt này được lưu trữ trong các cookie, điều này cho phép chúng "
"tôi không phải lưu các dữ liệu về bạn."
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
@@ -813,13 +852,13 @@ msgstr ""
"Những cookie này chỉ phục vụ cho chính bạn, chúng tôi không sử dụng chúng"
" để theo dõi bạn."
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "URL tìm kiếm của tuỳ chỉnh được lưu hiện tại"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
@@ -828,18 +867,18 @@ msgstr ""
"giảm mức độ riêng tư vì nó chuyển dữ liệu đến các trang kết quả được nhấp"
" chọn."
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "lưu"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "trở về"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "Đưa về mặc định"
@@ -1212,7 +1251,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "Các trình tìm kiếm đang được dùng"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "Có hỗ trợ ngôn ngữ được chọn"
diff --git a/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.mo b/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.mo
index 3aafc6271..1721cba04 100644
--- a/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.mo
+++ b/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.po
index c08090c81..ac69e583a 100644
--- a/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.po
+++ b/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.po
@@ -13,183 +13,214 @@
# WhiredPlanck <fungdaat31@outlook.com>, 2020
msgid ""
msgstr ""
-"Project-Id-Version: searx\n"
+"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2021-12-23 08:13+0000\n"
"Last-Translator: YFdyh000 <yfdyh000@gmail.com>\n"
-"Language-Team: Chinese (Simplified) <https://weblate.bubu1.eu/projects/"
-"searxng/searxng/zh_Hans/>\n"
"Language: zh_Hans_CN\n"
+"Language-Team: Chinese (Simplified) "
+"<https://weblate.bubu1.eu/projects/searxng/searxng/zh_Hans/>\n"
+"Plural-Forms: nplurals=1; plural=0\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.8.1\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "文件"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "常规"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "音乐"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "社交媒体"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "图像"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "视频"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "信息技术"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "新闻"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "地图"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr "洋葱路由"
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "学术"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
+msgid "dictionaries"
+msgstr ""
+
+#: searx/webapp.py:179
+msgid "lyrics"
+msgstr ""
+
+#: searx/webapp.py:180
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
+msgstr ""
+
+#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
msgid "auto"
msgstr "自动"
-#: searx/webapp.py:179
+#: searx/webapp.py:189
msgid "light"
msgstr "明亮"
-#: searx/webapp.py:180
+#: searx/webapp.py:189
msgid "dark"
msgstr "黑暗"
-#: searx/webapp.py:184
+#: searx/webapp.py:192
msgid "timeout"
msgstr "等待时间"
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr "解析错误"
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr "HTTP 协议错误"
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr "网络错误"
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr "意外崩溃"
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr "HTTP 错误"
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr "HTTP 连接错误"
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr "代理错误"
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr "验证码"
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr "太多请求"
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr "拒绝访问"
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr "服务器 API 错误"
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "没有找到结果"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr "来源"
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "无效设置,请编辑您的首选项"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "无效设置"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "搜索错误"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} 分钟前"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} 小时 {minutes} 分钟前"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr "暂停服务"
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "随机数生成器"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "生成不同的随机数"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "统计功能"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "计算 {functions} 参数"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "获取路线"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (已过时)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "此项已被它取代:"
@@ -197,7 +228,7 @@ msgstr "此项已被它取代:"
msgid "No abstract is available for this publication."
msgstr "此出版物没有可用的摘要。"
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr "频道"
@@ -235,31 +266,31 @@ msgid ""
"when available"
msgstr "可能时重定向到开放访问的出版版本以免被要求付费"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "搜索特定类别"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
msgstr "选择一个类别后立即开始搜索。禁用后可以一次选中多个类别。(需启用 JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr "自身信息"
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr "当您搜索「ip」时,这将会显示您的 IP 地址;同理,在搜索「user agent」时,将会显示您的 User Agent。"
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "移除跟踪链接"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "去除返回的链接中的跟踪参数"
@@ -308,35 +339,35 @@ msgstr "关闭"
msgid "Error!"
msgstr "错误!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "功能来自"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "一个尊重隐私、可二次开发的元搜索引擎"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "源代码"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "问题跟踪系统"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "搜索引擎统计"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "公共站点"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr "联系站点维护人员"
@@ -373,11 +404,11 @@ msgid "proxied"
msgstr "代理"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "允许"
@@ -478,13 +509,13 @@ msgid "Engines"
msgstr "搜索引擎"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr "特殊查询"
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookies"
@@ -506,13 +537,13 @@ msgid "What language do you prefer for search?"
msgstr "您偏好搜索哪种语言?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "安全搜索"
@@ -689,148 +720,155 @@ msgstr "全部允许"
msgid "Disable all"
msgstr "全部禁用"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "引擎名称"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "快捷键"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "选择语言"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "时间范围"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr "相应用时"
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "最大用时"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr "可靠性"
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr "查询"
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "关键词"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "名称"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "描述"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "示例"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr "这是 SearXNG 的即时回答模块的列表。"
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr "这是插件列表。"
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr "这是 SearXNG 在您的计算机上存储的 Cookie 的列表及相应的值。"
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr "您可以凭此列表评估 SearXNG 的透明度。"
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Cookie 名称"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "值"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
msgstr "这些设置被存储在您的 Cookie 中,这种保存设置的方式使我们不必保存您的设置数据。"
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr "这些 Cookie 信息用于辅助您便捷地使用本服务,我们绝不利用这些信息来跟踪您。"
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "用当前已保存的选项进行搜索的网址"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr "注意:通过搜索网址保存自定义设置有可能将某些数据暴露给被点击的搜索结果的网站,不利于隐私。"
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "保存"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "返回"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "恢复默认"
@@ -1201,7 +1239,7 @@ msgstr "选择自动则取决于您的浏览器设置"
msgid "Currently used search engines"
msgstr "目前使用的搜索引擎"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "支持选定的语言"
@@ -1341,3 +1379,4 @@ msgstr "引擎"
#~ " contains your query. Your browser "
#~ "can record this title."
#~ msgstr ""
+
diff --git a/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo b/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo
index c905e993d..d6004c3a3 100644
--- a/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo
+++ b/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.po b/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.po
index 495eb37f2..0e0ab183c 100644
--- a/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.po
+++ b/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-24 19:24+0000\n"
+"POT-Creation-Date: 2022-01-06 08:25+0000\n"
"PO-Revision-Date: 2020-07-10 02:51+0000\n"
"Last-Translator: 黃柏諺 <s8321414@gmail.com>\n"
"Language: zh_TW\n"
@@ -24,168 +24,200 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
-#: searx/webapp.py:164
+#: searx/webapp.py:165
msgid "files"
msgstr "檔案"
-#: searx/webapp.py:165
+#: searx/webapp.py:166
msgid "general"
msgstr "一般"
-#: searx/webapp.py:166
+#: searx/webapp.py:167
msgid "music"
msgstr "音樂"
-#: searx/webapp.py:167
+#: searx/webapp.py:168
msgid "social media"
msgstr "社群媒體"
-#: searx/webapp.py:168
+#: searx/webapp.py:169
msgid "images"
msgstr "圖片"
-#: searx/webapp.py:169
+#: searx/webapp.py:170
msgid "videos"
msgstr "影片"
-#: searx/webapp.py:170
+#: searx/webapp.py:171
msgid "it"
msgstr "IT"
-#: searx/webapp.py:171
+#: searx/webapp.py:172
msgid "news"
msgstr "新聞"
-#: searx/webapp.py:172
+#: searx/webapp.py:173
msgid "map"
msgstr "地圖"
-#: searx/webapp.py:173
+#: searx/webapp.py:174
msgid "onions"
msgstr ""
-#: searx/webapp.py:174
+#: searx/webapp.py:175
msgid "science"
msgstr "科學"
+#: searx/webapp.py:177
+msgid "apps"
+msgstr ""
+
#: searx/webapp.py:178
-msgid "auto"
+msgid "dictionaries"
msgstr ""
#: searx/webapp.py:179
-msgid "light"
+msgid "lyrics"
msgstr ""
#: searx/webapp.py:180
-msgid "dark"
+msgid "packages"
+msgstr ""
+
+#: searx/webapp.py:181
+msgid "q&a"
+msgstr ""
+
+#: searx/webapp.py:182
+msgid "repos"
+msgstr ""
+
+#: searx/webapp.py:183
+msgid "software wikis"
msgstr ""
#: searx/webapp.py:184
+msgid "web"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "auto"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "light"
+msgstr ""
+
+#: searx/webapp.py:189
+msgid "dark"
+msgstr ""
+
+#: searx/webapp.py:192
msgid "timeout"
msgstr ""
-#: searx/webapp.py:185
+#: searx/webapp.py:193
msgid "parsing error"
msgstr ""
-#: searx/webapp.py:186
+#: searx/webapp.py:194
msgid "HTTP protocol error"
msgstr ""
-#: searx/webapp.py:187
+#: searx/webapp.py:195
msgid "network error"
msgstr ""
-#: searx/webapp.py:189
+#: searx/webapp.py:197
msgid "unexpected crash"
msgstr ""
-#: searx/webapp.py:196
+#: searx/webapp.py:204
msgid "HTTP error"
msgstr ""
-#: searx/webapp.py:197
+#: searx/webapp.py:205
msgid "HTTP connection error"
msgstr ""
-#: searx/webapp.py:203
+#: searx/webapp.py:211
msgid "proxy error"
msgstr ""
-#: searx/webapp.py:204
+#: searx/webapp.py:212
msgid "CAPTCHA"
msgstr ""
-#: searx/webapp.py:205
+#: searx/webapp.py:213
msgid "too many requests"
msgstr ""
-#: searx/webapp.py:206
+#: searx/webapp.py:214
msgid "access denied"
msgstr ""
-#: searx/webapp.py:207
+#: searx/webapp.py:215
msgid "server API error"
msgstr ""
-#: searx/webapp.py:399
+#: searx/webapp.py:402
msgid "No item found"
msgstr "找不到項目"
-#: searx/engines/qwant.py:198
-#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401
+#: searx/engines/qwant.py:212
+#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:404
msgid "Source"
msgstr ""
-#: searx/webapp.py:523 searx/webapp.py:935
+#: searx/webapp.py:515 searx/webapp.py:925
msgid "Invalid settings, please edit your preferences"
msgstr "無效的設定,請編輯您的偏好設定"
-#: searx/webapp.py:539
+#: searx/webapp.py:531
msgid "Invalid settings"
msgstr "無效的設定"
-#: searx/webapp.py:617 searx/webapp.py:688
+#: searx/webapp.py:608 searx/webapp.py:683
msgid "search error"
msgstr "搜尋錯誤"
-#: searx/webapp.py:731
+#: searx/webapp.py:726
msgid "{minutes} minute(s) ago"
msgstr "{minutes} 分鐘前"
-#: searx/webapp.py:733
+#: searx/webapp.py:728
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} 小時 {minutes} 分鐘前"
-#: searx/webapp.py:856
+#: searx/webapp.py:846
msgid "Suspended"
msgstr ""
-#: searx/answerers/random/answerer.py:65
+#: searx/answerers/random/answerer.py:67
msgid "Random value generator"
msgstr "隨機數值產生器"
-#: searx/answerers/random/answerer.py:66
+#: searx/answerers/random/answerer.py:68
msgid "Generate different random values"
msgstr "生成不同的隨機數值"
-#: searx/answerers/statistics/answerer.py:50
+#: searx/answerers/statistics/answerer.py:47
msgid "Statistics functions"
msgstr "統計功能"
-#: searx/answerers/statistics/answerer.py:51
+#: searx/answerers/statistics/answerer.py:48
msgid "Compute {functions} of the arguments"
msgstr "計算 {functions} 參數"
-#: searx/engines/openstreetmap.py:155
+#: searx/engines/openstreetmap.py:156
msgid "Get directions"
msgstr "取得路線"
-#: searx/engines/pdbe.py:90
+#: searx/engines/pdbe.py:96
msgid "{title} (OBSOLETE)"
msgstr "{title} (已過時)"
-#: searx/engines/pdbe.py:97
+#: searx/engines/pdbe.py:103
msgid "This entry has been superseded by"
msgstr "此條目已被取代"
@@ -193,7 +225,7 @@ msgstr "此條目已被取代"
msgid "No abstract is available for this publication."
msgstr "此出版品無可用摘要。"
-#: searx/engines/qwant.py:200
+#: searx/engines/qwant.py:214
msgid "Channel"
msgstr ""
@@ -231,31 +263,31 @@ msgid ""
"when available"
msgstr "盡可能重新導向至出版品的開放存取版本,來避免付費牆"
-#: searx/plugins/search_on_category_select.py:18
+#: searx/plugins/search_on_category_select.py:19
msgid "Search on category select"
msgstr "類別選取搜尋"
-#: searx/plugins/search_on_category_select.py:19
+#: searx/plugins/search_on_category_select.py:20
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
msgstr "若分類被選取時立刻執行搜尋。停用以選取多個分類。(需要 JavaScript)"
-#: searx/plugins/self_info.py:19
+#: searx/plugins/self_info.py:20
msgid "Self Informations"
msgstr ""
-#: searx/plugins/self_info.py:20
+#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr "若搜尋字串爲「ip」則顯示您的 IP,而若是「user agent」則顯示您的使用者代理字串。"
-#: searx/plugins/tracker_url_remover.py:27
+#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
msgstr "追蹤器 URL 移除器"
-#: searx/plugins/tracker_url_remover.py:28
+#: searx/plugins/tracker_url_remover.py:30
msgid "Remove trackers arguments from the returned URL"
msgstr "從傳回的 URL 中移除追蹤器參數"
@@ -304,35 +336,35 @@ msgstr "關閉"
msgid "Error!"
msgstr "錯誤!"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "Powered by"
msgstr "技術支援"
-#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54
+#: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:55
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "一個尊重隱私,可再開發的集合式搜尋引擎"
-#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55
+#: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:56
msgid "Source code"
msgstr "原始碼"
-#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:56
+#: searx/templates/oscar/base.html:87 searx/templates/simple/base.html:57
msgid "Issue tracker"
msgstr "議題追蹤程式"
#: searx/templates/oscar/base.html:88 searx/templates/oscar/stats.html:18
-#: searx/templates/simple/base.html:57 searx/templates/simple/stats.html:21
+#: searx/templates/simple/base.html:58 searx/templates/simple/stats.html:21
msgid "Engine stats"
msgstr "引擎統計"
#: searx/templates/oscar/base.html:89
#: searx/templates/oscar/messages/no_results.html:13
-#: searx/templates/simple/base.html:58
+#: searx/templates/simple/base.html:59
#: searx/templates/simple/messages/no_results.html:15
msgid "Public instances"
msgstr "公開站臺"
-#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:59
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:60
msgid "Contact instance maintainer"
msgstr ""
@@ -369,11 +401,11 @@ msgid "proxied"
msgstr "已代理"
#: searx/templates/oscar/macros.html:133
-#: searx/templates/oscar/preferences.html:330
-#: searx/templates/oscar/preferences.html:348
-#: searx/templates/oscar/preferences.html:402
-#: searx/templates/simple/preferences.html:282
-#: searx/templates/simple/preferences.html:320
+#: searx/templates/oscar/preferences.html:333
+#: searx/templates/oscar/preferences.html:351
+#: searx/templates/oscar/preferences.html:414
+#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:334
msgid "Allow"
msgstr "允許"
@@ -474,13 +506,13 @@ msgid "Engines"
msgstr "引擎"
#: searx/templates/oscar/preferences.html:105
-#: searx/templates/simple/preferences.html:315
+#: searx/templates/simple/preferences.html:329
msgid "Special Queries"
msgstr ""
#: searx/templates/oscar/preferences.html:106
-#: searx/templates/oscar/preferences.html:442
-#: searx/templates/simple/preferences.html:355
+#: searx/templates/oscar/preferences.html:454
+#: searx/templates/simple/preferences.html:369
msgid "Cookies"
msgstr "Cookies"
@@ -502,13 +534,13 @@ msgid "What language do you prefer for search?"
msgstr "您偏好用哪種語言搜尋?"
#: searx/templates/oscar/preferences.html:141
-#: searx/templates/oscar/preferences.html:334
-#: searx/templates/oscar/preferences.html:344
+#: searx/templates/oscar/preferences.html:337
+#: searx/templates/oscar/preferences.html:347
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:145
-#: searx/templates/simple/preferences.html:286
+#: searx/templates/simple/preferences.html:289
msgid "SafeSearch"
msgstr "安全搜尋"
@@ -685,148 +717,155 @@ msgstr "允許全部"
msgid "Disable all"
msgstr "停用全部"
-#: searx/templates/oscar/preferences.html:331
-#: searx/templates/oscar/preferences.html:347
+#: searx/templates/oscar/preferences.html:325
+#: searx/templates/simple/preferences.html:280
+msgid ""
+"This tab does not show up for search results but you can search the "
+"engines listed here via bangs."
+msgstr ""
+
+#: searx/templates/oscar/preferences.html:334
+#: searx/templates/oscar/preferences.html:350
#: searx/templates/oscar/stats.html:29
-#: searx/templates/simple/preferences.html:283
+#: searx/templates/simple/preferences.html:286
#: searx/templates/simple/stats.html:28
msgid "Engine name"
msgstr "引擎名稱"
-#: searx/templates/oscar/preferences.html:332
-#: searx/templates/oscar/preferences.html:346
-#: searx/templates/simple/preferences.html:284
+#: searx/templates/oscar/preferences.html:335
+#: searx/templates/oscar/preferences.html:349
+#: searx/templates/simple/preferences.html:287
msgid "Shortcut"
msgstr "快捷鍵"
-#: searx/templates/oscar/preferences.html:333
-#: searx/templates/oscar/preferences.html:345
+#: searx/templates/oscar/preferences.html:336
+#: searx/templates/oscar/preferences.html:348
msgid "Selected language"
msgstr "已選取的語言"
-#: searx/templates/oscar/preferences.html:335
-#: searx/templates/oscar/preferences.html:343
+#: searx/templates/oscar/preferences.html:338
+#: searx/templates/oscar/preferences.html:346
#: searx/templates/oscar/time-range.html:2
-#: searx/templates/simple/preferences.html:287
+#: searx/templates/simple/preferences.html:290
msgid "Time range"
msgstr "時間範圍"
-#: searx/templates/oscar/preferences.html:336
-#: searx/templates/oscar/preferences.html:342
+#: searx/templates/oscar/preferences.html:339
+#: searx/templates/oscar/preferences.html:345
#: searx/templates/oscar/stats.html:32
-#: searx/templates/simple/preferences.html:288
+#: searx/templates/simple/preferences.html:291
#: searx/templates/simple/stats.html:31
msgid "Response time"
msgstr ""
-#: searx/templates/oscar/preferences.html:337
-#: searx/templates/oscar/preferences.html:341
-#: searx/templates/simple/preferences.html:289
+#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:344
+#: searx/templates/simple/preferences.html:292
msgid "Max time"
msgstr "最大時間"
-#: searx/templates/oscar/preferences.html:338
-#: searx/templates/oscar/preferences.html:340
+#: searx/templates/oscar/preferences.html:341
+#: searx/templates/oscar/preferences.html:343
#: searx/templates/oscar/stats.html:33
-#: searx/templates/simple/preferences.html:290
+#: searx/templates/simple/preferences.html:293
#: searx/templates/simple/stats.html:32
msgid "Reliability"
msgstr ""
-#: searx/templates/oscar/preferences.html:396
+#: searx/templates/oscar/preferences.html:408
msgid "Query"
msgstr ""
-#: searx/templates/oscar/preferences.html:403
-#: searx/templates/simple/preferences.html:321
+#: searx/templates/oscar/preferences.html:415
+#: searx/templates/simple/preferences.html:335
msgid "Keywords"
msgstr "關鍵字"
-#: searx/templates/oscar/preferences.html:404
-#: searx/templates/simple/preferences.html:322
+#: searx/templates/oscar/preferences.html:416
+#: searx/templates/simple/preferences.html:336
msgid "Name"
msgstr "名稱"
-#: searx/templates/oscar/preferences.html:405
-#: searx/templates/simple/preferences.html:323
+#: searx/templates/oscar/preferences.html:417
+#: searx/templates/simple/preferences.html:337
msgid "Description"
msgstr "描述"
-#: searx/templates/oscar/preferences.html:406
-#: searx/templates/simple/preferences.html:324
+#: searx/templates/oscar/preferences.html:418
+#: searx/templates/simple/preferences.html:338
msgid "Examples"
msgstr "範例"
-#: searx/templates/oscar/preferences.html:411
-#: searx/templates/simple/preferences.html:327
+#: searx/templates/oscar/preferences.html:423
+#: searx/templates/simple/preferences.html:341
msgid "This is the list of SearXNG's instant answering modules."
msgstr ""
-#: searx/templates/oscar/preferences.html:424
-#: searx/templates/simple/preferences.html:338
+#: searx/templates/oscar/preferences.html:436
+#: searx/templates/simple/preferences.html:352
msgid "This is the list of plugins."
msgstr ""
-#: searx/templates/oscar/preferences.html:445
-#: searx/templates/simple/preferences.html:357
+#: searx/templates/oscar/preferences.html:457
+#: searx/templates/simple/preferences.html:371
msgid ""
"This is the list of cookies and their values SearXNG is storing on your "
"computer."
msgstr ""
-#: searx/templates/oscar/preferences.html:446
-#: searx/templates/simple/preferences.html:358
+#: searx/templates/oscar/preferences.html:458
+#: searx/templates/simple/preferences.html:372
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
-#: searx/templates/oscar/preferences.html:451
-#: searx/templates/simple/preferences.html:363
+#: searx/templates/oscar/preferences.html:463
+#: searx/templates/simple/preferences.html:377
msgid "Cookie name"
msgstr "Cookie 名稱"
-#: searx/templates/oscar/preferences.html:452
-#: searx/templates/simple/preferences.html:364
+#: searx/templates/oscar/preferences.html:464
+#: searx/templates/simple/preferences.html:378
msgid "Value"
msgstr "值"
-#: searx/templates/oscar/preferences.html:469
-#: searx/templates/simple/preferences.html:385
+#: searx/templates/oscar/preferences.html:481
+#: searx/templates/simple/preferences.html:399
msgid ""
"These settings are stored in your cookies, this allows us not to store "
"this data about you."
msgstr "這些設定只會儲存在您的 cookies 中,這樣我們無需也不會存儲關於您的資訊。"
-#: searx/templates/oscar/preferences.html:470
-#: searx/templates/simple/preferences.html:387
+#: searx/templates/oscar/preferences.html:482
+#: searx/templates/simple/preferences.html:401
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr "這些 cookies 僅做為提供您方便之用,我們不會使用這些 cookies 來追蹤您。"
-#: searx/templates/oscar/preferences.html:474
-#: searx/templates/simple/preferences.html:376
+#: searx/templates/oscar/preferences.html:486
+#: searx/templates/simple/preferences.html:390
msgid "Search URL of the currently saved preferences"
msgstr "目前偏好設定的搜尋 URL"
-#: searx/templates/oscar/preferences.html:475
-#: searx/templates/simple/preferences.html:380
+#: searx/templates/oscar/preferences.html:487
+#: searx/templates/simple/preferences.html:394
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
msgstr "注意:在搜尋 URL 中指定自訂的設定可能會降低隱私,因為會洩漏資料給點選的結果頁面。"
-#: searx/templates/oscar/preferences.html:480
-#: searx/templates/simple/preferences.html:390
+#: searx/templates/oscar/preferences.html:492
+#: searx/templates/simple/preferences.html:404
msgid "save"
msgstr "儲存"
-#: searx/templates/oscar/preferences.html:481
-#: searx/templates/simple/preferences.html:392
+#: searx/templates/oscar/preferences.html:493
+#: searx/templates/simple/preferences.html:406
msgid "back"
msgstr "返回"
-#: searx/templates/oscar/preferences.html:482
-#: searx/templates/simple/preferences.html:391
+#: searx/templates/oscar/preferences.html:494
+#: searx/templates/simple/preferences.html:405
msgid "Reset defaults"
msgstr "重設為預設值"
@@ -1197,7 +1236,7 @@ msgstr ""
msgid "Currently used search engines"
msgstr "目前使用的搜尋引擎"
-#: searx/templates/simple/preferences.html:285
+#: searx/templates/simple/preferences.html:288
msgid "Supports selected language"
msgstr "支援選定的語言"
diff --git a/searx/webadapter.py b/searx/webadapter.py
index 4fd18cee9..185cb568e 100644
--- a/searx/webadapter.py
+++ b/searx/webadapter.py
@@ -236,7 +236,7 @@ def get_search_query_from_webapp(
external_bang = raw_text_query.external_bang
engine_data = parse_engine_data(form)
- if not is_locked('categories') and raw_text_query.enginerefs and raw_text_query.specific:
+ if not is_locked('categories') and raw_text_query.specific:
# if engines are calculated from query,
# set categories by using that informations
query_engineref_list = raw_text_query.enginerefs
diff --git a/searx/webapp.py b/searx/webapp.py
index a2aa84d9d..3df9f2876 100755
--- a/searx/webapp.py
+++ b/searx/webapp.py
@@ -59,6 +59,7 @@ from searx.settings_defaults import OUTPUT_FORMATS
from searx.settings_loader import get_default_settings_path
from searx.exceptions import SearxParameterException
from searx.engines import (
+ OTHER_CATEGORY,
categories,
engines,
engine_shortcuts,
@@ -73,6 +74,8 @@ from searx.webutils import (
new_hmac,
is_hmac_of,
is_flask_run_cmdline,
+ DEFAULT_GROUP_NAME,
+ group_engines_in_tab,
)
from searx.webadapter import (
get_search_query_from_webapp,
@@ -152,6 +155,7 @@ app = Flask(__name__, static_folder=settings['ui']['static_path'], template_fold
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
app.jinja_env.add_extension('jinja2.ext.loopcontrols') # pylint: disable=no-member
+app.jinja_env.filters['group_engines_in_tab'] = group_engines_in_tab # pylint: disable=no-member
app.secret_key = settings['server']['secret_key']
babel = Babel(app)
@@ -169,6 +173,17 @@ _category_names = (
gettext('map'),
gettext('onions'),
gettext('science'),
+ # non-tab categories
+ gettext('apps'),
+ gettext('dictionaries'),
+ gettext('lyrics'),
+ gettext('packages'),
+ gettext('q&a'),
+ gettext('repos'),
+ gettext('software wikis'),
+ gettext('web'),
+ gettext(DEFAULT_GROUP_NAME),
+ gettext(OTHER_CATEGORY),
)
_simple_style = (gettext('auto'), gettext('light'), gettext('dark'))
@@ -390,12 +405,6 @@ def get_translations():
}
-def _get_ordered_categories():
- ordered_categories = list(settings['ui']['categories_order'])
- ordered_categories.extend(x for x in sorted(categories.keys()) if x not in ordered_categories)
- return ordered_categories
-
-
def _get_enable_categories(all_categories):
disabled_engines = request.preferences.engines.get_disabled()
enabled_categories = set(
@@ -430,8 +439,9 @@ def render(template_name, override_theme=None, **kwargs):
kwargs['query_in_title'] = request.preferences.get_value('query_in_title')
kwargs['safesearch'] = str(request.preferences.get_value('safesearch'))
kwargs['theme'] = get_current_theme_name(override=override_theme)
- kwargs['all_categories'] = _get_ordered_categories()
- kwargs['categories'] = _get_enable_categories(kwargs['all_categories'])
+ kwargs['categories_as_tabs'] = list(settings['categories_as_tabs'].keys())
+ kwargs['categories'] = _get_enable_categories(categories.keys())
+ kwargs['OTHER_CATEGORY'] = OTHER_CATEGORY
# i18n
kwargs['language_codes'] = [l for l in languages if l[0] in settings['search']['languages']]
@@ -922,7 +932,7 @@ def preferences():
allowed_plugins = request.preferences.plugins.get_enabled()
# stats for preferences page
- filtered_engines = dict(filter(lambda kv: (kv[0], request.preferences.validate_token(kv[1])), engines.items()))
+ filtered_engines = dict(filter(lambda kv: request.preferences.validate_token(kv[1]), engines.items()))
engines_by_category = {}
@@ -1153,7 +1163,7 @@ def stats():
sort_order = request.args.get('sort', default='name', type=str)
selected_engine_name = request.args.get('engine', default=None, type=str)
- filtered_engines = dict(filter(lambda kv: (kv[0], request.preferences.validate_token(kv[1])), engines.items()))
+ filtered_engines = dict(filter(lambda kv: request.preferences.validate_token(kv[1]), engines.items()))
if selected_engine_name:
if selected_engine_name not in filtered_engines:
selected_engine_name = None
@@ -1200,7 +1210,7 @@ def stats():
@app.route('/stats/errors', methods=['GET'])
def stats_errors():
- filtered_engines = dict(filter(lambda kv: (kv[0], request.preferences.validate_token(kv[1])), engines.items()))
+ filtered_engines = dict(filter(lambda kv: request.preferences.validate_token(kv[1]), engines.items()))
result = get_engine_errors(filtered_engines)
return jsonify(result)
@@ -1333,7 +1343,7 @@ werkzeug_reloader = flask_run_development or (searx_debug and __name__ == "__mai
# initialize the engines except on the first run of the werkzeug server.
if not werkzeug_reloader or (werkzeug_reloader and os.environ.get("WERKZEUG_RUN_MAIN") == "true"):
plugin_initialize(app)
- search_initialize(enable_checker=True, check_network=True)
+ search_initialize(enable_checker=True, check_network=True, enable_metrics=settings['general']['enable_metrics'])
def run():
diff --git a/searx/webutils.py b/searx/webutils.py
index 068582858..0c0854dfc 100644
--- a/searx/webutils.py
+++ b/searx/webutils.py
@@ -5,11 +5,14 @@ import hashlib
import hmac
import re
import inspect
+import itertools
+from typing import Iterable, List, Tuple
from io import StringIO
from codecs import getincrementalencoder
-from searx import logger
+from searx import logger, settings
+from searx.engines import Engine, OTHER_CATEGORY
VALID_LANGUAGE_CODE = re.compile(r'^[a-z]{2,3}(-[a-zA-Z]{2})?$')
@@ -134,3 +137,28 @@ def is_flask_run_cmdline():
if len(frames) < 2:
return False
return frames[-2].filename.endswith('flask/cli.py')
+
+
+DEFAULT_GROUP_NAME = 'others'
+
+
+def group_engines_in_tab(engines: Iterable[Engine]) -> List[Tuple[str, Iterable[Engine]]]:
+ """Groups an Iterable of engines by their first non tab category"""
+
+ def get_group(eng):
+ non_tab_categories = [
+ c for c in eng.categories if c not in list(settings['categories_as_tabs'].keys()) + [OTHER_CATEGORY]
+ ]
+ return non_tab_categories[0] if len(non_tab_categories) > 0 else DEFAULT_GROUP_NAME
+
+ groups = itertools.groupby(sorted(engines, key=get_group), get_group)
+
+ def group_sort_key(group):
+ return (group[0] == DEFAULT_GROUP_NAME, group[0].lower())
+
+ sorted_groups = sorted(((name, list(engines)) for name, engines in groups), key=group_sort_key)
+
+ def engine_sort_key(engine):
+ return (engine.about.get('language', ''), engine.name)
+
+ return [(groupname, sorted(engines, key=engine_sort_key)) for groupname, engines in sorted_groups]
diff --git a/searxng_extra/update/update_ahmia_blacklist.py b/searxng_extra/update/update_ahmia_blacklist.py
index f7695deae..26c485195 100755
--- a/searxng_extra/update/update_ahmia_blacklist.py
+++ b/searxng_extra/update/update_ahmia_blacklist.py
@@ -1,10 +1,15 @@
#!/usr/bin/env python
+# lint: pylint
# SPDX-License-Identifier: AGPL-3.0-or-later
+"""This script saves `Ahmia's blacklist`_ for onion sites.
-# This script saves Ahmia's blacklist for onion sites.
-# More info in https://ahmia.fi/blacklist/
+Output file: :origin:`searx/data/ahmia_blacklist.txt` (:origin:`CI Update data
+... <.github/workflows/data-update.yml>`).
+
+.. _Ahmia's blacklist: https://ahmia.fi/blacklist/
+
+"""
-# set path
from os.path import join
import requests
@@ -17,15 +22,14 @@ def fetch_ahmia_blacklist():
resp = requests.get(URL, timeout=3.0)
if resp.status_code != 200:
raise Exception("Error fetching Ahmia blacklist, HTTP code " + resp.status_code)
- else:
- blacklist = resp.text.split()
- return blacklist
+ return resp.text.split()
def get_ahmia_blacklist_filename():
return join(join(searx_dir, "data"), "ahmia_blacklist.txt")
-blacklist = fetch_ahmia_blacklist()
-with open(get_ahmia_blacklist_filename(), "w") as f:
- f.write('\n'.join(blacklist))
+if __name__ == '__main__':
+ blacklist = fetch_ahmia_blacklist()
+ with open(get_ahmia_blacklist_filename(), "w", encoding='utf-8') as f:
+ f.write('\n'.join(blacklist))
diff --git a/searxng_extra/update/update_currencies.py b/searxng_extra/update/update_currencies.py
index 3373e2455..e51692e72 100755
--- a/searxng_extra/update/update_currencies.py
+++ b/searxng_extra/update/update_currencies.py
@@ -1,13 +1,22 @@
#!/usr/bin/env python
+# lint: pylint
# SPDX-License-Identifier: AGPL-3.0-or-later
+"""Fetch currencies from :origin:`searx/engines/wikidata.py` engine.
+
+Output file: :origin:`searx/data/currencies.json` (:origin:`CI Update data ...
+<.github/workflows/data-update.yml>`).
+
+"""
+
+# pylint: disable=invalid-name
+
import re
import unicodedata
import json
# set path
-from sys import path
-from os.path import realpath, dirname, join
+from os.path import join
from searx import searx_dir
from searx.locales import LOCALE_NAMES
diff --git a/searxng_extra/update/update_engine_descriptions.py b/searxng_extra/update/update_engine_descriptions.py
index 51cfc7cc2..5b73fd396 100755
--- a/searxng_extra/update/update_engine_descriptions.py
+++ b/searxng_extra/update/update_engine_descriptions.py
@@ -1,6 +1,16 @@
#!/usr/bin/env python
+# lint: pylint
# SPDX-License-Identifier: AGPL-3.0-or-later
+"""Fetch website description from websites and from
+:origin:`searx/engines/wikidata.py` engine.
+
+Output file: :origin:`searx/data/engine_descriptions.json`.
+
+"""
+
+# pylint: disable=invalid-name, global-statement
+
import json
from urllib.parse import urlparse
from os.path import join
@@ -102,7 +112,7 @@ def get_wikipedia_summary(lang, pageid):
response.raise_for_status()
api_result = json.loads(response.text)
return api_result.get('extract')
- except:
+ except Exception: # pylint: disable=broad-except
return None
@@ -134,7 +144,7 @@ def get_website_description(url, lang1, lang2=None):
try:
response = searx.network.get(url, headers=headers, timeout=10)
response.raise_for_status()
- except Exception:
+ except Exception: # pylint: disable=broad-except
return (None, None)
try:
diff --git a/searxng_extra/update/update_external_bangs.py b/searxng_extra/update/update_external_bangs.py
index d5c6b585a..be3aade0f 100755
--- a/searxng_extra/update/update_external_bangs.py
+++ b/searxng_extra/update/update_external_bangs.py
@@ -1,17 +1,20 @@
#!/usr/bin/env python
# lint: pylint
# SPDX-License-Identifier: AGPL-3.0-or-later
-"""
-Update searx/data/external_bangs.json using the duckduckgo bangs.
+"""Update :origin:`searx/data/external_bangs.json` using the duckduckgo bangs
+(:origin:`CI Update data ... <.github/workflows/data-update.yml>`).
+
+https://duckduckgo.com/newbang loads:
-https://duckduckgo.com/newbang loads
* a javascript which provides the bang version ( https://duckduckgo.com/bv1.js )
* a JSON file which contains the bangs ( https://duckduckgo.com/bang.v260.js for example )
This script loads the javascript, then the bangs.
-The javascript URL may change in the future ( for example https://duckduckgo.com/bv2.js ),
-but most probably it will requires to update RE_BANG_VERSION
+The javascript URL may change in the future ( for example
+https://duckduckgo.com/bv2.js ), but most probably it will requires to update
+RE_BANG_VERSION
+
"""
# pylint: disable=C0116
diff --git a/searxng_extra/update/update_firefox_version.py b/searxng_extra/update/update_firefox_version.py
index 750e955fd..a447f9fd5 100755
--- a/searxng_extra/update/update_firefox_version.py
+++ b/searxng_extra/update/update_firefox_version.py
@@ -1,21 +1,30 @@
#!/usr/bin/env python
+# lint: pylint
# SPDX-License-Identifier: AGPL-3.0-or-later
+"""Fetch firefox useragent signatures
+
+Output file: :origin:`searx/data/useragents.json` (:origin:`CI Update data ...
+<.github/workflows/data-update.yml>`).
+
+"""
+
import json
-import requests
import re
-from os.path import dirname, join
+from os.path import join
from urllib.parse import urlparse, urljoin
-from distutils.version import LooseVersion, StrictVersion
+from distutils.version import LooseVersion
+
+import requests
from lxml import html
from searx import searx_dir
URL = 'https://ftp.mozilla.org/pub/firefox/releases/'
RELEASE_PATH = '/pub/firefox/releases/'
-NORMAL_REGEX = re.compile('^[0-9]+\.[0-9](\.[0-9])?$')
-# BETA_REGEX = re.compile('.*[0-9]b([0-9\-a-z]+)$')
-# ESR_REGEX = re.compile('^[0-9]+\.[0-9](\.[0-9])?esr$')
+NORMAL_REGEX = re.compile(r'^[0-9]+\.[0-9](\.[0-9])?$')
+# BETA_REGEX = re.compile(r'.*[0-9]b([0-9\-a-z]+)$')
+# ESR_REGEX = re.compile(r'^[0-9]+\.[0-9](\.[0-9])?esr$')
#
useragents = {
@@ -32,20 +41,19 @@ def fetch_firefox_versions():
resp = requests.get(URL, timeout=2.0)
if resp.status_code != 200:
raise Exception("Error fetching firefox versions, HTTP code " + resp.status_code)
- else:
- dom = html.fromstring(resp.text)
- versions = []
+ dom = html.fromstring(resp.text)
+ versions = []
- for link in dom.xpath('//a/@href'):
- url = urlparse(urljoin(URL, link))
- path = url.path
- if path.startswith(RELEASE_PATH):
- version = path[len(RELEASE_PATH) : -1]
- if NORMAL_REGEX.match(version):
- versions.append(LooseVersion(version))
+ for link in dom.xpath('//a/@href'):
+ url = urlparse(urljoin(URL, link))
+ path = url.path
+ if path.startswith(RELEASE_PATH):
+ version = path[len(RELEASE_PATH) : -1]
+ if NORMAL_REGEX.match(version):
+ versions.append(LooseVersion(version))
- list.sort(versions, reverse=True)
- return versions
+ list.sort(versions, reverse=True)
+ return versions
def fetch_firefox_last_versions():
@@ -66,6 +74,7 @@ def get_useragents_filename():
return join(join(searx_dir, "data"), "useragents.json")
-useragents["versions"] = fetch_firefox_last_versions()
-with open(get_useragents_filename(), "w") as f:
- json.dump(useragents, f, indent=4, ensure_ascii=False)
+if __name__ == '__main__':
+ useragents["versions"] = fetch_firefox_last_versions()
+ with open(get_useragents_filename(), "w", encoding='utf-8') as f:
+ json.dump(useragents, f, indent=4, ensure_ascii=False)
diff --git a/searxng_extra/update/update_languages.py b/searxng_extra/update/update_languages.py
index f37345808..754180c47 100755
--- a/searxng_extra/update/update_languages.py
+++ b/searxng_extra/update/update_languages.py
@@ -1,9 +1,17 @@
#!/usr/bin/env python
+# lint: pylint
+
# SPDX-License-Identifier: AGPL-3.0-or-later
+"""This script generates languages.py from intersecting each engine's supported
+languages.
+
+Output files: :origin:`searx/data/engines_languages.json` and
+:origin:`searx/languages.py` (:origin:`CI Update data ...
+<.github/workflows/data-update.yml>`).
+
+"""
-# This script generates languages.py from intersecting each engine's supported languages.
-#
-# Output files: searx/data/engines_languages.json and searx/languages.py
+# pylint: disable=invalid-name
import json
from pathlib import Path
@@ -24,7 +32,7 @@ languages_file = Path(searx_dir) / 'languages.py'
def fetch_supported_languages():
set_timeout_for_thread(10.0)
- engines_languages = dict()
+ engines_languages = {}
names = list(engines)
names.sort()
@@ -32,7 +40,7 @@ def fetch_supported_languages():
if hasattr(engines[engine_name], 'fetch_supported_languages'):
engines_languages[engine_name] = engines[engine_name].fetch_supported_languages()
print("fetched %s languages from engine %s" % (len(engines_languages[engine_name]), engine_name))
- if type(engines_languages[engine_name]) == list:
+ if type(engines_languages[engine_name]) == list: # pylint: disable=unidiomatic-typecheck
engines_languages[engine_name] = sorted(engines_languages[engine_name])
print("fetched languages from %s engines" % len(engines_languages))
@@ -55,7 +63,7 @@ def get_locale(lang_code):
# Join all language lists.
def join_language_lists(engines_languages):
- language_list = dict()
+ language_list = {}
for engine_name in engines_languages:
for lang_code in engines_languages[engine_name]:
@@ -91,7 +99,7 @@ def join_language_lists(engines_languages):
'name': language_name,
'english_name': english_name,
'counter': set(),
- 'countries': dict(),
+ 'countries': {},
}
# add language with country if not in list
@@ -119,6 +127,7 @@ def join_language_lists(engines_languages):
def filter_language_list(all_languages):
min_engines_per_lang = 13
min_engines_per_country = 7
+ # pylint: disable=consider-using-dict-items, consider-iterating-dictionary
main_engines = [
engine_name
for engine_name in engines.keys()
@@ -138,7 +147,7 @@ def filter_language_list(all_languages):
}
def _copy_lang_data(lang, country_name=None):
- new_dict = dict()
+ new_dict = {}
new_dict['name'] = all_languages[lang]['name']
new_dict['english_name'] = all_languages[lang]['english_name']
if country_name:
@@ -146,10 +155,10 @@ def filter_language_list(all_languages):
return new_dict
# for each language get country codes supported by most engines or at least one country code
- filtered_languages_with_countries = dict()
+ filtered_languages_with_countries = {}
for lang, lang_data in filtered_languages.items():
countries = lang_data['countries']
- filtered_countries = dict()
+ filtered_countries = {}
# get language's country codes with enough supported engines
for lang_country, country_data in countries.items():
@@ -211,7 +220,7 @@ def write_languages_file(languages):
language_codes = tuple(language_codes)
- with open(languages_file, 'w') as new_file:
+ with open(languages_file, 'w', encoding='utf-8') as new_file:
file_content = "{file_headers} {language_codes},\n)\n".format(
# fmt: off
file_headers = '\n'.join(file_headers),
@@ -224,7 +233,7 @@ def write_languages_file(languages):
if __name__ == "__main__":
load_engines(settings['engines'])
- engines_languages = fetch_supported_languages()
- all_languages = join_language_lists(engines_languages)
- filtered_languages = filter_language_list(all_languages)
- write_languages_file(filtered_languages)
+ _engines_languages = fetch_supported_languages()
+ _all_languages = join_language_lists(_engines_languages)
+ _filtered_languages = filter_language_list(_all_languages)
+ write_languages_file(_filtered_languages)
diff --git a/searxng_extra/update/update_osm_keys_tags.py b/searxng_extra/update/update_osm_keys_tags.py
index 2916cbff1..1d691c194 100755
--- a/searxng_extra/update/update_osm_keys_tags.py
+++ b/searxng_extra/update/update_osm_keys_tags.py
@@ -5,7 +5,10 @@
To get the i18n names, the scripts uses `Wikidata Query Service`_ instead of for
example `OSM tags API`_ (sidenote: the actual change log from
-map.atownsend.org.uk_ might be useful to normalize OSM tags)
+map.atownsend.org.uk_ might be useful to normalize OSM tags).
+
+Output file: :origin:`searx/data/osm_keys_tags` (:origin:`CI Update data ...
+<.github/workflows/data-update.yml>`).
.. _Wikidata Query Service: https://query.wikidata.org/
.. _OSM tags API: https://taginfo.openstreetmap.org/taginfo/apidoc
diff --git a/searxng_extra/update/update_wikidata_units.py b/searxng_extra/update/update_wikidata_units.py
index 43a872b1b..e999b6cfd 100755
--- a/searxng_extra/update/update_wikidata_units.py
+++ b/searxng_extra/update/update_wikidata_units.py
@@ -3,6 +3,13 @@
# lint: pylint
# pylint: disable=missing-module-docstring
+"""Fetch units from :origin:`searx/engines/wikidata.py` engine.
+
+Output file: :origin:`searx/data/wikidata_units.json` (:origin:`CI Update data
+... <.github/workflows/data-update.yml>`).
+
+"""
+
import json
import collections
@@ -54,5 +61,6 @@ def get_wikidata_units_filename():
return join(join(searx_dir, "data"), "wikidata_units.json")
-with open(get_wikidata_units_filename(), 'w', encoding="utf8") as f:
- json.dump(get_data(), f, indent=4, ensure_ascii=False)
+if __name__ == '__main__':
+ with open(get_wikidata_units_filename(), 'w', encoding="utf8") as f:
+ json.dump(get_data(), f, indent=4, ensure_ascii=False)
diff --git a/setup.py b/setup.py
index 5d46fff20..f5cee28ef 100644
--- a/setup.py
+++ b/setup.py
@@ -36,8 +36,8 @@ setup(
'License :: OSI Approved :: GNU Affero General Public License v3'
],
keywords='metasearch searchengine search web http',
- author='Adam Tauber',
- author_email='asciimoo@gmail.com',
+ author='SearXNG dev team',
+ author_email='contact@searxng.org',
license='GNU Affero General Public License',
packages=find_packages(exclude=["tests*", "searxng_extra"]),
zip_safe=False,
diff --git a/tests/robot/settings_robot.yml b/tests/robot/settings_robot.yml
index e0d01bb37..226704803 100644
--- a/tests/robot/settings_robot.yml
+++ b/tests/robot/settings_robot.yml
@@ -7,7 +7,7 @@ brand:
git_branch: master
issue_url: https://github.com/searxng/searxng/issues
new_issue_url: https://github.com/searxng/searxng/issues/new
- docs_url: https://searxng.github.io/searxng
+ docs_url: https://docs.searxng.org
public_instances: https://searx.space
wiki_url: https://github.com/searxng/searxng/wiki
@@ -33,6 +33,10 @@ outgoing:
request_timeout: 1.0 # seconds
useragent_suffix: ""
+categories_as_tabs:
+ general:
+ dummy:
+
engines:
- name: general dummy
engine: dummy
diff --git a/tests/unit/network/test_network.py b/tests/unit/network/test_network.py
index d25a0d77b..4253e69ac 100644
--- a/tests/unit/network/test_network.py
+++ b/tests/unit/network/test_network.py
@@ -76,13 +76,15 @@ class TestNetwork(SearxTestCase):
'verify': True,
'max_redirects': 5,
'timeout': 2,
+ 'allow_redirects': True,
}
- kwargs_client = Network.get_kwargs_clients(kwargs)
+ kwargs_client = Network.extract_kwargs_clients(kwargs)
self.assertEqual(len(kwargs_client), 2)
- self.assertEqual(len(kwargs), 1)
+ self.assertEqual(len(kwargs), 2)
self.assertEqual(kwargs['timeout'], 2)
+ self.assertEqual(kwargs['follow_redirects'], True)
self.assertTrue(kwargs_client['verify'])
self.assertEqual(kwargs_client['max_redirects'], 5)
diff --git a/tests/unit/test_preferences.py b/tests/unit/test_preferences.py
index 1ffed5c1a..a69c45178 100644
--- a/tests/unit/test_preferences.py
+++ b/tests/unit/test_preferences.py
@@ -1,7 +1,6 @@
from searx.preferences import (
EnumStringSetting,
MapSetting,
- MissingArgumentException,
SearchLanguageSetting,
MultipleChoiceSetting,
PluginsSetting,
@@ -19,10 +18,6 @@ class PluginStub:
class TestSettings(SearxTestCase):
# map settings
- def test_map_setting_invalid_initialization(self):
- with self.assertRaises(MissingArgumentException):
- MapSetting(3, wrong_argument={'0': 0})
-
def test_map_setting_invalid_default_value(self):
with self.assertRaises(ValidationException):
MapSetting(3, map={'dog': 1, 'bat': 2})
@@ -43,9 +38,6 @@ class TestSettings(SearxTestCase):
self.assertEqual(setting.get_value(), 2)
# enum settings
- def test_enum_setting_invalid_initialization(self):
- with self.assertRaises(MissingArgumentException):
- EnumStringSetting('cat', wrong_argument=[0, 1, 2])
def test_enum_setting_invalid_default_value(self):
with self.assertRaises(ValidationException):
@@ -67,9 +59,6 @@ class TestSettings(SearxTestCase):
self.assertEqual(setting.get_value(), 2)
# multiple choice settings
- def test_multiple_setting_invalid_initialization(self):
- with self.assertRaises(MissingArgumentException):
- MultipleChoiceSetting(['2'], wrong_argument=['0', '1', '2'])
def test_multiple_setting_invalid_default_value(self):
with self.assertRaises(ValidationException):
@@ -115,15 +104,15 @@ class TestSettings(SearxTestCase):
def test_plugins_setting_all_default_enabled(self):
plugin1 = PluginStub('plugin1', True)
plugin2 = PluginStub('plugin2', True)
- setting = PluginsSetting(['3'], choices=[plugin1, plugin2])
- self.assertEqual(setting.get_enabled(), set(['plugin1', 'plugin2']))
+ setting = PluginsSetting(['3'], plugins=[plugin1, plugin2])
+ self.assertEqual(set(setting.get_enabled()), set(['plugin1', 'plugin2']))
def test_plugins_setting_few_default_enabled(self):
plugin1 = PluginStub('plugin1', True)
plugin2 = PluginStub('plugin2', False)
plugin3 = PluginStub('plugin3', True)
- setting = PluginsSetting('name', choices=[plugin1, plugin2, plugin3])
- self.assertEqual(setting.get_enabled(), set(['plugin1', 'plugin3']))
+ setting = PluginsSetting('name', plugins=[plugin1, plugin2, plugin3])
+ self.assertEqual(set(setting.get_enabled()), set(['plugin1', 'plugin3']))
class TestPreferences(SearxTestCase):
diff --git a/tests/unit/test_query.py b/tests/unit/test_query.py
index 9a53f8f47..05fcafe30 100644
--- a/tests/unit/test_query.py
+++ b/tests/unit/test_query.py
@@ -230,13 +230,12 @@ class TestExternalBangParser(SearxTestCase):
class TestBang(SearxTestCase):
SPECIFIC_BANGS = ['!dummy_engine', '!du', '!general']
- NOT_SPECIFIC_BANGS = ['?dummy_engine', '?du', '?general']
THE_QUERY = 'the query'
def test_bang(self):
load_engines(TEST_ENGINES)
- for bang in TestBang.SPECIFIC_BANGS + TestBang.NOT_SPECIFIC_BANGS:
+ for bang in TestBang.SPECIFIC_BANGS:
with self.subTest(msg="Check bang", bang=bang):
query_text = TestBang.THE_QUERY + ' ' + bang
query = RawTextQuery(query_text, [])
@@ -252,13 +251,6 @@ class TestBang(SearxTestCase):
query = RawTextQuery(query_text, [])
self.assertTrue(query.specific)
- def test_not_specific(self):
- for bang in TestBang.NOT_SPECIFIC_BANGS:
- with self.subTest(msg="Check bang is not specific", bang=bang):
- query_text = TestBang.THE_QUERY + ' ' + bang
- query = RawTextQuery(query_text, [])
- self.assertFalse(query.specific)
-
def test_bang_not_found(self):
load_engines(TEST_ENGINES)
query = RawTextQuery('the query !bang_not_found', [])
@@ -278,5 +270,5 @@ class TestBang(SearxTestCase):
query = RawTextQuery('the query !', [])
self.assertEqual(query.autocomplete_list, ['!images', '!wikipedia', '!osm'])
- query = RawTextQuery('the query ?', ['osm'])
- self.assertEqual(query.autocomplete_list, ['?images', '?wikipedia'])
+ query = RawTextQuery('the query !', ['osm'])
+ self.assertEqual(query.autocomplete_list, ['!images', '!wikipedia'])
diff --git a/utils/lxc.sh b/utils/lxc.sh
index 9a79606ca..ab96a99ce 100755
--- a/utils/lxc.sh
+++ b/utils/lxc.sh
@@ -568,7 +568,7 @@ check_connectivity() {
info_msg "Most often the connectivity is blocked by a docker installation:"
info_msg "Whenever docker is started (reboot) it sets the iptables policy "
info_msg "for the FORWARD chain to DROP, see:"
- info_msg " https://searxng.github.io/searxng/utils/lxc.sh.html#internet-connectivity-docker"
+ info_msg " https://docs.searxng.org/utils/lxc.sh.html#internet-connectivity-docker"
iptables-save | grep ":FORWARD"
fi
return $ret_val
diff --git a/utils/morty.sh b/utils/morty.sh
index 25263a3d4..c4e7bdf52 100755
--- a/utils/morty.sh
+++ b/utils/morty.sh
@@ -116,7 +116,7 @@ info_searx() {
# shellcheck disable=SC1117
cat <<EOF
To activate result and image proxy in SearXNG read:
- https://searxng.github.io/searxng/admin/morty.html
+ https://docs.searxng.org/admin/morty.html
Check settings in file ${SEARXNG_SETTINGS_PATH} ...
result_proxy:
url : ${PUBLIC_URL_MORTY}
diff --git a/utils/templates/etc/searxng/settings.yml b/utils/templates/etc/searxng/settings.yml
index dd2a29b3b..860f4f5e9 100644
--- a/utils/templates/etc/searxng/settings.yml
+++ b/utils/templates/etc/searxng/settings.yml
@@ -1,6 +1,6 @@
# SearXNG settings, before editing this file read:
#
-# https://searxng.github.io/searxng/admin/engines/settings.html
+# https://docs.searxng.org/admin/engines/settings.html
use_default_settings: true