Merge branch 'searxng:master' into master

This commit is contained in:
Azure Star 2023-03-27 00:08:00 +02:00 committed by GitHub
commit 91301a21b8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 375 additions and 164 deletions

4
.devcontainer/Dockerfile Normal file
View file

@ -0,0 +1,4 @@
FROM mcr.microsoft.com/devcontainers/base:debian
RUN apt-get update && \
apt-get -y install python3 python3-venv redis firefox-esr graphviz imagemagick librsvg2-bin fonts-dejavu shellcheck

View file

@ -0,0 +1,31 @@
{
"build": {
"dockerfile": "Dockerfile"
},
"features": {
"ghcr.io/devcontainers/features/github-cli": {}
},
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-azuretools.vscode-docker"
],
"remote.otherPortsAttributes": {
"protocol": "https"
},
"settings": {
"files.autoSave": "off",
"python.defaultInterpreterPath": "/workspaces/searxng/local/py3/bin/python3",
"python.formatting.blackPath": "/workspaces/searxng/local/py3/bin/black",
"python.linting.pylintPath": "/workspaces/searxng/local/py3/bin/pylint"
}
}
},
"forwardPorts": [8000, 8888],
"portsAttributes": {
"8000": {"label": "Sphinx documentation"},
"8888": {"label": "SearXNG"}
},
"postCreateCommand": "git pull && make install"
}

40
.editorconfig Normal file
View file

@ -0,0 +1,40 @@
# https://editorconfig.org/
root = true
[*]
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
end_of_line = lf
charset = utf-8
[*.py]
max_line_length = 119
[*.html]
indent_size = 4
[*.json]
indent_size = 4
insert_final_newline = ignore
# Minified JavaScript files shouldn't be changed
[**.min.js]
indent_style = ignore
insert_final_newline = ignore
# Makefiles always use tabs for indentation
[Makefile]
indent_style = tab
# Batch files use tabs for indentation
[*.bat]
indent_style = tab
[docs/**.rst]
max_line_length = 79
[*.yml]
indent_size = 2

23
.vscode/launch.json vendored Normal file
View file

@ -0,0 +1,23 @@
{
// See https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "SearXNG",
"type": "python",
"request": "launch",
"module": "searx.webapp",
"env": {
"FLASK_APP": "webapp",
"FLASK_DEBUG": "1",
"SEARXNG_DEBUG": "1",
},
"args": [
"run"
],
"jinja": true,
"justMyCode": true,
"python": "${workspaceFolder}/local/py3/bin/python",
}
]
}

11
.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,11 @@
{
"python.testing.unittestArgs": [
"-v",
"-s",
"./tests",
"-p",
"test_*.py"
],
"python.testing.pytestEnabled": false,
"python.testing.unittestEnabled": true,
}

36
.vscode/tasks.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "make run",
"type": "shell",
"command": "make run",
"problemMatcher": [],
"isBackground": true,
"presentation": {
"reveal": "always",
"panel": "dedicated"
},
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "make docs.live",
"type": "shell",
"command": "make docs.live",
"problemMatcher": [],
"isBackground": true,
"presentation": {
"reveal": "always",
"panel": "dedicated"
},
"group": {
"kind": "build"
}
}
]
}

View file

@ -12,9 +12,9 @@
Privacy-respecting, hackable `metasearch engine`_
If you are looking for running instances, ready to use, then visit searx.space_.
Otherwise jump to the user_, admin_ and developer_ handbooks you will find on
our homepage_.
Searx.space_ lists ready-to-use running instances.
A user_, admin_ and developer_ handbook is available on the homepage_.
|SearXNG install|
|SearXNG homepage|
@ -66,20 +66,19 @@ our homepage_.
Contact
=======
Come join us if you have questions or just want to chat about SearXNG.
Matrix
`#searxng:matrix.org <https://matrix.to/#/#searxng:matrix.org>`_
Ask questions or just chat about SearXNG on
IRC
`#searxng on libera.chat <https://web.libera.chat/?channel=#searxng>`_
which is bridged to Matrix.
Matrix
`#searxng:matrix.org <https://matrix.to/#/#searxng:matrix.org>`_
Differences to searx
====================
SearXNG is a fork of `searx`_. Here are some of the changes:
SearXNG is a fork of `searx`_, with notable changes:
.. _searx: https://github.com/searx/searx
@ -87,49 +86,48 @@ SearXNG is a fork of `searx`_. Here are some of the changes:
User experience
---------------
- Huge update of the simple theme:
- Reworked (and still simple) theme:
* usable on desktop, tablet and mobile
* light and dark versions (you can choose in the preferences)
* support right-to-left languages
* `see the screenshots <https://dev.searxng.org/screenshots.html>`_
* Usable on desktop, tablet and mobile.
* Light and dark versions (available in the preferences).
* Right-to-left language support.
* `Screenshots <https://dev.searxng.org/screenshots.html>`_
- the translations are up to date, you can contribute on `Weblate`_
- the preferences page has been updated:
- The translations are up to date, you can contribute on `Weblate`_
- The preferences page has been updated:
* you can see which engines are reliable or not
* engines are grouped inside each tab
* each engine has a description
* Browse which engines are reliable or not.
* Engines are grouped inside each tab.
* Each engine has a description.
- thanks to the anonymous metrics, it is easier to report a bug of an engine and
thus engines get fixed more quickly
- Thanks to the anonymous metrics, it is easier to report malfunctioning engines,
so they get fixed quicker
- if you don't want any metrics to be recorded, you can `disable them on the server
<https://docs.searxng.org/admin/engines/settings.html#general>`_
- `Turn off metrics on the server
<https://docs.searxng.org/admin/engines/settings.html#general>`_ if you don't want them recorded.
- administrator can `block and/or replace the URLs in the search results
- Administrators can `block and/or replace the URLs in the search results
<https://github.com/searxng/searxng/blob/5c1c0817c3996c5670a545d05831d234d21e6217/searx/settings.yml#L191-L199>`_
Setup
-----
- you don't need `Morty`_ to proxy the images even on a public instance
- you don't need `Filtron`_ to block bots, we implemented the builtin `limiter`_
- you get a well maintained `Docker image`_, now also built for ARM64 and ARM/v7 architectures
- alternatively we have up to date installation scripts
- No need for `Morty`_ to proxy images, even on a public instance.
- No need for `Filtron`_ to block bots, as there is now a built-in `limiter`_.
- A well maintained `Docker image`_, now also built for ARM64 and ARM/v7 architectures.
(Alternatively there are up to date installation scripts.)
.. _Docker image: https://github.com/searxng/searxng-docker
Contributing is easier
----------------------
Contributing
------------
- readable debug log
- contributions to the themes are made easier, check out our `Development
Quickstart`_ guide
- a lot of code cleanup and bug fixes
- the dependencies are up to date
- Readable debug log.
- Contributing is easier, thanks to the `Development Quickstart`_ guide.
- A lot of code cleanup and bugfixes.
- Up to date list dependencies.
.. _Morty: https://github.com/asciimoo/morty
.. _Filtron: https://github.com/searxng/filtron
@ -141,15 +139,35 @@ Contributing is easier
Translations
============
We need translators, suggestions are welcome at
https://translate.codeberg.org/projects/searxng/searxng/
Help translate SearXNG at `Weblate`_
.. figure:: https://translate.codeberg.org/widgets/searxng/-/multi-auto.svg
:target: https://translate.codeberg.org/projects/searxng/
Make a donation
===============
Codespaces
==========
You can support the SearXNG project by clicking on the donation page:
You can contribute from your browser using `GitHub Codespaces`_:
- Fork the repository
- Click on the ``<> Code`` green button
- Click on the ``Codespaces`` tab instead of ``Local``
- Click on ``Create codespace on master``
- VSCode is going to start in the browser
- Wait for ``git pull && make install`` to appears and then to disapear
- You have `120 hours per month`_ (see also your `list of existing Codespaces`_)
- You can start SearXNG using ``make run`` in the terminal or by pressing ``Ctrl+Shift+B``.
.. _GitHub Codespaces: https://docs.github.com/en/codespaces/overview
.. _120 hours per month: https://github.com/settings/billing
.. _list of existing Codespaces: https://github.com/codespaces
Donations
=========
Support the SearXNG project by clicking the donation page:
https://docs.searxng.org/donate.html
Thank you :)

View file

@ -2,7 +2,7 @@ mock==5.0.1
nose2[coverage_plugin]==0.12.0
cov-core==1.15.0
black==22.12.0
pylint==2.17.0
pylint==2.17.1
splinter==0.19.0
selenium==4.8.2
twine==4.0.2
@ -15,8 +15,8 @@ sphinxcontrib-programoutput==0.17
sphinx-autobuild==2021.3.14
sphinx-notfound-page==0.8.3
myst-parser==1.0.0
linuxdoc==20221127
linuxdoc==20230321
aiounittest==1.4.2
yamllint==1.29.0
yamllint==1.30.0
wlc==1.13
coloredlogs==15.0.1

View file

@ -260,7 +260,7 @@ def get_results(attribute_result, attributes, language):
infobox_urls.append({'title': attribute.get_label(language), 'url': url, **attribute.kwargs})
# "normal" results (not infobox) include official website and Wikipedia links.
if attribute.kwargs.get('official') or attribute_type == WDArticle:
results.append({'title': infobox_title, 'url': url})
results.append({'title': infobox_title, 'url': url, "content": infobox_content})
# update the infobox_id with the wikipedia URL
# first the local wikipedia URL, and as fallback the english wikipedia URL
if attribute_type == WDArticle and (

View file

@ -4,6 +4,7 @@
import asyncio
import logging
import random
from ssl import SSLContext
import threading
from typing import Any, Dict
@ -28,10 +29,34 @@ LOOP = None
SSLCONTEXTS: Dict[Any, SSLContext] = {}
def shuffle_ciphers(ssl_context):
"""Shuffle httpx's default ciphers of a SSL context randomly.
From `What Is TLS Fingerprint and How to Bypass It`_
> When implementing TLS fingerprinting, servers can't operate based on a
> locked-in whitelist database of fingerprints. New fingerprints appear
> when web clients or TLS libraries release new versions. So, they have to
> live off a blocklist database instead.
> ...
> It's safe to leave the first three as is but shuffle the remaining ciphers
> and you can bypass the TLS fingerprint check.
.. _What Is TLS Fingerprint and How to Bypass It:
https://www.zenrows.com/blog/what-is-tls-fingerprint#how-to-bypass-tls-fingerprinting
"""
c_list = httpx._config.DEFAULT_CIPHERS.split(':') # pylint: disable=protected-access
sc_list, c_list = c_list[:3], c_list[3:]
random.shuffle(c_list)
ssl_context.set_ciphers(":".join(sc_list + c_list))
def get_sslcontexts(proxy_url=None, cert=None, verify=True, trust_env=True, http2=False):
key = (proxy_url, cert, verify, trust_env, http2)
if key not in SSLCONTEXTS:
SSLCONTEXTS[key] = httpx.create_ssl_context(cert, verify, trust_env, http2)
shuffle_ciphers(SSLCONTEXTS[key])
return SSLCONTEXTS[key]

View file

@ -54,7 +54,7 @@ def replace_auto_language(search_query: SearchQuery):
if search_query.lang != 'auto':
return
detected_lang = detect_language(search_query.query, threshold=0.0, only_search_languages=True)
detected_lang = detect_language(search_query.query, threshold=0.3, only_search_languages=True)
if detected_lang is None:
# fallback to 'all' if no language has been detected
search_query.lang = 'all'

View file

@ -18,7 +18,6 @@
"brace-style": ["error", "1tbs", { "allowSingleLine": true }],
"curly": ["error", "multi-line"],
"block-spacing": ["error", "always"],
"comma-spacing": ["error", { "before": false, "after": true }],
"dot-location": ["error", "property"],
"key-spacing": ["error", { "beforeColon": false, "afterColon": true }],
"spaced-comment": ["error", "always", {

View file

@ -12,15 +12,16 @@ msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-02-20 11:22+0000\n"
"PO-Revision-Date: 2023-02-19 11:39+0000\n"
"PO-Revision-Date: 2023-03-21 17:37+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language-Team: Danish <https://translate.codeberg.org/projects/searxng/"
"searxng/da/>\n"
"Language: da\n"
"Language-Team: Danish "
"<https://translate.codeberg.org/projects/searxng/searxng/da/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.16.4\n"
"Generated-By: Babel 2.11.0\n"
#. CONSTANT_NAMES['DEFAULT_GROUP_NAME']
@ -390,11 +391,11 @@ msgstr ""
msgid ""
"You are using Tor and it looks like you have this external IP address: "
"{ip_address}"
msgstr ""
msgstr "Du bruger ikke Tor og du har denne eksterne IP adresse: {ip_address}"
#: searx/plugins/tor_check.py:86
msgid "You are not using Tor and you have this external IP address: {ip_address}"
msgstr ""
msgstr "Du bruger ikke Tor og du har denne eksterne IP adresse: {ip_address}"
#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
@ -1548,4 +1549,3 @@ msgstr "skjul video"
#~ msgid "Automatically detect the query search language and switch to it."
#~ msgstr "Registrer automatisk søgesproget og skift til det."

View file

@ -8,20 +8,22 @@
# Markus Heiser <markus.heiser@darmarit.de>, 2022, 2023.
# Constantine Giannopoulos <K.Giannopoulos@acg.edu>, 2022.
# Alexandre Flament <alex@al-f.net>, 2022.
# return42 <markus.heiser@darmarit.de>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-02-20 11:22+0000\n"
"PO-Revision-Date: 2023-01-06 07:14+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"PO-Revision-Date: 2023-03-24 07:07+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language-Team: Greek <https://translate.codeberg.org/projects/searxng/"
"searxng/el/>\n"
"Language: el_GR\n"
"Language-Team: Greek "
"<https://weblate.bubu1.eu/projects/searxng/searxng/el/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.16.4\n"
"Generated-By: Babel 2.11.0\n"
#. CONSTANT_NAMES['DEFAULT_GROUP_NAME']
@ -380,22 +382,31 @@ msgid ""
"This plugin checks if the address of the request is a Tor exit-node, and "
"informs the user if it is; like check.torproject.org, but from SearXNG."
msgstr ""
"Αυτό το πρόσθετο ελέγχει εάν η διεύθυνση του χρήστη είναι διεύθυνση εξόδου "
"του δικτύου Tor και ενημερώνει τον χρήστη εάν είναι έτσι. Όπως στο "
"check.torproject.org, αλλά από το SearXNG."
#: searx/plugins/tor_check.py:62
msgid ""
"Could not download the list of Tor exit-nodes from: "
"https://check.torproject.org/exit-addresses"
msgstr ""
"Δεν ήταν δυνατή η λήψη της λίστας διευθύνσεων εξόδου του δικτύου Tor από το: "
"https://check.torproject.org/exit-addresses"
#: searx/plugins/tor_check.py:78
msgid ""
"You are using Tor and it looks like you have this external IP address: "
"{ip_address}"
msgstr ""
"Χρησιμοποιείτε το δίκτυο Tor και φαίνεται πως η εξωτερική σας διεύθυνση "
"είναι η: {ip_address}"
#: searx/plugins/tor_check.py:86
msgid "You are not using Tor and you have this external IP address: {ip_address}"
msgstr ""
"Δεν χρησιμοποιείτε το δίκτυο Tor. Η εξωτερική σας διεύθυνση είναι: "
"{ip_address}"
#: searx/plugins/tracker_url_remover.py:29
msgid "Tracker URL remover"
@ -580,7 +591,7 @@ msgstr "Προεπιλεγμένη γλώσσα"
#: searx/templates/simple/filters/languages.html:4
#: searx/templates/simple/preferences.html:119
msgid "Auto-detect"
msgstr ""
msgstr "Αυτόματη αναγνώριση της γλώσσας"
#: searx/templates/simple/preferences.html:126
msgid "What language do you prefer for search?"
@ -589,6 +600,8 @@ msgstr "Τι γλώσσα προτιμάτε για αναζήτηση;"
#: searx/templates/simple/preferences.html:126
msgid "Choose Auto-detect to let SearXNG detect the language of your query."
msgstr ""
"Επιλέξτε αυτόματη αναγνώριση για να αφήσετε το SearXNG να αναγνωρίσει την "
"γλώσσα του ερωτήματος σας αυτόματα."
#: searx/templates/simple/preferences.html:132
msgid "Autocomplete"
@ -987,7 +1000,7 @@ msgstr "αναζήτηση"
#: searx/templates/simple/stats.html:21
msgid "There is currently no data available. "
msgstr "Δεν υπάρχουν διαθέσιμα δεδομένα."
msgstr "Δεν υπάρχουν διαθέσιμα δεδομένα. "
#: searx/templates/simple/stats.html:26
msgid "Scores"
@ -1150,7 +1163,7 @@ msgstr "Ημερομηνία δημοσίευσης"
#: searx/templates/simple/result_templates/paper.html:9
msgid "Journal"
msgstr ""
msgstr "Περιοδικό"
#: searx/templates/simple/result_templates/paper.html:22
msgid "Editor"
@ -1170,23 +1183,23 @@ msgstr "Σημάνσεις"
#: searx/templates/simple/result_templates/paper.html:26
msgid "DOI"
msgstr ""
msgstr "DOI"
#: searx/templates/simple/result_templates/paper.html:27
msgid "ISSN"
msgstr ""
msgstr "ISSN"
#: searx/templates/simple/result_templates/paper.html:28
msgid "ISBN"
msgstr ""
msgstr "ISBN"
#: searx/templates/simple/result_templates/paper.html:33
msgid "PDF"
msgstr ""
msgstr "PDF"
#: searx/templates/simple/result_templates/paper.html:34
msgid "HTML"
msgstr ""
msgstr "HTML"
#: searx/templates/simple/result_templates/torrent.html:6
msgid "magnet link"
@ -1551,4 +1564,3 @@ msgstr "απόκρυψη βίντεο"
#~ msgid "Automatically detect the query search language and switch to it."
#~ msgstr ""

View file

@ -26,7 +26,7 @@ msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-02-20 11:22+0000\n"
"PO-Revision-Date: 2023-03-16 10:25+0000\n"
"PO-Revision-Date: 2023-03-24 07:07+0000\n"
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
"Language-Team: Italian <https://translate.codeberg.org/projects/searxng/"
"searxng/it/>\n"
@ -35,7 +35,7 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.16.2\n"
"X-Generator: Weblate 4.16.4\n"
"Generated-By: Babel 2.11.0\n"
#. CONSTANT_NAMES['DEFAULT_GROUP_NAME']
@ -692,7 +692,6 @@ msgid "Theme style"
msgstr "Stile tema"
#: searx/templates/simple/preferences.html:217
#, fuzzy
msgid "Choose auto to follow your browser settings"
msgstr "Seleziona automatico per seguire le impostazioni del tuo browser"
@ -703,7 +702,6 @@ msgstr "Allinea al centro"
#: searx/templates/simple/preferences.html:223
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/preferences.html:247
#, fuzzy
msgid "On"
msgstr "Attivo"

View file

@ -5,20 +5,22 @@
# niele2 <arifshafie.K@gmail.com>, 2022.
# Markus Heiser <markus.heiser@darmarit.de>, 2022.
# Zaid Aiman <zaidaiman@gmail.com>, 2022.
# chenghui-lee <chlee9926@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-02-20 11:22+0000\n"
"PO-Revision-Date: 2022-10-28 07:18+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"PO-Revision-Date: 2023-03-21 17:37+0000\n"
"Last-Translator: chenghui-lee <chlee9926@gmail.com>\n"
"Language-Team: Malay <https://translate.codeberg.org/projects/searxng/"
"searxng/ms/>\n"
"Language: ms\n"
"Language-Team: Malay "
"<https://weblate.bubu1.eu/projects/searxng/searxng/ms/>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.16.4\n"
"Generated-By: Babel 2.11.0\n"
#. CONSTANT_NAMES['DEFAULT_GROUP_NAME']
@ -279,6 +281,9 @@ msgid ""
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
" WebP."
msgstr ""
"Tidak boleh mengakses pautan imeg. Ini boleh disebabkan oleh format file "
"yang tidak disokong. TinEye hanya menyokong imeg yang dalam format JPEG, "
"PNG, GIF, BMP, TIFF atau WebP."
#: searx/engines/tineye.py:46
msgid ""
@ -351,13 +356,15 @@ msgstr ""
#: searx/plugins/self_info.py:20
msgid "Self Information"
msgstr ""
msgstr "Maklumat Diri"
#: searx/plugins/self_info.py:21
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr ""
"Memaparkan IP anda jika pertanyaan ialah \"ip\" dan ejen pengguna anda jika "
"pertanyaan mengandungi \"user agent\"."
#: searx/plugins/tor_check.py:25
msgid "Tor check plugin"
@ -374,12 +381,16 @@ msgid ""
"Could not download the list of Tor exit-nodes from: "
"https://check.torproject.org/exit-addresses"
msgstr ""
"Tidak dapat memuat turun senarai nod keluar Tor dari: https://check."
"torproject.org/exit-addresses"
#: searx/plugins/tor_check.py:78
msgid ""
"You are using Tor and it looks like you have this external IP address: "
"{ip_address}"
msgstr ""
"Anda sedang menggunakan Tor dan nampaknya anda mempunyai alamat IP luaran "
"ini: {ip_address}"
#: searx/plugins/tor_check.py:86
msgid "You are not using Tor and you have this external IP address: {ip_address}"
@ -405,7 +416,7 @@ msgstr ""
#: searx/templates/simple/404.html:4
msgid "Page not found"
msgstr ""
msgstr "Laman tidak dapat dijumpai"
#: searx/templates/simple/404.html:6
#, python-format
@ -414,15 +425,15 @@ msgstr ""
#: searx/templates/simple/404.html:6
msgid "search page"
msgstr ""
msgstr "Laman carian"
#: searx/templates/simple/base.html:46
msgid "About"
msgstr ""
msgstr "Tentang"
#: searx/templates/simple/base.html:50
msgid "Donate"
msgstr ""
msgstr "Derma"
#: searx/templates/simple/base.html:54
#: searx/templates/simple/preferences.html:99
@ -439,7 +450,7 @@ msgstr ""
#: searx/templates/simple/base.html:65
msgid "Source code"
msgstr ""
msgstr "Kod sumber"
#: searx/templates/simple/base.html:66
msgid "Issue tracker"
@ -447,7 +458,7 @@ msgstr ""
#: searx/templates/simple/base.html:67 searx/templates/simple/stats.html:18
msgid "Engine stats"
msgstr ""
msgstr "Statistik enjin"
#: searx/templates/simple/base.html:69
#: searx/templates/simple/messages/no_results.html:15
@ -506,7 +517,7 @@ msgstr ""
#: searx/templates/simple/preferences.html:29
msgid "No HTTPS"
msgstr ""
msgstr "Tanpa HTTPS"
#: searx/templates/simple/messages/no_results.html:10
#: searx/templates/simple/preferences.html:31
@ -540,7 +551,7 @@ msgstr ""
#: searx/templates/simple/preferences.html:105
msgid "General"
msgstr ""
msgstr "Umum"
#: searx/templates/simple/preferences.html:108
msgid "Default categories"
@ -563,7 +574,7 @@ msgstr ""
#: searx/templates/simple/preferences.html:126
msgid "What language do you prefer for search?"
msgstr ""
msgstr "Bahasa apa yang anda suka untuk membuat carian?"
#: searx/templates/simple/preferences.html:126
msgid "Choose Auto-detect to let SearXNG detect the language of your query."
@ -589,21 +600,21 @@ msgstr ""
#: searx/templates/simple/filters/safesearch.html:2
#: searx/templates/simple/preferences.html:149
msgid "Strict"
msgstr ""
msgstr "Ketat"
#: searx/templates/simple/filters/safesearch.html:3
#: searx/templates/simple/preferences.html:150
msgid "Moderate"
msgstr ""
msgstr "Sederhana"
#: searx/templates/simple/filters/safesearch.html:4
#: searx/templates/simple/preferences.html:151
msgid "None"
msgstr ""
msgstr "Tanpa"
#: searx/templates/simple/preferences.html:154
msgid "Filter content"
msgstr ""
msgstr "Tapis kandungan"
#: searx/templates/simple/preferences.html:160
msgid "Open Access DOI resolver"
@ -617,11 +628,11 @@ msgstr ""
#: searx/templates/simple/preferences.html:174
msgid "Engine tokens"
msgstr ""
msgstr "Token enjin"
#: searx/templates/simple/preferences.html:178
msgid "Access tokens for private engines"
msgstr ""
msgstr "Akses token untuk enjin persendirian"
#: searx/templates/simple/preferences.html:182
msgid "User interface"
@ -637,7 +648,7 @@ msgstr ""
#: searx/templates/simple/preferences.html:198
msgid "Theme"
msgstr ""
msgstr "Tema"
#: searx/templates/simple/preferences.html:206
msgid "Change SearXNG layout"
@ -645,7 +656,7 @@ msgstr ""
#: searx/templates/simple/preferences.html:209
msgid "Theme style"
msgstr ""
msgstr "Gaya tema"
#: searx/templates/simple/preferences.html:217
msgid "Choose auto to follow your browser settings"
@ -659,13 +670,13 @@ msgstr ""
#: searx/templates/simple/preferences.html:235
#: searx/templates/simple/preferences.html:247
msgid "On"
msgstr ""
msgstr "Buka"
#: searx/templates/simple/preferences.html:224
#: searx/templates/simple/preferences.html:236
#: searx/templates/simple/preferences.html:248
msgid "Off"
msgstr ""
msgstr "Tutup"
#: searx/templates/simple/preferences.html:227
msgid "Displays results in the center of the page (Oscar layout)."
@ -689,11 +700,11 @@ msgstr ""
#: searx/templates/simple/preferences.html:257
msgid "Privacy"
msgstr ""
msgstr "Privasi"
#: searx/templates/simple/preferences.html:260
msgid "HTTP Method"
msgstr ""
msgstr "Kaedah HTTP"
#: searx/templates/simple/preferences.html:267
msgid ""
@ -701,10 +712,13 @@ msgid ""
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr ""
"Ubah cara borang diserahkan,<a href=\"http://en.wikipedia.org/wiki/"
"Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">ketahui lebih "
"lanjut tentang kaedah permintaan</a>"
#: searx/templates/simple/preferences.html:272
msgid "Image proxy"
msgstr ""
msgstr "Proksi imej"
#: searx/templates/simple/preferences.html:275
#: searx/templates/simple/preferences.html:287
@ -732,11 +746,11 @@ msgstr ""
#: searx/templates/simple/preferences.html:297
msgid "Engines"
msgstr ""
msgstr "Enjin-enjin"
#: searx/templates/simple/preferences.html:298
msgid "Currently used search engines"
msgstr ""
msgstr "Enjin carian yang digunakan pada masa ini"
#: searx/templates/simple/preferences.html:305
msgid ""
@ -747,12 +761,12 @@ msgstr ""
#: searx/templates/simple/preferences.html:310
#: searx/templates/simple/preferences.html:361
msgid "Allow"
msgstr ""
msgstr "Benarkan"
#: searx/templates/simple/preferences.html:311
#: searx/templates/simple/stats.html:25
msgid "Engine name"
msgstr ""
msgstr "Nama enjin"
#: searx/templates/simple/preferences.html:312
msgid "Shortcut"
@ -770,36 +784,36 @@ msgstr ""
#: searx/templates/simple/preferences.html:316
#: searx/templates/simple/stats.html:28
msgid "Response time"
msgstr ""
msgstr "Masa tindak balas"
#: searx/templates/simple/preferences.html:317
msgid "Max time"
msgstr ""
msgstr "Masa maksimum"
#: searx/templates/simple/preferences.html:318
#: searx/templates/simple/stats.html:29
msgid "Reliability"
msgstr ""
msgstr "Kebolehpercayaan"
#: searx/templates/simple/preferences.html:356
msgid "Special Queries"
msgstr ""
msgstr "Pertanyaan Khas"
#: searx/templates/simple/preferences.html:362
msgid "Keywords"
msgstr ""
msgstr "Kata kunci"
#: searx/templates/simple/preferences.html:363
msgid "Name"
msgstr ""
msgstr "Nama"
#: searx/templates/simple/preferences.html:364
msgid "Description"
msgstr ""
msgstr "Deskripsi"
#: searx/templates/simple/preferences.html:365
msgid "Examples"
msgstr ""
msgstr "Contoh-contoh"
#: searx/templates/simple/preferences.html:368
msgid "This is the list of SearXNG's instant answering modules."
@ -820,8 +834,9 @@ msgid ""
msgstr ""
#: searx/templates/simple/preferences.html:399
#, fuzzy
msgid "With that list, you can assess SearXNG transparency."
msgstr ""
msgstr "Dengan senarai ini, anda boleh menilai ketelusan SearXNG."
#: searx/templates/simple/preferences.html:404
msgid "Cookie name"
@ -829,7 +844,7 @@ msgstr ""
#: searx/templates/simple/preferences.html:405
msgid "Value"
msgstr ""
msgstr "Nilai"
#: searx/templates/simple/preferences.html:417
msgid "Search URL of the currently saved preferences"
@ -843,7 +858,7 @@ msgstr ""
#: searx/templates/simple/preferences.html:422
msgid "URL to restore your preferences in another browser"
msgstr ""
msgstr "URL untuk memulihkan pilihan anda dalam pelayar lain"
#: searx/templates/simple/preferences.html:426
msgid ""
@ -865,7 +880,7 @@ msgstr ""
#: searx/templates/simple/preferences.html:436
msgid "Save"
msgstr ""
msgstr "Simpan"
#: searx/templates/simple/preferences.html:437
msgid "Reset defaults"
@ -873,7 +888,7 @@ msgstr ""
#: searx/templates/simple/preferences.html:438
msgid "Back"
msgstr ""
msgstr "Balik"
#: searx/templates/simple/results.html:23
msgid "Answers"
@ -881,7 +896,7 @@ msgstr ""
#: searx/templates/simple/results.html:39
msgid "Number of results"
msgstr ""
msgstr "Bilangan keputusan"
#: searx/templates/simple/messages/no_results.html:6
#: searx/templates/simple/results.html:46
@ -894,7 +909,7 @@ msgstr ""
#: searx/templates/simple/results.html:68
msgid "Suggestions"
msgstr ""
msgstr "Cadangan"
#: searx/templates/simple/results.html:90
msgid "Search URL"
@ -906,23 +921,23 @@ msgstr ""
#: searx/templates/simple/results.html:120
msgid "Try searching for:"
msgstr ""
msgstr "Cuba cari:"
#: searx/templates/simple/results.html:152
msgid "Back to top"
msgstr ""
msgstr "Balik ke atas"
#: searx/templates/simple/results.html:170
msgid "Previous page"
msgstr ""
msgstr "Halaman sebelumnya"
#: searx/templates/simple/results.html:187
msgid "Next page"
msgstr ""
msgstr "Halaman seterusnya"
#: searx/templates/simple/search.html:3
msgid "Display the front page"
msgstr ""
msgstr "Paparkan muka depan"
#: searx/templates/simple/search.html:9
#: searx/templates/simple/simple_search.html:5
@ -941,7 +956,7 @@ msgstr ""
#: searx/templates/simple/stats.html:21
msgid "There is currently no data available. "
msgstr ""
msgstr "Pada masa ini tiada data tersedia. "
#: searx/templates/simple/stats.html:26
msgid "Scores"
@ -953,19 +968,19 @@ msgstr ""
#: searx/templates/simple/stats.html:59
msgid "Total"
msgstr ""
msgstr "Jumlah"
#: searx/templates/simple/stats.html:60
msgid "HTTP"
msgstr ""
msgstr "HTTP"
#: searx/templates/simple/stats.html:61
msgid "Processing"
msgstr ""
msgstr "Sedang memproses"
#: searx/templates/simple/stats.html:99
msgid "Warnings"
msgstr ""
msgstr "Amaran"
#: searx/templates/simple/stats.html:99
msgid "Errors and exceptions"
@ -977,11 +992,11 @@ msgstr ""
#: searx/templates/simple/stats.html:107
msgid "Message"
msgstr ""
msgstr "Mesej"
#: searx/templates/simple/stats.html:109
msgid "Percentage"
msgstr ""
msgstr "Peratus"
#: searx/templates/simple/stats.html:111
msgid "Parameter"
@ -989,15 +1004,15 @@ msgstr ""
#: searx/templates/simple/stats.html:119
msgid "Filename"
msgstr ""
msgstr "Nama fail"
#: searx/templates/simple/stats.html:120
msgid "Function"
msgstr ""
msgstr "Fungsi"
#: searx/templates/simple/stats.html:121
msgid "Code"
msgstr ""
msgstr "Kod"
#: searx/templates/simple/stats.html:128
msgid "Checker"
@ -1009,31 +1024,31 @@ msgstr ""
#: searx/templates/simple/stats.html:132
msgid "Comment(s)"
msgstr ""
msgstr "Ulasan"
#: searx/templates/simple/filters/time_range.html:3
msgid "Anytime"
msgstr ""
msgstr "Bila-bila masa"
#: searx/templates/simple/filters/time_range.html:6
msgid "Last day"
msgstr ""
msgstr "Dalam 24 jam"
#: searx/templates/simple/filters/time_range.html:9
msgid "Last week"
msgstr ""
msgstr "Dalam 1 minggu"
#: searx/templates/simple/filters/time_range.html:12
msgid "Last month"
msgstr ""
msgstr "Dalam 1 bulan"
#: searx/templates/simple/filters/time_range.html:15
msgid "Last year"
msgstr ""
msgstr "Dalam 1 tahun"
#: searx/templates/simple/messages/no_cookies.html:3
msgid "Information!"
msgstr ""
msgstr "Informasi!"
#: searx/templates/simple/messages/no_cookies.html:4
msgid "currently, there are no cookies defined."
@ -1049,7 +1064,7 @@ msgstr ""
#: searx/templates/simple/messages/no_results.html:20
msgid "Sorry!"
msgstr ""
msgstr "Harap maaf!"
#: searx/templates/simple/messages/no_results.html:21
msgid ""
@ -1059,24 +1074,24 @@ msgstr ""
#: searx/templates/simple/result_templates/default.html:6
msgid "show media"
msgstr ""
msgstr "tunjuk media"
#: searx/templates/simple/result_templates/default.html:6
msgid "hide media"
msgstr ""
msgstr "sembunyikan media"
#: searx/templates/simple/result_templates/default.html:14
#: searx/templates/simple/result_templates/videos.html:14
msgid "This site did not provide any description."
msgstr ""
msgstr "Laman web ini tidak memberikan sebarang diskripsi."
#: searx/templates/simple/result_templates/images.html:19
msgid "Format"
msgstr ""
msgstr "Format"
#: searx/templates/simple/result_templates/images.html:21
msgid "Engine"
msgstr ""
msgstr "Enjin"
#: searx/templates/simple/result_templates/images.html:22
msgid "View source"
@ -1084,19 +1099,19 @@ msgstr ""
#: searx/templates/simple/result_templates/map.html:12
msgid "address"
msgstr ""
msgstr "alamat"
#: searx/templates/simple/result_templates/map.html:43
msgid "show map"
msgstr ""
msgstr "tunjuk peta"
#: searx/templates/simple/result_templates/map.html:43
msgid "hide map"
msgstr ""
msgstr "sembunyikan peta"
#: searx/templates/simple/result_templates/paper.html:5
msgid "Published date"
msgstr ""
msgstr "Tarikh diterbitkan"
#: searx/templates/simple/result_templates/paper.html:9
msgid "Journal"
@ -1116,31 +1131,31 @@ msgstr ""
#: searx/templates/simple/result_templates/paper.html:25
msgid "Tags"
msgstr ""
msgstr "Tag"
#: searx/templates/simple/result_templates/paper.html:26
msgid "DOI"
msgstr ""
msgstr "DOI"
#: searx/templates/simple/result_templates/paper.html:27
msgid "ISSN"
msgstr ""
msgstr "ISSN"
#: searx/templates/simple/result_templates/paper.html:28
msgid "ISBN"
msgstr ""
msgstr "ISBN"
#: searx/templates/simple/result_templates/paper.html:33
msgid "PDF"
msgstr ""
msgstr "PDF"
#: searx/templates/simple/result_templates/paper.html:34
msgid "HTML"
msgstr ""
msgstr "HTML"
#: searx/templates/simple/result_templates/torrent.html:6
msgid "magnet link"
msgstr ""
msgstr "pautan magnet"
#: searx/templates/simple/result_templates/torrent.html:7
msgid "torrent file"
@ -1156,7 +1171,7 @@ msgstr ""
#: searx/templates/simple/result_templates/torrent.html:11
msgid "Filesize"
msgstr ""
msgstr "Saiz fail"
#: searx/templates/simple/result_templates/torrent.html:12
msgid "Bytes"
@ -1164,19 +1179,19 @@ msgstr ""
#: searx/templates/simple/result_templates/torrent.html:13
msgid "kiB"
msgstr ""
msgstr "kiB"
#: searx/templates/simple/result_templates/torrent.html:14
msgid "MiB"
msgstr ""
msgstr "MiB"
#: searx/templates/simple/result_templates/torrent.html:15
msgid "GiB"
msgstr ""
msgstr "GiB"
#: searx/templates/simple/result_templates/torrent.html:16
msgid "TiB"
msgstr ""
msgstr "TiB"
#: searx/templates/simple/result_templates/torrent.html:20
msgid "Number of Files"
@ -1249,4 +1264,3 @@ msgstr "sembunyikkan video"
#~ msgid "Automatically detect the query search language and switch to it."
#~ msgstr ""