Merge remote-tracking branch 'searxng/master'

This commit is contained in:
Valentin Riess 2024-02-29 18:39:27 +01:00
commit 0f0a17f5d9
169 changed files with 23635 additions and 21505 deletions

View file

@ -172,3 +172,4 @@ features or generally made searx better:
- Bernie Huang `<https://github.com/BernieHuang2008>` - Bernie Huang `<https://github.com/BernieHuang2008>`
- Austin Olacsi `<https://github.com/Austin-Olacsi>` - Austin Olacsi `<https://github.com/Austin-Olacsi>`
- Valentin Rieß `<https://github.com/v411e>` - Valentin Rieß `<https://github.com/v411e>`
- @micsthepick

View file

@ -75,14 +75,13 @@ test.shell:
# wrap ./manage script # wrap ./manage script
MANAGE += weblate.translations.commit weblate.push.translations MANAGE += weblate.translations.commit weblate.push.translations
MANAGE += data.all data.traits data.useragents MANAGE += data.all data.traits data.useragents data.locales
MANAGE += docs.html docs.live docs.gh-pages docs.prebuild docs.clean MANAGE += docs.html docs.live docs.gh-pages docs.prebuild docs.clean
MANAGE += docker.build docker.push docker.buildx MANAGE += docker.build docker.push docker.buildx
MANAGE += gecko.driver MANAGE += gecko.driver
MANAGE += node.env node.env.dev node.clean MANAGE += node.env node.env.dev node.clean
MANAGE += py.build py.clean MANAGE += py.build py.clean
MANAGE += pyenv pyenv.install pyenv.uninstall MANAGE += pyenv pyenv.install pyenv.uninstall
MANAGE += pypi.upload pypi.upload.test
MANAGE += format.python MANAGE += format.python
MANAGE += test.yamllint test.pylint test.pyright test.black test.pybabel test.unit test.coverage test.robot test.rst test.clean MANAGE += test.yamllint test.pylint test.pyright test.black test.pybabel test.unit test.coverage test.robot test.rst test.clean
MANAGE += themes.all themes.simple themes.simple.test pygments.less MANAGE += themes.all themes.simple themes.simple.test pygments.less

View file

@ -271,22 +271,54 @@ type.
``images`` ``images``
---------- ----------
.. table:: Parameter of the **images** media type: .. list-table:: Parameter of the **images** media type
:header-rows: 2
:width: 100% :width: 100%
========================= ===================================================== * - result-parameter
result-parameter information - Python type
------------------------- ----------------------------------------------------- - information
template is set to ``images.html``
========================= ===================================================== * - template
url string, url to the result site - :py:class:`str`
title string, title of the result *(partly implemented)* - is set to ``images.html``
content *(partly implemented)*
publishedDate :py:class:`datetime.datetime`, * - url
time of publish *(partly implemented)* - :py:class:`str`
img\_src string, url to the result image - url to the result site
thumbnail\_src string, url to a small-preview image
========================= ===================================================== * - title
- :py:class:`str`
- title of the result
* - content
- :py:class:`str`
- description of the image
* - publishedDate
- :py:class:`datetime <datetime.datetime>`
- time of publish
* - img_src
- :py:class:`str`
- url to the result image
* - thumbnail_src
- :py:class:`str`
- url to a small-preview image
* - resolution
- :py:class:`str`
- the resolution of the image (e.g. ``1920 x 1080`` pixel)
* - img_format
- :py:class:`str`
- the format of the image (e.g. ``png``)
* - filesize
- :py:class:`str`
- size of bytes in :py:obj:`human readable <searx.humanize_bytes>` notation
(e.g. ``MB`` for 1024 \* 1024 Bytes filesize).
.. _template videos: .. _template videos:
@ -466,3 +498,68 @@ type.
- :py:class:`str` - :py:class:`str`
- URL to full article, HTML version - URL to full article, HTML version
.. _template packages:
``packages``
------------
.. list-table:: Parameter of the **packages** media type
:header-rows: 2
:width: 100%
* - result-parameter
- Python type
- information
* - template
- :py:class:`str`
- is set to ``packages.html``
* - title
- :py:class:`str`
- title of the result
* - content
- :py:class:`str`
- abstract
* - package_name
- :py:class:`str`
- the name of the package
* - version
- :py:class:`str`
- the current version of the package
* - maintainer
- :py:class:`str`
- the maintainer or author of the project
* - publishedDate
- :py:class:`datetime <datetime.datetime>`
- date of latest update or release
* - tags
- :py:class:`List <list>`\ [\ :py:class:`str`\ ]
- free tag list
* - popularity
- :py:class:`str`
- the popularity of the package, e.g. rating or download count
* - license_name
- :py:class:`str`
- the name of the license
* - license_url
- :py:class:`str`
- the web location of a license copy
* - homepage
- :py:class:`str`
- the url of the project's homepage
* - source_code_url
- :py:class:`str`
- the location of the project's source code

View file

@ -0,0 +1,13 @@
.. _voidlinux engine:
==========================
Void Linux binary packages
==========================
.. contents:: Contents
:depth: 2
:local:
:backlinks: entry
.. automodule:: searx.engines.voidlinux
:members:

View file

@ -292,7 +292,7 @@ content becomes smart.
files & folders origin :origin:`docs/dev/reST.rst` ``:origin:`docs/dev/reST.rst``` files & folders origin :origin:`docs/dev/reST.rst` ``:origin:`docs/dev/reST.rst```
pull request :pull:`4` ``:pull:`4``` pull request :pull:`4` ``:pull:`4```
patch :patch:`af2cae6` ``:patch:`af2cae6``` patch :patch:`af2cae6` ``:patch:`af2cae6```
PyPi package :pypi:`searx` ``:pypi:`searx``` PyPi package :pypi:`httpx` ``:pypi:`httpx```
manual page man :man:`bash` ``:man:`bash``` manual page man :man:`bash` ``:man:`bash```
intersphinx_ intersphinx_
-------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------

View file

@ -78,6 +78,16 @@ Scripts to update static data in :origin:`searx/data/`
.. automodule:: searxng_extra.update.update_pygments .. automodule:: searxng_extra.update.update_pygments
:members: :members:
.. _update_locales.py:
``update_locales.py``
=====================
:origin:`[source] <searxng_extra/update/update_locales.py>`
.. automodule:: searxng_extra.update.update_locales
:members:
``update_wikidata_units.py`` ``update_wikidata_units.py``
============================ ============================

View file

@ -10,11 +10,6 @@ Locales
:backlinks: entry :backlinks: entry
.. automodule:: searx.locales .. automodule:: searx.locales
:members: :members:
SearXNG's locale codes
======================
.. automodule:: searx.sxng_locales
:members:

15
manage
View file

@ -109,8 +109,6 @@ pyenv.:
uninstall : uninstall developer installation uninstall : uninstall developer installation
cmd ... : run command ... in virtualenv cmd ... : run command ... in virtualenv
OK : test if virtualenv is OK OK : test if virtualenv is OK
pypi.upload:
Upload python packages to PyPi (to test use pypi.upload.test)
format.: format.:
python : format Python code source using black python : format Python code source using black
pygments.: pygments.:
@ -334,19 +332,6 @@ pyenv.uninstall() {
} }
pypi.upload() {
py.clean
py.build
# https://github.com/pypa/twine
pyenv.cmd twine upload "${PYDIST}"/*
}
pypi.upload.test() {
py.clean
py.build
pyenv.cmd twine upload -r testpypi "${PYDIST}"/*
}
format.python() { format.python() {
build_msg TEST "[format.python] black \$BLACK_TARGETS" build_msg TEST "[format.python] black \$BLACK_TARGETS"
pyenv.cmd black "${BLACK_OPTIONS[@]}" "${BLACK_TARGETS[@]}" pyenv.cmd black "${BLACK_OPTIONS[@]}" "${BLACK_TARGETS[@]}"

View file

@ -4,8 +4,7 @@ cov-core==1.15.0
black==22.12.0 black==22.12.0
pylint==3.0.3 pylint==3.0.3
splinter==0.21.0 splinter==0.21.0
selenium==4.17.2 selenium==4.18.1
twine==4.0.2
Pallets-Sphinx-Themes==2.1.1 Pallets-Sphinx-Themes==2.1.1
Sphinx<=7.1.2; python_version == '3.8' Sphinx<=7.1.2; python_version == '3.8'
Sphinx==7.2.6; python_version > '3.8' Sphinx==7.2.6; python_version > '3.8'
@ -18,6 +17,6 @@ sphinx-notfound-page==1.0.0
myst-parser==2.0.0 myst-parser==2.0.0
linuxdoc==20231020 linuxdoc==20231020
aiounittest==1.4.2 aiounittest==1.4.2
yamllint==1.34.0 yamllint==1.35.1
wlc==1.13 wlc==1.13
coloredlogs==15.0.1 coloredlogs==15.0.1

View file

@ -15,6 +15,7 @@ __all__ = [
'EXTERNAL_BANGS', 'EXTERNAL_BANGS',
'OSM_KEYS_TAGS', 'OSM_KEYS_TAGS',
'ENGINE_DESCRIPTIONS', 'ENGINE_DESCRIPTIONS',
'LOCALES',
'ahmia_blacklist_loader', 'ahmia_blacklist_loader',
] ]
@ -50,3 +51,4 @@ EXTERNAL_BANGS = _load('external_bangs.json')
OSM_KEYS_TAGS = _load('osm_keys_tags.json') OSM_KEYS_TAGS = _load('osm_keys_tags.json')
ENGINE_DESCRIPTIONS = _load('engine_descriptions.json') ENGINE_DESCRIPTIONS = _load('engine_descriptions.json')
ENGINE_TRAITS = _load('engine_traits.json') ENGINE_TRAITS = _load('engine_traits.json')
LOCALES = _load('locales.json')

File diff suppressed because it is too large Load diff

View file

@ -372,7 +372,7 @@
"đô la barbados": "BBD", "đô la barbados": "BBD",
"تاكا بنغلاديشي": "BDT", "تاكا بنغلاديشي": "BDT",
"бангладешка така": "BDT", "бангладешка така": "BDT",
"বাংলাদেশী টাকা": "BDT", "টাকা": "BDT",
"taka": [ "taka": [
"INR", "INR",
"BDT" "BDT"
@ -523,7 +523,7 @@
"דולר ברוניי": "BND", "דולר ברוניי": "BND",
"brunejski dolar": "BND", "brunejski dolar": "BND",
"brunei dollár": "BND", "brunei dollár": "BND",
"dolar brunei darussalam": "BND", "dolar brunei": "BND",
"dollaro del brunei": "BND", "dollaro del brunei": "BND",
"ブルネイ・ドル": "BND", "ブルネイ・ドル": "BND",
"브루나이 달러": "BND", "브루나이 달러": "BND",
@ -1486,6 +1486,7 @@
"기니 프랑": "GNF", "기니 프랑": "GNF",
"gvinėjos frankas": "GNF", "gvinėjos frankas": "GNF",
"guineese frank": "GNF", "guineese frank": "GNF",
"franc guinean": "GNF",
"frank gwinejski": "GNF", "frank gwinejski": "GNF",
"franco da guiné": "GNF", "franco da guiné": "GNF",
"гвинейский франк": "GNF", "гвинейский франк": "GNF",
@ -2141,6 +2142,8 @@
"kuwaiti dinar": "KWD", "kuwaiti dinar": "KWD",
"kuvajta dinaro": "KWD", "kuvajta dinaro": "KWD",
"dinar kuwaití": "KWD", "dinar kuwaití": "KWD",
"kuveidi dinaar": "KWD",
"kuwaitar dinar": "KWD",
"kuwaitin dinaari": "KWD", "kuwaitin dinaari": "KWD",
"dinar koweïtien": "KWD", "dinar koweïtien": "KWD",
"דינר כוויתי": "KWD", "דינר כוויתי": "KWD",
@ -2613,6 +2616,7 @@
"malediivien rufiyaa": "MVR", "malediivien rufiyaa": "MVR",
"maldivska rufija": "MVR", "maldivska rufija": "MVR",
"maldív rúfia": "MVR", "maldív rúfia": "MVR",
"rufiyaa maladewa": "MVR",
"rufiyaa delle maldive": "MVR", "rufiyaa delle maldive": "MVR",
"ルフィヤ": "MVR", "ルフィヤ": "MVR",
"몰디브 루피야": "MVR", "몰디브 루피야": "MVR",
@ -3906,10 +3910,10 @@
"tonžská paʻanga": "TOP", "tonžská paʻanga": "TOP",
"tongan paʻanga": "TOP", "tongan paʻanga": "TOP",
"tonga paangao": "TOP", "tonga paangao": "TOP",
"pa'anga": "TOP",
"פאנגה טונגאית": "TOP", "פאנגה טונגאית": "TOP",
"tonška paanga": "TOP", "tonška paanga": "TOP",
"tongai paʻanga": "TOP", "tongai paʻanga": "TOP",
"pa'anga": "TOP",
"paʻanga tongano": "TOP", "paʻanga tongano": "TOP",
"パアンガ": "TOP", "パアンガ": "TOP",
"통가 팡가": "TOP", "통가 팡가": "TOP",
@ -4216,6 +4220,7 @@
"özbekistan somu": "UZS", "özbekistan somu": "UZS",
"узбецький сум": "UZS", "узбецький сум": "UZS",
"venezuelan digital bolívar": "VED", "venezuelan digital bolívar": "VED",
"bolivar numérique": "VED",
"sovereign bolivar": "VES", "sovereign bolivar": "VES",
"bolívar soberano": "VES", "bolívar soberano": "VES",
"bolivar souverain": "VES", "bolivar souverain": "VES",
@ -4312,6 +4317,7 @@
"silberpreis": "XAG", "silberpreis": "XAG",
"silver as an investment": "XAG", "silver as an investment": "XAG",
"plata como inversión": "XAG", "plata como inversión": "XAG",
"argent d'investissement": "XAG",
"perak sebagai pelaburan": "XAG", "perak sebagai pelaburan": "XAG",
"silver som investering": "XAG", "silver som investering": "XAG",
"bạc trong đầu tư": "XAG", "bạc trong đầu tư": "XAG",
@ -4916,11 +4922,7 @@
"KM": "BAM", "KM": "BAM",
"bosenská konvertibilní marka": "BAM", "bosenská konvertibilní marka": "BAM",
"mark cyfnewidiol": "BAM", "mark cyfnewidiol": "BAM",
"bosnisch herzegowinische konvertible mark": "BAM", "mark": "BAM",
"fening": "BAM",
"feninga": "BAM",
"bam": "BAM",
"km": "BAM",
"convertible mark": "BAM", "convertible mark": "BAM",
"marka convertible": "BAM", "marka convertible": "BAM",
"marco bosnio": "BAM", "marco bosnio": "BAM",
@ -4937,6 +4939,7 @@
"bosnijos ir hercegovinos markė": "BAM", "bosnijos ir hercegovinos markė": "BAM",
"bosnische convertibele mark": "BAM", "bosnische convertibele mark": "BAM",
"bosnische konvertibilna marka": "BAM", "bosnische konvertibilna marka": "BAM",
"feninga": "BAM",
"marka de bòsnia e ercegovina": "BAM", "marka de bòsnia e ercegovina": "BAM",
"marka konwertybilna": "BAM", "marka konwertybilna": "BAM",
"marka transferowa": "BAM", "marka transferowa": "BAM",
@ -4946,15 +4949,14 @@
"marca bosniacă convertibilă": "BAM", "marca bosniacă convertibilă": "BAM",
"marcă convertibilă a bosniei şi herţegovinei": "BAM", "marcă convertibilă a bosniei şi herţegovinei": "BAM",
"marcă convertibilă a bosniei și herțegovinei": "BAM", "marcă convertibilă a bosniei și herțegovinei": "BAM",
"bam": "BAM",
"боснийская конвертируемая марка": "BAM", "боснийская конвертируемая марка": "BAM",
"боснийская марка": "BAM", "боснийская марка": "BAM",
"валюта боснии и герцеговины": "BAM", "валюта боснии и герцеговины": "BAM",
"конвертируемая марка боснии и герцеговины": "BAM", "конвертируемая марка боснии и герцеговины": "BAM",
"марка": "BAM", "марка": "BAM",
"konvertibilna marka bosne in hercegovine": "BAM", "konvertibilna marka bosne in hercegovine": "BAM",
"босанскохерцеговачка конвертибилна марка": "BAM", "km": "BAM",
"км": "BAM",
"марка у босни и херцеговини": "BAM",
"konvertibel mark": "BAM", "konvertibel mark": "BAM",
"konvertibla mark": "BAM", "konvertibla mark": "BAM",
"கன்வர்டிபிள் மார்க்கு": "BAM", "கன்வர்டிபிள் மார்க்கு": "BAM",
@ -4983,7 +4985,7 @@
"பார்படோஸ் டாலர்": "BBD", "பார்படோஸ் டாலர்": "BBD",
"৳": "BDT", "৳": "BDT",
"така": "BDT", "така": "BDT",
"টাকা": "BDT", "বাংলাদেশী টাকা": "BDT",
"bdt": [ "bdt": [
"BTN", "BTN",
"BDT" "BDT"
@ -5029,7 +5031,6 @@
"bulgariska leva": "BGN", "bulgariska leva": "BGN",
"பல்காரிய லெவ்": "BGN", "பல்காரிய லெவ்": "BGN",
"bulgar levi": "BGN", "bulgar levi": "BGN",
"лв": "BGN",
"الدينار البحريني": "BHD", "الدينار البحريني": "BHD",
"BD": "BHD", "BD": "BHD",
"bhd": "BHD", "bhd": "BHD",
@ -5128,7 +5129,6 @@
"ブルネイドル": "BND", "ブルネイドル": "BND",
"브루나이 링깃": "BND", "브루나이 링깃": "BND",
"ബ്രൂണെയ് ഡോളർ": "BND", "ബ്രൂണെയ് ഡോളർ": "BND",
"dolar brunei": "BND",
"dólar bruneíno": "BND", "dólar bruneíno": "BND",
"dólar do brunei": "BND", "dólar do brunei": "BND",
"валюта брунея": "BND", "валюта брунея": "BND",
@ -5669,6 +5669,7 @@
"franco di gibuti": "DJF", "franco di gibuti": "DJF",
"지부티프랑": "DJF", "지부티프랑": "DJF",
"djiboutische frank": "DJF", "djiboutische frank": "DJF",
"franc jibotian": "DJF",
"franco djibutiano": "DJF", "franco djibutiano": "DJF",
"franco djibutiense": "DJF", "franco djibutiense": "DJF",
"franco do djibuti": "DJF", "franco do djibuti": "DJF",
@ -5755,6 +5756,17 @@
"валюта алжира": "DZD", "валюта алжира": "DZD",
"அல்ஜீரிய தினார்": "DZD", "அல்ஜீரிய தினார்": "DZD",
"الجنية المصري": "EGP", "الجنية المصري": "EGP",
"£": [
"SYP",
"SSP",
"SHP",
"SDG",
"LBP",
"GIP",
"GBP",
"FKP",
"EGP"
],
"LE": "EGP", "LE": "EGP",
"الجنيه المصري": "EGP", "الجنيه المصري": "EGP",
"ج.م": "EGP", "ج.م": "EGP",
@ -5806,9 +5818,7 @@
"ern": "ERN", "ern": "ERN",
"nkf": "ERN", "nkf": "ERN",
"eritrea nagfo": "ERN", "eritrea nagfo": "ERN",
"nafka eritrea": "ERN",
"מטבע אריתריאה": "ERN", "מטבע אריתריאה": "ERN",
"nafka": "ERN",
"nakfa eritreo": "ERN", "nakfa eritreo": "ERN",
"エリトリア・ナクファ": "ERN", "エリトリア・ナクファ": "ERN",
"낙파": "ERN", "낙파": "ERN",
@ -5880,16 +5890,6 @@
"фиџи долар": "FJD", "фиџи долар": "FJD",
"долар фіджі": "FJD", "долар фіджі": "FJD",
"FJ$": "FJD", "FJ$": "FJD",
"£": [
"SYP",
"SSP",
"SHP",
"SDG",
"LBP",
"GIP",
"GBP",
"FKP"
],
"FK£": "FKP", "FK£": "FKP",
"lliura de les falkland": "FKP", "lliura de les falkland": "FKP",
"lliura de les illes falkland": "FKP", "lliura de les illes falkland": "FKP",
@ -6117,6 +6117,7 @@
"кветцал": "GTQ", "кветцал": "GTQ",
"кетсал": "GTQ", "кетсал": "GTQ",
"кетсаль": "GTQ", "кетсаль": "GTQ",
"kvecal": "GTQ",
"гватемальський кецаль": "GTQ", "гватемальський кецаль": "GTQ",
"دولار غوياني": "GYD", "دولار غوياني": "GYD",
"G$": "GYD", "G$": "GYD",
@ -6257,10 +6258,6 @@
"indonesiar errupia": "IDR", "indonesiar errupia": "IDR",
"roupie indonesienne": "IDR", "roupie indonesienne": "IDR",
"רופיה אינדונזית": "IDR", "רופיה אינדונזית": "IDR",
"gobang": "IDR",
"peser": "IDR",
"rupiah baru": "IDR",
"sepeser": "IDR",
"インドネシア・ルピア": "IDR", "インドネシア・ルピア": "IDR",
"インドネシア・ルピー": "IDR", "インドネシア・ルピー": "IDR",
"루피아": "IDR", "루피아": "IDR",
@ -6592,7 +6589,6 @@
"KES" "KES"
], ],
"šiling": "KES", "šiling": "KES",
"سوم قرغيزستاني": "KGS",
"⃀": "KGS", "⃀": "KGS",
"som de kirguizistan": "KGS", "som de kirguizistan": "KGS",
"som del kirguizistan": "KGS", "som del kirguizistan": "KGS",
@ -6611,6 +6607,7 @@
"som quirguiz": "KGS", "som quirguiz": "KGS",
"some": "KGS", "some": "KGS",
"валюта киргизии": "KGS", "валюта киргизии": "KGS",
"валюта кыргызстана": "KGS",
"кыргызский сом": "KGS", "кыргызский сом": "KGS",
"сом": [ "сом": [
"UZS", "UZS",
@ -6971,6 +6968,7 @@
"ariary de madagáscar": "MGA", "ariary de madagáscar": "MGA",
"ариари": "MGA", "ариари": "MGA",
"валюта мадагаскара": "MGA", "валюта мадагаскара": "MGA",
"madagaskarski ariari": "MGA",
"малгашки ариари": "MGA", "малгашки ариари": "MGA",
"madagaskisk ariary": "MGA", "madagaskisk ariary": "MGA",
"ar": "MGA", "ar": "MGA",
@ -7132,7 +7130,6 @@
"malediven rupie": "MVR", "malediven rupie": "MVR",
"rupia maldiva": "MVR", "rupia maldiva": "MVR",
"maldív szigeteki rúfia": "MVR", "maldív szigeteki rúfia": "MVR",
"rufiyaa maladewa": "MVR",
"ルフィア": "MVR", "ルフィア": "MVR",
"ルフィヤー": "MVR", "ルフィヤー": "MVR",
"루피야": "MVR", "루피야": "MVR",
@ -8161,6 +8158,7 @@
"الليرة السورية": "SYP", "الليرة السورية": "SYP",
"syr£": "SYP", "syr£": "SYP",
"الليره السورية": "SYP", "الليره السورية": "SYP",
"ل.س": "SYP",
"ليرات سورية": "SYP", "ليرات سورية": "SYP",
"ليره سوريه": "SYP", "ليره سوريه": "SYP",
"সিরিয়ান পাউন্ড": "SYP", "সিরিয়ান পাউন্ড": "SYP",
@ -8324,6 +8322,7 @@
"dinar da tunísia": "TND", "dinar da tunísia": "TND",
"dinar tunisino": "TND", "dinar tunisino": "TND",
"валюта туниса": "TND", "валюта туниса": "TND",
"milim": "TND",
"тунижански динар": "TND", "тунижански динар": "TND",
"د.ت": "TND", "د.ت": "TND",
"T$": "TOP", "T$": "TOP",
@ -8605,13 +8604,19 @@
"buck": "USD", "buck": "USD",
"greenback": "USD", "greenback": "USD",
"us $": "USD", "us $": "USD",
"$usd": "USD",
"american dollar": "USD", "american dollar": "USD",
"american dollars": "USD",
"u. s. dollar": "USD", "u. s. dollar": "USD",
"u.s. dollar": [ "u.s. dollar": [
"USN", "USN",
"USD" "USD"
], ],
"us dollars": "USD",
"us$": "USD", "us$": "USD",
"usa dollars": "USD",
"usd$": "USD",
"united states dollars": "USD",
"dólar americano": "USD", "dólar americano": "USD",
"dólar de américa": "USD", "dólar de américa": "USD",
"dólar de ee.uu.": "USD", "dólar de ee.uu.": "USD",
@ -8622,6 +8627,7 @@
"dólar de los estados unidos": "USD", "dólar de los estados unidos": "USD",
"dólar norteamericano": "USD", "dólar norteamericano": "USD",
"dólares": "USD", "dólares": "USD",
"dólares estadounidenses": "USD",
"$ us": "USD", "$ us": "USD",
"dollar des états unis": "USD", "dollar des états unis": "USD",
"dollar étatsunien": "USD", "dollar étatsunien": "USD",
@ -8830,7 +8836,6 @@
"silver as currency": "XAG", "silver as currency": "XAG",
"la plata como inversión": "XAG", "la plata como inversión": "XAG",
"la plata como inversion": "XAG", "la plata como inversion": "XAG",
"argent d'investissement": "XAG",
"argent en tant qu'investissement": "XAG", "argent en tant qu'investissement": "XAG",
"投資対象としての銀": "XAG", "投資対象としての銀": "XAG",
"серебро как инвестиция": "XAG", "серебро как инвестиция": "XAG",
@ -9026,10 +9031,14 @@
"남아프리카공화국 랜드": "ZAR", "남아프리카공화국 랜드": "ZAR",
"par randas": "ZAR", "par randas": "ZAR",
"pietų afrikos randas": "ZAR", "pietų afrikos randas": "ZAR",
"dienvidāfrikas rands": "ZAR",
"dienvidāfrikas republikas rands": "ZAR",
"dienvidāfrikas rends": "ZAR",
"rands": "ZAR",
"rends": "ZAR",
"rand południowoafrykański": "ZAR", "rand południowoafrykański": "ZAR",
"rand sul africano": "ZAR", "rand sul africano": "ZAR",
"rand sulafricano": "ZAR", "rand sulafricano": "ZAR",
"rands": "ZAR",
"валюта юар": "ZAR", "валюта юар": "ZAR",
"ранд юар": "ZAR", "ранд юар": "ZAR",
"рэнд": "ZAR", "рэнд": "ZAR",
@ -9040,7 +9049,6 @@
"južnoafriški rand": "ZAR", "južnoafriški rand": "ZAR",
"sydafrikansk rand": "ZAR", "sydafrikansk rand": "ZAR",
"південно африканський ранд": "ZAR", "південно африканський ранд": "ZAR",
"كواشا زامبية": "ZMW",
"kwacha de zàmbia": "ZMW", "kwacha de zàmbia": "ZMW",
"ngwee": "ZMW", "ngwee": "ZMW",
"sambia kwacha": "ZMW", "sambia kwacha": "ZMW",
@ -9110,7 +9118,7 @@
"cs": "afghánský afghání", "cs": "afghánský afghání",
"da": "Afghani", "da": "Afghani",
"de": "Afghani", "de": "Afghani",
"en": "Afghan afghani", "en": "afghani",
"eo": "afgana afganio", "eo": "afgana afganio",
"es": "afgani afgano", "es": "afgani afgano",
"et": "Afganistani afgaani", "et": "Afganistani afgaani",
@ -9465,14 +9473,14 @@
"cs": "Konvertibilní marka", "cs": "Konvertibilní marka",
"da": "Konvertibilna mark", "da": "Konvertibilna mark",
"de": "konvertible Mark", "de": "konvertible Mark",
"en": "Bosnia and Herzegovina convertible mark", "en": "convertible mark",
"eo": "konvertebla marko", "eo": "konvertebla marko",
"es": "marco bosnioherzegovino", "es": "marco bosnioherzegovino",
"fi": "Bosnian ja Hertsegovinan vaihdettava markka", "fi": "Bosnian ja Hertsegovinan vaihdettava markka",
"fr": "mark convertible de Bosnie-Herzégovine", "fr": "mark convertible de Bosnie-Herzégovine",
"gl": "Marco convertible", "gl": "Marco convertible",
"he": "מארק סחיר", "he": "מארק סחיר",
"hr": "Konvertibilna marka", "hr": "konvertibilna marka",
"hu": "bosnyák konvertibilis márka", "hu": "bosnyák konvertibilis márka",
"id": "Mark Bosnia dan Herzegovina", "id": "Mark Bosnia dan Herzegovina",
"it": "marco bosniaco", "it": "marco bosniaco",
@ -9721,7 +9729,7 @@
"he": "דולר ברוניי", "he": "דולר ברוניי",
"hr": "Brunejski dolar", "hr": "Brunejski dolar",
"hu": "brunei dollár", "hu": "brunei dollár",
"id": "Dolar Brunei Darussalam", "id": "dolar Brunei",
"it": "dollaro del Brunei", "it": "dollaro del Brunei",
"ja": "ブルネイ・ドル", "ja": "ブルネイ・ドル",
"ko": "브루나이 달러", "ko": "브루나이 달러",
@ -10463,7 +10471,8 @@
"sv": "Djiboutisk franc", "sv": "Djiboutisk franc",
"tr": "Cibuti frangı", "tr": "Cibuti frangı",
"uk": "Франк Джибуті", "uk": "Франк Джибуті",
"he": "פרנק ג'יבוטי" "he": "פרנק ג'יבוטי",
"oc": "Franc jibotian"
}, },
"DKK": { "DKK": {
"af": "Deense kroon", "af": "Deense kroon",
@ -10681,7 +10690,8 @@
"sr": "етиопски бир", "sr": "етиопски бир",
"sv": "Etiopisk Birr", "sv": "Etiopisk Birr",
"tr": "Birr", "tr": "Birr",
"uk": "Ефіопський бир" "uk": "Ефіопський бир",
"sl": "etiopski bir"
}, },
"EUR": { "EUR": {
"af": "Euro", "af": "Euro",
@ -11013,6 +11023,7 @@
"lt": "Gvinėjos frankas", "lt": "Gvinėjos frankas",
"ms": "Franc Guinea", "ms": "Franc Guinea",
"nl": "Guineese frank", "nl": "Guineese frank",
"oc": "Franc guinean",
"pl": "frank gwinejski", "pl": "frank gwinejski",
"pt": "Franco da Guiné", "pt": "Franco da Guiné",
"ru": "Гвинейский франк", "ru": "Гвинейский франк",
@ -11054,7 +11065,8 @@
"sv": "Quetzal", "sv": "Quetzal",
"tr": "Guatemala quetzalı", "tr": "Guatemala quetzalı",
"uk": "Гватемальський кетсаль", "uk": "Гватемальський кетсаль",
"cy": "Quetzal Gwatemala" "cy": "Quetzal Gwatemala",
"sl": "gvatemalski kvecal"
}, },
"GYD": { "GYD": {
"ar": "دولار غوياني", "ar": "دولار غوياني",
@ -11257,7 +11269,7 @@
"fr": "roupie indonésienne", "fr": "roupie indonésienne",
"hr": "Indonezijska rupija", "hr": "Indonezijska rupija",
"hu": "indonéz rúpia", "hu": "indonéz rúpia",
"id": "Rupiah Indonesia", "id": "rupiah Indonesia",
"it": "rupia indonesiana", "it": "rupia indonesiana",
"ja": "ルピア", "ja": "ルピア",
"ko": "인도네시아 루피아", "ko": "인도네시아 루피아",
@ -11402,7 +11414,7 @@
"sv": "Irakisk dinar", "sv": "Irakisk dinar",
"th": "ดินาร์อิรัก", "th": "ดินาร์อิรัก",
"tr": "Irak dinarı", "tr": "Irak dinarı",
"uk": "Іракський динар", "uk": "іракський динар",
"sl": "iraški dinar", "sl": "iraški dinar",
"ta": "இராக்கிய தீனார்" "ta": "இராக்கிய தீனார்"
}, },
@ -11636,7 +11648,7 @@
"sl": "kenijski šiling" "sl": "kenijski šiling"
}, },
"KGS": { "KGS": {
"ar": "سوم قرغيزستاني", "ar": "سوم قيرغيزستاني",
"bg": "Киргизстански сом", "bg": "Киргизстански сом",
"ca": "som kirguís", "ca": "som kirguís",
"cs": "Kyrgyzský som", "cs": "Kyrgyzský som",
@ -11825,6 +11837,8 @@
"en": "Kuwaiti dinar", "en": "Kuwaiti dinar",
"eo": "kuvajta dinaro", "eo": "kuvajta dinaro",
"es": "dinar kuwaití", "es": "dinar kuwaití",
"et": "Kuveidi dinaar",
"eu": "Kuwaitar dinar",
"fi": "Kuwaitin dinaari", "fi": "Kuwaitin dinaari",
"fr": "dinar koweïtien", "fr": "dinar koweïtien",
"he": "דינר כוויתי", "he": "דינר כוויתי",
@ -12223,7 +12237,7 @@
"pl": "Ariary", "pl": "Ariary",
"pt": "ariary malgaxe", "pt": "ariary malgaxe",
"ru": "малагасийский ариари", "ru": "малагасийский ариари",
"sl": "Malgaški ariari", "sl": "malgaški ariari",
"sr": "ариари", "sr": "ариари",
"sv": "Madagaskisk ariary", "sv": "Madagaskisk ariary",
"tr": "Ariary", "tr": "Ariary",
@ -12455,7 +12469,7 @@
"fr": "rufiyaa", "fr": "rufiyaa",
"hr": "Maldivska rufija", "hr": "Maldivska rufija",
"hu": "maldív rúfia", "hu": "maldív rúfia",
"id": "Rufiyaa", "id": "rufiyaa Maladewa",
"it": "rufiyaa delle Maldive", "it": "rufiyaa delle Maldive",
"ja": "ルフィヤ", "ja": "ルフィヤ",
"ko": "몰디브 루피야", "ko": "몰디브 루피야",
@ -14014,7 +14028,7 @@
"pl": "Dinar tunezyjski", "pl": "Dinar tunezyjski",
"pt": "dinar tunisiano", "pt": "dinar tunisiano",
"ru": "тунисский динар", "ru": "тунисский динар",
"sl": "Tunizijski dinar", "sl": "tunizijski dinar",
"sr": "туниски динар", "sr": "туниски динар",
"sv": "Tunisisk dinar", "sv": "Tunisisk dinar",
"tr": "Tunus dinarı", "tr": "Tunus dinarı",
@ -14400,12 +14414,13 @@
}, },
"VED": { "VED": {
"en": "Digital bolívar", "en": "Digital bolívar",
"fr": "bolivar numérique",
"es": "Bolívar digital" "es": "Bolívar digital"
}, },
"VES": { "VES": {
"en": "sovereign bolivar", "en": "sovereign bolivar",
"es": "bolívar soberano", "es": "bolívar soberano",
"fr": "Bolivar souverain", "fr": "bolivar souverain",
"hu": "venezuelai bolívar", "hu": "venezuelai bolívar",
"ja": "ボリバル・ソベラノ", "ja": "ボリバル・ソベラノ",
"pt": "Bolívar soberano", "pt": "Bolívar soberano",
@ -14555,10 +14570,10 @@
"de": "Silberpreis", "de": "Silberpreis",
"en": "silver as an investment", "en": "silver as an investment",
"es": "La plata como inversión", "es": "La plata como inversión",
"fr": "argent d'investissement",
"ms": "Perak sebagai pelaburan", "ms": "Perak sebagai pelaburan",
"sv": "Silver som investering", "sv": "Silver som investering",
"vi": "Bạc như một khoản đầu tư", "vi": "Bạc như một khoản đầu tư",
"fr": "argent d'investissement",
"ja": "投資対象としての銀", "ja": "投資対象としての銀",
"ru": "серебро как инвестиция" "ru": "серебро как инвестиция"
}, },
@ -14835,10 +14850,11 @@
"tr": "Güney Afrika randı", "tr": "Güney Afrika randı",
"uk": "Ранд", "uk": "Ранд",
"cy": "Rand De Affrica", "cy": "Rand De Affrica",
"lv": "Dienvidāfrikas rands",
"sl": "južnoafriški rand" "sl": "južnoafriški rand"
}, },
"ZMW": { "ZMW": {
"ar": "كواشا زامبية", "ar": "كواشا زامبي",
"ca": "kwacha zambià", "ca": "kwacha zambià",
"cs": "Zambijská kwacha", "cs": "Zambijská kwacha",
"da": "Zambianske kwacha", "da": "Zambianske kwacha",
@ -14866,7 +14882,8 @@
"sv": "Zambisk kwacha", "sv": "Zambisk kwacha",
"tr": "Zambiya kwachası", "tr": "Zambiya kwachası",
"uk": "Замбійська квача", "uk": "Замбійська квача",
"oc": "Kwacha zambian" "oc": "Kwacha zambian",
"sl": "zambijska kvača"
}, },
"ZWL": { "ZWL": {
"en": "Zimbabwean dollar", "en": "Zimbabwean dollar",

File diff suppressed because it is too large Load diff

69
searx/data/locales.json Normal file
View file

@ -0,0 +1,69 @@
{
"LOCALE_NAMES": {
"af": "Afrikaans",
"ar": "العربية (Arabic)",
"bg": "Български (Bulgarian)",
"bn": "বাংলা (Bangla)",
"bo": "བོད་སྐད་ (Tibetan)",
"ca": "Català (Catalan)",
"cs": "Čeština (Czech)",
"cy": "Cymraeg (Welsh)",
"da": "Dansk (Danish)",
"de": "Deutsch (German)",
"dv": "ދިވެހި (Dhivehi)",
"el-GR": "Ελληνικά, Ελλάδα (Greek, Greece)",
"en": "English",
"eo": "Esperanto",
"es": "Español (Spanish)",
"et": "Eesti (Estonian)",
"eu": "Euskara (Basque)",
"fa-IR": "فارسی, ایران (Persian, Iran)",
"fi": "Suomi (Finnish)",
"fil": "Filipino",
"fr": "Français (French)",
"gl": "Galego (Galician)",
"he": "עברית (Hebrew)",
"hr": "Hrvatski (Croatian)",
"hu": "Magyar (Hungarian)",
"ia": "Interlingua",
"id": "Indonesia (Indonesian)",
"it": "Italiano (Italian)",
"ja": "日本語 (Japanese)",
"ko": "한국어 (Korean)",
"lt": "Lietuvių (Lithuanian)",
"lv": "Latviešu (Latvian)",
"ml": "മലയാളം (Malayalam)",
"ms": "Melayu (Malay)",
"nb-NO": "Norsk bokmål, Norge (Norwegian bokmål, Norway)",
"nl": "Nederlands (Dutch)",
"nl-BE": "Nederlands, België (Dutch, Belgium)",
"oc": "Occitan",
"pa": "ਪੰਜਾਬੀ (Punjabi)",
"pap": "Papiamento",
"pl": "Polski (Polish)",
"pt": "Português (Portuguese)",
"pt-BR": "Português, Brasil (Portuguese, Brazil)",
"ro": "Română (Romanian)",
"ru": "Русский (Russian)",
"si": "සිංහල (Sinhala)",
"sk": "Slovenčina (Slovak)",
"sl": "Slovenščina (Slovenian)",
"sr": "Српски (Serbian)",
"sv": "Svenska (Swedish)",
"szl": "Ślōnski (Silesian)",
"ta": "தமிழ் (Tamil)",
"te": "తెలుగు (Telugu)",
"th": "ไทย (Thai)",
"tr": "Türkçe (Turkish)",
"uk": "Українська (Ukrainian)",
"vi": "Tiếng việt (Vietnamese)",
"zh-HK": "中文, 中國香港特別行政區 (Chinese, Hong Kong SAR China)",
"zh-Hans-CN": "中文, 中国 (Chinese, China)",
"zh-Hant-TW": "中文, 台灣 (Chinese, Taiwan)"
},
"RTL_LOCALES": [
"ar",
"fa-IR",
"he"
]
}

View file

@ -1,7 +1,7 @@
{ {
"versions": [ "versions": [
"122.0", "123.0",
"121.0" "122.0"
], ],
"os": [ "os": [
"Windows NT 10.0; Win64; x64", "Windows NT 10.0; Win64; x64",

View file

@ -562,7 +562,6 @@
"Q3396758": "daa", "Q3396758": "daa",
"Q3414243": "qps", "Q3414243": "qps",
"Q3421309": "R_J", "Q3421309": "R_J",
"Q3495543": "mbar",
"Q355198": "px", "Q355198": "px",
"Q3674704": "km/s", "Q3674704": "km/s",
"Q3675550": "mm³", "Q3675550": "mm³",

View file

@ -57,11 +57,10 @@ def response(resp):
results.append( results.append(
{ {
'url': 'https://artic.edu/artworks/%(id)s' % result, 'url': 'https://artic.edu/artworks/%(id)s' % result,
'title': result['title'] + " (%(date_display)s) // %(artist_display)s" % result, 'title': result['title'] + " (%(date_display)s) // %(artist_display)s" % result,
'content': result['medium_display'], 'content': "%(medium_display)s // %(dimensions)s" % result,
'author': ', '.join(result['artist_titles']), 'author': ', '.join(result['artist_titles']),
'img_src': image_api + '/%(image_id)s/full/843,/0/default.jpg' % result, 'img_src': image_api + '/%(image_id)s/full/843,/0/default.jpg' % result,
'img_format': result['dimensions'],
'template': 'images.html', 'template': 'images.html',
} }
) )

74
searx/engines/ask.py Normal file
View file

@ -0,0 +1,74 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# lint: pylint
"""Ask.com"""
from urllib.parse import urlencode
import dateutil
from lxml import html
from searx import utils
# Metadata
about = {
"website": "https://www.ask.com/",
"wikidata_id": 'Q847564',
"official_api_documentation": None,
"use_official_api": False,
"require_api_key": False,
"results": "HTML",
}
# Engine Configuration
categories = ['general']
paging = True
# Base URL
base_url = "https://www.ask.com/web"
def request(query, params):
query_params = {
"q": query,
"page": params["pageno"],
}
params["url"] = f"{base_url}?{urlencode(query_params)}"
return params
def response(resp):
start_tag = 'window.MESON.initialState = {'
end_tag = '}};'
dom = html.fromstring(resp.text)
script = utils.eval_xpath_getindex(dom, '//script', 0, default=None).text
pos = script.index(start_tag) + len(start_tag) - 1
script = script[pos:]
pos = script.index(end_tag) + len(end_tag) - 1
script = script[:pos]
json_resp = utils.js_variable_to_python(script)
results = []
for item in json_resp['search']['webResults']['results']:
pubdate_original = item.get('pubdate_original')
if pubdate_original:
pubdate_original = dateutil.parser.parse(pubdate_original)
metadata = [item.get(field) for field in ['category_l1', 'catsy'] if item.get(field)]
results.append(
{
"url": item['url'],
"title": item['title'],
"content": item['abstract'],
"publishedDate": pubdate_original,
# "img_src": item.get('image_url') or None, # these are not thumbs / to large
"metadata": ' | '.join(metadata),
}
)
return results

View file

@ -92,7 +92,7 @@ def response(resp):
metadata = json.loads(result.xpath('.//a[@class="iusc"]/@m')[0]) metadata = json.loads(result.xpath('.//a[@class="iusc"]/@m')[0])
title = ' '.join(result.xpath('.//div[@class="infnmpt"]//a/text()')).strip() title = ' '.join(result.xpath('.//div[@class="infnmpt"]//a/text()')).strip()
img_format = ' '.join(result.xpath('.//div[@class="imgpt"]/div/span/text()')).strip() img_format = ' '.join(result.xpath('.//div[@class="imgpt"]/div/span/text()')).strip().split(" · ")
source = ' '.join(result.xpath('.//div[@class="imgpt"]//div[@class="lnkw"]//a/text()')).strip() source = ' '.join(result.xpath('.//div[@class="imgpt"]//div[@class="lnkw"]//a/text()')).strip()
results.append( results.append(
{ {
@ -103,7 +103,8 @@ def response(resp):
'content': metadata['desc'], 'content': metadata['desc'],
'title': title, 'title': title,
'source': source, 'source': source,
'img_format': img_format, 'resolution': img_format[0],
'img_format': img_format[1] if len(img_format) >= 2 else None,
} }
) )
return results return results

View file

@ -367,9 +367,10 @@ def _parse_images(json_resp):
'title': result['title'], 'title': result['title'],
'content': result['description'], 'content': result['description'],
'template': 'images.html', 'template': 'images.html',
'img_format': result['properties']['format'], 'resolution': result['properties']['format'],
'source': result['source'], 'source': result['source'],
'img_src': result['properties']['url'], 'img_src': result['properties']['url'],
'thumbnail_src': result['thumbnail']['src'],
} }
result_list.append(item) result_list.append(item)

View file

@ -88,11 +88,10 @@ def response(resp):
results.append( results.append(
{ {
'url': 'https://artic.edu/artworks/%(id)s' % result, 'url': 'https://artic.edu/artworks/%(id)s' % result,
'title': result['title'] + " (%(date_display)s) // %(artist_display)s" % result, 'title': result['title'] + " (%(date_display)s) // %(artist_display)s" % result,
'content': result['medium_display'], 'content': "%(medium_display)s // %(dimensions)s" % result,
'author': ', '.join(result['artist_titles']), 'author': ', '.join(result['artist_titles']),
'img_src': image_api + '/%(image_id)s/full/843,/0/default.jpg' % result, 'img_src': image_api + '/%(image_id)s/full/843,/0/default.jpg' % result,
'img_format': result['dimensions'],
'template': 'images.html', 'template': 'images.html',
} }
) )

View file

@ -5,7 +5,6 @@
""" """
# pylint: disable=use-dict-literal # pylint: disable=use-dict-literal
from json import loads
from urllib.parse import urlencode from urllib.parse import urlencode
from dateutil import parser from dateutil import parser
@ -18,7 +17,7 @@ about = {
"results": 'JSON', "results": 'JSON',
} }
categories = ['it'] # optional categories = ['it', 'packages'] # optional
paging = True paging = True
base_url = "https://hub.docker.com/" base_url = "https://hub.docker.com/"
@ -38,26 +37,24 @@ def response(resp):
resp: requests response object resp: requests response object
''' '''
results = [] results = []
body = loads(resp.text) body = resp.json()
# Make sure `summaries` isn't `null` for item in body.get("summaries", []):
search_res = body.get("summaries") filter_type = item.get("filter_type")
if search_res: is_official = filter_type in ["store", "official"]
for item in search_res:
result = {}
# Make sure correct URL is set result = {
filter_type = item.get("filter_type") 'template': 'packages.html',
is_official = filter_type in ["store", "official"] 'url': base_url + ("_/" if is_official else "r/") + item.get("slug", ""),
'title': item.get("name"),
if is_official: 'content': item.get("short_description"),
result["url"] = base_url + "_/" + item.get('slug', "") 'img_src': item["logo_url"].get("large") or item["logo_url"].get("small"),
else: 'package_name': item.get("name"),
result["url"] = base_url + "r/" + item.get('slug', "") 'maintainer': item["publisher"].get("name"),
result["title"] = item.get("name") 'publishedDate': parser.parse(item.get("updated_at") or item.get("created_at")),
result["content"] = item.get("short_description") 'popularity': item.get("pull_count", "0") + " pulls",
result["publishedDate"] = parser.parse(item.get("updated_at") or item.get("created_at")) 'tags': [arch['name'] for arch in item["architectures"]],
result["thumbnail"] = item["logo_url"].get("large") or item["logo_url"].get("small") }
results.append(result) results.append(result)
return results return results

View file

@ -96,7 +96,7 @@ def _image_result(result):
'content': '', 'content': '',
'thumbnail_src': result['thumbnail'], 'thumbnail_src': result['thumbnail'],
'img_src': result['image'], 'img_src': result['image'],
'img_format': '%s x %s' % (result['width'], result['height']), 'resolution': '%s x %s' % (result['width'], result['height']),
'source': result['source'], 'source': result['source'],
} }

View file

@ -110,7 +110,7 @@ def response(resp): # pylint: disable=too-many-branches
continue continue
img_src = size_data['url'] img_src = size_data['url']
img_format = f"{size_data['width']} x {size_data['height']}" resolution = f"{size_data['width']} x {size_data['height']}"
# For a bigger thumbnail, keep only the url_z, not the url_n # For a bigger thumbnail, keep only the url_z, not the url_n
if 'n' in photo['sizes']['data']: if 'n' in photo['sizes']['data']:
@ -131,7 +131,7 @@ def response(resp): # pylint: disable=too-many-branches
'img_src': img_src, 'img_src': img_src,
'thumbnail_src': thumbnail_src, 'thumbnail_src': thumbnail_src,
'source': source, 'source': source,
'img_format': img_format, 'resolution': resolution,
'template': 'images.html', 'template': 'images.html',
} }
result['author'] = author.encode(errors='ignore').decode() result['author'] = author.encode(errors='ignore').decode()

View file

@ -1,10 +1,11 @@
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
""" # lint: pylint
Github (IT)
"""Github (IT)
""" """
from json import loads
from urllib.parse import urlencode from urllib.parse import urlencode
from dateutil import parser
# about # about
about = { about = {
@ -20,42 +21,48 @@ about = {
categories = ['it', 'repos'] categories = ['it', 'repos']
# search-url # search-url
search_url = 'https://api.github.com/search/repositories?sort=stars&order=desc&{query}' # noqa search_url = 'https://api.github.com/search/repositories?sort=stars&order=desc&{query}'
accept_header = 'application/vnd.github.preview.text-match+json' accept_header = 'application/vnd.github.preview.text-match+json'
# do search-request
def request(query, params): def request(query, params):
params['url'] = search_url.format(query=urlencode({'q': query}))
params['url'] = search_url.format(query=urlencode({'q': query}))
params['headers']['Accept'] = accept_header params['headers']['Accept'] = accept_header
return params return params
# get response from search-request
def response(resp): def response(resp):
results = [] results = []
search_res = loads(resp.text) for item in resp.json().get('items', []):
content = [item.get(i) for i in ['language', 'description'] if item.get(i)]
# check if items are received # license can be None
if 'items' not in search_res: lic = item.get('license') or {}
return [] lic_url = None
if lic.get('spdx_id'):
lic_url = f"https://spdx.org/licenses/{lic.get('spdx_id')}.html"
# parse results results.append(
for res in search_res['items']: {
title = res['name'] 'template': 'packages.html',
url = res['html_url'] 'url': item.get('html_url'),
'title': item.get('full_name'),
'content': ' / '.join(content),
'img_src': item.get('owner', {}).get('avatar_url'),
'package_name': item.get('name'),
# 'version': item.get('updated_at'),
'maintainer': item.get('owner', {}).get('login'),
'publishedDate': parser.parse(item.get("updated_at") or item.get("created_at")),
'tags': item.get('topics', []),
'popularity': item.get('stargazers_count'),
'license_name': lic.get('name'),
'license_url': lic_url,
'homepage': item.get('homepage'),
'source_code_url': item.get('clone_url'),
}
)
if res['description']:
content = res['description'][:500]
else:
content = ''
# append result
results.append({'url': url, 'title': title, 'content': content})
# return results
return results return results

View file

@ -103,7 +103,7 @@ def response(resp):
'title': item["result"]["page_title"], 'title': item["result"]["page_title"],
'content': item["text_in_grid"]["snippet"], 'content': item["text_in_grid"]["snippet"],
'source': item["result"]["site_title"], 'source': item["result"]["site_title"],
'img_format': f'{item["original_image"]["width"]} x {item["original_image"]["height"]}', 'resolution': f'{item["original_image"]["width"]} x {item["original_image"]["height"]}',
'img_src': item["original_image"]["url"], 'img_src': item["original_image"]["url"],
'thumbnail_src': item["thumbnail"]["url"], 'thumbnail_src': item["thumbnail"]["url"],
'template': 'images.html', 'template': 'images.html',

View file

@ -16,7 +16,7 @@ about = {
engine_type = 'online_dictionary' engine_type = 'online_dictionary'
categories = ['general'] categories = ['general']
url = "https://lingva.thedaviddelta.com/" url = "https://lingva.thedaviddelta.com"
search_url = "{url}/api/v1/{from_lang}/{to_lang}/{query}" search_url = "{url}/api/v1/{from_lang}/{to_lang}/{query}"
@ -48,8 +48,6 @@ def response(resp):
infobox = "" infobox = ""
for translation in info["extraTranslations"]: for translation in info["extraTranslations"]:
infobox += f"<b>{translation['type']}</b>"
for word in translation["list"]: for word in translation["list"]:
infobox += f"<dl><dt>{word['word']}</dt>" infobox += f"<dl><dt>{word['word']}</dt>"

101
searx/engines/livespace.py Executable file
View file

@ -0,0 +1,101 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# lint: pylint
"""LiveSpace (Videos)
.. hint::
This engine only search for **live streams**!
"""
from urllib.parse import urlencode
from datetime import datetime
from babel import dates
about = {
"website": 'https://live.space',
"wikidata_id": None,
"official_api_documentation": None,
"use_official_api": True,
"require_api_key": False,
"results": 'JSON',
}
categories = ['videos']
base_url = 'https://backend.live.space'
# engine dependent config
paging = True
results_per_page = 10
def request(query, params):
args = {'page': params['pageno'] - 1, 'searchKey': query, 'size': results_per_page}
params['url'] = f"{base_url}/search/public/stream?{urlencode(args)}"
params['headers'] = {'Accept': 'application/json', 'Content-Type': 'application/json'}
return params
def response(resp):
results = []
json = resp.json()
now = datetime.now()
# for live videos
for result in json.get('result', []):
title = result.get("title")
thumbnailUrl = result.get("thumbnailUrl")
category = result.get("category/name")
username = result.get("user", {}).get("userName", "")
url = f'https://live.space/watch/{username}'
# stream tags
# currently the api seems to always return null before the first tag,
# so strip that unless it's not already there
tags = ''
if result.get("tags"):
tags = [x for x in result.get("tags").split(';') if x and x != 'null']
tags = ', '.join(tags)
content = []
if category:
content.append(f'category - {category}')
if tags and len(tags) > 0:
content.append(f'tags - {tags}')
# time & duration
start_time = None
if result.get("startTimeStamp"):
start_time = datetime.fromtimestamp(result.get("startTimeStamp") / 1000)
# for VODs (videos on demand)
end_time = None
if result.get("endTimeStamp"):
end_time = datetime.fromtimestamp(result.get("endTimeStamp") / 1000)
timestring = ""
if start_time:
delta = (now if end_time is None else end_time) - start_time
timestring = dates.format_timedelta(delta, granularity='second')
results.append(
{
'url': url,
'title': title,
'content': "No category or tags." if len(content) == 0 else ' '.join(content),
'author': username,
'length': (">= " if end_time is None else "") + timestring,
'publishedDate': start_time,
'thumbnail': thumbnailUrl,
'template': 'videos.html',
}
)
return results

59
searx/engines/mozhi.py Normal file
View file

@ -0,0 +1,59 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# lint: pylint
"""Mozhi (alternative frontend for popular translation engines)"""
import random
import re
from urllib.parse import urlencode
about = {
"website": 'https://codeberg.org/aryak/mozhi',
"wikidata_id": None,
"official_api_documentation": 'https://mozhi.aryak.me/api/swagger/index.html',
"use_official_api": True,
"require_api_key": False,
"results": 'JSON',
}
engine_type = 'online_dictionary'
categories = ['general']
base_url = "https://mozhi.aryak.me"
mozhi_engine = "google"
re_transliteration_unsupported = "Direction '.*' is not supported"
def request(_query, params):
request_url = random.choice(base_url) if isinstance(base_url, list) else base_url
args = {'from': params['from_lang'][1], 'to': params['to_lang'][1], 'text': params['query'], 'engine': mozhi_engine}
params['url'] = f"{request_url}/api/translate?{urlencode(args)}"
return params
def response(resp):
translation = resp.json()
infobox = ""
if translation['target_transliteration'] and not re.match(
re_transliteration_unsupported, translation['target_transliteration']
):
infobox = f"<b>{translation['target_transliteration']}</b>"
if translation['word_choices']:
for word in translation['word_choices']:
infobox += f"<dl><dt>{word['word']}</dt>"
for example in word['examples_target']:
infobox += f"<dd>{re.sub(r'<|>', '', example)}</dd>"
infobox += "</dl>"
result = {
'infobox': translation['translated-text'],
'content': infobox,
}
return [result]

72
searx/engines/pixiv.py Normal file
View file

@ -0,0 +1,72 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# lint: pylint
"""Pixiv (images)"""
from urllib.parse import urlencode
import random
# Engine metadata
about = {
"website": 'https://www.pixiv.net/',
"wikidata_id": 'Q306956',
"official_api_documentation": None,
"use_official_api": False,
"require_api_key": False,
"results": 'JSON',
}
# Engine configuration
paging = True
categories = ['images']
# Search URL
base_url = "https://www.pixiv.net/ajax/search/illustrations"
pixiv_image_proxies: list = []
def request(query, params):
query_params = {
"word": query,
"order": "date_d",
"mode": "all",
"p": params["pageno"],
"s_mode": "s_tag_full",
"type": "illust_and_ugoira",
"lang": "en",
}
params["url"] = f"{base_url}/{query}?{urlencode(query_params)}"
return params
def response(resp):
results = []
data = resp.json()
for item in data["body"]["illust"]["data"]:
image_url = item["url"]
pixiv_proxy = random.choice(pixiv_image_proxies)
proxy_image_url = image_url.replace("https://i.pximg.net", pixiv_proxy)
proxy_full_image_url = (
proxy_image_url.replace("/c/250x250_80_a2/", "/")
.replace("_square1200.jpg", "_master1200.jpg")
.replace("custom-thumb", "img-master")
.replace("_custom1200.jpg", "_master1200.jpg")
)
results.append(
{
"title": item.get("title"),
"url": proxy_full_image_url,
'content': item.get('alt'),
"author": f"{item.get('userName')} (ID: {item.get('userId')})",
"img_src": proxy_full_image_url,
"thumbnail_src": proxy_image_url,
"source": 'pixiv.net',
"template": "images.html",
}
)
return results

68
searx/engines/pypi.py Normal file
View file

@ -0,0 +1,68 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# lint: pylint
"""pypi.org
"""
from urllib.parse import urlencode
from dateutil import parser
from lxml import html
from searx.utils import (
eval_xpath_getindex,
eval_xpath_list,
extract_text,
)
# about
about = {
"website": "https://pypi.org",
"wikidata_id": "Q2984686",
"official_api_documentation": "https://warehouse.readthedocs.io/api-reference/index.html",
"use_official_api": False,
"require_api_key": False,
"results": "HTML",
}
categories = ['it', 'packages']
# engine dependent config
first_page_num = 1
base_url = "https://pypi.org"
search_url = base_url + '/search/?{query}'
def request(query, params):
args = {
"q": query,
"page": params['pageno'],
}
params['url'] = search_url.format(query=urlencode(args))
return params
def response(resp):
results = []
dom = html.fromstring(resp.text)
for entry in eval_xpath_list(dom, '/html/body/main/div/div/div/form/div/ul/li/a[@class="package-snippet"]'):
url = base_url + extract_text(eval_xpath_getindex(entry, './@href', 0)) # type: ignore
title = extract_text(eval_xpath_getindex(entry, './h3/span[@class="package-snippet__name"]', 0))
version = extract_text(eval_xpath_getindex(entry, './h3/span[@class="package-snippet__version"]', 0))
created_at = extract_text(
eval_xpath_getindex(entry, './h3/span[@class="package-snippet__created"]/time/@datetime', 0)
)
content = extract_text(eval_xpath_getindex(entry, './p', 0))
results.append(
{
"template": "packages.html",
"url": url,
"title": title,
'package_name': title,
"content": content,
"version": version,
'publishedDate': parser.parse(created_at), # type: ignore
}
)
return results

View file

@ -265,6 +265,8 @@ def parse_web_api(resp):
'template': 'images.html', 'template': 'images.html',
'thumbnail_src': thumbnail, 'thumbnail_src': thumbnail,
'img_src': img_src, 'img_src': img_src,
'resolution': f"{item['width']} x {item['height']}",
'img_format': item.get('thumb_type'),
} }
) )

View file

@ -122,7 +122,7 @@ def _images_response(json):
'url': summary['refererurl'], 'url': summary['refererurl'],
'title': result['title'], 'title': result['title'],
'img_src': result['url'], 'img_src': result['url'],
'img_format': f"{summary['width']}x{summary['height']}", 'resolution': f"{summary['width']}x{summary['height']}",
'thumbnail_src': 'https://media.seekr.com/engine/rp/' + summary['tg'] + '/?src= ' + result['thumbnail'], 'thumbnail_src': 'https://media.seekr.com/engine/rp/' + summary['tg'] + '/?src= ' + result['thumbnail'],
} }
) )

View file

@ -0,0 +1,91 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# lint: pylint
"""SearXNG engine for `Void Linux binary packages`_. Void is a general purpose
operating system, based on the monolithic Linux kernel. Its package system
allows you to quickly install, update and remove software; software is provided
in binary packages or can be built directly from sources with the help of the
XBPS source packages collection.
.. _Void Linux binary packages: https://voidlinux.org/packages/
"""
import re
from urllib.parse import quote_plus
from searx.utils import humanize_bytes
about = {
'website': 'https://voidlinux.org/packages/',
'wikidata_id': 'Q19310966',
'use_official_api': True,
'official_api_documentation': None,
'require_api_key': False,
'results': 'JSON',
}
categories = ['packages', 'it']
base_url = "https://xq-api.voidlinux.org"
pkg_repo_url = "https://github.com/void-linux/void-packages"
void_arch = 'x86_64'
"""Default architecture to search for. For valid values see :py:obj:`ARCH_RE`"""
ARCH_RE = re.compile('aarch64-musl|armv6l-musl|armv7l-musl|x86_64-musl|aarch64|armv6l|armv7l|i686|x86_64')
"""Regular expresion that match a architecture in the query string."""
def request(query, params):
arch_path = ARCH_RE.search(query)
if arch_path:
arch_path = arch_path.group(0)
query = query.replace(arch_path, '').strip()
else:
arch_path = void_arch
params['url'] = f"{base_url}/v1/query/{arch_path}?q={quote_plus(query)}"
return params
def response(resp):
"""
At Void Linux, several packages sometimes share the same source code
(template) and therefore also have the same URL. Results with identical
URLs are merged as one result for SearXNG.
"""
packages = {}
for result in resp.json()['data']:
# 32bit and dbg packages don't have their own package templates
github_slug = re.sub(r"-(32bit|dbg)$", "", result['name'])
pkg_url = f"{pkg_repo_url}/tree/master/srcpkgs/{github_slug}"
pkg_list = packages.get(pkg_url, [])
pkg_list.append(
{
'title': result['name'],
'content': f"{result['short_desc']} - {humanize_bytes(result['filename_size'])}",
'package_name': result['name'],
'version': f"v{result['version']}_{result['revision']}",
'tags': result['repository'],
}
)
packages[pkg_url] = pkg_list
results = []
for pkg_url, pkg_list in packages.items():
results.append(
{
'url': pkg_url,
'template': 'packages.html',
'title': ' | '.join(x['title'] for x in pkg_list),
'content': pkg_list[0]['content'],
'package_name': ' | '.join(x['package_name'] for x in pkg_list),
'version': pkg_list[0]['version'],
'tags': [x['tags'] for x in pkg_list],
}
)
return results

View file

@ -8,6 +8,8 @@
from datetime import datetime from datetime import datetime
from urllib.parse import urlencode from urllib.parse import urlencode
from searx.utils import humanize_bytes
about = { about = {
'website': 'https://wallhaven.cc/', 'website': 'https://wallhaven.cc/',
'official_api_documentation': 'https://wallhaven.cc/help/api', 'official_api_documentation': 'https://wallhaven.cc/help/api',
@ -68,6 +70,7 @@ def response(resp):
json = resp.json() json = resp.json()
for result in json['data']: for result in json['data']:
results.append( results.append(
{ {
'template': 'images.html', 'template': 'images.html',
@ -76,8 +79,10 @@ def response(resp):
'url': result['url'], 'url': result['url'],
'img_src': result['path'], 'img_src': result['path'],
'thumbnail_src': result['thumbs']['small'], 'thumbnail_src': result['thumbs']['small'],
'img_format': result['resolution'], 'resolution': result['resolution'].replace('x', ' x '),
'publishedDate': datetime.strptime(result['created_at'], '%Y-%m-%d %H:%M:%S'), 'publishedDate': datetime.strptime(result['created_at'], '%Y-%m-%d %H:%M:%S'),
'img_format': result['file_type'],
'filesize': humanize_bytes(result['file_size']),
} }
) )

View file

@ -62,7 +62,7 @@ def response(resp):
'title': title, 'title': title,
'content': item["snippet"], 'content': item["snippet"],
'img_src': imageinfo["url"], 'img_src': imageinfo["url"],
'img_format': f'{imageinfo["width"]} x {imageinfo["height"]}', 'resolution': f'{imageinfo["width"]} x {imageinfo["height"]}',
'thumbnail_src': imageinfo["thumburl"], 'thumbnail_src': imageinfo["thumburl"],
'template': 'images.html', 'template': 'images.html',
} }

View file

@ -0,0 +1,63 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# lint: pylint
"""Yandex Music
.. _Countries where Yandex.Music is available: https://yandex.com/support/music/access.html
.. hint::
Access to music is limited to a few countries: `Countries where Yandex.Music
is available`_
"""
from urllib.parse import urlencode
# about
about = {
"website": 'https://music.yandex.ru',
"wikidata_id": 'Q4537983',
"official_api_documentation": None,
"use_official_api": False,
"require_api_key": False,
"results": 'JSON',
}
# engine dependent config
categories = ['music']
paging = True
# search-url
url = 'https://music.yandex.ru'
search_url = url + '/handlers/music-search.jsx'
# do search-request
def request(query, params):
args = {'text': query, 'page': params['pageno'] - 1}
params['url'] = search_url + '?' + urlencode(args)
return params
# get response from search-request
def response(resp):
results = []
search_res = resp.json()
# parse results
for result in search_res.get('tracks', {}).get('items', []):
if result['type'] == 'music':
track_id = result['id']
album_id = result['albums'][0]['id']
# append result
results.append(
{
'url': f'{url}/album/{album_id}/track/{track_id}',
'title': result['title'],
'content': f"[{result['albums'][0]['title']}] {result['artists'][0]['name']} - {result['title']}",
'iframe_src': f'{url}/iframe/track/{track_id}/{album_id}',
}
)
return results

View file

@ -1,12 +1,36 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
# lint: pylint # lint: pylint
"""Initialize :py:obj:`LOCALE_NAMES`, :py:obj:`RTL_LOCALES`. """
SearXNGs locale data
=====================
The variables :py:obj:`RTL_LOCALES` and :py:obj:`LOCALE_NAMES` are loaded from
:origin:`searx/data/locales.json` / see :py:obj:`locales_initialize` and
:ref:`update_locales.py`.
.. hint::
Whenever the value of :py:obj:`ADDITIONAL_TRANSLATIONS` or
:py:obj:`LOCALE_BEST_MATCH` is modified, the
:origin:`searx/data/locales.json` needs to be rebuild::
./manage data.locales
SearXNG's locale codes
======================
.. automodule:: searx.sxng_locales
:members:
SearXNGs locale implementations
================================
""" """
from typing import Set, Optional, List from __future__ import annotations
import os
import pathlib from pathlib import Path
import babel import babel
from babel.support import Translations from babel.support import Translations
@ -15,7 +39,11 @@ import babel.core
import flask_babel import flask_babel
import flask import flask
from flask.ctx import has_request_context from flask.ctx import has_request_context
from searx import logger from searx import (
data,
logger,
searx_dir,
)
logger = logger.getChild('locales') logger = logger.getChild('locales')
@ -30,7 +58,7 @@ LOCALE_NAMES = {}
:meta hide-value: :meta hide-value:
""" """
RTL_LOCALES: Set[str] = set() RTL_LOCALES: set[str] = set()
"""List of *Right-To-Left* locales e.g. 'he' or 'fa-IR' (see """List of *Right-To-Left* locales e.g. 'he' or 'fa-IR' (see
:py:obj:`locales_initialize`).""" :py:obj:`locales_initialize`)."""
@ -52,7 +80,7 @@ LOCALE_BEST_MATCH = {
"pap": "pt-BR", "pap": "pt-BR",
} }
"""Map a locale we do not have a translations for to a locale we have a """Map a locale we do not have a translations for to a locale we have a
translation for. By example: use Taiwan version of the translation for Hong translation for. By example: use Taiwan version of the translation for Hong
Kong.""" Kong."""
@ -90,74 +118,37 @@ def get_translations():
return _flask_babel_get_translations() return _flask_babel_get_translations()
def get_locale_descr(locale, locale_name): _TR_LOCALES: list[str] = []
"""Get locale name e.g. 'Français - fr' or 'Português (Brasil) - pt-BR'
:param locale: instance of :py:class:`Locale`
:param locale_name: name e.g. 'fr' or 'pt_BR' (delimiter is *underscore*)
"""
native_language, native_territory = _get_locale_descr(locale, locale_name)
english_language, english_territory = _get_locale_descr(locale, 'en')
if native_territory == english_territory:
english_territory = None
if not native_territory and not english_territory:
if native_language == english_language:
return native_language
return native_language + ' (' + english_language + ')'
result = native_language + ', ' + native_territory + ' (' + english_language
if english_territory:
return result + ', ' + english_territory + ')'
return result + ')'
def _get_locale_descr(locale, language_code): def get_translation_locales() -> list[str]:
language_name = locale.get_language_name(language_code).capitalize() """Returns the list of transaltion locales (*underscore*). The list is
if language_name and ('a' <= language_name[0] <= 'z'): generated from the translation folders in :origin:`searx/translations`"""
language_name = language_name.capitalize()
territory_name = locale.get_territory_name(language_code) global _TR_LOCALES # pylint:disable=global-statement
return language_name, territory_name if _TR_LOCALES:
return _TR_LOCALES
tr_locales = []
for folder in (Path(searx_dir) / 'translations').iterdir():
if not folder.is_dir():
continue
if not (folder / 'LC_MESSAGES').is_dir():
continue
tr_locales.append(folder.name)
_TR_LOCALES = sorted(tr_locales)
return _TR_LOCALES
def locales_initialize(directory=None): def locales_initialize():
"""Initialize locales environment of the SearXNG session. """Initialize locales environment of the SearXNG session.
- monkey patch :py:obj:`flask_babel.get_translations` by :py:obj:`get_translations` - monkey patch :py:obj:`flask_babel.get_translations` by :py:obj:`get_translations`
- init global names :py:obj:`LOCALE_NAMES`, :py:obj:`RTL_LOCALES` - init global names :py:obj:`LOCALE_NAMES`, :py:obj:`RTL_LOCALES`
""" """
directory = directory or pathlib.Path(__file__).parent / 'translations'
logger.debug("locales_initialize: %s", directory)
flask_babel.get_translations = get_translations flask_babel.get_translations = get_translations
LOCALE_NAMES.update(data.LOCALES["LOCALE_NAMES"])
for tag, descr in ADDITIONAL_TRANSLATIONS.items(): RTL_LOCALES.update(data.LOCALES["RTL_LOCALES"])
locale = babel.Locale.parse(LOCALE_BEST_MATCH[tag], sep='-')
LOCALE_NAMES[tag] = descr
if locale.text_direction == 'rtl':
RTL_LOCALES.add(tag)
for tag in LOCALE_BEST_MATCH:
descr = LOCALE_NAMES.get(tag)
if not descr:
locale = babel.Locale.parse(tag, sep='-')
LOCALE_NAMES[tag] = get_locale_descr(locale, tag.replace('-', '_'))
if locale.text_direction == 'rtl':
RTL_LOCALES.add(tag)
for dirname in sorted(os.listdir(directory)):
# Based on https://flask-babel.tkte.ch/_modules/flask_babel.html#Babel.list_translations
if not os.path.isdir(os.path.join(directory, dirname, 'LC_MESSAGES')):
continue
tag = dirname.replace('_', '-')
descr = LOCALE_NAMES.get(tag)
if not descr:
locale = babel.Locale.parse(dirname)
LOCALE_NAMES[tag] = get_locale_descr(locale, dirname)
if locale.text_direction == 'rtl':
RTL_LOCALES.add(tag)
def region_tag(locale: babel.Locale) -> str: def region_tag(locale: babel.Locale) -> str:
@ -177,7 +168,7 @@ def language_tag(locale: babel.Locale) -> str:
return sxng_lang return sxng_lang
def get_locale(locale_tag: str) -> Optional[babel.Locale]: def get_locale(locale_tag: str) -> babel.Locale | None:
"""Returns a :py:obj:`babel.Locale` object parsed from argument """Returns a :py:obj:`babel.Locale` object parsed from argument
``locale_tag``""" ``locale_tag``"""
try: try:
@ -190,7 +181,7 @@ def get_locale(locale_tag: str) -> Optional[babel.Locale]:
def get_official_locales( def get_official_locales(
territory: str, languages=None, regional: bool = False, de_facto: bool = True territory: str, languages=None, regional: bool = False, de_facto: bool = True
) -> Set[babel.Locale]: ) -> set[babel.Locale]:
"""Returns a list of :py:obj:`babel.Locale` with languages from """Returns a list of :py:obj:`babel.Locale` with languages from
:py:obj:`babel.languages.get_official_languages`. :py:obj:`babel.languages.get_official_languages`.
@ -376,7 +367,7 @@ def get_engine_locale(searxng_locale, engine_locales, default=None):
return default return default
def match_locale(searxng_locale: str, locale_tag_list: List[str], fallback: Optional[str] = None) -> Optional[str]: def match_locale(searxng_locale: str, locale_tag_list: list[str], fallback: str | None = None) -> str | None:
"""Return tag from ``locale_tag_list`` that best fits to ``searxng_locale``. """Return tag from ``locale_tag_list`` that best fits to ``searxng_locale``.
:param str searxng_locale: SearXNG's internal representation of locale (de, :param str searxng_locale: SearXNG's internal representation of locale (de,
@ -425,7 +416,7 @@ def match_locale(searxng_locale: str, locale_tag_list: List[str], fallback: Opti
return get_engine_locale(searxng_locale, engine_locales, default=fallback) return get_engine_locale(searxng_locale, engine_locales, default=fallback)
def build_engine_locales(tag_list: List[str]): def build_engine_locales(tag_list: list[str]):
"""From a list of locale tags a dictionary is build that can be passed by """From a list of locale tags a dictionary is build that can be passed by
argument ``engine_locales`` to :py:obj:`get_engine_locale`. This function argument ``engine_locales`` to :py:obj:`get_engine_locale`. This function
is mainly used by :py:obj:`match_locale` and is similar to what the is mainly used by :py:obj:`match_locale` and is similar to what the

View file

@ -192,7 +192,7 @@ outgoing:
# #
# Extra seconds to add in order to account for the time taken by the proxy # Extra seconds to add in order to account for the time taken by the proxy
# #
# extra_proxy_timeout: 10.0 # extra_proxy_timeout: 10
# #
# uncomment below section only if you have more than one network interface # uncomment below section only if you have more than one network interface
# which can be the source of outgoing search requests # which can be the source of outgoing search requests
@ -364,6 +364,11 @@ engines:
shortcut: arx shortcut: arx
timeout: 4.0 timeout: 4.0
- name: ask
engine: ask
shortcut: ask
disabled: true
# tmp suspended: dh key too small # tmp suspended: dh key too small
# - name: base # - name: base
# engine: base # engine: base
@ -1044,7 +1049,7 @@ engines:
engine: lingva engine: lingva
shortcut: lv shortcut: lv
# set lingva instance in url, by default it will use the official instance # set lingva instance in url, by default it will use the official instance
# url: https://lingva.thedaviddelta.com/ # url: https://lingva.thedaviddelta.com
- name: lobste.rs - name: lobste.rs
engine: xpath engine: xpath
@ -1153,6 +1158,17 @@ engines:
# collection: 'reviews' # name of the db collection # collection: 'reviews' # name of the db collection
# key: 'name' # key in the collection to search for # key: 'name' # key in the collection to search for
- name: mozhi
engine: mozhi
base_url:
- https://mozhi.aryak.me
- https://translate.bus-hit.me
- https://nyc1.mz.ggtyler.dev
# mozhi_engine: google - see https://mozhi.aryak.me for supported engines
timeout: 4.0
shortcut: mz
disabled: true
- name: mwmbl - name: mwmbl
engine: mwmbl engine: mwmbl
# api_url: https://api.mwmbl.org # api_url: https://api.mwmbl.org
@ -1340,6 +1356,31 @@ engines:
url: https://thepiratebay.org/ url: https://thepiratebay.org/
timeout: 3.0 timeout: 3.0
- name: pixiv
shortcut: pv
engine: pixiv
disabled: true
inactive: true
pixiv_image_proxies:
- pximg.example.org
# A proxy is required to load the images. Hosting an image proxy server
# for Pixiv:
# --> https://codeberg.org/VnPower/PixivFE/wiki/Hosting-an-image-proxy-server-for-Pixiv
# Proxies from public instances. Ask the public instances owners if they
# agree to receive traffic from SearXNG!
# --> https://codeberg.org/VnPower/PixivFE#instances
# --> https://github.com/searxng/searxng/pull/3192#issuecomment-1941095047
# image proxy of https://pixiv.cat
# - https://i.pixiv.cat
# image proxy of https://www.pixiv.pics
# - https://pximg.cocomi.eu.org
# image proxy of https://pixivfe.exozy.me
# - https://pximg.exozy.me
# image proxy of https://pixivfe.ducks.party
# - https://pixiv.ducks.party
# image proxy of https://pixiv.perennialte.ch
# - https://pximg.perennialte.ch
- name: podcastindex - name: podcastindex
engine: podcastindex engine: podcastindex
shortcut: podcast shortcut: podcast
@ -1416,23 +1457,7 @@ engines:
- name: pypi - name: pypi
shortcut: pypi shortcut: pypi
engine: xpath engine: pypi
paging: true
search_url: https://pypi.org/search/?q={query}&page={pageno}
results_xpath: /html/body/main/div/div/div/form/div/ul/li/a[@class="package-snippet"]
url_xpath: ./@href
title_xpath: ./h3/span[@class="package-snippet__name"]
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, packages]
about:
website: https://pypi.org
wikidata_id: Q2984686
official_api_documentation: https://warehouse.readthedocs.io/api-reference/index.html
use_official_api: false
require_api_key: false
results: HTML
- name: qwant - name: qwant
qwant_categ: web qwant_categ: web
@ -1703,6 +1728,13 @@ engines:
engine: unsplash engine: unsplash
shortcut: us shortcut: us
- name: yandex music
engine: yandex_music
shortcut: ydm
disabled: true
# https://yandex.com/support/music/access.html
inactive: true
- name: yahoo - name: yahoo
engine: yahoo engine: yahoo
shortcut: yh shortcut: yh
@ -2037,6 +2069,13 @@ engines:
categories: videos categories: videos
disabled: true disabled: true
- name: livespace
engine: livespace
shortcut: ls
categories: videos
disabled: true
timeout: 5.0
- name: wordnik - name: wordnik
engine: wordnik engine: wordnik
shortcut: def shortcut: def
@ -2108,6 +2147,11 @@ engines:
engine: tootfinder engine: tootfinder
shortcut: toot shortcut: toot
- name: voidlinux
engine: voidlinux
shortcut: void
disabled: true
- name: wallhaven - name: wallhaven
engine: wallhaven engine: wallhaven
# api_key: abcdefghijklmnopqrstuvwxyz # api_key: abcdefghijklmnopqrstuvwxyz

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
<svg width="92mm" height="92mm" viewBox="0 0 92 92"><path d="M39.581 41.421h-8.954v-1.215q0-2.034.818-3.597.819-1.587 3.448-4.018l1.588-1.439q1.414-1.29 2.059-2.43.67-1.142.67-2.283 0-1.736-1.191-2.703-1.19-.993-3.324-.993-2.01 0-4.341.844-2.332.818-4.862 2.455v-7.788q3.002-1.042 5.482-1.538t4.787-.496q6.053 0 9.228 2.48 3.175 2.456 3.175 7.194 0 2.43-.968 4.365-.967 1.91-3.299 4.118L42.31 35.79q-1.687 1.538-2.208 2.48-.52.918-.52 2.034zm-8.954 3.671h8.954v8.83h-8.954Z" style="line-height:1;-inkscape-font-specification:&quot;DejaVu Sans Bold&quot;" font-style="normal" font-variant="normal" font-weight="700" font-stretch="normal" font-size="50.80000305px" font-family="DejaVu Sans" display="inline" fill="#db3434" fill-opacity="1" stroke-width=".26458335"/><circle cx="35" cy="36.486" r="30" fill="none" fill-opacity="1" stroke="#db3434" stroke-width="10" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/><rect width="18.846" height="39.963" x="-12.021" y="80.49" ry="0" transform="rotate(-46.235)" opacity="1" fill="#db3434" fill-opacity="1" stroke="none" stroke-width="8" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/></svg> <svg width="92mm" height="92mm" viewBox="0 0 92 92"><path d="M39.581 41.421h-8.954v-1.215q0-2.034.818-3.597.819-1.587 3.448-4.018l1.588-1.439q1.414-1.29 2.059-2.43.67-1.142.67-2.283 0-1.736-1.191-2.703-1.19-.993-3.324-.993-2.01 0-4.341.844-2.332.818-4.862 2.455v-7.788q3.002-1.042 5.482-1.538 2.48-.496 4.787-.496 6.053 0 9.228 2.48 3.175 2.456 3.175 7.194 0 2.43-.968 4.365-.967 1.91-3.299 4.118L42.31 35.79q-1.687 1.538-2.208 2.48-.52.918-.52 2.034zm-8.954 3.671h8.954v8.83h-8.954Z" style="line-height:1;-inkscape-font-specification:&quot;DejaVu Sans Bold&quot;" font-style="normal" font-variant="normal" font-weight="700" font-stretch="normal" font-size="50.80000305px" font-family="DejaVu Sans" display="inline" fill="#db3434" fill-opacity="1" stroke-width=".26458335"/><circle cx="35" cy="36.486" r="30" fill="none" fill-opacity="1" stroke="#db3434" stroke-width="10" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/><rect width="18.846" height="39.963" x="-12.021" y="80.49" ry="0" transform="rotate(-46.235)" opacity="1" fill="#db3434" fill-opacity="1" stroke="none" stroke-width="8" stroke-miterlimit="4" stroke-dasharray="none" stroke-opacity="1"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -1 +1 @@
<svg width="853.677" height="146.304" viewBox="0 0 225.869 38.71"><g aria-label="SearXNG" style="line-height:1.25" font-style="normal" font-weight="400" font-size="50.8px" font-family="sans-serif" fill="#487cff" fill-opacity="1" stroke="none" stroke-width=".264583"><path d="M56.494 102.704q-1.168-1.22-3.048-2.032t-4.42-.813q-3.15 0-5.08 1.32-1.93 1.27-1.93 3.455 0 2.337 3.708 3.607l7.671 2.641q3.963 1.321 5.842 3.404 1.88 2.083 1.88 5.13 0 4.065-2.185 7.011-2.184 2.896-5.943 4.42-3.76 1.524-8.484 1.524-5.334 0-9.042-1.778-3.709-1.829-5.537-5.131-.204-.356-.204-.711 0-.356.407-.61l4.013-2.438q.356-.254.762-.254.61 0 1.118.66 1.32 1.626 2.387 2.54 1.118.864 2.693 1.321 1.625.457 4.165.457 3.2 0 5.182-1.168 1.981-1.22 1.981-3.76 0-1.27-.914-2.082-.915-.864-2.947-1.575l-7.417-2.49q-3.657-1.218-5.588-3.555-1.88-2.388-1.88-5.436 0-3.759 2.134-6.655 2.134-2.895 5.69-4.47 3.607-1.575 7.874-1.575 4.369 0 7.67 1.575 3.354 1.524 5.182 3.962.407.508.407.762t-.356.458l-4.52 2.997q-.052.05-.204.05-.305 0-1.067-.761M77.004 132.37q-3.607 0-6.401-1.472-2.794-1.474-4.318-4.115-1.524-2.693-1.524-6.198 0-4.165 1.981-7.874 2.032-3.759 5.537-5.994 3.556-2.286 7.925-2.286 5.334 0 8.484 3.15t3.15 8.686q0 1.473-.204 2.845-.101.406-.355.61-.204.152-.813.152h-17.12q-.813 0-.813 2.184 0 2.388 1.524 3.709 1.575 1.27 4.064 1.27 1.93 0 3.607-.813t3.302-2.54q.254-.254.508-.254.153 0 .66.203l3.353 1.575q.61.203.61.66 0 .254-.254.66-2.946 3.303-5.893 4.573-2.895 1.27-7.01 1.27m6.451-16.56q1.22 0 1.22-1.981 0-1.93-1.169-3.251-1.168-1.372-3.251-1.372-2.54 0-4.521 1.93-1.93 1.88-2.235 4.674zM109.411 129.374q-3.048 2.997-8.331 2.997-3.556 0-5.588-1.829t-2.032-4.775q0-3.607 2.387-5.893 2.388-2.337 5.995-3.353 3.657-1.067 7.569-1.168l1.829-.153q.965 0 1.117-.965l.153-1.067q.05-.254.05-.812 0-3.048-3.505-3.048-4.013 0-5.943 3.15-.254.355-.66.355-.305 0-.458-.051l-4.927-1.168q-.508-.102-.508-.66 0-.509.254-1.017 3.352-5.486 12.649-5.486 5.486 0 8.026 1.93 2.591 1.93 2.591 5.334 0 .457-.102 1.473l-2.54 17.78q-.05.66-.203.813-.152.102-.711.102h-5.232q-.508 0-.66-.305t-.204-1.016l.05-1.32q0-.407-.253-.407-.254 0-.813.559m2.184-9.754v-.305q0-.203-.101-.254-.102-.101-.407-.05l-1.828.152q-2.947.203-5.487 1.473t-2.54 3.912q0 1.219.864 1.98.914.712 2.438.712 1.321 0 2.49-.356 1.168-.406 2.031-1.066 1.88-1.423 2.083-2.896zM123.864 131.863q-.61 0-.915-.356-.254-.355-.152-.914l3.505-24.943q.05-.457.152-.559.153-.152.56-.152h6.044q.915 0 .712 1.067l-.356 2.286v.203q0 .355.203.355.153 0 .457-.304 1.778-1.88 3.963-2.998 2.184-1.117 3.962-1.117 1.067 0 1.575.152.508.153.457.61l-.813 5.69q-.05.558-.203.71-.101.153-.406.102-1.727-.254-3.455-.254-1.32 0-2.794.711-1.473.66-2.54 1.778-1.016 1.067-1.168 2.134l-2.083 14.834q-.101.66-.355.812-.204.153-.966.153zM176.481 130.085q.457.813.457 1.219 0 .305-.254.457-.254.102-.762.102h-7.06q-.61 0-.966-.153-.305-.152-.508-.61l-5.639-11.734q-.254-.508-.508-.508-.152 0-.559.559l-9.042 11.836q-.254.407-.61.508-.304.102-1.066.102h-5.944q-1.016 0-1.016-.66 0-.458.762-1.525l13.005-16.306q.559-.61.559-1.067 0-.356-.102-.559l-8.484-16.56q-.152-.255-.152-.509 0-.508.762-.508h7.417q.66 0 .914.153.254.152.508.66l4.928 10.363q.152.407.355.407.204 0 .508-.407l8.027-10.566q.305-.407.559-.508.304-.102.965-.102h6.553q.61 0 .61.559 0 .406-.305.914l-12.599 15.647q-.508.66-.508.914 0 .203.153.508zM218.113 94.17q.355 0 .457.202.101.153.05.56l-5.13 36.372q-.05.356-.254.457-.153.102-.559.102h-5.182q-.66 0-1.168-.813l-13.106-22.708q-.153-.254-.305-.254-.305 0-.356.56l-3.15 22.402q-.1.508-.304.66-.153.153-.711.153h-5.588q-.813 0-.712-1.118l5.08-35.814q.102-.508.204-.61.152-.152.66-.152h6.147q.508 0 .762.254.305.203.559.711l11.988 21.184q.254.406.508.406.407 0 .458-.61l2.946-21.284q.05-.407.203-.508.203-.153.66-.153zM236.44 132.37q-4.572 0-7.925-1.93t-5.131-5.435q-1.727-3.556-1.727-8.331 0-6.3 2.489-11.532 2.49-5.283 7.061-8.382 4.572-3.099 10.516-3.099 4.064 0 7.163 1.575 3.15 1.575 4.876 4.166 1.728 2.54 1.83 5.435 0 .508-.102.762-.051.203-.254.254l-6.96 1.016h-.05q-.204 0-.356-.254-.102-.254-.254-1.016-.356-2.54-1.93-4.115-1.525-1.574-4.319-1.574-3.607 0-5.994 2.641-2.337 2.642-3.455 6.807-1.117 4.115-1.117 8.586 0 4.368 1.625 6.299 1.677 1.88 4.877 1.88 3.099 0 5.233-1.728t3.15-4.216l.304-1.423q.152-.254.152-.355 0-.305-.61-.305h-6.248q-.304 0-.406-.102-.102-.152-.05-.558l.456-4.166q.051-.559.508-.559l14.53.051q.609 0 .761.203.203.153.102.66l-2.49 17.577q-.05.66-.812.66h-1.524q-.457 0-.711-.152-.204-.152-.356-.61l-.864-3.708q-.05-.254-.355-.254t-.66.407q-1.677 2.083-4.37 3.454-2.692 1.372-6.603 1.372" style="-inkscape-font-specification:&quot;Libre Franklin&quot;" transform="translate(-29.722 -93.661)" font-style="normal" font-variant="normal" font-weight="400" font-stretch="normal" font-size="50.8px" font-family="Libre Franklin" fill="#487cff" fill-opacity="1" stroke-width=".264583"/></g></svg> <svg width="853.677" height="146.304" viewBox="0 0 225.869 38.71"><g aria-label="SearXNG" style="line-height:1.25" font-style="normal" font-weight="400" font-size="50.8px" font-family="sans-serif" fill="#487cff" fill-opacity="1" stroke="none" stroke-width=".264583"><path d="M56.494 102.704q-1.168-1.22-3.048-2.032-1.88-.813-4.42-.813-3.15 0-5.08 1.32-1.93 1.27-1.93 3.455 0 2.337 3.708 3.607l7.671 2.641q3.963 1.321 5.842 3.404 1.88 2.083 1.88 5.13 0 4.065-2.185 7.011-2.184 2.896-5.943 4.42-3.76 1.524-8.484 1.524-5.334 0-9.042-1.778-3.709-1.829-5.537-5.131-.204-.356-.204-.711 0-.356.407-.61l4.013-2.438q.356-.254.762-.254.61 0 1.118.66 1.32 1.626 2.387 2.54 1.118.864 2.693 1.321 1.625.457 4.165.457 3.2 0 5.182-1.168 1.981-1.22 1.981-3.76 0-1.27-.914-2.082-.915-.864-2.947-1.575l-7.417-2.49q-3.657-1.218-5.588-3.555-1.88-2.388-1.88-5.436 0-3.759 2.134-6.655 2.134-2.895 5.69-4.47 3.607-1.575 7.874-1.575 4.369 0 7.67 1.575 3.354 1.524 5.182 3.962.407.508.407.762t-.356.458l-4.52 2.997q-.052.05-.204.05-.305 0-1.067-.761zM77.004 132.37q-3.607 0-6.401-1.472-2.794-1.474-4.318-4.115-1.524-2.693-1.524-6.198 0-4.165 1.981-7.874 2.032-3.759 5.537-5.994 3.556-2.286 7.925-2.286 5.334 0 8.484 3.15 3.15 3.149 3.15 8.686 0 1.473-.204 2.845-.101.406-.355.61-.204.152-.813.152h-17.12q-.813 0-.813 2.184 0 2.388 1.524 3.709 1.575 1.27 4.064 1.27 1.93 0 3.607-.813 1.677-.813 3.302-2.54.254-.254.508-.254.153 0 .66.203l3.353 1.575q.61.203.61.66 0 .254-.254.66-2.946 3.303-5.893 4.573-2.895 1.27-7.01 1.27zm6.451-16.56q1.22 0 1.22-1.981 0-1.93-1.169-3.251-1.168-1.372-3.251-1.372-2.54 0-4.521 1.93-1.93 1.88-2.235 4.674zM109.411 129.374q-3.048 2.997-8.331 2.997-3.556 0-5.588-1.829t-2.032-4.775q0-3.607 2.387-5.893 2.388-2.337 5.995-3.353 3.657-1.067 7.569-1.168l1.829-.153q.965 0 1.117-.965l.153-1.067q.05-.254.05-.812 0-3.048-3.505-3.048-4.013 0-5.943 3.15-.254.355-.66.355-.305 0-.458-.051l-4.927-1.168q-.508-.102-.508-.66 0-.509.254-1.017 3.352-5.486 12.649-5.486 5.486 0 8.026 1.93 2.591 1.93 2.591 5.334 0 .457-.102 1.473l-2.54 17.78q-.05.66-.203.813-.152.102-.711.102h-5.232q-.508 0-.66-.305-.153-.305-.204-1.016l.05-1.32q0-.407-.253-.407-.254 0-.813.559zm2.184-9.754v-.305q0-.203-.101-.254-.102-.101-.407-.05l-1.828.152q-2.947.203-5.487 1.473t-2.54 3.912q0 1.219.864 1.98.914.712 2.438.712 1.321 0 2.49-.356 1.168-.406 2.031-1.066 1.88-1.423 2.083-2.896zM123.864 131.863q-.61 0-.915-.356-.254-.355-.152-.914l3.505-24.943q.05-.457.152-.559.153-.152.56-.152h6.044q.915 0 .712 1.067l-.356 2.286v.203q0 .355.203.355.153 0 .457-.304 1.778-1.88 3.963-2.998 2.184-1.117 3.962-1.117 1.067 0 1.575.152.508.153.457.61l-.813 5.69q-.05.558-.203.71-.101.153-.406.102-1.727-.254-3.455-.254-1.32 0-2.794.711-1.473.66-2.54 1.778-1.016 1.067-1.168 2.134l-2.083 14.834q-.101.66-.355.812-.204.153-.966.153zM176.481 130.085q.457.813.457 1.219 0 .305-.254.457-.254.102-.762.102h-7.06q-.61 0-.966-.153-.305-.152-.508-.61l-5.639-11.734q-.254-.508-.508-.508-.152 0-.559.559l-9.042 11.836q-.254.407-.61.508-.304.102-1.066.102h-5.944q-1.016 0-1.016-.66 0-.458.762-1.525l13.005-16.306q.559-.61.559-1.067 0-.356-.102-.559l-8.484-16.56q-.152-.255-.152-.509 0-.508.762-.508h7.417q.66 0 .914.153.254.152.508.66l4.928 10.363q.152.407.355.407.204 0 .508-.407l8.027-10.566q.305-.407.559-.508.304-.102.965-.102h6.553q.61 0 .61.559 0 .406-.305.914l-12.599 15.647q-.508.66-.508.914 0 .203.153.508zM218.113 94.17q.355 0 .457.202.101.153.05.56l-5.13 36.372q-.05.356-.254.457-.153.102-.559.102h-5.182q-.66 0-1.168-.813l-13.106-22.708q-.153-.254-.305-.254-.305 0-.356.56l-3.15 22.402q-.1.508-.304.66-.153.153-.711.153h-5.588q-.813 0-.712-1.118l5.08-35.814q.102-.508.204-.61.152-.152.66-.152h6.147q.508 0 .762.254.305.203.559.711l11.988 21.184q.254.406.508.406.407 0 .458-.61l2.946-21.284q.05-.407.203-.508.203-.153.66-.153zM236.44 132.37q-4.572 0-7.925-1.93-3.353-1.93-5.131-5.435-1.727-3.556-1.727-8.331 0-6.3 2.489-11.532 2.49-5.283 7.061-8.382 4.572-3.099 10.516-3.099 4.064 0 7.163 1.575 3.15 1.575 4.876 4.166 1.728 2.54 1.83 5.435 0 .508-.102.762-.051.203-.254.254l-6.96 1.016h-.05q-.204 0-.356-.254-.102-.254-.254-1.016-.356-2.54-1.93-4.115-1.525-1.574-4.319-1.574-3.607 0-5.994 2.641-2.337 2.642-3.455 6.807-1.117 4.115-1.117 8.586 0 4.368 1.625 6.299 1.677 1.88 4.877 1.88 3.099 0 5.233-1.728 2.133-1.727 3.15-4.216l.304-1.423q.152-.254.152-.355 0-.305-.61-.305h-6.248q-.304 0-.406-.102-.102-.152-.05-.558l.456-4.166q.051-.559.508-.559l14.53.051q.609 0 .761.203.203.153.102.66l-2.49 17.577q-.05.66-.812.66h-1.524q-.457 0-.711-.152-.204-.152-.356-.61l-.864-3.708q-.05-.254-.355-.254t-.66.407q-1.677 2.083-4.37 3.454-2.692 1.372-6.603 1.372z" style="-inkscape-font-specification:&quot;Libre Franklin&quot;" transform="translate(-29.722 -93.661)" font-style="normal" font-variant="normal" font-weight="400" font-stretch="normal" font-size="50.8px" font-family="Libre Franklin" fill="#487cff" fill-opacity="1" stroke-width=".264583"/></g></svg>

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View file

@ -49,8 +49,7 @@ article.result-images .detail {
.result-images-labels { .result-images-labels {
color: var(--color-result-detail-font); color: var(--color-result-detail-font);
max-height: 16rem; height: 19rem;
min-height: 16rem;
hr { hr {
border-top: 1px solid var(--color-result-detail-hr); border-top: 1px solid var(--color-result-detail-hr);
@ -62,11 +61,16 @@ article.result-images .detail {
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
font-size: 0.9rem; font-size: 0.9rem;
margin-bottom: 0;
} }
p { p {
color: var(--color-result-detail-label-font); color: var(--color-result-detail-label-font);
font-size: 0.9rem; font-size: 0.9rem;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
margin: 0.8rem 0;
span { span {
display: inline-block; display: inline-block;
@ -82,6 +86,7 @@ article.result-images .detail {
p.result-content { p.result-content {
height: 2rem; height: 2rem;
line-height: unset;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
} }

View file

@ -306,7 +306,8 @@ article[data-vim-selected].category-social {
} }
} }
.result-paper { .result-paper,
.result-packages {
.attributes { .attributes {
display: table; display: table;
border-spacing: 0.125rem; border-spacing: 0.125rem;
@ -349,6 +350,12 @@ article[data-vim-selected].category-social {
} }
} }
.result-packages {
.attributes {
margin-top: 0.3rem;
}
}
.template_group_images { .template_group_images {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
@ -457,6 +464,17 @@ article[data-vim-selected].category-social {
background: var(--color-result-image-background); background: var(--color-result-image-background);
} }
.image_resolution {
position: absolute;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 50%);
padding: 0.3rem 0.5rem;
font-size: 0.9rem;
color: #fff;
border-top-left-radius: 0.3rem;
}
span.title, span.title,
span.source { span.source {
display: block; display: block;
@ -1076,7 +1094,8 @@ summary.title {
display: none; display: none;
} }
.result-paper { .result-paper,
.result-packages {
.attributes { .attributes {
display: block; display: block;

View file

@ -1,9 +1,11 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
'''List of SearXNG's locale codes. '''List of SearXNG's locale codes.
This file is generated automatically by:: .. hint::
./manage pyenv.cmd searxng_extra/update/update_engine_traits.py Don't modify this file, this file is generated by::
./manage data.traits
''' '''
sxng_locales = ( sxng_locales = (

View file

@ -15,7 +15,7 @@
{% if autocomplete %} {% if autocomplete %}
<Url rel="suggestions" type="application/x-suggestions+json" method="{{ opensearch_method }}" template="{{ url_for('autocompleter', _external=True) }}?q={searchTerms}"/> <Url rel="suggestions" type="application/x-suggestions+json" method="{{ opensearch_method }}" template="{{ url_for('autocompleter', _external=True) }}?q={searchTerms}"/>
{% endif %} {% endif %}
<Url rel="self" type="application/opensearchdescription+xml" method="{{ opensearch_method }}" template="{{ opensearch_url }}" /> <Url rel="self" type="application/opensearchdescription+xml" method="{{ opensearch_method }}" template="{{ url_for('opensearch', _external=True) }}" />
<Query role="example" searchTerms="SearXNG" /> <Query role="example" searchTerms="SearXNG" />
<moz:SearchForm>{{ url_for('search', _external=True) }}</moz:SearchForm> <moz:SearchForm>{{ url_for('search', _external=True) }}</moz:SearchForm>
</OpenSearchDescription> </OpenSearchDescription>

View file

@ -1,8 +1,9 @@
<article class="result result-images {% if result['category'] %}category-{{ result['category'] }}{% endif %}">{{- "" -}} <article class="result result-images {% if result['category'] %}category-{{ result['category'] }}{% endif %}">{{- "" -}}
<a {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} href="{{ result.img_src }}">{{- "" -}} <a {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} href="{{ result.img_src }}">{{- "" -}}
<img class="image_thumbnail" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} src="{% if result.thumbnail_src %}{{ image_proxify(result.thumbnail_src) }}{% else %}{{ image_proxify(result.img_src) }}{% endif %}" alt="{{ result.title|striptags }}" loading="lazy" width="200" height="200">{{- "" -}} <img class="image_thumbnail" {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} src="{% if result.thumbnail_src %}{{ image_proxify(result.thumbnail_src) }}{% else %}{{ image_proxify(result.img_src) }}{% endif %}" alt="{{ result.title|striptags }}" loading="lazy" width="200" height="200">{{- "" -}}
<span class="title">{{ result.title|striptags }}</span>{{- "" -}} {%- if result.resolution %} <span class="image_resolution">{{ result.resolution }}</span> {%- endif -%}
<span class="source">{{ result.parsed_url.netloc }}</span>{{- "" -}} <span class="title">{{ result.title|striptags }}</span>{{- "" -}}
<span class="source">{{- result.parsed_url.netloc -}}</span>{{- "" -}}
</a>{{- "" -}} </a>{{- "" -}}
<div class="detail">{{- "" -}} <div class="detail">{{- "" -}}
<a class="result-detail-close" href="#">{{ icon('close') }}</a>{{- "" -}} <a class="result-detail-close" href="#">{{ icon('close') }}</a>{{- "" -}}
@ -16,7 +17,9 @@
<p class="result-content">{%- if result.content %}{{ result.content|striptags }}{% else %}&nbsp;{% endif -%}</p>{{- "" -}} <p class="result-content">{%- if result.content %}{{ result.content|striptags }}{% else %}&nbsp;{% endif -%}</p>{{- "" -}}
<hr>{{- "" -}} <hr>{{- "" -}}
<p class="result-author">{%- if result.author %}<span>{{ _('Author') }}:</span>{{ result.author|striptags }}{% else %}&nbsp;{% endif -%}</p>{{- "" -}} <p class="result-author">{%- if result.author %}<span>{{ _('Author') }}:</span>{{ result.author|striptags }}{% else %}&nbsp;{% endif -%}</p>{{- "" -}}
<p class="result-resolution">{%- if result.resolution %}<span>{{ _('Resolution') }}:</span>{{ result.resolution }}{% else %}&nbsp;{% endif -%}</p>{{- "" -}}
<p class="result-format">{%- if result.img_format %}<span>{{ _('Format') }}:</span>{{ result.img_format }}{% else %}&nbsp;{% endif -%}</p>{{- "" -}} <p class="result-format">{%- if result.img_format %}<span>{{ _('Format') }}:</span>{{ result.img_format }}{% else %}&nbsp;{% endif -%}</p>{{- "" -}}
<p class="result-filesize">{%- if result.filesize %}<span>{{ _('Filesize') }}:</span>{{ result.filesize}}{% else %}&nbsp;{% endif -%}</p>{{- "" -}}
<p class="result-source">{%- if result.source %}<span>{{ _('Source') }}:</span>{{ result.source }}{% else %}&nbsp;{% endif -%}</p>{{- "" -}} <p class="result-source">{%- if result.source %}<span>{{ _('Source') }}:</span>{{ result.source }}{% else %}&nbsp;{% endif -%}</p>{{- "" -}}
<p class="result-engine"><span>{{ _('Engine') }}:</span>{{ result.engine }}</p>{{- "" -}}{{- "" -}} <p class="result-engine"><span>{{ _('Engine') }}:</span>{{ result.engine }}</p>{{- "" -}}{{- "" -}}
<p class="result-url"><span>{{ _('View source') }}:</span><a {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} href="{{ result.url }}">{{ result.url }}</a></p>{{- "" -}} <p class="result-url"><span>{{ _('View source') }}:</span><a {% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %} href="{{ result.url }}">{{ result.url }}</a></p>{{- "" -}}

View file

@ -0,0 +1,67 @@
{%- from 'simple/macros.html' import result_header, result_sub_header, result_sub_footer, result_footer with context -%}
{{ result_header(result, favicons, image_proxify) -}}
{%- if result.content -%}<p class="content">{{- result.content|safe -}}</p>{%- endif -%}
<div class="attributes">{{- '' -}}
<div class="result_package_name">{{- '' -}}
<span>{{ _('Name') }}:</span>{{- '' -}}
<span><code>{{- result.package_name -}}</code></span>{{- '' -}}
</div>
{%- if result.version -%}
<div class="result_version">{{- '' -}}
<span>{{- _('Version') }}:</span>{{- '' -}}
<span><strong>{{ result.version }}</strong></span>{{- '' -}}
</div>
{%- endif -%}
{%- if result.maintainer -%}
<div class="result_maintainer">{{- '' -}}
<span>{{ _('Maintainer') }}:</span>{{- '' -}}
<span>{{ result.maintainer }}</span>{{- '' -}}
</div>
{%- endif -%}
{%- if result.publishedDate -%}
<div class="result_pubdate">{{- '' -}}
<span>{{ _('Updated at') }}:</span>{{- '' -}}
<span><time datetime="{{ result.pubdate }}">{{ result.publishedDate }}</time></span>{{- '' -}}
</div>
{%- endif -%}
{%- if result.tags -%}
<div class="result_tags">{{- '' -}}
<span>{{ _('Tags') }}:</span>{{- '' -}}
<span>{{ result.tags|join(', ') }}</span>{{- '' -}}
</div>
{%- endif -%}
{%- if result.popularity -%}
<div class="result_popularity">{{- '' -}}
<span>{{ _('Popularity') }}:</span>{{- '' -}}
<span>{{ result.popularity }}</span>{{- '' -}}
</div>
{%- endif -%}
{%- if result.license_name -%}
<div class="result_license">{{- '' -}}
<span>{{- _('License') -}}:</span>
{%- if result.license_url -%}
<span><a href="{{ result.license_url }}" target="_blank">{{ result.license_name }}</a></span>
{%- else -%}
<span>{{ result.license_name }}</span>
{%- endif -%}
</div>
{%- endif -%}
{%- if result.homepage or result.source_code_url -%}
<div class="result_project">{{- '' -}}
<span>{{ _('Project') }}</span>
<span>{{- '' -}}
{%- if result.homepage -%}
<a href="{{ result.homepage }}" target="_blank">{{ _('Project homepage') }}</a>
{%- endif -%}
{%- if result.homepage and result.source_code_url %} | {% endif -%}
{%- if result.source_code_url -%}
<a href="{{ result.source_code_url }}" target="_blank">{{ _('Source code') }}</a>
{%- endif -%}
</span>{{- '' -}}
</div>
{%- endif -%}
</div>{{- '' -}}
<div class="break"></div>
{{- result_footer(result) }}

View file

@ -12,17 +12,16 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2024-02-08 15:56+0000\n" "PO-Revision-Date: 2024-02-08 15:56+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language-Team: Afrikaans <https://translate.codeberg.org/projects/searxng/"
"searxng/af/>\n"
"Language: af\n" "Language: af\n"
"Language-Team: Afrikaans "
"<https://translate.codeberg.org/projects/searxng/searxng/af/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.3.1\n"
"Generated-By: Babel 2.14.0\n" "Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING'] #. CONSTANT_NAMES['NO_SUBGROUPING']
@ -150,6 +149,16 @@ msgstr "lig"
msgid "dark" msgid "dark"
msgstr "donker" msgstr "donker"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "Aangaande"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Geen item gevind" msgstr "Geen item gevind"
@ -444,10 +453,6 @@ msgstr "Gaan na %(search_page)s."
msgid "search page" msgid "search page"
msgstr "soekblad" msgstr "soekblad"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "Aangaande"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Skenk" msgstr "Skenk"
@ -1469,3 +1474,4 @@ msgstr "versteek video"
#~ "use another query or search in " #~ "use another query or search in "
#~ "more categories." #~ "more categories."
#~ msgstr "" #~ msgstr ""

View file

@ -13,22 +13,22 @@
# return42 <markus.heiser@darmarit.de>, 2023, 2024. # return42 <markus.heiser@darmarit.de>, 2023, 2024.
# Cavemanly <k.adel.2m@protonmail.com>, 2023. # Cavemanly <k.adel.2m@protonmail.com>, 2023.
# Rick1029 <yoshibear1029@gmail.com>, 2024. # Rick1029 <yoshibear1029@gmail.com>, 2024.
# nebras <johndevand@tutanota.com>, 2024.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2024-02-01 06:37+0000\n" "PO-Revision-Date: 2024-02-10 07:07+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: nebras <johndevand@tutanota.com>\n"
"Language-Team: Arabic <https://translate.codeberg.org/projects/searxng/"
"searxng/ar/>\n"
"Language: ar\n" "Language: ar\n"
"Language-Team: Arabic "
"<https://translate.codeberg.org/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" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=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 5.3.1\n"
"Generated-By: Babel 2.14.0\n" "Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING'] #. CONSTANT_NAMES['NO_SUBGROUPING']
@ -156,6 +156,16 @@ msgstr "فاتح"
msgid "dark" msgid "dark"
msgstr "مظلم" msgstr "مظلم"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "حَول"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "تعذر العثور على عناصر" msgstr "تعذر العثور على عناصر"
@ -443,10 +453,6 @@ msgstr "إذهب إلى %(search_page)s."
msgid "search page" msgid "search page"
msgstr "صفحة البحث" msgstr "صفحة البحث"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "حَول"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "تبرُّع" msgstr "تبرُّع"
@ -972,15 +978,15 @@ msgstr ""
#: searx/templates/simple/preferences/cookies.html:46 #: searx/templates/simple/preferences/cookies.html:46
msgid "Copy preferences hash" msgid "Copy preferences hash"
msgstr "" msgstr "نسخ تجزئة التفضيلات"
#: searx/templates/simple/preferences/cookies.html:57 #: searx/templates/simple/preferences/cookies.html:57
msgid "Insert copied preferences hash (without URL) to restore" msgid "Insert copied preferences hash (without URL) to restore"
msgstr "" msgstr "أدخل تجزئة التفضيلات المنسوخة (بدون عنوان URL) لاستعادتها"
#: searx/templates/simple/preferences/cookies.html:59 #: searx/templates/simple/preferences/cookies.html:59
msgid "Preferences hash" msgid "Preferences hash"
msgstr "" msgstr "تجزئة التفضيلات"
#: searx/templates/simple/preferences/doi_resolver.html:2 #: searx/templates/simple/preferences/doi_resolver.html:2
msgid "Open Access DOI resolver" msgid "Open Access DOI resolver"
@ -1721,3 +1727,4 @@ msgstr "إخفاء الفيديو"
#~ "لم نتوصل إلى العثور على أية نتيجة." #~ "لم نتوصل إلى العثور على أية نتيجة."
#~ " الرجاء إعادة صياغة طلب البحث أو " #~ " الرجاء إعادة صياغة طلب البحث أو "
#~ "إبحث مع تحديد أكثر من فئة." #~ "إبحث مع تحديد أكثر من فئة."

View file

@ -12,19 +12,18 @@
# Salif Mehmed <mail@salif.eu>, 2023, 2024. # Salif Mehmed <mail@salif.eu>, 2023, 2024.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2024-02-01 06:37+0000\n" "PO-Revision-Date: 2024-02-01 06:37+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language-Team: Bulgarian <https://translate.codeberg.org/projects/searxng/"
"searxng/bg/>\n"
"Language: bg\n" "Language: bg\n"
"Language-Team: Bulgarian "
"<https://translate.codeberg.org/projects/searxng/searxng/bg/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.3.1\n"
"Generated-By: Babel 2.14.0\n" "Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING'] #. CONSTANT_NAMES['NO_SUBGROUPING']
@ -152,6 +151,16 @@ msgstr "светъл"
msgid "dark" msgid "dark"
msgstr "тъмен" msgstr "тъмен"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "Относно"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Не е намерен артикул" msgstr "Не е намерен артикул"
@ -439,10 +448,6 @@ msgstr "Отиди на %(search_page)s."
msgid "search page" msgid "search page"
msgstr "търси страница" msgstr "търси страница"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "Относно"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Дарете" msgstr "Дарете"
@ -1724,3 +1729,4 @@ msgstr "скрий видеото"
#~ "не намерихме резултати. Моля пробвайте " #~ "не намерихме резултати. Моля пробвайте "
#~ "други ключови думи или търсете в " #~ "други ключови думи или търсете в "
#~ "повече категории." #~ "повече категории."

View file

@ -13,7 +13,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2024-01-31 19:06+0000\n" "PO-Revision-Date: 2024-01-31 19:06+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language: bn\n" "Language: bn\n"
@ -150,6 +150,16 @@ msgstr "সাদা"
msgid "dark" msgid "dark"
msgstr "কালো" msgstr "কালো"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "সম্বন্ধে"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "কোন আইটেম পাওয়া যায়নি" msgstr "কোন আইটেম পাওয়া যায়নি"
@ -439,10 +449,6 @@ msgstr "%(search_page)s এ যান৷"
msgid "search page" msgid "search page"
msgstr "অনুসন্ধান পৃষ্ঠা" msgstr "অনুসন্ধান পৃষ্ঠা"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "সম্বন্ধে"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "দান করুন" msgstr "দান করুন"

View file

@ -10,7 +10,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2023-06-02 07:07+0000\n" "PO-Revision-Date: 2023-06-02 07:07+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language: bo\n" "Language: bo\n"
@ -147,6 +147,16 @@ msgstr ""
msgid "dark" msgid "dark"
msgstr "" msgstr ""
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr ""
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "རྣམ་གྲངས་གང་ཡང་རྙེད་རྒྱུ་མ་བྱུང་།" msgstr "རྣམ་གྲངས་གང་ཡང་རྙེད་རྒྱུ་མ་བྱུང་།"
@ -418,10 +428,6 @@ msgstr "%(search_page)s ལ་བསྐྱོད།"
msgid "search page" msgid "search page"
msgstr "འཚོལ་བཤེར་དྲ་ངོས།" msgstr "འཚོལ་བཤེར་དྲ་ངོས།"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr ""
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""

View file

@ -19,7 +19,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2023-12-08 07:07+0000\n" "PO-Revision-Date: 2023-12-08 07:07+0000\n"
"Last-Translator: Ivan Gabaldon <admin@inetol.net>\n" "Last-Translator: Ivan Gabaldon <admin@inetol.net>\n"
"Language: ca\n" "Language: ca\n"
@ -156,6 +156,16 @@ msgstr "clar"
msgid "dark" msgid "dark"
msgstr "fosc" msgstr "fosc"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "Quant a"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "No s'ha trobat cap element" msgstr "No s'ha trobat cap element"
@ -443,10 +453,6 @@ msgstr "Ves a %(search_page)s."
msgid "search page" msgid "search page"
msgstr "pàgina de cerca" msgstr "pàgina de cerca"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "Quant a"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Donar" msgstr "Donar"

View file

@ -17,9 +17,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2024-02-01 06:37+0000\n" "PO-Revision-Date: 2024-02-17 18:56+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: Fjuro <ifjuro@proton.me>\n"
"Language-Team: Czech <https://translate.codeberg.org/projects/searxng/" "Language-Team: Czech <https://translate.codeberg.org/projects/searxng/"
"searxng/cs/>\n" "searxng/cs/>\n"
"Language: cs\n" "Language: cs\n"
@ -156,6 +156,16 @@ msgstr "světlý"
msgid "dark" msgid "dark"
msgstr "tmavý" msgstr "tmavý"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr "Spolehlivost"
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "O SearXNG"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Nic nenalezeno" msgstr "Nic nenalezeno"
@ -443,10 +453,6 @@ msgstr "Přejít na %(search_page)s."
msgid "search page" msgid "search page"
msgstr "stránka vyhledávání" msgstr "stránka vyhledávání"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "O SearXNG"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Dar" msgstr "Dar"

View file

@ -12,7 +12,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2023-11-23 06:13+0000\n" "PO-Revision-Date: 2023-11-23 06:13+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language: cy\n" "Language: cy\n"
@ -150,6 +150,16 @@ msgstr "golau"
msgid "dark" msgid "dark"
msgstr "tywyll" msgstr "tywyll"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "Ynghylch"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Ni chanfuwyd eitem" msgstr "Ni chanfuwyd eitem"
@ -428,10 +438,6 @@ msgstr "Mynd i %(search_page)s."
msgid "search page" msgid "search page"
msgstr "tudalen chwilio" msgstr "tudalen chwilio"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "Ynghylch"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Rhoddi" msgstr "Rhoddi"

View file

@ -11,7 +11,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2023-09-21 05:53+0000\n" "PO-Revision-Date: 2023-09-21 05:53+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language: da\n" "Language: da\n"
@ -148,6 +148,16 @@ msgstr "lys"
msgid "dark" msgid "dark"
msgstr "mørk" msgstr "mørk"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "Om"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Intet fundet" msgstr "Intet fundet"
@ -438,10 +448,6 @@ msgstr "Gå til 1%(search_page)s."
msgid "search page" msgid "search page"
msgstr "søgeside" msgstr "søgeside"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "Om"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Donere" msgstr "Donere"

View file

@ -24,8 +24,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2024-02-01 06:37+0000\n" "PO-Revision-Date: 2024-02-13 11:56+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language-Team: German <https://translate.codeberg.org/projects/searxng/" "Language-Team: German <https://translate.codeberg.org/projects/searxng/"
"searxng/de/>\n" "searxng/de/>\n"
@ -162,6 +162,16 @@ msgstr "hell"
msgid "dark" msgid "dark"
msgstr "dunkel" msgstr "dunkel"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr "Laufzeit"
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "Über"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Keine Einträge gefunden" msgstr "Keine Einträge gefunden"
@ -456,10 +466,6 @@ msgstr "Gehe zu %(search_page)s."
msgid "search page" msgid "search page"
msgstr "Suchseite" msgstr "Suchseite"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "Über"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Spenden" msgstr "Spenden"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2022-11-04 07:18+0000\n" "PO-Revision-Date: 2022-11-04 07:18+0000\n"
"Last-Translator: Landhoo School Students " "Last-Translator: Landhoo School Students "
"<landhooschoolstudents@gmail.com>\n" "<landhooschoolstudents@gmail.com>\n"
@ -145,6 +145,16 @@ msgstr "އަލި"
msgid "dark" msgid "dark"
msgstr "އަނދިރި" msgstr "އަނދިރި"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr ""
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "" msgstr ""
@ -416,10 +426,6 @@ msgstr ""
msgid "search page" msgid "search page"
msgstr "" msgstr ""
#: searx/templates/simple/base.html:49
msgid "About"
msgstr ""
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""

View file

@ -15,7 +15,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2023-12-21 20:16+0000\n" "PO-Revision-Date: 2023-12-21 20:16+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language: el_GR\n" "Language: el_GR\n"
@ -152,6 +152,16 @@ msgstr "φωτεινό"
msgid "dark" msgid "dark"
msgstr "σκοτεινό" msgstr "σκοτεινό"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "Σχετικά με το SearXNG"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Δεν βρέθηκαν αντικείμενα" msgstr "Δεν βρέθηκαν αντικείμενα"
@ -446,10 +456,6 @@ msgstr "Μετάβαση στο %(search_page)s."
msgid "search page" msgid "search page"
msgstr "σελίδα αναζήτησης" msgstr "σελίδα αναζήτησης"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "Σχετικά με το SearXNG"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Κάνε δωρεά" msgstr "Κάνε δωρεά"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2014-01-30 15:22+0100\n" "PO-Revision-Date: 2014-01-30 15:22+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@ -143,6 +143,16 @@ msgstr ""
msgid "dark" msgid "dark"
msgstr "" msgstr ""
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr ""
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "" msgstr ""
@ -414,10 +424,6 @@ msgstr ""
msgid "search page" msgid "search page"
msgstr "" msgstr ""
#: searx/templates/simple/base.html:49
msgid "About"
msgstr ""
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""

View file

@ -16,7 +16,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2024-01-21 08:56+0000\n" "PO-Revision-Date: 2024-01-21 08:56+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language: eo\n" "Language: eo\n"
@ -153,6 +153,16 @@ msgstr "hela"
msgid "dark" msgid "dark"
msgstr "malhela" msgstr "malhela"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "Pri"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Nenio trovita" msgstr "Nenio trovita"
@ -444,10 +454,6 @@ msgstr "Iri al %(search_page)s."
msgid "search page" msgid "search page"
msgstr "Serĉopaĝo" msgstr "Serĉopaĝo"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "Pri"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Donacu" msgstr "Donacu"

View file

@ -31,9 +31,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2024-02-01 06:37+0000\n" "PO-Revision-Date: 2024-02-15 16:56+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language-Team: Spanish <https://translate.codeberg.org/projects/searxng/" "Language-Team: Spanish <https://translate.codeberg.org/projects/searxng/"
"searxng/es/>\n" "searxng/es/>\n"
"Language: es\n" "Language: es\n"
@ -169,6 +169,16 @@ msgstr "claro"
msgid "dark" msgid "dark"
msgstr "oscuro" msgstr "oscuro"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr "Tiempo de actividad"
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "Acerca de"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Ningún artículo encontrado" msgstr "Ningún artículo encontrado"
@ -461,10 +471,6 @@ msgstr "Ir a %(search_page)s."
msgid "search page" msgid "search page"
msgstr "página de búsqueda" msgstr "página de búsqueda"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "Acerca de"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Donar" msgstr "Donar"

View file

@ -13,7 +13,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2023-10-08 16:53+0000\n" "PO-Revision-Date: 2023-10-08 16:53+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language: et\n" "Language: et\n"
@ -150,6 +150,16 @@ msgstr "herge"
msgid "dark" msgid "dark"
msgstr "pime" msgstr "pime"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "Teave"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Üksust ei leitud" msgstr "Üksust ei leitud"
@ -430,10 +440,6 @@ msgstr "Mine %(search_page)s."
msgid "search page" msgid "search page"
msgstr "otsinguleht" msgstr "otsinguleht"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "Teave"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Anneta" msgstr "Anneta"

View file

@ -13,19 +13,18 @@
# alexgabi <alexgabi@disroot.org>, 2023. # alexgabi <alexgabi@disroot.org>, 2023.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2024-02-01 06:37+0000\n" "PO-Revision-Date: 2024-02-01 06:37+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language-Team: Basque <https://translate.codeberg.org/projects/searxng/"
"searxng/eu/>\n"
"Language: eu\n" "Language: eu\n"
"Language-Team: Basque "
"<https://translate.codeberg.org/projects/searxng/searxng/eu/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.3.1\n"
"Generated-By: Babel 2.14.0\n" "Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING'] #. CONSTANT_NAMES['NO_SUBGROUPING']
@ -153,6 +152,16 @@ msgstr "argia"
msgid "dark" msgid "dark"
msgstr "iluna" msgstr "iluna"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "Honi buruz"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Ez da elementurik aurkitu" msgstr "Ez da elementurik aurkitu"
@ -444,10 +453,6 @@ msgstr "%(search_page)s(e)ra joan."
msgid "search page" msgid "search page"
msgstr "bilaketa orria" msgstr "bilaketa orria"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "Honi buruz"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Lagundu diruz" msgstr "Lagundu diruz"
@ -1716,3 +1721,4 @@ msgstr "ezkutatu bideoa"
#~ "ez dugu emaitzarik aurkitu. Mesedez " #~ "ez dugu emaitzarik aurkitu. Mesedez "
#~ "beste kontsulta bat egin edo bilatu " #~ "beste kontsulta bat egin edo bilatu "
#~ "kategoria gehiagotan." #~ "kategoria gehiagotan."

View file

@ -15,19 +15,18 @@
# arashe22 <arashe22@proton.me>, 2023. # arashe22 <arashe22@proton.me>, 2023.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2024-02-05 08:56+0000\n" "PO-Revision-Date: 2024-02-05 08:56+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language-Team: Persian <https://translate.codeberg.org/projects/searxng/"
"searxng/fa/>\n"
"Language: fa_IR\n" "Language: fa_IR\n"
"Language-Team: Persian "
"<https://translate.codeberg.org/projects/searxng/searxng/fa/>\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.3.1\n"
"Generated-By: Babel 2.14.0\n" "Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING'] #. CONSTANT_NAMES['NO_SUBGROUPING']
@ -155,6 +154,16 @@ msgstr "روشن"
msgid "dark" msgid "dark"
msgstr "تاریک" msgstr "تاریک"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "درباره"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "چیزی پیدا نشد" msgstr "چیزی پیدا نشد"
@ -444,10 +453,6 @@ msgstr "برو به %(search_page)s."
msgid "search page" msgid "search page"
msgstr "صفحهٔ جست‌وجو" msgstr "صفحهٔ جست‌وجو"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "درباره"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "اهداء کردن" msgstr "اهداء کردن"
@ -1723,3 +1728,4 @@ msgstr "پنهان‌سازی ویدئو"
#~ "چیزی پیدا نشد. لطفاً ورودی دیگری " #~ "چیزی پیدا نشد. لطفاً ورودی دیگری "
#~ "را بیازمایید یا در دسته‌‌های بیش‌تری " #~ "را بیازمایید یا در دسته‌‌های بیش‌تری "
#~ "جست‌وجو کنید." #~ "جست‌وجو کنید."

View file

@ -12,7 +12,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2024-01-18 04:56+0000\n" "PO-Revision-Date: 2024-01-18 04:56+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language: fi\n" "Language: fi\n"
@ -149,6 +149,16 @@ msgstr "vaalea"
msgid "dark" msgid "dark"
msgstr "tumma" msgstr "tumma"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "Tietoa SearXNG:stä"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Tietuetta ei löytynyt" msgstr "Tietuetta ei löytynyt"
@ -440,10 +450,6 @@ msgstr "Siirry %(search_page)s."
msgid "search page" msgid "search page"
msgstr "hakusivulle" msgstr "hakusivulle"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "Tietoa SearXNG:stä"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Lahjoita" msgstr "Lahjoita"

View file

@ -8,27 +8,29 @@
# Hachiki <ninonakano408@gmail.com>, 2022. # Hachiki <ninonakano408@gmail.com>, 2022.
# return42 <markus.heiser@darmarit.de>, 2023, 2024. # return42 <markus.heiser@darmarit.de>, 2023, 2024.
# johnmartzbuntia <johnmartibuntia@jmtb.xyz>, 2024. # johnmartzbuntia <johnmartibuntia@jmtb.xyz>, 2024.
# hankskyjames777 <iamjuanz30312@gmail.com>, 2024.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2024-01-21 08:56+0000\n" "PO-Revision-Date: 2024-02-20 11:01+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language-Team: Filipino <https://translate.codeberg.org/projects/searxng/"
"searxng/fil/>\n"
"Language: fil\n" "Language: fil\n"
"Language-Team: Filipino "
"<https://translate.codeberg.org/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" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n == 1 || n==2 || n==3) || (n % 10 != 4 || "
"n % 10 != 6 || n % 10 != 9);\n"
"X-Generator: Weblate 5.4\n"
"Generated-By: Babel 2.14.0\n" "Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING'] #. CONSTANT_NAMES['NO_SUBGROUPING']
#: searx/searxng.msg #: searx/searxng.msg
msgid "without further subgrouping" msgid "without further subgrouping"
msgstr "" msgstr "nang walang karagdagang pagbubuklod ng data"
#. CONSTANT_NAMES['DEFAULT_CATEGORY'] #. CONSTANT_NAMES['DEFAULT_CATEGORY']
#: searx/searxng.msg #: searx/searxng.msg
@ -150,6 +152,16 @@ msgstr "maliwanag"
msgid "dark" msgid "dark"
msgstr "madilim" msgstr "madilim"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr "\"uptime\""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "Tungkol"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Walang nakita na aytem" msgstr "Walang nakita na aytem"
@ -440,10 +452,6 @@ msgstr "Pumunta sa %(search_page)s."
msgid "search page" msgid "search page"
msgstr "ang pahina ng paghahanap" msgstr "ang pahina ng paghahanap"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "Tungkol"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Magbigay" msgstr "Magbigay"
@ -667,7 +675,7 @@ msgstr "Iskor"
#: searx/templates/simple/stats.html:27 #: searx/templates/simple/stats.html:27
msgid "Result count" msgid "Result count"
msgstr "" msgstr "bilang ng mga resulta"
#: searx/templates/simple/preferences/engines.html:25 #: searx/templates/simple/preferences/engines.html:25
#: searx/templates/simple/stats.html:28 #: searx/templates/simple/stats.html:28
@ -689,11 +697,11 @@ msgstr "HTTP"
#: searx/templates/simple/stats.html:61 #: searx/templates/simple/stats.html:61
msgid "Processing" msgid "Processing"
msgstr "" msgstr "prumoproseso"
#: searx/templates/simple/stats.html:99 #: searx/templates/simple/stats.html:99
msgid "Warnings" msgid "Warnings"
msgstr "" msgstr "Mga babala"
#: searx/templates/simple/stats.html:99 #: searx/templates/simple/stats.html:99
msgid "Errors and exceptions" msgid "Errors and exceptions"
@ -701,7 +709,7 @@ msgstr "Mga error at exceptions"
#: searx/templates/simple/stats.html:105 #: searx/templates/simple/stats.html:105
msgid "Exception" msgid "Exception"
msgstr "" msgstr "pagkakabigo/eksepsyon"
#: searx/templates/simple/stats.html:107 #: searx/templates/simple/stats.html:107
msgid "Message" msgid "Message"
@ -709,36 +717,36 @@ msgstr "Mensahe"
#: searx/templates/simple/stats.html:109 #: searx/templates/simple/stats.html:109
msgid "Percentage" msgid "Percentage"
msgstr "" msgstr "porsyento"
#: searx/templates/simple/stats.html:111 #: searx/templates/simple/stats.html:111
msgid "Parameter" msgid "Parameter"
msgstr "" msgstr "pamantayan"
#: searx/templates/simple/result_templates/files.html:36 #: searx/templates/simple/result_templates/files.html:36
#: searx/templates/simple/stats.html:119 #: searx/templates/simple/stats.html:119
msgid "Filename" msgid "Filename"
msgstr "" msgstr "pangalan ng file"
#: searx/templates/simple/stats.html:120 #: searx/templates/simple/stats.html:120
msgid "Function" msgid "Function"
msgstr "" msgstr "gawain"
#: searx/templates/simple/stats.html:121 #: searx/templates/simple/stats.html:121
msgid "Code" msgid "Code"
msgstr "" msgstr "code"
#: searx/templates/simple/stats.html:128 #: searx/templates/simple/stats.html:128
msgid "Checker" msgid "Checker"
msgstr "" msgstr "tagasuri"
#: searx/templates/simple/stats.html:131 #: searx/templates/simple/stats.html:131
msgid "Failed test" msgid "Failed test"
msgstr "" msgstr "Nabigong Pagsusulit"
#: searx/templates/simple/stats.html:132 #: searx/templates/simple/stats.html:132
msgid "Comment(s)" msgid "Comment(s)"
msgstr "" msgstr "(mga) komento"
#: searx/templates/simple/elements/apis.html:3 #: searx/templates/simple/elements/apis.html:3
msgid "Download results" msgid "Download results"
@ -746,7 +754,7 @@ msgstr "I-download ang mga resulta"
#: searx/templates/simple/elements/engines_msg.html:7 #: searx/templates/simple/elements/engines_msg.html:7
msgid "Messages from the search engines" msgid "Messages from the search engines"
msgstr "" msgstr "Mga mensahe mula sa mga search engine"
#: searx/templates/simple/elements/engines_msg.html:12 #: searx/templates/simple/elements/engines_msg.html:12
msgid "Error!" msgid "Error!"
@ -763,12 +771,12 @@ msgstr "URL ng Search"
#: searx/templates/simple/elements/search_url.html:4 #: searx/templates/simple/elements/search_url.html:4
#: searx/templates/simple/preferences/cookies.html:54 #: searx/templates/simple/preferences/cookies.html:54
msgid "Copied" msgid "Copied"
msgstr "" msgstr "nakopya"
#: searx/templates/simple/elements/search_url.html:4 #: searx/templates/simple/elements/search_url.html:4
#: searx/templates/simple/preferences/cookies.html:54 #: searx/templates/simple/preferences/cookies.html:54
msgid "Copy" msgid "Copy"
msgstr "" msgstr "kopyahin"
#: searx/templates/simple/elements/suggestions.html:3 #: searx/templates/simple/elements/suggestions.html:3
msgid "Suggestions" msgid "Suggestions"
@ -787,7 +795,7 @@ msgstr "Default na wika"
#: searx/templates/simple/filters/languages.html:4 #: searx/templates/simple/filters/languages.html:4
#: searx/templates/simple/preferences/language.html:11 #: searx/templates/simple/preferences/language.html:11
msgid "Auto-detect" msgid "Auto-detect"
msgstr "" msgstr "awtomatikong pangdedetekta"
#: searx/templates/simple/filters/safesearch.html:1 #: searx/templates/simple/filters/safesearch.html:1
#: searx/templates/simple/filters/safesearch.html:2 #: searx/templates/simple/filters/safesearch.html:2
@ -852,35 +860,35 @@ msgstr "Paumanhin!"
#: searx/templates/simple/messages/no_results.html:12 #: searx/templates/simple/messages/no_results.html:12
msgid "No results were found. You can try to:" msgid "No results were found. You can try to:"
msgstr "" msgstr "Walang mga resultang nahanap. Pwede mong subukang:"
#: searx/templates/simple/messages/no_results.html:14 #: searx/templates/simple/messages/no_results.html:14
msgid "There are no more results. You can try to:" msgid "There are no more results. You can try to:"
msgstr "" msgstr "Walang karagdagang mga resulta. Maaari mong subukan ang:"
#: searx/templates/simple/messages/no_results.html:19 #: searx/templates/simple/messages/no_results.html:19
msgid "Refresh the page." msgid "Refresh the page."
msgstr "" msgstr "I-refresh ang pahina."
#: searx/templates/simple/messages/no_results.html:20 #: searx/templates/simple/messages/no_results.html:20
msgid "Search for another query or select another category (above)." msgid "Search for another query or select another category (above)."
msgstr "" msgstr "Hanapin ang iba pang query o pumili ng ibang kategorya (sa itaas)."
#: searx/templates/simple/messages/no_results.html:21 #: searx/templates/simple/messages/no_results.html:21
msgid "Change the search engine used in the preferences:" msgid "Change the search engine used in the preferences:"
msgstr "" msgstr "Baguhin ang ginagamit na search engine sa mga nais:"
#: searx/templates/simple/messages/no_results.html:22 #: searx/templates/simple/messages/no_results.html:22
msgid "Switch to another instance:" msgid "Switch to another instance:"
msgstr "" msgstr "Lumipat sa ibang \"instance\":"
#: searx/templates/simple/messages/no_results.html:24 #: searx/templates/simple/messages/no_results.html:24
msgid "Search for another query or select another category." msgid "Search for another query or select another category."
msgstr "" msgstr "Humanap ng ibang query o pumili ng ibang kategorya."
#: searx/templates/simple/messages/no_results.html:25 #: searx/templates/simple/messages/no_results.html:25
msgid "Go back to the previous page using the previous page button." msgid "Go back to the previous page using the previous page button."
msgstr "" msgstr "Bumalik sa nakaraang pahina gamit ang button ng nakaraang pahina."
#: searx/templates/simple/preferences/answerers.html:4 #: searx/templates/simple/preferences/answerers.html:4
#: searx/templates/simple/preferences/engines.html:17 #: searx/templates/simple/preferences/engines.html:17
@ -938,6 +946,7 @@ msgstr ""
#: searx/templates/simple/preferences/cookies.html:3 #: searx/templates/simple/preferences/cookies.html:3
msgid "With that list, you can assess SearXNG transparency." msgid "With that list, you can assess SearXNG transparency."
msgstr "" msgstr ""
"Sa tulong ng listahan, maaari mong suriin ang transparansiya ng SearXNG."
#: searx/templates/simple/preferences/cookies.html:9 #: searx/templates/simple/preferences/cookies.html:9
msgid "Cookie name" msgid "Cookie name"
@ -962,25 +971,28 @@ msgstr ""
#: searx/templates/simple/preferences/cookies.html:35 #: searx/templates/simple/preferences/cookies.html:35
msgid "URL to restore your preferences in another browser" msgid "URL to restore your preferences in another browser"
msgstr "" msgstr "URL para ibalik ang iyong mga preference sa ibang browser"
#: searx/templates/simple/preferences/cookies.html:43 #: searx/templates/simple/preferences/cookies.html:43
msgid "" msgid ""
"Specifying custom settings in the preferences URL can be used to sync " "Specifying custom settings in the preferences URL can be used to sync "
"preferences across devices." "preferences across devices."
msgstr "" msgstr ""
"Ang pagtukoy ng pasadyang mga setting sa URL ng mga preference ay maaaring "
"gamitin upang i-sync ang mga preference sa iba't ibang mga aparato."
#: searx/templates/simple/preferences/cookies.html:46 #: searx/templates/simple/preferences/cookies.html:46
msgid "Copy preferences hash" msgid "Copy preferences hash"
msgstr "" msgstr "Kopyahin ang hash ng mga preference"
#: searx/templates/simple/preferences/cookies.html:57 #: searx/templates/simple/preferences/cookies.html:57
msgid "Insert copied preferences hash (without URL) to restore" msgid "Insert copied preferences hash (without URL) to restore"
msgstr "" msgstr ""
"Ilagay ang kinopyahang hash ng mga preference (walang URL) upang mag-restore"
#: searx/templates/simple/preferences/cookies.html:59 #: searx/templates/simple/preferences/cookies.html:59
msgid "Preferences hash" msgid "Preferences hash"
msgstr "" msgstr "Hash ng mga preference"
#: searx/templates/simple/preferences/doi_resolver.html:2 #: searx/templates/simple/preferences/doi_resolver.html:2
msgid "Open Access DOI resolver" msgid "Open Access DOI resolver"
@ -988,13 +1000,15 @@ msgstr "Open Access DOI resolver"
#: searx/templates/simple/preferences/doi_resolver.html:14 #: searx/templates/simple/preferences/doi_resolver.html:14
msgid "Select service used by DOI rewrite" msgid "Select service used by DOI rewrite"
msgstr "" msgstr "Pumili ng serbisyo na ginagamit sa pagsulat ng DOI"
#: searx/templates/simple/preferences/engines.html:9 #: searx/templates/simple/preferences/engines.html:9
msgid "" msgid ""
"This tab does not exists in the user interface, but you can search in " "This tab does not exists in the user interface, but you can search in "
"these engines by its !bangs." "these engines by its !bangs."
msgstr "" msgstr ""
"Ang tab na ito ay hindi umiiral sa interface ng gumagamit, ngunit maaari "
"kang maghanap sa mga engine na ito sa pamamagitan ng kanilang !bangs."
#: searx/templates/simple/preferences/engines.html:19 #: searx/templates/simple/preferences/engines.html:19
msgid "!bang" msgid "!bang"
@ -1006,7 +1020,7 @@ msgstr "Suportado ang pinili na wika"
#: searx/templates/simple/preferences/engines.html:23 #: searx/templates/simple/preferences/engines.html:23
msgid "Weight" msgid "Weight"
msgstr "" msgstr "Timbang"
#: searx/templates/simple/preferences/engines.html:27 #: searx/templates/simple/preferences/engines.html:27
msgid "Max time" msgid "Max time"
@ -1042,17 +1056,20 @@ msgstr "Bumalik"
#: searx/templates/simple/preferences/hotkeys.html:2 #: searx/templates/simple/preferences/hotkeys.html:2
msgid "Hotkeys" msgid "Hotkeys"
msgstr "" msgstr "Mga Hotkeys"
#: searx/templates/simple/preferences/hotkeys.html:13 #: searx/templates/simple/preferences/hotkeys.html:13
msgid "Vim-like" msgid "Vim-like"
msgstr "" msgstr "Katulad ng Vim"
#: searx/templates/simple/preferences/hotkeys.html:18 #: searx/templates/simple/preferences/hotkeys.html:18
msgid "" msgid ""
"Navigate search results with hotkeys (JavaScript required). Press \"h\" " "Navigate search results with hotkeys (JavaScript required). Press \"h\" "
"key on main or result page to get help." "key on main or result page to get help."
msgstr "" msgstr ""
"Mag-navigate sa mga resulta ng paghahanap gamit ang mga hotkey (JavaScript "
"ay kinakailangan). Pindutin ang \"h\" na key sa pangunahin o resultang "
"pahina para sa tulong."
#: searx/templates/simple/preferences/image_proxy.html:2 #: searx/templates/simple/preferences/image_proxy.html:2
msgid "Image proxy" msgid "Image proxy"
@ -1079,6 +1096,8 @@ msgstr "Ano ang gusto mong wika sa paghahanap?"
#: searx/templates/simple/preferences/language.html:25 #: searx/templates/simple/preferences/language.html:25
msgid "Choose Auto-detect to let SearXNG detect the language of your query." msgid "Choose Auto-detect to let SearXNG detect the language of your query."
msgstr "" msgstr ""
"Pumili ng Auto-detect upang payagan ang SearXNG na matukoy ang wika ng iyong "
"query."
#: searx/templates/simple/preferences/method.html:2 #: searx/templates/simple/preferences/method.html:2
msgid "HTTP Method" msgid "HTTP Method"
@ -1121,6 +1140,8 @@ msgid ""
"Perform search immediately if a category selected. Disable to select " "Perform search immediately if a category selected. Disable to select "
"multiple categories" "multiple categories"
msgstr "" msgstr ""
"Isagawa ang paghahanap kaagad kung may kategoryang pinili. I-disable upang "
"pumili ng maramihang mga kategorya"
#: searx/templates/simple/preferences/theme.html:2 #: searx/templates/simple/preferences/theme.html:2
msgid "Theme" msgid "Theme"
@ -1206,16 +1227,16 @@ msgstr "TiB"
#: searx/templates/simple/result_templates/files.html:47 #: searx/templates/simple/result_templates/files.html:47
msgid "Date" msgid "Date"
msgstr "" msgstr "Petsa"
#: searx/templates/simple/result_templates/files.html:49 #: searx/templates/simple/result_templates/files.html:49
#: searx/templates/simple/result_templates/paper.html:24 #: searx/templates/simple/result_templates/paper.html:24
msgid "Type" msgid "Type"
msgstr "" msgstr "Uri"
#: searx/templates/simple/result_templates/images.html:19 #: searx/templates/simple/result_templates/images.html:19
msgid "Format" msgid "Format"
msgstr "" msgstr "Anyo"
#: searx/templates/simple/result_templates/images.html:21 #: searx/templates/simple/result_templates/images.html:21
msgid "Engine" msgid "Engine"
@ -1227,7 +1248,7 @@ msgstr "Tignan ang source"
#: searx/templates/simple/result_templates/map.html:12 #: searx/templates/simple/result_templates/map.html:12
msgid "address" msgid "address"
msgstr "" msgstr "address"
#: searx/templates/simple/result_templates/map.html:43 #: searx/templates/simple/result_templates/map.html:43
msgid "show map" msgid "show map"
@ -1243,11 +1264,11 @@ msgstr "Petsa ng Paglathala"
#: searx/templates/simple/result_templates/paper.html:9 #: searx/templates/simple/result_templates/paper.html:9
msgid "Journal" msgid "Journal"
msgstr "" msgstr "Talaan"
#: searx/templates/simple/result_templates/paper.html:22 #: searx/templates/simple/result_templates/paper.html:22
msgid "Editor" msgid "Editor"
msgstr "" msgstr "Patnugot"
#: searx/templates/simple/result_templates/paper.html:23 #: searx/templates/simple/result_templates/paper.html:23
msgid "Publisher" msgid "Publisher"
@ -1255,7 +1276,7 @@ msgstr "tagapaglathala"
#: searx/templates/simple/result_templates/paper.html:25 #: searx/templates/simple/result_templates/paper.html:25
msgid "Tags" msgid "Tags"
msgstr "" msgstr "Mga Tag/Tatak"
#: searx/templates/simple/result_templates/paper.html:26 #: searx/templates/simple/result_templates/paper.html:26
msgid "DOI" msgid "DOI"
@ -1724,4 +1745,3 @@ msgstr "itago ang video"
#~ "wala kaming nakita na resulta. Pakiusap" #~ "wala kaming nakita na resulta. Pakiusap"
#~ " na ibahin ang tanong o maghanap " #~ " na ibahin ang tanong o maghanap "
#~ "sa maraming uri." #~ "sa maraming uri."

View file

@ -20,18 +20,19 @@
# quenty_occitania <quentinantonin@free.fr>, 2023. # quenty_occitania <quentinantonin@free.fr>, 2023.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2024-01-11 08:23+0000\n" "PO-Revision-Date: 2024-02-13 11:56+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language-Team: French <https://translate.codeberg.org/projects/searxng/"
"searxng/fr/>\n"
"Language: fr\n" "Language: fr\n"
"Language-Team: French "
"<https://translate.codeberg.org/projects/searxng/searxng/fr/>\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.3.1\n"
"Generated-By: Babel 2.14.0\n" "Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING'] #. CONSTANT_NAMES['NO_SUBGROUPING']
@ -159,6 +160,16 @@ msgstr "clair"
msgid "dark" msgid "dark"
msgstr "sombre" msgstr "sombre"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr "Temps de fonctionnement"
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "À propos"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Pas d'élément trouvé" msgstr "Pas d'élément trouvé"
@ -447,10 +458,6 @@ msgstr "Aller à %(search_page)s."
msgid "search page" msgid "search page"
msgstr "la page d'accueil" msgstr "la page d'accueil"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "À propos"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Faire un don" msgstr "Faire un don"
@ -981,15 +988,15 @@ msgstr ""
#: searx/templates/simple/preferences/cookies.html:46 #: searx/templates/simple/preferences/cookies.html:46
msgid "Copy preferences hash" msgid "Copy preferences hash"
msgstr "" msgstr "Copier le hash des préférences"
#: searx/templates/simple/preferences/cookies.html:57 #: searx/templates/simple/preferences/cookies.html:57
msgid "Insert copied preferences hash (without URL) to restore" msgid "Insert copied preferences hash (without URL) to restore"
msgstr "" msgstr "Insérer le hash de préférences copié à restaurer (sans l'URL)"
#: searx/templates/simple/preferences/cookies.html:59 #: searx/templates/simple/preferences/cookies.html:59
msgid "Preferences hash" msgid "Preferences hash"
msgstr "" msgstr "Hash des préférences"
#: searx/templates/simple/preferences/doi_resolver.html:2 #: searx/templates/simple/preferences/doi_resolver.html:2
msgid "Open Access DOI resolver" msgid "Open Access DOI resolver"
@ -1223,7 +1230,7 @@ msgstr "Tio"
#: searx/templates/simple/result_templates/files.html:47 #: searx/templates/simple/result_templates/files.html:47
msgid "Date" msgid "Date"
msgstr "" msgstr "Date"
#: searx/templates/simple/result_templates/files.html:49 #: searx/templates/simple/result_templates/files.html:49
#: searx/templates/simple/result_templates/paper.html:24 #: searx/templates/simple/result_templates/paper.html:24
@ -1759,4 +1766,3 @@ msgstr "cacher la vidéo"
#~ "nous n'avons trouvé aucun résultat. " #~ "nous n'avons trouvé aucun résultat. "
#~ "Effectuez une autre recherche ou changez" #~ "Effectuez une autre recherche ou changez"
#~ " de catégorie." #~ " de catégorie."

View file

@ -11,9 +11,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2024-02-01 06:37+0000\n" "PO-Revision-Date: 2024-02-13 11:56+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: ghose <correo@xmgz.eu>\n"
"Language-Team: Galician <https://translate.codeberg.org/projects/searxng/" "Language-Team: Galician <https://translate.codeberg.org/projects/searxng/"
"searxng/gl/>\n" "searxng/gl/>\n"
"Language: gl\n" "Language: gl\n"
@ -149,6 +149,16 @@ msgstr "claro"
msgid "dark" msgid "dark"
msgstr "escuro" msgstr "escuro"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr "Activo fai"
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "Acerca de"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Non se atoparon elementos" msgstr "Non se atoparon elementos"
@ -438,10 +448,6 @@ msgstr "Ir a %(search_page)s."
msgid "search page" msgid "search page"
msgstr "páxina de busca" msgstr "páxina de busca"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "Acerca de"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Doar" msgstr "Doar"

View file

@ -15,19 +15,20 @@
# shoko <nickskorohod@outlook.com>, 2023. # shoko <nickskorohod@outlook.com>, 2023.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2024-01-03 15:56+0000\n" "PO-Revision-Date: 2024-02-13 11:56+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n" "Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language-Team: Hebrew <https://translate.codeberg.org/projects/searxng/"
"searxng/he/>\n"
"Language: he\n" "Language: he\n"
"Language-Team: Hebrew "
"<https://translate.codeberg.org/projects/searxng/searxng/he/>\n"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 "
"&& n % 10 == 0) ? 2 : 3));\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
"n % 10 == 0) ? 2 : 3));\n"
"X-Generator: Weblate 5.3.1\n"
"Generated-By: Babel 2.14.0\n" "Generated-By: Babel 2.14.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING'] #. CONSTANT_NAMES['NO_SUBGROUPING']
@ -155,6 +156,16 @@ msgstr "בהיר"
msgid "dark" msgid "dark"
msgstr "כהה" msgstr "כהה"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "אודות"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "לא נמצא פריט" msgstr "לא נמצא פריט"
@ -301,6 +312,8 @@ msgid ""
"{numCitations} citations from the year {firstCitationVelocityYear} to " "{numCitations} citations from the year {firstCitationVelocityYear} to "
"{lastCitationVelocityYear}" "{lastCitationVelocityYear}"
msgstr "" msgstr ""
"{numCitations} אזכורים מ {firstCitationVelocityYear} עד "
"{lastCitationVelocityYear}"
#: searx/engines/tineye.py:40 #: searx/engines/tineye.py:40
msgid "" msgid ""
@ -416,7 +429,7 @@ msgstr "אתה משתמש בטור וזה נראה שיש לך את הIP הזה:
#: searx/plugins/tor_check.py:86 #: searx/plugins/tor_check.py:86
msgid "You are not using Tor and you have this external IP address: {ip_address}" msgid "You are not using Tor and you have this external IP address: {ip_address}"
msgstr "" msgstr "אינך משתמש/ת ב Tor וזוהי כתובתך: {ip_address}"
#: searx/plugins/tracker_url_remover.py:29 #: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover" msgid "Tracker URL remover"
@ -439,10 +452,6 @@ msgstr "המשך לעמוד %(search_page)s."
msgid "search page" msgid "search page"
msgstr "עמוד חיפוש" msgstr "עמוד חיפוש"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "אודות"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "תרומות" msgstr "תרומות"
@ -458,7 +467,7 @@ msgstr "מופעל באמצעות"
#: searx/templates/simple/base.html:67 #: searx/templates/simple/base.html:67
msgid "a privacy-respecting, open metasearch engine" msgid "a privacy-respecting, open metasearch engine"
msgstr "" msgstr "מנוע מטא-חיפוש בקוד חופשי המכבד את פרטיותך"
#: searx/templates/simple/base.html:68 #: searx/templates/simple/base.html:68
msgid "Source code" msgid "Source code"
@ -610,7 +619,7 @@ msgstr "מספר תוצאות"
#: searx/templates/simple/results.html:44 #: searx/templates/simple/results.html:44
msgid "Info" msgid "Info"
msgstr "" msgstr "מידע"
#: searx/templates/simple/results.html:73 #: searx/templates/simple/results.html:73
msgid "Try searching for:" msgid "Try searching for:"
@ -741,7 +750,7 @@ msgstr "הורד תוצאות"
#: searx/templates/simple/elements/engines_msg.html:7 #: searx/templates/simple/elements/engines_msg.html:7
msgid "Messages from the search engines" msgid "Messages from the search engines"
msgstr "" msgstr "הודעות ממנועי החיפוש"
#: searx/templates/simple/elements/engines_msg.html:12 #: searx/templates/simple/elements/engines_msg.html:12
msgid "Error!" msgid "Error!"
@ -758,12 +767,12 @@ msgstr "כתובת URL חיפוש"
#: searx/templates/simple/elements/search_url.html:4 #: searx/templates/simple/elements/search_url.html:4
#: searx/templates/simple/preferences/cookies.html:54 #: searx/templates/simple/preferences/cookies.html:54
msgid "Copied" msgid "Copied"
msgstr "" msgstr "הועתק"
#: searx/templates/simple/elements/search_url.html:4 #: searx/templates/simple/elements/search_url.html:4
#: searx/templates/simple/preferences/cookies.html:54 #: searx/templates/simple/preferences/cookies.html:54
msgid "Copy" msgid "Copy"
msgstr "" msgstr "העתק"
#: searx/templates/simple/elements/suggestions.html:3 #: searx/templates/simple/elements/suggestions.html:3
msgid "Suggestions" msgid "Suggestions"
@ -782,7 +791,7 @@ msgstr "שפה ברירת מחדל"
#: searx/templates/simple/filters/languages.html:4 #: searx/templates/simple/filters/languages.html:4
#: searx/templates/simple/preferences/language.html:11 #: searx/templates/simple/preferences/language.html:11
msgid "Auto-detect" msgid "Auto-detect"
msgstr "" msgstr "זיהוי אוטומטי"
#: searx/templates/simple/filters/safesearch.html:1 #: searx/templates/simple/filters/safesearch.html:1
#: searx/templates/simple/filters/safesearch.html:2 #: searx/templates/simple/filters/safesearch.html:2
@ -855,7 +864,7 @@ msgstr ""
#: searx/templates/simple/messages/no_results.html:19 #: searx/templates/simple/messages/no_results.html:19
msgid "Refresh the page." msgid "Refresh the page."
msgstr "" msgstr "טעינת הדף מחדש"
#: searx/templates/simple/messages/no_results.html:20 #: searx/templates/simple/messages/no_results.html:20
msgid "Search for another query or select another category (above)." msgid "Search for another query or select another category (above)."
@ -863,7 +872,7 @@ msgstr ""
#: searx/templates/simple/messages/no_results.html:21 #: searx/templates/simple/messages/no_results.html:21
msgid "Change the search engine used in the preferences:" msgid "Change the search engine used in the preferences:"
msgstr "" msgstr "שינוי מנוע החיפוש בהגדרות:"
#: searx/templates/simple/messages/no_results.html:22 #: searx/templates/simple/messages/no_results.html:22
msgid "Switch to another instance:" msgid "Switch to another instance:"
@ -1698,4 +1707,3 @@ msgstr "הסתר וידאו"
#~ "use another query or search in " #~ "use another query or search in "
#~ "more categories." #~ "more categories."
#~ msgstr "לא מצאנו תוצאות. אנא נסו שאילתא אחרת או חפשו בתוך יותר קטגוריות." #~ msgstr "לא מצאנו תוצאות. אנא נסו שאילתא אחרת או חפשו בתוך יותר קטגוריות."

View file

@ -15,7 +15,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-01-31 19:06+0000\n" "POT-Creation-Date: 2024-02-10 07:07+0000\n"
"PO-Revision-Date: 2023-12-29 14:09+0000\n" "PO-Revision-Date: 2023-12-29 14:09+0000\n"
"Last-Translator: SecularSteve <fairfull.playing@gmail.com>\n" "Last-Translator: SecularSteve <fairfull.playing@gmail.com>\n"
"Language: hr\n" "Language: hr\n"
@ -153,6 +153,16 @@ msgstr "svijetlo"
msgid "dark" msgid "dark"
msgstr "tamno" msgstr "tamno"
#. BRAND_CUSTOM_LINKS['UPTIME']
#: searx/searxng.msg
msgid "Uptime"
msgstr ""
#. BRAND_CUSTOM_LINKS['ABOUT']
#: searx/searxng.msg searx/templates/simple/base.html:49
msgid "About"
msgstr "O nama"
#: searx/webapp.py:332 #: searx/webapp.py:332
msgid "No item found" msgid "No item found"
msgstr "Nije pronađena nijedna stavka" msgstr "Nije pronađena nijedna stavka"
@ -438,10 +448,6 @@ msgstr "Idi na %(search_page)s."
msgid "search page" msgid "search page"
msgstr "pretraži stranicu" msgstr "pretraži stranicu"
#: searx/templates/simple/base.html:49
msgid "About"
msgstr "O nama"
#: searx/templates/simple/base.html:53 #: searx/templates/simple/base.html:53
msgid "Donate" msgid "Donate"
msgstr "Donirajte" msgstr "Donirajte"

Some files were not shown because too many files have changed in this diff Show more