mirror of https://github.com/searxng/searxng.git
Compare commits
16 Commits
b13db997be
...
ee4226579b
Author | SHA1 | Date |
---|---|---|
Alexandre Flament | ee4226579b | |
dependabot[bot] | 1e1fb59bea | |
Markus Heiser | d593055888 | |
Bnyro | 42b58eb448 | |
dependabot[bot] | a56b4a1648 | |
dependabot[bot] | 4719c004ea | |
Ivan G | 0e09014df5 | |
searxng-bot | 41f415aabf | |
dependabot[bot] | 0081870305 | |
Markus Heiser | ddaa6ed759 | |
Bnyro | 0a4280a137 | |
Bnyro | 91522f3801 | |
Grant Lanham Jr | e0214412f8 | |
Alexandre Flament | a9d1d1be70 | |
Alexandre Flament | 45c217ff6e | |
Alexandre Flament | d4e21dec26 |
|
@ -23,4 +23,6 @@ gh-pages/
|
|||
.idea/
|
||||
|
||||
searx/version_frozen.py
|
||||
.dir-locals.el
|
||||
.dir-locals.el
|
||||
|
||||
.python-version
|
||||
|
|
|
@ -62,6 +62,7 @@ confidence=
|
|||
disable=duplicate-code,
|
||||
missing-function-docstring,
|
||||
consider-using-f-string,
|
||||
too-few-public-methods,
|
||||
|
||||
# Enable the message, report, category or checker with the given id(s). You can
|
||||
# either give multiple identifier separated by comma (,) or put this option
|
||||
|
|
|
@ -42,6 +42,10 @@ buffer-size = 8192
|
|||
# See https://github.com/searx/searx-docker/issues/24
|
||||
add-header = Connection: close
|
||||
|
||||
# Follow SIGTERM convention
|
||||
# See https://github.com/searxng/searxng/issues/3427
|
||||
die-on-term
|
||||
|
||||
# uwsgi serves the static files
|
||||
static-map = /static=/usr/local/searxng/searx/static
|
||||
# expires set to one day
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
mock==5.1.0
|
||||
nose2[coverage_plugin]==0.14.1
|
||||
parameterized==0.9.0
|
||||
cov-core==1.15.0
|
||||
black==24.3.0
|
||||
pylint==3.1.0
|
||||
splinter==0.21.0
|
||||
selenium==4.19.0
|
||||
Pallets-Sphinx-Themes==2.1.1
|
||||
selenium==4.20.0
|
||||
Pallets-Sphinx-Themes==2.1.2
|
||||
Sphinx<=7.1.2; python_version == '3.8'
|
||||
Sphinx==7.2.6; python_version > '3.8'
|
||||
Sphinx==7.3.7; python_version > '3.8'
|
||||
sphinx-issues==4.1.0
|
||||
sphinx-jinja==2.0.2
|
||||
sphinx-tabs==3.4.5
|
||||
|
@ -16,7 +17,6 @@ sphinx-autobuild==2021.3.14
|
|||
sphinx-notfound-page==1.0.0
|
||||
myst-parser==2.0.0
|
||||
linuxdoc==20231020
|
||||
aiounittest==1.4.2
|
||||
yamllint==1.35.1
|
||||
wlc==1.14
|
||||
coloredlogs==15.0.1
|
||||
|
|
|
@ -7,12 +7,11 @@ lxml==5.2.1
|
|||
pygments==2.17.2
|
||||
python-dateutil==2.9.0.post0
|
||||
pyyaml==6.0.1
|
||||
httpx[http2]==0.24.1
|
||||
httpx[http2]==0.27.0
|
||||
Brotli==1.1.0
|
||||
uvloop==0.19.0
|
||||
httpx-socks[asyncio]==0.7.7
|
||||
httpx-socks==0.9.1
|
||||
setproctitle==1.3.3
|
||||
redis==5.0.3
|
||||
redis==5.0.4
|
||||
markdown-it-py==3.0.0
|
||||
fasttext-predict==0.9.2.2
|
||||
pytomlpp==1.0.13
|
||||
|
|
|
@ -97,6 +97,18 @@ else:
|
|||
logger = logging.getLogger('searx')
|
||||
logger.info(settings_load_message)
|
||||
|
||||
# set the levels of verbose loggers to WARNING
|
||||
for logger_name in (
|
||||
'httpx',
|
||||
'httpcore.proxy',
|
||||
'httpcore.connection',
|
||||
'httpcore.http11',
|
||||
'httpcore.http2',
|
||||
'hpack.hpack',
|
||||
'hpack.table',
|
||||
):
|
||||
logging.getLogger(logger_name).setLevel(logging.WARNING)
|
||||
|
||||
# log max_request_timeout
|
||||
max_request_timeout = settings['outgoing']['max_request_timeout']
|
||||
if max_request_timeout is None:
|
||||
|
|
|
@ -15,7 +15,7 @@ from searx.engines import (
|
|||
engines,
|
||||
google,
|
||||
)
|
||||
from searx.network import get as http_get, post as http_post
|
||||
from searx.network import NETWORKS
|
||||
from searx.exceptions import SearxEngineResponseException
|
||||
|
||||
|
||||
|
@ -27,12 +27,14 @@ def update_kwargs(**kwargs):
|
|||
|
||||
def get(*args, **kwargs):
|
||||
update_kwargs(**kwargs)
|
||||
return http_get(*args, **kwargs)
|
||||
network_context = NETWORKS.get('autocomplete').get_context()
|
||||
return network_context.request('GET', *args, **kwargs)
|
||||
|
||||
|
||||
def post(*args, **kwargs):
|
||||
update_kwargs(**kwargs)
|
||||
return http_post(*args, **kwargs)
|
||||
network_context = NETWORKS.get('autocomplete').get_context()
|
||||
return network_context.request('POST', *args, **kwargs)
|
||||
|
||||
|
||||
def brave(query, _lang):
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""media.ccc.de"""
|
||||
|
||||
import datetime
|
||||
from urllib.parse import urlencode
|
||||
|
||||
from dateutil import parser
|
||||
|
||||
about = {
|
||||
'website': 'https://media.ccc.de',
|
||||
'official_api_documentation': 'https://github.com/voc/voctoweb',
|
||||
'use_official_api': True,
|
||||
'require_api_key': False,
|
||||
'results': 'JSON',
|
||||
}
|
||||
categories = ['videos']
|
||||
paging = True
|
||||
|
||||
api_url = "https://api.media.ccc.de"
|
||||
|
||||
|
||||
def request(query, params):
|
||||
args = {'q': query, 'page': params['pageno']}
|
||||
params['url'] = f"{api_url}/public/events/search?{urlencode(args)}"
|
||||
|
||||
return params
|
||||
|
||||
|
||||
def response(resp):
|
||||
results = []
|
||||
|
||||
for item in resp.json()['events']:
|
||||
publishedDate = None
|
||||
if item.get('date'):
|
||||
publishedDate = parser.parse(item['date'])
|
||||
|
||||
iframe_src = None
|
||||
if len(item['recordings']) > 0:
|
||||
iframe_src = item['recordings'][0]['recording_url']
|
||||
|
||||
results.append(
|
||||
{
|
||||
'template': 'videos.html',
|
||||
'url': item['frontend_link'],
|
||||
'title': item['title'],
|
||||
'content': item['description'],
|
||||
'thumbnail': item['thumb_url'],
|
||||
'publishedDate': publishedDate,
|
||||
'length': datetime.timedelta(seconds=item['length']),
|
||||
'iframe_src': iframe_src,
|
||||
}
|
||||
)
|
||||
|
||||
return results
|
|
@ -13,7 +13,7 @@ about = {
|
|||
}
|
||||
|
||||
engine_type = 'online_dictionary'
|
||||
categories = ['general']
|
||||
categories = ['general', 'translate']
|
||||
|
||||
url = 'https://api-free.deepl.com/v2/translate'
|
||||
api_key = None
|
||||
|
@ -51,11 +51,6 @@ def response(resp):
|
|||
|
||||
infobox += "</dl>"
|
||||
|
||||
results.append(
|
||||
{
|
||||
'infobox': 'Deepl',
|
||||
'content': infobox,
|
||||
}
|
||||
)
|
||||
results.append({'answer': infobox})
|
||||
|
||||
return results
|
||||
|
|
|
@ -18,7 +18,7 @@ about = {
|
|||
}
|
||||
|
||||
engine_type = 'online_dictionary'
|
||||
categories = ['general']
|
||||
categories = ['general', 'translate']
|
||||
url = 'https://dictzone.com/{from_lang}-{to_lang}-dictionary/{query}'
|
||||
weight = 100
|
||||
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""LibreTranslate (Free and Open Source Machine Translation API)"""
|
||||
|
||||
import random
|
||||
from json import dumps
|
||||
|
||||
about = {
|
||||
"website": 'https://libretranslate.com',
|
||||
"wikidata_id": None,
|
||||
"official_api_documentation": 'https://libretranslate.com/docs/',
|
||||
"use_official_api": True,
|
||||
"require_api_key": False,
|
||||
"results": 'JSON',
|
||||
}
|
||||
|
||||
engine_type = 'online_dictionary'
|
||||
categories = ['general', 'translate']
|
||||
|
||||
base_url = "https://translate.terraprint.co"
|
||||
api_key = ''
|
||||
|
||||
|
||||
def request(_query, params):
|
||||
request_url = random.choice(base_url) if isinstance(base_url, list) else base_url
|
||||
params['url'] = f"{request_url}/translate"
|
||||
|
||||
args = {'source': params['from_lang'][1], 'target': params['to_lang'][1], 'q': params['query']}
|
||||
if api_key:
|
||||
args['api_key'] = api_key
|
||||
params['data'] = dumps(args)
|
||||
|
||||
params['method'] = 'POST'
|
||||
params['headers'] = {'Content-Type': 'application/json'}
|
||||
|
||||
return params
|
||||
|
||||
|
||||
def response(resp):
|
||||
results = []
|
||||
|
||||
json_resp = resp.json()
|
||||
text = json_resp.get('translatedText')
|
||||
if text:
|
||||
results.append({'answer': text})
|
||||
|
||||
return results
|
|
@ -13,7 +13,7 @@ about = {
|
|||
}
|
||||
|
||||
engine_type = 'online_dictionary'
|
||||
categories = ['general']
|
||||
categories = ['general', 'translate']
|
||||
|
||||
url = "https://lingva.thedaviddelta.com"
|
||||
search_url = "{url}/api/v1/{from_lang}/{to_lang}/{query}"
|
||||
|
|
|
@ -15,7 +15,7 @@ about = {
|
|||
}
|
||||
|
||||
engine_type = 'online_dictionary'
|
||||
categories = ['general']
|
||||
categories = ['general', 'translate']
|
||||
|
||||
base_url = "https://mozhi.aryak.me"
|
||||
mozhi_engine = "google"
|
||||
|
|
|
@ -14,7 +14,7 @@ about = {
|
|||
}
|
||||
|
||||
engine_type = 'online_dictionary'
|
||||
categories = ['dictionaries']
|
||||
categories = ['general', 'translate']
|
||||
url = 'https://api.mymemory.translated.net/get?q={query}&langpair={from_lang}|{to_lang}{key}'
|
||||
web_url = 'https://mymemory.translated.net/en/{from_lang}/{to_lang}/{query}'
|
||||
weight = 100
|
||||
|
|
|
@ -68,7 +68,7 @@ def response(resp):
|
|||
'title': result['display']['displayName'],
|
||||
'content': content,
|
||||
'img_src': img_src,
|
||||
'metadata': f"{gettext('Language')}: {result['locale'].split('-')[0]}",
|
||||
'metadata': gettext('Language') + f": {result['locale'].split('-')[0]}",
|
||||
}
|
||||
)
|
||||
|
||||
|
|
|
@ -1,265 +1,483 @@
|
|||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
# pylint: disable=missing-module-docstring, global-statement
|
||||
# lint: pylint
|
||||
# pyright: basic
|
||||
# pylint: disable=redefined-outer-name
|
||||
# ^^ because there is the raise_for_httperror function and the raise_for_httperror parameter.
|
||||
"""HTTP for SearXNG.
|
||||
|
||||
import asyncio
|
||||
In httpx and similar libraries, a client (also named session) contains a pool of HTTP connections.
|
||||
The client reuses these HTTP connections and automatically recreates them when the server at the other
|
||||
end closes the connections. Whatever the library, each client uses only one proxy (eventually none) and only
|
||||
one local IP address.
|
||||
|
||||
SearXNG's primary use case is an engine sending one (or more) outgoing HTTP request(s). The admin can configure
|
||||
an engine to use multiple proxies and/or IP addresses: SearXNG sends the outgoing HTTP requests through these
|
||||
different proxies/IP addresses ( = HTTP clients ) on a rotational basis.
|
||||
|
||||
In addition, when SearXNG runs an engine request, there is a hard timeout: the engine runtime must not exceed
|
||||
a defined value.
|
||||
|
||||
Moreover, an engine can ask SearXNG to retry a failed HTTP request.
|
||||
|
||||
However, we want to keep the engine codes simple and keep the complexity either in the configuration or the
|
||||
core component components (here, in this module).
|
||||
|
||||
To answer the above requirements, the `searx.network` module introduces three components:
|
||||
* HTTPClient and TorHTTPClient are two classes that wrap one or multiple httpx.Client
|
||||
* NetworkManager, a set of named Network. Each Network
|
||||
* holds the configuration defined in settings.yml
|
||||
* creates NetworkContext fed with an HTTPClient (or TorHTTPClient).
|
||||
This is where the rotation between the proxies and IP addresses happens.
|
||||
* NetworkContext to provide a runtime context for the engines. The constructor needs a global timeout
|
||||
and an HTTPClient factory. NetworkContext is an abstract class with three implementations,
|
||||
one for each retry policy.
|
||||
|
||||
It is only possible to send an HTTP request with a NetworkContext
|
||||
(otherwise, SearXNG raises a NetworkContextNotFound exception).
|
||||
Two helpers set a NetworkContext for the current thread:
|
||||
|
||||
* The decorator `@networkcontext_decorator`, the intended usage is an external script (see searxng_extra)
|
||||
* The context manager `networkcontext_manager`, for the generic use case.
|
||||
|
||||
Inside the thread, the caller can use `searx.network.get`, `searx.network.post` and similar functions without
|
||||
caring about the HTTP client. However, if the caller creates a new thread, it must initialize a new NetworkContext.
|
||||
A NetworkContext is most probably thread-safe, but this has not been tested.
|
||||
|
||||
The overall architecture:
|
||||
* searx.network.network.NETWORKS contains all the networks.
|
||||
The method `NetworkManager.get(network_name)` returns an initialized Network.
|
||||
* searx.network.network.Network defines a network (a set of proxies, local IP address, etc...).
|
||||
They are defined in settings.yml.
|
||||
The method `Network.get_context()` creates a new NetworkContext.
|
||||
* searx.network.context contains three different implementations of NetworkContext. One for each retry policy.
|
||||
* searx.network.client.HTTPClient and searx.network.client.TorHTTPClient implement wrappers around httpx.Client.
|
||||
"""
|
||||
import threading
|
||||
import concurrent.futures
|
||||
from queue import SimpleQueue
|
||||
from types import MethodType
|
||||
from timeit import default_timer
|
||||
from typing import Iterable, NamedTuple, Tuple, List, Dict, Union
|
||||
from contextlib import contextmanager
|
||||
from functools import wraps
|
||||
from typing import Any, Callable, Optional, Union
|
||||
|
||||
import httpx
|
||||
import anyio
|
||||
|
||||
from .network import get_network, initialize, check_network_configuration # pylint:disable=cyclic-import
|
||||
from .client import get_loop
|
||||
from .raise_for_httperror import raise_for_httperror
|
||||
from searx.network.client import NOTSET, _NotSetClass
|
||||
from searx.network.context import NetworkContext, P, R
|
||||
from searx.network.network import NETWORKS
|
||||
from searx.network.raise_for_httperror import raise_for_httperror
|
||||
|
||||
__all__ = [
|
||||
"NETWORKS",
|
||||
"NetworkContextNotFound",
|
||||
"networkcontext_manager",
|
||||
"networkcontext_decorator",
|
||||
"raise_for_httperror",
|
||||
"request",
|
||||
"get",
|
||||
"options",
|
||||
"head",
|
||||
"post",
|
||||
"put",
|
||||
"patch",
|
||||
"delete",
|
||||
]
|
||||
|
||||
|
||||
THREADLOCAL = threading.local()
|
||||
"""Thread-local data is data for thread specific values."""
|
||||
_THREADLOCAL = threading.local()
|
||||
"""Thread-local that contains only one field: network_context."""
|
||||
|
||||
_NETWORK_CONTEXT_KEY = 'network_context'
|
||||
"""Key to access _THREADLOCAL"""
|
||||
|
||||
DEFAULT_MAX_REDIRECTS = httpx._config.DEFAULT_MAX_REDIRECTS # pylint: disable=protected-access
|
||||
|
||||
|
||||
def reset_time_for_thread():
|
||||
THREADLOCAL.total_time = 0
|
||||
class NetworkContextNotFound(Exception):
|
||||
"""A NetworkContext is expected to exist for the current thread.
|
||||
|
||||
|
||||
def get_time_for_thread():
|
||||
"""returns thread's total time or None"""
|
||||
return THREADLOCAL.__dict__.get('total_time')
|
||||
|
||||
|
||||
def set_timeout_for_thread(timeout, start_time=None):
|
||||
THREADLOCAL.timeout = timeout
|
||||
THREADLOCAL.start_time = start_time
|
||||
|
||||
|
||||
def set_context_network_name(network_name):
|
||||
THREADLOCAL.network = get_network(network_name)
|
||||
|
||||
|
||||
def get_context_network():
|
||||
"""If set return thread's network.
|
||||
|
||||
If unset, return value from :py:obj:`get_network`.
|
||||
Use searx.network.networkcontext_manager or searx.network.networkcontext_decorator
|
||||
to set a NetworkContext
|
||||
"""
|
||||
return THREADLOCAL.__dict__.get('network') or get_network()
|
||||
|
||||
|
||||
@contextmanager
|
||||
def _record_http_time():
|
||||
# pylint: disable=too-many-branches
|
||||
time_before_request = default_timer()
|
||||
start_time = getattr(THREADLOCAL, 'start_time', time_before_request)
|
||||
try:
|
||||
yield start_time
|
||||
finally:
|
||||
# update total_time.
|
||||
# See get_time_for_thread() and reset_time_for_thread()
|
||||
if hasattr(THREADLOCAL, 'total_time'):
|
||||
time_after_request = default_timer()
|
||||
THREADLOCAL.total_time += time_after_request - time_before_request
|
||||
def networkcontext_manager(
|
||||
network_name: Optional[str] = None, timeout: Optional[float] = None, start_time: Optional[float] = None
|
||||
):
|
||||
"""Context manager to set a NetworkContext for the current thread
|
||||
|
||||
The timeout is for the whole function and is infinite by default (None).
|
||||
The timeout is counted from the current time or start_time if different from None.
|
||||
|
||||
def _get_timeout(start_time, kwargs):
|
||||
# pylint: disable=too-many-branches
|
||||
Example of usage:
|
||||
|
||||
# timeout (httpx)
|
||||
if 'timeout' in kwargs:
|
||||
timeout = kwargs['timeout']
|
||||
else:
|
||||
timeout = getattr(THREADLOCAL, 'timeout', None)
|
||||
if timeout is not None:
|
||||
kwargs['timeout'] = timeout
|
||||
```python
|
||||
from time import sleep
|
||||
from searx.network import networkcontext_manager, get
|
||||
|
||||
# 2 minutes timeout for the requests without timeout
|
||||
timeout = timeout or 120
|
||||
def search(query):
|
||||
# the timeout is automatically set to 2.0 seconds (the remaining time for the NetworkContext)
|
||||
# 2.0 because the timeout for the NetworkContext is 3.0 and one second has elllapsed with sleep(1.0)
|
||||
auckland_time = get("http://worldtimeapi.org/api/timezone/Pacific/Auckland").json()
|
||||
# the timeout is automatically set to 2.0 - (runtime of the previous HTTP request)
|
||||
ip_time = get("http://worldtimeapi.org/api/ip").json()
|
||||
return auckland_time, ip_time
|
||||
|
||||
# adjust actual timeout
|
||||
timeout += 0.2 # overhead
|
||||
if start_time:
|
||||
timeout -= default_timer() - start_time
|
||||
|
||||
return timeout
|
||||
|
||||
|
||||
def request(method, url, **kwargs):
|
||||
"""same as requests/requests/api.py request(...)"""
|
||||
with _record_http_time() as start_time:
|
||||
network = get_context_network()
|
||||
timeout = _get_timeout(start_time, kwargs)
|
||||
future = asyncio.run_coroutine_threadsafe(network.request(method, url, **kwargs), get_loop())
|
||||
try:
|
||||
return future.result(timeout)
|
||||
except concurrent.futures.TimeoutError as e:
|
||||
raise httpx.TimeoutException('Timeout', request=None) from e
|
||||
|
||||
|
||||
def multi_requests(request_list: List["Request"]) -> List[Union[httpx.Response, Exception]]:
|
||||
"""send multiple HTTP requests in parallel. Wait for all requests to finish."""
|
||||
with _record_http_time() as start_time:
|
||||
# send the requests
|
||||
network = get_context_network()
|
||||
loop = get_loop()
|
||||
future_list = []
|
||||
for request_desc in request_list:
|
||||
timeout = _get_timeout(start_time, request_desc.kwargs)
|
||||
future = asyncio.run_coroutine_threadsafe(
|
||||
network.request(request_desc.method, request_desc.url, **request_desc.kwargs), loop
|
||||
)
|
||||
future_list.append((future, timeout))
|
||||
|
||||
# read the responses
|
||||
responses = []
|
||||
for future, timeout in future_list:
|
||||
try:
|
||||
responses.append(future.result(timeout))
|
||||
except concurrent.futures.TimeoutError:
|
||||
responses.append(httpx.TimeoutException('Timeout', request=None))
|
||||
except Exception as e: # pylint: disable=broad-except
|
||||
responses.append(e)
|
||||
return responses
|
||||
|
||||
|
||||
class Request(NamedTuple):
|
||||
"""Request description for the multi_requests function"""
|
||||
|
||||
method: str
|
||||
url: str
|
||||
kwargs: Dict[str, str] = {}
|
||||
|
||||
@staticmethod
|
||||
def get(url, **kwargs):
|
||||
return Request('GET', url, kwargs)
|
||||
|
||||
@staticmethod
|
||||
def options(url, **kwargs):
|
||||
return Request('OPTIONS', url, kwargs)
|
||||
|
||||
@staticmethod
|
||||
def head(url, **kwargs):
|
||||
return Request('HEAD', url, kwargs)
|
||||
|
||||
@staticmethod
|
||||
def post(url, **kwargs):
|
||||
return Request('POST', url, kwargs)
|
||||
|
||||
@staticmethod
|
||||
def put(url, **kwargs):
|
||||
return Request('PUT', url, kwargs)
|
||||
|
||||
@staticmethod
|
||||
def patch(url, **kwargs):
|
||||
return Request('PATCH', url, kwargs)
|
||||
|
||||
@staticmethod
|
||||
def delete(url, **kwargs):
|
||||
return Request('DELETE', url, kwargs)
|
||||
|
||||
|
||||
def get(url, **kwargs):
|
||||
kwargs.setdefault('allow_redirects', True)
|
||||
return request('get', url, **kwargs)
|
||||
|
||||
|
||||
def options(url, **kwargs):
|
||||
kwargs.setdefault('allow_redirects', True)
|
||||
return request('options', url, **kwargs)
|
||||
|
||||
|
||||
def head(url, **kwargs):
|
||||
kwargs.setdefault('allow_redirects', False)
|
||||
return request('head', url, **kwargs)
|
||||
|
||||
|
||||
def post(url, data=None, **kwargs):
|
||||
return request('post', url, data=data, **kwargs)
|
||||
|
||||
|
||||
def put(url, data=None, **kwargs):
|
||||
return request('put', url, data=data, **kwargs)
|
||||
|
||||
|
||||
def patch(url, data=None, **kwargs):
|
||||
return request('patch', url, data=data, **kwargs)
|
||||
|
||||
|
||||
def delete(url, **kwargs):
|
||||
return request('delete', url, **kwargs)
|
||||
|
||||
|
||||
async def stream_chunk_to_queue(network, queue, method, url, **kwargs):
|
||||
try:
|
||||
async with await network.stream(method, url, **kwargs) as response:
|
||||
queue.put(response)
|
||||
# aiter_raw: access the raw bytes on the response without applying any HTTP content decoding
|
||||
# https://www.python-httpx.org/quickstart/#streaming-responses
|
||||
async for chunk in response.aiter_raw(65536):
|
||||
if len(chunk) > 0:
|
||||
queue.put(chunk)
|
||||
except (httpx.StreamClosed, anyio.ClosedResourceError):
|
||||
# the response was queued before the exception.
|
||||
# the exception was raised on aiter_raw.
|
||||
# we do nothing here: in the finally block, None will be queued
|
||||
# so stream(method, url, **kwargs) generator can stop
|
||||
pass
|
||||
except Exception as e: # pylint: disable=broad-except
|
||||
# broad except to avoid this scenario:
|
||||
# exception in network.stream(method, url, **kwargs)
|
||||
# -> the exception is not catch here
|
||||
# -> queue None (in finally)
|
||||
# -> the function below steam(method, url, **kwargs) has nothing to return
|
||||
queue.put(e)
|
||||
finally:
|
||||
queue.put(None)
|
||||
|
||||
|
||||
def _stream_generator(method, url, **kwargs):
|
||||
queue = SimpleQueue()
|
||||
network = get_context_network()
|
||||
future = asyncio.run_coroutine_threadsafe(stream_chunk_to_queue(network, queue, method, url, **kwargs), get_loop())
|
||||
|
||||
# yield chunks
|
||||
obj_or_exception = queue.get()
|
||||
while obj_or_exception is not None:
|
||||
if isinstance(obj_or_exception, Exception):
|
||||
raise obj_or_exception
|
||||
yield obj_or_exception
|
||||
obj_or_exception = queue.get()
|
||||
future.result()
|
||||
|
||||
|
||||
def _close_response_method(self):
|
||||
asyncio.run_coroutine_threadsafe(self.aclose(), get_loop())
|
||||
# reach the end of _self.generator ( _stream_generator ) to an avoid memory leak.
|
||||
# it makes sure that :
|
||||
# * the httpx response is closed (see the stream_chunk_to_queue function)
|
||||
# * to call future.result() in _stream_generator
|
||||
for _ in self._generator: # pylint: disable=protected-access
|
||||
continue
|
||||
|
||||
|
||||
def stream(method, url, **kwargs) -> Tuple[httpx.Response, Iterable[bytes]]:
|
||||
"""Replace httpx.stream.
|
||||
|
||||
Usage:
|
||||
response, stream = poolrequests.stream(...)
|
||||
for chunk in stream:
|
||||
...
|
||||
|
||||
httpx.Client.stream requires to write the httpx.HTTPTransport version of the
|
||||
the httpx.AsyncHTTPTransport declared above.
|
||||
# "worldtimeapi" is network defined in settings.yml
|
||||
# network_context.call might call multiple times the search function,
|
||||
# however the timeout will be respected.
|
||||
with networkcontext_manager('worldtimeapi', timeout=3.0) as network_context:
|
||||
sleep(1.0)
|
||||
auckland_time, ip_time = network_context.call(search(query))
|
||||
print("Auckland time: ", auckland_time["datetime"])
|
||||
print("My time: ", ip_time["datetime"])
|
||||
print("HTTP runtime:", network_context.get_http_runtime())
|
||||
```
|
||||
"""
|
||||
generator = _stream_generator(method, url, **kwargs)
|
||||
network = NETWORKS.get(network_name)
|
||||
network_context = network.get_context(timeout=timeout, start_time=start_time)
|
||||
setattr(_THREADLOCAL, _NETWORK_CONTEXT_KEY, network_context)
|
||||
try:
|
||||
yield network_context
|
||||
finally:
|
||||
delattr(_THREADLOCAL, _NETWORK_CONTEXT_KEY)
|
||||
del network_context
|
||||
|
||||
# yield response
|
||||
response = next(generator) # pylint: disable=stop-iteration-return
|
||||
if isinstance(response, Exception):
|
||||
raise response
|
||||
|
||||
response._generator = generator # pylint: disable=protected-access
|
||||
response.close = MethodType(_close_response_method, response)
|
||||
def networkcontext_decorator(
|
||||
network_name: Optional[str] = None, timeout: Optional[float] = None, start_time: Optional[float] = None
|
||||
):
|
||||
"""Set the NetworkContext, then call the wrapped function using searx.network.context.NetworkContext.call
|
||||
|
||||
return response, generator
|
||||
The timeout is for the whole function and is infinite by default (None).
|
||||
The timeout is counted from the current time or start_time if different from None
|
||||
|
||||
Intended usage: to provide a NetworkContext for scripts in searxng_extra.
|
||||
|
||||
Example of usage:
|
||||
|
||||
```python
|
||||
from time import sleep
|
||||
from searx import network
|
||||
|
||||
@network.networkcontext_decorator(timeout=3.0)
|
||||
def main()
|
||||
sleep(1.0)
|
||||
# the timeout is automatically set to 2.0 (the remaining time for the NetworkContext).
|
||||
my_ip = network.get("https://ifconfig.me/ip").text
|
||||
print(my_ip)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
```
|
||||
"""
|
||||
|
||||
def func_outer(func: Callable[P, R]):
|
||||
@wraps(func)
|
||||
def func_inner(*args: P.args, **kwargs: P.kwargs) -> R:
|
||||
with networkcontext_manager(network_name, timeout, start_time) as network_context:
|
||||
return network_context.call(func, *args, **kwargs)
|
||||
|
||||
return func_inner
|
||||
|
||||
return func_outer
|
||||
|
||||
|
||||
def request(
|
||||
method: str,
|
||||
url: str,
|
||||
params: Optional[httpx._types.QueryParamTypes] = None,
|
||||
content: Optional[httpx._types.RequestContent] = None,
|
||||
data: Optional[httpx._types.RequestData] = None,
|
||||
files: Optional[httpx._types.RequestFiles] = None,
|
||||
json: Optional[Any] = None,
|
||||
headers: Optional[httpx._types.HeaderTypes] = None,
|
||||
cookies: Optional[httpx._types.CookieTypes] = None,
|
||||
auth: Optional[httpx._types.AuthTypes] = None,
|
||||
timeout: httpx._types.TimeoutTypes = None,
|
||||
allow_redirects: bool = False,
|
||||
max_redirects: Union[_NotSetClass, int] = NOTSET,
|
||||
verify: Union[_NotSetClass, httpx._types.VerifyTypes] = NOTSET,
|
||||
raise_for_httperror: bool = False,
|
||||
) -> httpx.Response:
|
||||
"""Similar to httpx.request ( https://www.python-httpx.org/api/ ) with some differences:
|
||||
|
||||
* proxies:
|
||||
it is not available and has to be defined in the Network configuration (in settings.yml)
|
||||
* cert:
|
||||
it is not available and is always None.
|
||||
* trust_env:
|
||||
it is not available and is always True.
|
||||
* timeout:
|
||||
the implementation uses the lowest timeout between this parameter and remaining time for the NetworkContext.
|
||||
* allow_redirects:
|
||||
it replaces the follow_redirects parameter to be compatible with the requests API.
|
||||
* raise_for_httperror:
|
||||
when True, this function calls searx.network.raise_for_httperror.raise_for_httperror.
|
||||
|
||||
Some parameters from httpx.Client ( https://www.python-httpx.org/api/#client) are available:
|
||||
|
||||
* max_redirects:
|
||||
Set to None to use the value from the Network configuration.
|
||||
The maximum number of redirect responses that should be followed.
|
||||
* verify:
|
||||
Set to None to use the value from the Network configuration.
|
||||
* limits:
|
||||
it has to be defined in the Network configuration (in settings.yml)
|
||||
* default_encoding:
|
||||
this parameter is not available and is always "utf-8".
|
||||
|
||||
This function requires a NetworkContext provided by either networkcontext_decorator or networkcontext_manager.
|
||||
|
||||
The implementation uses one or more httpx.Client
|
||||
"""
|
||||
# pylint: disable=too-many-arguments
|
||||
network_context: Optional[NetworkContext] = getattr(_THREADLOCAL, _NETWORK_CONTEXT_KEY, None)
|
||||
if network_context is None:
|
||||
raise NetworkContextNotFound()
|
||||
http_client = network_context._get_http_client() # pylint: disable=protected-access
|
||||
return http_client.request(
|
||||
method,
|
||||
url,
|
||||
params=params,
|
||||
content=content,
|
||||
data=data,
|
||||
files=files,
|
||||
json=json,
|
||||
headers=headers,
|
||||
cookies=cookies,
|
||||
auth=auth,
|
||||
timeout=timeout,
|
||||
allow_redirects=allow_redirects,
|
||||
max_redirects=max_redirects,
|
||||
verify=verify,
|
||||
raise_for_httperror=raise_for_httperror,
|
||||
)
|
||||
|
||||
|
||||
def get(
|
||||
url: str,
|
||||
params: Optional[httpx._types.QueryParamTypes] = None,
|
||||
headers: Optional[httpx._types.HeaderTypes] = None,
|
||||
cookies: Optional[httpx._types.CookieTypes] = None,
|
||||
auth: Optional[httpx._types.AuthTypes] = None,
|
||||
allow_redirects: bool = True,
|
||||
max_redirects: Union[_NotSetClass, int] = NOTSET,
|
||||
verify: Union[_NotSetClass, httpx._types.VerifyTypes] = NOTSET,
|
||||
timeout: httpx._types.TimeoutTypes = None,
|
||||
raise_for_httperror: bool = False,
|
||||
) -> httpx.Response:
|
||||
"""Similar to httpx.get, see the request method for the details.
|
||||
|
||||
allow_redirects is by default True (httpx default value is False).
|
||||
"""
|
||||
# pylint: disable=too-many-arguments
|
||||
return request(
|
||||
"GET",
|
||||
url,
|
||||
params=params,
|
||||
headers=headers,
|
||||
cookies=cookies,
|
||||
auth=auth,
|
||||
allow_redirects=allow_redirects,
|
||||
max_redirects=max_redirects,
|
||||
verify=verify,
|
||||
timeout=timeout,
|
||||
raise_for_httperror=raise_for_httperror,
|
||||
)
|
||||
|
||||
|
||||
def options(
|
||||
url: str,
|
||||
params: Optional[httpx._types.QueryParamTypes] = None,
|
||||
headers: Optional[httpx._types.HeaderTypes] = None,
|
||||
cookies: Optional[httpx._types.CookieTypes] = None,
|
||||
auth: Optional[httpx._types.AuthTypes] = None,
|
||||
allow_redirects: bool = False,
|
||||
max_redirects: Union[_NotSetClass, int] = NOTSET,
|
||||
verify: Union[_NotSetClass, httpx._types.VerifyTypes] = NOTSET,
|
||||
timeout: httpx._types.TimeoutTypes = None,
|
||||
raise_for_httperror: bool = False,
|
||||
) -> httpx.Response:
|
||||
"""Similar to httpx.options, see the request method for the details."""
|
||||
# pylint: disable=too-many-arguments
|
||||
return request(
|
||||
"OPTIONS",
|
||||
url,
|
||||
params=params,
|
||||
headers=headers,
|
||||
cookies=cookies,
|
||||
auth=auth,
|
||||
allow_redirects=allow_redirects,
|
||||
max_redirects=max_redirects,
|
||||
verify=verify,
|
||||
timeout=timeout,
|
||||
raise_for_httperror=raise_for_httperror,
|
||||
)
|
||||
|
||||
|
||||
def head(
|
||||
url: str,
|
||||
params: Optional[httpx._types.QueryParamTypes] = None,
|
||||
headers: Optional[httpx._types.HeaderTypes] = None,
|
||||
cookies: Optional[httpx._types.CookieTypes] = None,
|
||||
auth: Optional[httpx._types.AuthTypes] = None,
|
||||
allow_redirects: bool = False,
|
||||
max_redirects: Union[_NotSetClass, int] = NOTSET,
|
||||
verify: Union[_NotSetClass, httpx._types.VerifyTypes] = NOTSET,
|
||||
timeout: httpx._types.TimeoutTypes = None,
|
||||
raise_for_httperror: bool = False,
|
||||
) -> httpx.Response:
|
||||
"""Similar to httpx.head, see the request method for the details."""
|
||||
# pylint: disable=too-many-arguments
|
||||
return request(
|
||||
"HEAD",
|
||||
url,
|
||||
params=params,
|
||||
headers=headers,
|
||||
cookies=cookies,
|
||||
auth=auth,
|
||||
allow_redirects=allow_redirects,
|
||||
max_redirects=max_redirects,
|
||||
verify=verify,
|
||||
timeout=timeout,
|
||||
raise_for_httperror=raise_for_httperror,
|
||||
)
|
||||
|
||||
|
||||
def post(
|
||||
url: str,
|
||||
content: Optional[httpx._types.RequestContent] = None,
|
||||
data: Optional[httpx._types.RequestData] = None,
|
||||
files: Optional[httpx._types.RequestFiles] = None,
|
||||
json: Optional[Any] = None,
|
||||
params: Optional[httpx._types.QueryParamTypes] = None,
|
||||
headers: Optional[httpx._types.HeaderTypes] = None,
|
||||
cookies: Optional[httpx._types.CookieTypes] = None,
|
||||
auth: Optional[httpx._types.AuthTypes] = None,
|
||||
allow_redirects: bool = False,
|
||||
max_redirects: Union[_NotSetClass, int] = NOTSET,
|
||||
verify: Union[_NotSetClass, httpx._types.VerifyTypes] = NOTSET,
|
||||
timeout: httpx._types.TimeoutTypes = None,
|
||||
raise_for_httperror: bool = False,
|
||||
) -> httpx.Response:
|
||||
"""Similar to httpx.post, see the request method for the details."""
|
||||
# pylint: disable=too-many-arguments
|
||||
return request(
|
||||
"POST",
|
||||
url,
|
||||
content=content,
|
||||
data=data,
|
||||
files=files,
|
||||
json=json,
|
||||
params=params,
|
||||
headers=headers,
|
||||
cookies=cookies,
|
||||
auth=auth,
|
||||
allow_redirects=allow_redirects,
|
||||
max_redirects=max_redirects,
|
||||
verify=verify,
|
||||
timeout=timeout,
|
||||
raise_for_httperror=raise_for_httperror,
|
||||
)
|
||||
|
||||
|
||||
def put(
|
||||
url: str,
|
||||
content: Optional[httpx._types.RequestContent] = None,
|
||||
data: Optional[httpx._types.RequestData] = None,
|
||||
files: Optional[httpx._types.RequestFiles] = None,
|
||||
json: Optional[Any] = None,
|
||||
params: Optional[httpx._types.QueryParamTypes] = None,
|
||||
headers: Optional[httpx._types.HeaderTypes] = None,
|
||||
cookies: Optional[httpx._types.CookieTypes] = None,
|
||||
auth: Optional[httpx._types.AuthTypes] = None,
|
||||
allow_redirects: bool = False,
|
||||
max_redirects: Union[_NotSetClass, int] = NOTSET,
|
||||
verify: Union[_NotSetClass, httpx._types.VerifyTypes] = NOTSET,
|
||||
timeout: httpx._types.TimeoutTypes = None,
|
||||
raise_for_httperror: bool = False,
|
||||
) -> httpx.Response:
|
||||
"""Similar to httpx.put, see the request method for the details."""
|
||||
# pylint: disable=too-many-arguments
|
||||
return request(
|
||||
"PUT",
|
||||
url,
|
||||
content=content,
|
||||
data=data,
|
||||
files=files,
|
||||
json=json,
|
||||
params=params,
|
||||
headers=headers,
|
||||
cookies=cookies,
|
||||
auth=auth,
|
||||
allow_redirects=allow_redirects,
|
||||
max_redirects=max_redirects,
|
||||
verify=verify,
|
||||
timeout=timeout,
|
||||
raise_for_httperror=raise_for_httperror,
|
||||
)
|
||||
|
||||
|
||||
def patch(
|
||||
url: str,
|
||||
content: Optional[httpx._types.RequestContent] = None,
|
||||
data: Optional[httpx._types.RequestData] = None,
|
||||
files: Optional[httpx._types.RequestFiles] = None,
|
||||
json: Optional[Any] = None,
|
||||
params: Optional[httpx._types.QueryParamTypes] = None,
|
||||
headers: Optional[httpx._types.HeaderTypes] = None,
|
||||
cookies: Optional[httpx._types.CookieTypes] = None,
|
||||
auth: Optional[httpx._types.AuthTypes] = None,
|
||||
allow_redirects: bool = False,
|
||||
max_redirects: Union[_NotSetClass, int] = NOTSET,
|
||||
verify: Union[_NotSetClass, httpx._types.VerifyTypes] = NOTSET,
|
||||
timeout: httpx._types.TimeoutTypes = None,
|
||||
raise_for_httperror: bool = False,
|
||||
) -> httpx.Response:
|
||||
"""Similar to httpx.patch, see the request method for the details."""
|
||||
# pylint: disable=too-many-arguments
|
||||
return request(
|
||||
"PATCH",
|
||||
url,
|
||||
content=content,
|
||||
data=data,
|
||||
files=files,
|
||||
json=json,
|
||||
params=params,
|
||||
headers=headers,
|
||||
cookies=cookies,
|
||||
auth=auth,
|
||||
allow_redirects=allow_redirects,
|
||||
max_redirects=max_redirects,
|
||||
verify=verify,
|
||||
timeout=timeout,
|
||||
raise_for_httperror=raise_for_httperror,
|
||||
)
|
||||
|
||||
|
||||
def delete(
|
||||
url: str,
|
||||
params: Optional[httpx._types.QueryParamTypes] = None,
|
||||
headers: Optional[httpx._types.HeaderTypes] = None,
|
||||
cookies: Optional[httpx._types.CookieTypes] = None,
|
||||
auth: Optional[httpx._types.AuthTypes] = None,
|
||||
allow_redirects: bool = False,
|
||||
max_redirects: Union[_NotSetClass, int] = NOTSET,
|
||||
verify: Union[_NotSetClass, httpx._types.VerifyTypes] = NOTSET,
|
||||
timeout: httpx._types.TimeoutTypes = None,
|
||||
raise_for_httperror: bool = False,
|
||||
) -> httpx.Response:
|
||||
"""Similar to httpx.delete, see the request method for the details."""
|
||||
# pylint: disable=too-many-arguments
|
||||
return request(
|
||||
"DELETE",
|
||||
url,
|
||||
params=params,
|
||||
headers=headers,
|
||||
cookies=cookies,
|
||||
auth=auth,
|
||||
allow_redirects=allow_redirects,
|
||||
max_redirects=max_redirects,
|
||||
verify=verify,
|
||||
timeout=timeout,
|
||||
raise_for_httperror=raise_for_httperror,
|
||||
)
|
||||
|
|
|
@ -1,34 +1,63 @@
|
|||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
# pylint: disable=missing-module-docstring, global-statement
|
||||
"""Implement various ABCHTTPClient
|
||||
|
||||
* OneHTTPClient wrapper around httpx.Client
|
||||
* BaseHTTPClient httpx.Client accept the verify and max_redirects parameter only in the constructor.
|
||||
BaseHTTPClient allows to pass these parameter in each query by creating multiple OneHTTPClient.
|
||||
* HTTPClient Inherit from BaseHTTPClient, raise an error according to retry_on_http_error parameter.
|
||||
* TorHTTPClient Inherit from HTTPClientSoftError, check Tor connectivity
|
||||
"""
|
||||
|
||||
import asyncio
|
||||
import logging
|
||||
import random
|
||||
from abc import ABC, abstractmethod
|
||||
from collections import namedtuple
|
||||
from ssl import SSLContext
|
||||
import threading
|
||||
from typing import Any, Dict
|
||||
from typing import Any, Dict, Optional, Tuple, Union
|
||||
|
||||
import httpx
|
||||
from httpx_socks import AsyncProxyTransport
|
||||
from python_socks import parse_proxy_url, ProxyConnectionError, ProxyTimeoutError, ProxyError
|
||||
from httpx_socks import SyncProxyTransport
|
||||
from python_socks import ProxyConnectionError, ProxyError, ProxyTimeoutError, parse_proxy_url
|
||||
|
||||
from searx import logger
|
||||
from .raise_for_httperror import raise_for_httperror
|
||||
|
||||
# Optional uvloop (support Python 3.6)
|
||||
try:
|
||||
import uvloop
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
uvloop.install()
|
||||
CertTypes = Union[
|
||||
# certfile
|
||||
str,
|
||||
# (certfile, keyfile)
|
||||
Tuple[str, Optional[str]],
|
||||
# (certfile, keyfile, password)
|
||||
Tuple[str, Optional[str], Optional[str]],
|
||||
]
|
||||
|
||||
|
||||
logger = logger.getChild('searx.network.client')
|
||||
LOOP = None
|
||||
SSLCONTEXTS: Dict[Any, SSLContext] = {}
|
||||
|
||||
|
||||
def shuffle_ciphers(ssl_context):
|
||||
class _NotSetClass: # pylint: disable=too-few-public-methods
|
||||
"""Internal class for this module, do not create instance of this class.
|
||||
Replace the None value, allow explicitly pass None as a function argument"""
|
||||
|
||||
|
||||
NOTSET = _NotSetClass()
|
||||
|
||||
|
||||
class SoftRetryHTTPException(Exception):
|
||||
"""Client implementations raise this exception to tell the NetworkContext
|
||||
the response is invalid even if there is no HTTP exception.
|
||||
|
||||
This exception is INTERNAL to searx.network and must not be seen outside.
|
||||
|
||||
See HTTPClientSoftError which check the HTTP response according to
|
||||
the raise_for_httperror parameter.
|
||||
"""
|
||||
|
||||
def __init__(self, response):
|
||||
self.response = response
|
||||
message = "SoftRetryHTTPException, you should not see this error"
|
||||
super().__init__(message)
|
||||
|
||||
|
||||
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`_
|
||||
|
@ -51,18 +80,28 @@ def shuffle_ciphers(ssl_context):
|
|||
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)
|
||||
def _get_sslcontexts(
|
||||
local_address: str,
|
||||
proxy_url: Optional[str],
|
||||
cert: Optional[CertTypes],
|
||||
verify: Union[str, bool],
|
||||
trust_env: bool,
|
||||
http2: bool,
|
||||
):
|
||||
key = (local_address, 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])
|
||||
_shuffle_ciphers(SSLCONTEXTS[key])
|
||||
return SSLCONTEXTS[key]
|
||||
|
||||
|
||||
class AsyncHTTPTransportNoHttp(httpx.AsyncHTTPTransport):
|
||||
### Transport
|
||||
|
||||
|
||||
class _HTTPTransportNoHttp(httpx.HTTPTransport):
|
||||
"""Block HTTP request
|
||||
|
||||
The constructor is blank because httpx.AsyncHTTPTransport.__init__ creates an SSLContext unconditionally:
|
||||
The constructor is blank because httpx.HTTPTransport.__init__ creates an SSLContext unconditionally:
|
||||
https://github.com/encode/httpx/blob/0f61aa58d66680c239ce43c8cdd453e7dc532bfc/httpx/_transports/default.py#L271
|
||||
|
||||
Each SSLContext consumes more than 500kb of memory, since there is about one network per engine.
|
||||
|
@ -77,33 +116,29 @@ class AsyncHTTPTransportNoHttp(httpx.AsyncHTTPTransport):
|
|||
# this on purpose if the base class is not called
|
||||
pass
|
||||
|
||||
async def handle_async_request(self, request):
|
||||
def handle_request(self, request):
|
||||
raise httpx.UnsupportedProtocol('HTTP protocol is disabled')
|
||||
|
||||
async def aclose(self) -> None:
|
||||
def close(self) -> None:
|
||||
pass
|
||||
|
||||
async def __aenter__(self):
|
||||
def __enter__(self): # Use generics for subclass support.
|
||||
return self
|
||||
|
||||
async def __aexit__(
|
||||
self,
|
||||
exc_type=None,
|
||||
exc_value=None,
|
||||
traceback=None,
|
||||
) -> None:
|
||||
def __exit__(self, exc_type, exc_value, traceback) -> None: # pylint: disable=signature-differs
|
||||
# avoid to import the various type for the signature, but pylint is not happy
|
||||
pass
|
||||
|
||||
|
||||
class AsyncProxyTransportFixed(AsyncProxyTransport):
|
||||
"""Fix httpx_socks.AsyncProxyTransport
|
||||
class _CustomSyncProxyTransport(SyncProxyTransport):
|
||||
"""Inherit from httpx_socks.SyncProxyTransport
|
||||
|
||||
Map python_socks exceptions to httpx.ProxyError exceptions
|
||||
"""
|
||||
|
||||
async def handle_async_request(self, request):
|
||||
def handle_request(self, request):
|
||||
try:
|
||||
return await super().handle_async_request(request)
|
||||
return super().handle_request(request)
|
||||
except ProxyConnectionError as e:
|
||||
raise httpx.ProxyError("ProxyConnectionError: " + e.strerror, request=request) from e
|
||||
except ProxyTimeoutError as e:
|
||||
|
@ -112,7 +147,7 @@ class AsyncProxyTransportFixed(AsyncProxyTransport):
|
|||
raise httpx.ProxyError("ProxyError: " + e.args[0], request=request) from e
|
||||
|
||||
|
||||
def get_transport_for_socks_proxy(verify, http2, local_address, proxy_url, limit, retries):
|
||||
def _get_transport_for_socks_proxy(verify, http2, local_address, proxy_url, limit, retries):
|
||||
# support socks5h (requests compatibility):
|
||||
# https://requests.readthedocs.io/en/master/user/advanced/#socks
|
||||
# socks5:// hostname is resolved on client side
|
||||
|
@ -124,16 +159,17 @@ def get_transport_for_socks_proxy(verify, http2, local_address, proxy_url, limit
|
|||
rdns = True
|
||||
|
||||
proxy_type, proxy_host, proxy_port, proxy_username, proxy_password = parse_proxy_url(proxy_url)
|
||||
verify = get_sslcontexts(proxy_url, None, verify, True, http2) if verify is True else verify
|
||||
return AsyncProxyTransportFixed(
|
||||
verify = _get_sslcontexts(local_address, proxy_url, None, verify, True, http2) if verify is True else verify
|
||||
|
||||
# About verify: in ProxyTransportFixed, verify is of type httpx._types.VerifyTypes
|
||||
return _CustomSyncProxyTransport(
|
||||
proxy_type=proxy_type,
|
||||
proxy_host=proxy_host,
|
||||
proxy_port=proxy_port,
|
||||
username=proxy_username,
|
||||
password=proxy_password,
|
||||
rdns=rdns,
|
||||
loop=get_loop(),
|
||||
verify=verify,
|
||||
verify=verify, # type: ignore
|
||||
http2=http2,
|
||||
local_address=local_address,
|
||||
limits=limit,
|
||||
|
@ -141,9 +177,9 @@ def get_transport_for_socks_proxy(verify, http2, local_address, proxy_url, limit
|
|||
)
|
||||
|
||||
|
||||
def get_transport(verify, http2, local_address, proxy_url, limit, retries):
|
||||
verify = get_sslcontexts(None, None, verify, True, http2) if verify is True else verify
|
||||
return httpx.AsyncHTTPTransport(
|
||||
def _get_transport(verify, http2, local_address, proxy_url, limit, retries):
|
||||
verify = _get_sslcontexts(local_address, None, None, verify, True, http2) if verify is True else verify
|
||||
return httpx.HTTPTransport(
|
||||
# pylint: disable=protected-access
|
||||
verify=verify,
|
||||
http2=http2,
|
||||
|
@ -154,83 +190,378 @@ def get_transport(verify, http2, local_address, proxy_url, limit, retries):
|
|||
)
|
||||
|
||||
|
||||
def new_client(
|
||||
# pylint: disable=too-many-arguments
|
||||
enable_http,
|
||||
verify,
|
||||
enable_http2,
|
||||
max_connections,
|
||||
max_keepalive_connections,
|
||||
keepalive_expiry,
|
||||
proxies,
|
||||
local_address,
|
||||
retries,
|
||||
max_redirects,
|
||||
hook_log_response,
|
||||
):
|
||||
limit = httpx.Limits(
|
||||
max_connections=max_connections,
|
||||
max_keepalive_connections=max_keepalive_connections,
|
||||
keepalive_expiry=keepalive_expiry,
|
||||
)
|
||||
# See https://www.python-httpx.org/advanced/#routing
|
||||
mounts = {}
|
||||
for pattern, proxy_url in proxies.items():
|
||||
if not enable_http and pattern.startswith('http://'):
|
||||
continue
|
||||
if proxy_url.startswith('socks4://') or proxy_url.startswith('socks5://') or proxy_url.startswith('socks5h://'):
|
||||
mounts[pattern] = get_transport_for_socks_proxy(
|
||||
verify, enable_http2, local_address, proxy_url, limit, retries
|
||||
)
|
||||
else:
|
||||
mounts[pattern] = get_transport(verify, enable_http2, local_address, proxy_url, limit, retries)
|
||||
|
||||
if not enable_http:
|
||||
mounts['http://'] = AsyncHTTPTransportNoHttp()
|
||||
|
||||
transport = get_transport(verify, enable_http2, local_address, None, limit, retries)
|
||||
|
||||
event_hooks = None
|
||||
if hook_log_response:
|
||||
event_hooks = {'response': [hook_log_response]}
|
||||
|
||||
return httpx.AsyncClient(
|
||||
transport=transport,
|
||||
mounts=mounts,
|
||||
max_redirects=max_redirects,
|
||||
event_hooks=event_hooks,
|
||||
)
|
||||
### Clients
|
||||
|
||||
|
||||
def get_loop():
|
||||
return LOOP
|
||||
class ABCHTTPClient(ABC):
|
||||
"""Abstract HTTP client
|
||||
|
||||
Multiple implementation are defined bellow.
|
||||
There are like an onion: each implementation relies on the previous one
|
||||
and bring new feature.
|
||||
"""
|
||||
|
||||
@abstractmethod
|
||||
def send(self, stream: bool, method: str, url: str, **kwargs) -> httpx.Response:
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def close(self):
|
||||
pass
|
||||
|
||||
@property
|
||||
@abstractmethod
|
||||
def is_closed(self) -> bool:
|
||||
pass
|
||||
|
||||
def request(self, method, url, **kwargs) -> httpx.Response:
|
||||
return self.send(False, method, url, **kwargs)
|
||||
|
||||
def stream(self, method, url, **kwargs) -> httpx.Response:
|
||||
return self.send(True, method, url, **kwargs)
|
||||
|
||||
|
||||
def init():
|
||||
# log
|
||||
for logger_name in (
|
||||
'httpx',
|
||||
'httpcore.proxy',
|
||||
'httpcore.connection',
|
||||
'httpcore.http11',
|
||||
'httpcore.http2',
|
||||
'hpack.hpack',
|
||||
'hpack.table',
|
||||
class OneHTTPClient(ABCHTTPClient):
|
||||
"""Wrap a httpx.Client
|
||||
|
||||
Use httpx_socks for socks proxies.
|
||||
|
||||
Deal with httpx.RemoteProtocolError exception: httpx raises this exception when the
|
||||
HTTP/2 server disconnect. It is excepted to reconnect.
|
||||
Related to https://github.com/encode/httpx/issues/1478
|
||||
Perhaps it can be removed now : TODO check in production.
|
||||
|
||||
To be backward compatible with Request:
|
||||
|
||||
* In Response, "ok" is set to "not response.is_error()"
|
||||
See https://www.python-httpx.org/compatibility/#checking-for-success-and-failure-responses
|
||||
|
||||
* allow_redirects is accepted
|
||||
See https://www.python-httpx.org/compatibility/#redirects
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
# pylint: disable=too-many-arguments
|
||||
self,
|
||||
verify=True,
|
||||
enable_http=True,
|
||||
enable_http2=False,
|
||||
max_connections=None,
|
||||
max_keepalive_connections=None,
|
||||
keepalive_expiry=None,
|
||||
proxies=None,
|
||||
local_addresses=None,
|
||||
max_redirects=30,
|
||||
hook_log_response=None,
|
||||
log_trace=None,
|
||||
allow_redirects=True,
|
||||
logger=None,
|
||||
):
|
||||
logging.getLogger(logger_name).setLevel(logging.WARNING)
|
||||
self.enable_http = enable_http
|
||||
self.verify = verify
|
||||
self.enable_http2 = enable_http2
|
||||
self.max_connections = max_connections
|
||||
self.max_keepalive_connections = max_keepalive_connections
|
||||
self.keepalive_expiry = keepalive_expiry
|
||||
self.proxies = proxies or {}
|
||||
self.local_address = local_addresses
|
||||
self.max_redirects = max_redirects
|
||||
self.hook_log_response = hook_log_response
|
||||
self.allow_redirects = allow_redirects
|
||||
self.logger = logger
|
||||
self.extensions = None
|
||||
if log_trace:
|
||||
self.extensions = {"trace": log_trace}
|
||||
self._new_client()
|
||||
|
||||
# loop
|
||||
def loop_thread():
|
||||
global LOOP
|
||||
LOOP = asyncio.new_event_loop()
|
||||
LOOP.run_forever()
|
||||
def send(self, stream, method, url, timeout=None, **kwargs):
|
||||
self._patch_request(kwargs)
|
||||
retry = 1
|
||||
response = None
|
||||
while retry >= 0: # pragma: no cover
|
||||
retry -= 1
|
||||
try:
|
||||
if stream:
|
||||
# from https://www.python-httpx.org/async/#streaming-responses
|
||||
# > For situations when context block usage is not practical,
|
||||
# > it is possible to enter "manual mode" by sending a Request
|
||||
# > instance using client.send(..., stream=True).
|
||||
request = self.client.build_request(
|
||||
method=method,
|
||||
url=url,
|
||||
content=kwargs.get("content"),
|
||||
data=kwargs.get("data"),
|
||||
files=kwargs.get("files"),
|
||||
json=kwargs.get("json"),
|
||||
params=kwargs.get("params"),
|
||||
headers=kwargs.get("headers"),
|
||||
cookies=kwargs.get("cookies"),
|
||||
timeout=timeout,
|
||||
extensions=self.extensions,
|
||||
)
|
||||
response = self.client.send(
|
||||
request,
|
||||
stream=True,
|
||||
follow_redirects=kwargs.get("follow_redirects", False),
|
||||
auth=kwargs.get("auth"),
|
||||
)
|
||||
else:
|
||||
response = self.client.request(method, url, extensions=self.extensions, timeout=timeout, **kwargs)
|
||||
self._patch_response(response)
|
||||
return response
|
||||
except httpx.RemoteProtocolError as e:
|
||||
if response:
|
||||
response.close()
|
||||
if retry >= 0:
|
||||
# the server has closed the connection:
|
||||
# try again without decreasing the retries variable & with a new HTTP client
|
||||
self._reconnect_client()
|
||||
if self.logger:
|
||||
self.logger.warning('httpx.RemoteProtocolError: the server has disconnected, retrying')
|
||||
continue
|
||||
raise e
|
||||
except (httpx.RequestError, httpx.HTTPStatusError) as e:
|
||||
if response:
|
||||
response.close()
|
||||
raise e
|
||||
return response # type: ignore
|
||||
|
||||
thread = threading.Thread(
|
||||
target=loop_thread,
|
||||
name='asyncio_loop',
|
||||
daemon=True,
|
||||
)
|
||||
thread.start()
|
||||
def close(self):
|
||||
self.client.close()
|
||||
|
||||
@property
|
||||
def is_closed(self) -> bool:
|
||||
return self.client.is_closed
|
||||
|
||||
def _new_client(self):
|
||||
limit = httpx.Limits(
|
||||
max_connections=self.max_connections,
|
||||
max_keepalive_connections=self.max_keepalive_connections,
|
||||
keepalive_expiry=self.keepalive_expiry,
|
||||
)
|
||||
# See https://www.python-httpx.org/advanced/#routing
|
||||
mounts = {}
|
||||
for pattern, proxy_url in self.proxies.items():
|
||||
if not self.enable_http and pattern.startswith('http://'):
|
||||
continue
|
||||
if (
|
||||
proxy_url.startswith('socks4://')
|
||||
or proxy_url.startswith('socks5://')
|
||||
or proxy_url.startswith('socks5h://')
|
||||
):
|
||||
mounts[pattern] = _get_transport_for_socks_proxy(
|
||||
self.verify, self.enable_http2, self.local_address, proxy_url, limit, 0
|
||||
)
|
||||
else:
|
||||
mounts[pattern] = _get_transport(
|
||||
self.verify, self.enable_http2, self.local_address, proxy_url, limit, 0
|
||||
)
|
||||
|
||||
if not self.enable_http:
|
||||
mounts['http://'] = _HTTPTransportNoHttp()
|
||||
|
||||
transport = _get_transport(self.verify, self.enable_http2, self.local_address, None, limit, 0)
|
||||
|
||||
event_hooks = None
|
||||
if self.hook_log_response:
|
||||
event_hooks = {'response': [self.hook_log_response]}
|
||||
self.client = httpx.Client(
|
||||
transport=transport,
|
||||
mounts=mounts,
|
||||
max_redirects=self.max_redirects,
|
||||
event_hooks=event_hooks,
|
||||
)
|
||||
|
||||
def _reconnect_client(self):
|
||||
self.client.close()
|
||||
self._new_client()
|
||||
|
||||
def _patch_request(self, kwargs):
|
||||
# see https://www.python-httpx.org/compatibility/#redirects
|
||||
follow_redirects = self.allow_redirects
|
||||
if 'allow_redirects' in kwargs:
|
||||
# see https://github.com/encode/httpx/pull/1808
|
||||
follow_redirects = kwargs.pop('allow_redirects')
|
||||
kwargs['follow_redirects'] = follow_redirects
|
||||
|
||||
def _patch_response(self, response):
|
||||
if isinstance(response, httpx.Response):
|
||||
# requests compatibility (response is not streamed)
|
||||
# see also https://www.python-httpx.org/compatibility/#checking-for-4xx5xx-responses
|
||||
response.ok = not response.is_error # type: ignore
|
||||
|
||||
return response
|
||||
|
||||
|
||||
init()
|
||||
_HTTPMultiClientConf = namedtuple('HTTPMultiClientConf', ['verify', 'max_redirects'])
|
||||
|
||||
|
||||
class BaseHTTPClient(ABCHTTPClient):
|
||||
"""Some parameter like verify, max_redirects are defined at the client level,
|
||||
not at the request level.
|
||||
|
||||
This class allow to specify these parameters at the request level.
|
||||
The implementation uses multiple instances of OneHTTPClient
|
||||
|
||||
This class does not deal with the retry_on_http_error parameter
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
**default_kwargs,
|
||||
):
|
||||
# set the default values
|
||||
self.default = _HTTPMultiClientConf(True, 30)
|
||||
# extract the values from the HTTPCient constructor
|
||||
# the line before is mandatory to be able to self._extract_kwargs_clients
|
||||
# and keep the other arguments
|
||||
self.default, self.default_kwargs = self._extract_kwargs_clients(default_kwargs)
|
||||
self.clients: Dict[Tuple, OneHTTPClient] = {}
|
||||
|
||||
def close(self):
|
||||
for client in self.clients.values():
|
||||
client.close()
|
||||
|
||||
@property
|
||||
def is_closed(self) -> bool:
|
||||
return all(client.is_closed for client in self.clients.values())
|
||||
|
||||
# send(... ,foo=1, bar=2)
|
||||
def send(self, stream, method, url, timeout=None, **kwargs):
|
||||
client = self._get_client_and_update_kwargs(kwargs)
|
||||
return client.send(stream, method, url, timeout, **kwargs)
|
||||
|
||||
def _get_client_and_update_kwargs(self, kwargs) -> OneHTTPClient:
|
||||
# extract HTTPMultiClientConf using the parameter in the request
|
||||
# and fallback to the parameters defined in the constructor
|
||||
# = the parameters set in the network settings
|
||||
http_multi_client_conf, kwargs = self._extract_kwargs_clients(kwargs)
|
||||
if http_multi_client_conf not in self.clients:
|
||||
self.clients[http_multi_client_conf] = OneHTTPClient(
|
||||
verify=http_multi_client_conf.verify,
|
||||
max_redirects=http_multi_client_conf.max_redirects,
|
||||
**self.default_kwargs,
|
||||
)
|
||||
return self.clients[http_multi_client_conf]
|
||||
|
||||
def _extract_kwargs_clients(self, kwargs) -> Tuple[_HTTPMultiClientConf, Dict]:
|
||||
# default values
|
||||
# see https://www.python-httpx.org/compatibility/#ssl-configuration
|
||||
verify = kwargs.pop('verify', NOTSET)
|
||||
max_redirects = kwargs.pop('max_redirects', NOTSET)
|
||||
if verify == NOTSET:
|
||||
verify = self.default.verify
|
||||
if max_redirects == NOTSET:
|
||||
max_redirects = self.default.max_redirects
|
||||
return _HTTPMultiClientConf(verify, max_redirects), kwargs
|
||||
|
||||
|
||||
class HTTPClient(BaseHTTPClient):
|
||||
"""Inherit from BaseHTTPClient, raise an exception according to the retry_on_http_error parameter"""
|
||||
|
||||
def __init__(self, retry_on_http_error=None, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
self.retry_on_http_error = retry_on_http_error
|
||||
self._check_configuration()
|
||||
|
||||
def _check_configuration(self):
|
||||
# make sure we can create at least an OneHTTPClient without exception
|
||||
self._get_client_and_update_kwargs({})
|
||||
|
||||
def send(self, stream, method, url, timeout=None, **kwargs):
|
||||
try:
|
||||
do_raise_for_httperror = self._extract_do_raise_for_httperror(kwargs)
|
||||
response = super().send(stream, method, url, timeout=timeout, **kwargs)
|
||||
if do_raise_for_httperror:
|
||||
raise_for_httperror(response)
|
||||
if self._is_error_but_retry(response):
|
||||
raise SoftRetryHTTPException(response)
|
||||
return response
|
||||
except (httpx.RequestError, httpx.HTTPStatusError) as e:
|
||||
raise e
|
||||
|
||||
def _is_error_but_retry(self, response):
|
||||
# pylint: disable=too-many-boolean-expressions
|
||||
return (
|
||||
(self.retry_on_http_error is True and 400 <= response.status_code <= 599)
|
||||
or (isinstance(self.retry_on_http_error, list) and response.status_code in self.retry_on_http_error)
|
||||
or (isinstance(self.retry_on_http_error, int) and response.status_code == self.retry_on_http_error)
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def _extract_do_raise_for_httperror(kwargs):
|
||||
do_raise_for_httperror = True
|
||||
if 'raise_for_httperror' in kwargs:
|
||||
do_raise_for_httperror = kwargs['raise_for_httperror']
|
||||
del kwargs['raise_for_httperror']
|
||||
return do_raise_for_httperror
|
||||
|
||||
def __repr__(self):
|
||||
keys_values = " ".join([f"{k}={v!r}" for k, v in self.default_kwargs.items()])
|
||||
return f"<{self.__class__.__name__} retry_on_http_error={self.retry_on_http_error!r} {keys_values}>"
|
||||
|
||||
|
||||
class TorHTTPClient(HTTPClient):
|
||||
"""Extend HTTPClientSoftError client. To use with Tor configuration.
|
||||
|
||||
The class checks if the client is really connected through Tor.
|
||||
"""
|
||||
|
||||
_TOR_CHECK_RESULT = {}
|
||||
|
||||
def __init__(self, proxies=None, local_addresses=None, **kwargs):
|
||||
self.proxies = proxies
|
||||
self.local_addresses = local_addresses
|
||||
super().__init__(proxies=proxies, local_addresses=local_addresses, **kwargs)
|
||||
|
||||
def _check_configuration(self):
|
||||
if not self._is_connected_through_tor(self.proxies, self.local_addresses):
|
||||
self.close()
|
||||
raise httpx.HTTPError('Network configuration problem: not using Tor')
|
||||
|
||||
def _is_connected_through_tor(self, proxies, local_addresses) -> bool:
|
||||
"""TODO : rewrite to check the proxies variable instead of checking the HTTPTransport ?"""
|
||||
if proxies is None:
|
||||
return False
|
||||
|
||||
cache_key = (local_addresses, tuple(proxies.items()))
|
||||
if cache_key in TorHTTPClient._TOR_CHECK_RESULT:
|
||||
return TorHTTPClient._TOR_CHECK_RESULT[cache_key]
|
||||
|
||||
# False is the client use the DNS from the proxy
|
||||
use_local_dns = False
|
||||
|
||||
# get one httpx client through get_client_and_update_kwargs
|
||||
one_http_client = self._get_client_and_update_kwargs({"verify": True})
|
||||
httpx_client = one_http_client.client
|
||||
# ignore client._transport because it is not used with all://
|
||||
for transport in httpx_client._mounts.values(): # pylint: disable=protected-access
|
||||
if isinstance(transport, _HTTPTransportNoHttp):
|
||||
# ignore the NO HTTP transport
|
||||
continue
|
||||
if isinstance(transport, _CustomSyncProxyTransport) and not getattr(
|
||||
transport._pool, "_rdns", False # pylint: disable=protected-access # type: ignore
|
||||
):
|
||||
# socks5:// with local DNS
|
||||
# expect socks5h:// with remote DNS to resolve .onion domain.
|
||||
use_local_dns = True
|
||||
break
|
||||
|
||||
#
|
||||
if use_local_dns:
|
||||
# no test
|
||||
result = False
|
||||
else:
|
||||
# actual check
|
||||
response = one_http_client.request("GET", "https://check.torproject.org/api/ip", timeout=60)
|
||||
if response.status_code != 200:
|
||||
result = False
|
||||
else:
|
||||
result = bool(response.json().get("IsTor", False))
|
||||
TorHTTPClient._TOR_CHECK_RESULT[cache_key] = result
|
||||
return result
|
||||
|
||||
@staticmethod
|
||||
def _clear_cache():
|
||||
"""Only for the tests"""
|
||||
TorHTTPClient._TOR_CHECK_RESULT = {}
|
||||
|
|
|
@ -0,0 +1,418 @@
|
|||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
# lint: pylint
|
||||
# pyright: basic
|
||||
"""This module implements various NetworkContext which deals with
|
||||
|
||||
* retry strategies: what to do when an HTTP request fails and retries>0
|
||||
* record HTTP runtime
|
||||
* timeout: In engines, the user query starts at one point in time,
|
||||
the engine timeout is the starting point plus a defined value.
|
||||
NetworkContext sends HTTP requests following the request timeout and the engine timeouts.
|
||||
|
||||
Example of usage:
|
||||
|
||||
```
|
||||
context = NetworkContextRetryFunction(...) # or another implementation
|
||||
|
||||
def my_engine():
|
||||
http_client = context.get_http_client()
|
||||
ip_ifconfig = http_client.request("GET", "https://ifconfig.me/")
|
||||
print("ip from ifconfig.me ", ip_ifconfig)
|
||||
ip_myip = http_client.request("GET", "https://api.myip.com").json()["ip"]
|
||||
print("ip from api.myip.com", ip_myip)
|
||||
assert ip_ifconfig == ip_myip
|
||||
# ^^ always true with NetworkContextRetryFunction and NetworkContextRetrySameHTTPClient
|
||||
|
||||
result = context.call(my_engine)
|
||||
print('HTTP runtime:', context.get_total_time())
|
||||
```
|
||||
|
||||
Note in the code above NetworkContextRetryFunction is instanced directly for the sake of simplicity.
|
||||
NetworkContext are actually instanciated using Network.get_context(...)
|
||||
|
||||
Various implementations define what to do when there is an exception in the function `my_engine`:
|
||||
|
||||
* `NetworkContextRetryFunction` gets another HTTP client and tries the whole function again.
|
||||
* `NetworkContextRetryDifferentHTTPClient` gets another HTTP client and tries the query again.
|
||||
* `NetworkContextRetrySameHTTPClient` tries the query again with the same HTTP client.
|
||||
"""
|
||||
import functools
|
||||
import ssl
|
||||
from abc import ABC, abstractmethod
|
||||
from contextlib import contextmanager
|
||||
from timeit import default_timer
|
||||
from typing import Callable, Optional, final
|
||||
|
||||
try:
|
||||
from typing import ParamSpec, TypeVar
|
||||
except ImportError:
|
||||
# to support Python < 3.10
|
||||
from typing_extensions import ParamSpec, TypeVar
|
||||
|
||||
import httpx
|
||||
|
||||
from searx.network.client import ABCHTTPClient, SoftRetryHTTPException
|
||||
|
||||
P = ParamSpec('P')
|
||||
R = TypeVar('R')
|
||||
HTTPCLIENTFACTORY = Callable[[], ABCHTTPClient]
|
||||
|
||||
DEFAULT_TIMEOUT = 120.0
|
||||
|
||||
|
||||
## NetworkContext
|
||||
|
||||
|
||||
class NetworkContext(ABC):
|
||||
"""Abstract implementation: the call must defined in concrete classes.
|
||||
|
||||
Lifetime: one engine request or initialization of an engine.
|
||||
"""
|
||||
|
||||
__slots__ = ('_retries', '_http_client_factory', '_http_client', '_start_time', '_http_time', '_timeout')
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
retries: int,
|
||||
http_client_factory: HTTPCLIENTFACTORY,
|
||||
start_time: Optional[float],
|
||||
timeout: Optional[float],
|
||||
):
|
||||
self._retries: int = retries
|
||||
# wrap http_client_factory here, so we can forget about this wrapping
|
||||
self._http_client_factory = _TimeHTTPClientWrapper.wrap_factory(http_client_factory, self)
|
||||
self._http_client: Optional[ABCHTTPClient] = None
|
||||
self._start_time: float = start_time or default_timer()
|
||||
self._http_time: float = 0.0
|
||||
self._timeout: Optional[float] = timeout
|
||||
|
||||
@abstractmethod
|
||||
def call(self, func: Callable[P, R], *args: P.args, **kwargs: P.kwargs) -> R:
|
||||
"""Call func within the network context.
|
||||
|
||||
The retry policy might call func multiple times.
|
||||
|
||||
Within the function self.get_http_client() returns an HTTP client to use.
|
||||
|
||||
The retry policy might send multiple times the same HTTP request
|
||||
until it works or the retry count falls to zero.
|
||||
"""
|
||||
|
||||
@final
|
||||
def request(self, *args, **kwargs):
|
||||
"""Convenient method to wrap a call to request inside the call method.
|
||||
|
||||
Use a new HTTP client to wrap a call to the request method using self.call
|
||||
"""
|
||||
|
||||
def local_request(*args, **kwargs):
|
||||
return self._get_http_client().request(*args, **kwargs)
|
||||
|
||||
return self.call(local_request, *args, **kwargs)
|
||||
|
||||
@final
|
||||
def stream(self, *args, **kwargs):
|
||||
"""Convenient method to wrap a call to stream inside the call method.
|
||||
|
||||
Use a new HTTP client to wrap a call to the stream method using self.call
|
||||
"""
|
||||
|
||||
def local_stream(*args, **kwargs):
|
||||
return self._get_http_client().stream(*args, **kwargs)
|
||||
|
||||
return self.call(local_stream, *args, **kwargs)
|
||||
|
||||
@final
|
||||
def get_http_runtime(self) -> Optional[float]:
|
||||
"""Return the amount of time spent on HTTP requests"""
|
||||
return self._http_time
|
||||
|
||||
@final
|
||||
def get_remaining_time(self, _override_timeout: Optional[float] = None) -> float:
|
||||
"""Return the remaining time for the context.
|
||||
|
||||
_override_timeout is not intended to be used outside this module.
|
||||
"""
|
||||
timeout = _override_timeout or self._timeout or DEFAULT_TIMEOUT
|
||||
timeout += 0.2 # overhead
|
||||
timeout -= default_timer() - self._start_time
|
||||
return timeout
|
||||
|
||||
@final
|
||||
def _get_http_client(self) -> ABCHTTPClient:
|
||||
"""Return the HTTP client to use for this context."""
|
||||
if self._http_client is None:
|
||||
raise ValueError("HTTP client has not been set")
|
||||
return self._http_client
|
||||
|
||||
@final
|
||||
def _set_http_client(self):
|
||||
"""Ask the NetworkContext to use another HTTP client using the factory.
|
||||
|
||||
Use the method _get_new_client_from_factory() to call the factory,
|
||||
so the NetworkContext implementations can wrap the ABCHTTPClient.
|
||||
"""
|
||||
self._http_client = self._get_new_client_from_factory()
|
||||
|
||||
@final
|
||||
def _reset_http_client(self):
|
||||
self._http_client = None
|
||||
|
||||
def _get_new_client_from_factory(self):
|
||||
return self._http_client_factory()
|
||||
|
||||
@contextmanager
|
||||
def _record_http_time(self):
|
||||
"""This decorator records the code's runtime and adds it to self.total_time"""
|
||||
time_before_request = default_timer()
|
||||
try:
|
||||
yield
|
||||
finally:
|
||||
self._http_time += default_timer() - time_before_request
|
||||
|
||||
def __repr__(self):
|
||||
common_attributes = (
|
||||
f"{self.__class__.__name__}"
|
||||
+ f" retries={self._retries!r} timeout={self._timeout!r} http_client={self._http_client!r}"
|
||||
)
|
||||
# get the original factory : see the __init__ method of this class and _TimeHTTPClientWrapper.wrap_factory
|
||||
factory = self._http_client_factory.__wrapped__
|
||||
# break the abstraction safely: get back the Network object through the bound method
|
||||
# see Network.get_context
|
||||
bound_instance = getattr(factory, "__self__", None)
|
||||
if bound_instance is not None and hasattr(bound_instance, 'get_context'):
|
||||
# bound_instance has a "get_context" attribute: this is most likely a Network
|
||||
# searx.network.network.Network is not imported to avoid circular import
|
||||
return f"<{common_attributes} network_context={factory.__self__!r}>"
|
||||
# fallback : this instance was not created using Network.get_context
|
||||
return f"<{common_attributes} http_client_factory={factory!r}>"
|
||||
|
||||
|
||||
## Measure time and deal with timeout
|
||||
|
||||
|
||||
class _TimeHTTPClientWrapper(ABCHTTPClient):
|
||||
"""Wrap an ABCHTTPClient:
|
||||
* to record the HTTP runtime
|
||||
* to override the timeout to make sure the total time does not exceed the timeout set on the NetworkContext
|
||||
"""
|
||||
|
||||
__slots__ = ('http_client', 'network_context')
|
||||
|
||||
@staticmethod
|
||||
def wrap_factory(http_client_factory: HTTPCLIENTFACTORY, network_context: NetworkContext):
|
||||
"""Return a factory which wraps the result of http_client_factory with _TimeHTTPClientWrapper instance."""
|
||||
functools.wraps(http_client_factory)
|
||||
|
||||
def wrapped_factory():
|
||||
return _TimeHTTPClientWrapper(http_client_factory(), network_context)
|
||||
|
||||
wrapped_factory.__wrapped__ = http_client_factory
|
||||
return wrapped_factory
|
||||
|
||||
def __init__(self, http_client: ABCHTTPClient, network_context: NetworkContext) -> None:
|
||||
self.http_client = http_client
|
||||
self.network_context = network_context
|
||||
|
||||
def send(self, stream, method, url, **kwargs) -> httpx.Response:
|
||||
"""Send the HTTP request using self.http_client
|
||||
|
||||
Inaccurate with stream: the method must record HTTP time with the close method of httpx.Response.
|
||||
It is not a problem since stream are used only for the image proxy.
|
||||
"""
|
||||
with self.network_context._record_http_time(): # pylint: disable=protected-access
|
||||
timeout = self._extract_timeout(kwargs)
|
||||
return self.http_client.send(stream, method, url, timeout=timeout, **kwargs)
|
||||
|
||||
def close(self):
|
||||
return self.http_client.close()
|
||||
|
||||
@property
|
||||
def is_closed(self) -> bool:
|
||||
return self.http_client.is_closed
|
||||
|
||||
def _extract_timeout(self, kwargs):
|
||||
"""Extract the timeout parameter and adjust it according to the remaining time"""
|
||||
timeout = kwargs.pop('timeout', None)
|
||||
return self.network_context.get_remaining_time(timeout)
|
||||
|
||||
|
||||
## NetworkContextRetryFunction
|
||||
|
||||
|
||||
class NetworkContextRetryFunction(NetworkContext):
|
||||
"""When an HTTP request fails, this NetworkContext tries again
|
||||
the whole function with another HTTP client.
|
||||
|
||||
This guarantees that func has the same HTTP client all along.
|
||||
"""
|
||||
|
||||
def call(self, func: Callable[P, R], *args: P.args, **kwargs: P.kwargs) -> R:
|
||||
try:
|
||||
# if retries == 1, this method can call `func` twice,
|
||||
# so the exit condition is self._retries must be equal or above zero
|
||||
# to allow two iteration
|
||||
while self._retries >= 0 and self.get_remaining_time() > 0:
|
||||
self._set_http_client()
|
||||
try:
|
||||
return func(*args, **kwargs) # type: ignore
|
||||
except SoftRetryHTTPException as e:
|
||||
if self._retries <= 0:
|
||||
return e.response
|
||||
if e.response:
|
||||
e.response.close()
|
||||
except (ssl.SSLError, httpx.RequestError, httpx.HTTPStatusError) as e:
|
||||
if self._retries <= 1:
|
||||
# raise the exception only there is no more try
|
||||
raise e
|
||||
self._retries -= 1
|
||||
if self.get_remaining_time() <= 0:
|
||||
raise httpx.TimeoutException("Timeout")
|
||||
raise httpx.HTTPError("Internal error: this should not happen")
|
||||
finally:
|
||||
self._reset_http_client()
|
||||
|
||||
def _get_new_client_from_factory(self):
|
||||
return _RetryFunctionHTTPClient(super()._get_new_client_from_factory(), self)
|
||||
|
||||
|
||||
class _RetryFunctionHTTPClient(ABCHTTPClient):
|
||||
"""Companion class of NetworkContextRetryFunction
|
||||
|
||||
Do one thing: if the retries count of the NetworkContext is zero and there is a SoftRetryHTTPException,
|
||||
then the send method catch this exception and returns the HTTP response.
|
||||
This make sure the SoftRetryHTTPException exception is not seen outside the searx.network module.
|
||||
"""
|
||||
|
||||
def __init__(self, http_client: ABCHTTPClient, network_context: NetworkContextRetryFunction):
|
||||
self.http_client = http_client
|
||||
self.network_context = network_context
|
||||
|
||||
def send(self, stream: bool, method: str, url: str, **kwargs) -> httpx.Response:
|
||||
try:
|
||||
return self.http_client.send(stream, method, url, **kwargs)
|
||||
except SoftRetryHTTPException as e:
|
||||
if self.network_context._retries <= 0: # pylint: disable=protected-access
|
||||
return e.response
|
||||
if e.response:
|
||||
e.response.close()
|
||||
raise e
|
||||
|
||||
def close(self):
|
||||
return self.http_client.close()
|
||||
|
||||
@property
|
||||
def is_closed(self) -> bool:
|
||||
return self.http_client.is_closed
|
||||
|
||||
|
||||
## NetworkContextRetrySameHTTPClient
|
||||
|
||||
|
||||
class NetworkContextRetrySameHTTPClient(NetworkContext):
|
||||
"""When an HTTP request fails, this NetworkContext tries again
|
||||
the same HTTP request with the same HTTP client
|
||||
|
||||
The implementation wraps the provided ABCHTTPClient with _RetrySameHTTPClient."""
|
||||
|
||||
def call(self, func: Callable[P, R], *args: P.args, **kwargs: P.kwargs) -> R:
|
||||
try:
|
||||
self._set_http_client()
|
||||
return func(*args, **kwargs) # type: ignore
|
||||
finally:
|
||||
self._reset_http_client()
|
||||
|
||||
def _get_new_client_from_factory(self):
|
||||
return _RetrySameHTTPClient(super()._get_new_client_from_factory(), self)
|
||||
|
||||
|
||||
class _RetrySameHTTPClient(ABCHTTPClient):
|
||||
"""Companion class of NetworkContextRetrySameHTTPClient"""
|
||||
|
||||
def __init__(self, http_client: ABCHTTPClient, network_content: NetworkContextRetrySameHTTPClient):
|
||||
self.http_client = http_client
|
||||
self.network_context = network_content
|
||||
|
||||
def send(self, stream: bool, method: str, url: str, **kwargs) -> httpx.Response:
|
||||
retries = self.network_context._retries # pylint: disable=protected-access
|
||||
# if retries == 1, this method can send two HTTP requets,
|
||||
# so the exit condition is self._retries must be equal or above zero
|
||||
# to allow two iteration
|
||||
while retries >= 0 and self.network_context.get_remaining_time() > 0:
|
||||
try:
|
||||
return self.http_client.send(stream, method, url, **kwargs)
|
||||
except SoftRetryHTTPException as e:
|
||||
if retries <= 0:
|
||||
return e.response
|
||||
if e.response:
|
||||
e.response.close()
|
||||
except (ssl.SSLError, httpx.RequestError, httpx.HTTPStatusError) as e:
|
||||
if retries <= 0:
|
||||
raise e
|
||||
retries -= 1
|
||||
if self.network_context.get_remaining_time() <= 0:
|
||||
raise httpx.TimeoutException("Timeout")
|
||||
raise httpx.HTTPError("Internal error: this should not happen")
|
||||
|
||||
def close(self):
|
||||
return self.http_client.close()
|
||||
|
||||
@property
|
||||
def is_closed(self) -> bool:
|
||||
return self.http_client.is_closed
|
||||
|
||||
|
||||
## NetworkContextRetryDifferentHTTPClient
|
||||
|
||||
|
||||
class NetworkContextRetryDifferentHTTPClient(NetworkContext):
|
||||
"""When a HTTP request fails, this NetworkContext tries again
|
||||
the same HTTP request with a different HTTP client
|
||||
|
||||
The implementation wraps the provided ABCHTTPClient with _RetryDifferentHTTPClient."""
|
||||
|
||||
def call(self, func: Callable[P, R], *args: P.args, **kwargs: P.kwargs) -> R:
|
||||
self._set_http_client()
|
||||
try:
|
||||
return func(*args, **kwargs) # type: ignore
|
||||
finally:
|
||||
self._reset_http_client()
|
||||
|
||||
def _get_new_client_from_factory(self):
|
||||
return _RetryDifferentHTTPClient(self)
|
||||
|
||||
|
||||
class _RetryDifferentHTTPClient(ABCHTTPClient):
|
||||
"""Companion class of NetworkContextRetryDifferentHTTPClient"""
|
||||
|
||||
def __init__(self, network_context: NetworkContextRetryDifferentHTTPClient) -> None:
|
||||
self.network_context = network_context
|
||||
|
||||
def send(self, stream: bool, method: str, url: str, **kwargs) -> httpx.Response:
|
||||
retries = self.network_context._retries # pylint: disable=protected-access
|
||||
# if retries == 1, this method can send two HTTP requets,
|
||||
# so the exit condition is self._retries must be equal or above zero
|
||||
# to allow two iteration
|
||||
while retries >= 0 and self.network_context.get_remaining_time() > 0:
|
||||
http_client = self.network_context._http_client_factory() # pylint: disable=protected-access
|
||||
try:
|
||||
return http_client.send(stream, method, url, **kwargs)
|
||||
except SoftRetryHTTPException as e:
|
||||
if retries <= 0:
|
||||
return e.response
|
||||
if e.response:
|
||||
e.response.close()
|
||||
except (ssl.SSLError, httpx.RequestError, httpx.HTTPStatusError) as e:
|
||||
if retries <= 0:
|
||||
raise e
|
||||
retries -= 1
|
||||
if self.network_context.get_remaining_time() <= 0:
|
||||
raise httpx.TimeoutException("Timeout")
|
||||
raise httpx.HTTPError("Internal error: this should not happen")
|
||||
|
||||
def close(self):
|
||||
raise NotImplementedError()
|
||||
|
||||
@property
|
||||
def is_closed(self) -> bool:
|
||||
raise NotImplementedError()
|
|
@ -1,154 +1,229 @@
|
|||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
# pylint: disable=global-statement
|
||||
# pylint: disable=missing-module-docstring, missing-class-docstring
|
||||
"""Deal with
|
||||
|
||||
* create Networks from settings.yml
|
||||
* each Network contains an ABCHTTPClient for each (proxies, IP addresses). Lazy initialized.
|
||||
* a Network provides two methods:
|
||||
|
||||
* get_http_client: returns an HTTP client. Prefer the get_context,
|
||||
retry strategy is ignored with get_http_client
|
||||
* get_context: provides a runtime context for the engine, see searx.network.context
|
||||
"""
|
||||
|
||||
import atexit
|
||||
import asyncio
|
||||
import ipaddress
|
||||
from dataclasses import dataclass, field
|
||||
from enum import Enum
|
||||
from itertools import cycle
|
||||
from typing import Dict
|
||||
from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
|
||||
|
||||
import httpx
|
||||
|
||||
from searx import logger, searx_debug
|
||||
from .client import new_client, get_loop, AsyncHTTPTransportNoHttp
|
||||
from .raise_for_httperror import raise_for_httperror
|
||||
|
||||
from searx.network.client import HTTPClient, TorHTTPClient
|
||||
from searx.network.context import (
|
||||
NetworkContext,
|
||||
NetworkContextRetryDifferentHTTPClient,
|
||||
NetworkContextRetryFunction,
|
||||
NetworkContextRetrySameHTTPClient,
|
||||
)
|
||||
|
||||
logger = logger.getChild('network')
|
||||
DEFAULT_NAME = '__DEFAULT__'
|
||||
NETWORKS: Dict[str, 'Network'] = {}
|
||||
# requests compatibility when reading proxy settings from settings.yml
|
||||
PROXY_PATTERN_MAPPING = {
|
||||
'http': 'http://',
|
||||
'https': 'https://',
|
||||
'socks4': 'socks4://',
|
||||
'socks5': 'socks5://',
|
||||
'socks5h': 'socks5h://',
|
||||
'http:': 'http://',
|
||||
'https:': 'https://',
|
||||
'socks4:': 'socks4://',
|
||||
'socks5:': 'socks5://',
|
||||
'socks5h:': 'socks5h://',
|
||||
}
|
||||
|
||||
ADDRESS_MAPPING = {'ipv4': '0.0.0.0', 'ipv6': '::'}
|
||||
|
||||
class RetryStrategy(Enum):
|
||||
ENGINE = NetworkContextRetryFunction
|
||||
SAME_HTTP_CLIENT = NetworkContextRetrySameHTTPClient
|
||||
DIFFERENT_HTTP_CLIENT = NetworkContextRetryDifferentHTTPClient
|
||||
|
||||
|
||||
TYPE_IP_ANY = Union[ # pylint: disable=invalid-name
|
||||
ipaddress.IPv4Address,
|
||||
ipaddress.IPv6Address,
|
||||
ipaddress.IPv4Network,
|
||||
ipaddress.IPv6Network,
|
||||
]
|
||||
|
||||
TYPE_RETRY_ON_ERROR = Union[List[int], int, bool] # pylint: disable=invalid-name
|
||||
|
||||
|
||||
@dataclass(order=True, frozen=True)
|
||||
class NetworkSettings:
|
||||
"""Configuration for a Network. See NetworkSettingsReader
|
||||
|
||||
TODO: check if we need order=True
|
||||
"""
|
||||
|
||||
# Individual HTTP requests can override these parameters.
|
||||
verify: bool = True
|
||||
max_redirects: int = 30
|
||||
# These parameters can not be overridden.
|
||||
enable_http: bool = False # disable http:// URL (unencrypted) by default = make sure to use HTTPS
|
||||
enable_http2: bool = True
|
||||
max_connections: Optional[int] = 10
|
||||
max_keepalive_connections: Optional[int] = 100
|
||||
keepalive_expiry: Optional[float] = 5.0
|
||||
local_addresses: List[TYPE_IP_ANY] = field(default_factory=list)
|
||||
proxies: Dict[str, List[str]] = field(default_factory=dict)
|
||||
using_tor_proxy: bool = False
|
||||
retries: int = 0
|
||||
retry_strategy: RetryStrategy = RetryStrategy.DIFFERENT_HTTP_CLIENT
|
||||
retry_on_http_error: Optional[TYPE_RETRY_ON_ERROR] = None
|
||||
logger_name: Optional[str] = None
|
||||
|
||||
|
||||
class Network:
|
||||
"""Provides NetworkContext and ABCHTTPClient following NetworkSettings.
|
||||
|
||||
A Network might have multiple IP addresses and proxies;
|
||||
in this case, each call to get_context or get_http_client provides a different
|
||||
configuration.
|
||||
"""
|
||||
|
||||
__slots__ = (
|
||||
'enable_http',
|
||||
'verify',
|
||||
'enable_http2',
|
||||
'max_connections',
|
||||
'max_keepalive_connections',
|
||||
'keepalive_expiry',
|
||||
'local_addresses',
|
||||
'proxies',
|
||||
'using_tor_proxy',
|
||||
'max_redirects',
|
||||
'retries',
|
||||
'retry_on_http_error',
|
||||
'_settings',
|
||||
'_local_addresses_cycle',
|
||||
'_proxies_cycle',
|
||||
'_clients',
|
||||
'_logger',
|
||||
)
|
||||
|
||||
_TOR_CHECK_RESULT = {}
|
||||
def __init__(self, settings: NetworkSettings):
|
||||
"""Creates a Network from a NetworkSettings"""
|
||||
self._settings = settings
|
||||
self._local_addresses_cycle = self._get_local_addresses_cycle()
|
||||
self._proxies_cycle = self._get_proxy_cycles()
|
||||
self._clients: Dict[Tuple, HTTPClient] = {}
|
||||
self._logger = logger.getChild(settings.logger_name) if settings.logger_name else logger
|
||||
|
||||
def __init__(
|
||||
# pylint: disable=too-many-arguments
|
||||
self,
|
||||
enable_http=True,
|
||||
verify=True,
|
||||
enable_http2=False,
|
||||
max_connections=None,
|
||||
max_keepalive_connections=None,
|
||||
keepalive_expiry=None,
|
||||
proxies=None,
|
||||
using_tor_proxy=False,
|
||||
local_addresses=None,
|
||||
retries=0,
|
||||
retry_on_http_error=None,
|
||||
max_redirects=30,
|
||||
logger_name=None,
|
||||
):
|
||||
@staticmethod
|
||||
def from_dict(**kwargs):
|
||||
"""Creates a Network from a keys/values"""
|
||||
return Network(NetwortSettingsDecoder.from_dict(kwargs))
|
||||
|
||||
self.enable_http = enable_http
|
||||
self.verify = verify
|
||||
self.enable_http2 = enable_http2
|
||||
self.max_connections = max_connections
|
||||
self.max_keepalive_connections = max_keepalive_connections
|
||||
self.keepalive_expiry = keepalive_expiry
|
||||
self.proxies = proxies
|
||||
self.using_tor_proxy = using_tor_proxy
|
||||
self.local_addresses = local_addresses
|
||||
self.retries = retries
|
||||
self.retry_on_http_error = retry_on_http_error
|
||||
self.max_redirects = max_redirects
|
||||
self._local_addresses_cycle = self.get_ipaddress_cycle()
|
||||
self._proxies_cycle = self.get_proxy_cycles()
|
||||
self._clients = {}
|
||||
self._logger = logger.getChild(logger_name) if logger_name else logger
|
||||
self.check_parameters()
|
||||
def close(self):
|
||||
"""Close all the ABCHTTPClient hold by the Network"""
|
||||
for client in self._clients.values():
|
||||
client.close()
|
||||
|
||||
def check_parameters(self):
|
||||
for address in self.iter_ipaddresses():
|
||||
if '/' in address:
|
||||
ipaddress.ip_network(address, False)
|
||||
else:
|
||||
ipaddress.ip_address(address)
|
||||
def check_configuration(self) -> bool:
|
||||
"""Check if the network configuration is valid.
|
||||
|
||||
if self.proxies is not None and not isinstance(self.proxies, (str, dict)):
|
||||
raise ValueError('proxies type has to be str, dict or None')
|
||||
Typical use case: check if the proxy is really a Tor proxy"""
|
||||
try:
|
||||
self._get_http_client()
|
||||
return True
|
||||
except Exception: # pylint: disable=broad-except
|
||||
self._logger.exception('Error')
|
||||
return False
|
||||
|
||||
def iter_ipaddresses(self):
|
||||
local_addresses = self.local_addresses
|
||||
if not local_addresses:
|
||||
return
|
||||
if isinstance(local_addresses, str):
|
||||
local_addresses = [local_addresses]
|
||||
yield from local_addresses
|
||||
def get_context(self, timeout: Optional[float] = None, start_time: Optional[float] = None) -> NetworkContext:
|
||||
"""Return a new NetworkContext"""
|
||||
context_cls = self._settings.retry_strategy.value
|
||||
return context_cls(self._settings.retries, self._get_http_client, start_time, timeout)
|
||||
|
||||
def get_ipaddress_cycle(self):
|
||||
def _get_http_client(self) -> HTTPClient:
|
||||
"""Return an HTTP client.
|
||||
|
||||
Different HTTP clients are returned according to the configuration.
|
||||
|
||||
For example, if two proxies are defined,
|
||||
the first call to this function returns an HTTP client using the first proxy.
|
||||
A second call returns an HTTP client using the second proxy.
|
||||
A third call returns the same HTTP client from the first call, using the first proxy.
|
||||
"""
|
||||
local_addresses = next(self._local_addresses_cycle)
|
||||
proxies = next(self._proxies_cycle) # is a tuple so it can be part of the key
|
||||
key = (local_addresses, proxies)
|
||||
if key not in self._clients or self._clients[key].is_closed:
|
||||
http_client_cls = TorHTTPClient if self._settings.using_tor_proxy else HTTPClient
|
||||
hook_log_response = self._log_response if searx_debug else None
|
||||
log_trace = self._log_trace if searx_debug else None
|
||||
self._clients[key] = http_client_cls(
|
||||
verify=self._settings.verify,
|
||||
enable_http=self._settings.enable_http,
|
||||
enable_http2=self._settings.enable_http2,
|
||||
max_connections=self._settings.max_connections,
|
||||
max_keepalive_connections=self._settings.max_keepalive_connections,
|
||||
keepalive_expiry=self._settings.keepalive_expiry,
|
||||
proxies=dict(proxies),
|
||||
local_addresses=local_addresses,
|
||||
retry_on_http_error=self._settings.retry_on_http_error,
|
||||
hook_log_response=hook_log_response,
|
||||
log_trace=log_trace,
|
||||
logger=self._logger,
|
||||
)
|
||||
return self._clients[key]
|
||||
|
||||
def _get_local_addresses_cycle(self):
|
||||
"""Never-ending generator of IP addresses"""
|
||||
while True:
|
||||
count = 0
|
||||
for address in self.iter_ipaddresses():
|
||||
if '/' in address:
|
||||
for a in ipaddress.ip_network(address, False).hosts():
|
||||
at_least_one = False
|
||||
for address in self._settings.local_addresses:
|
||||
if isinstance(address, (ipaddress.IPv4Network, ipaddress.IPv6Network)):
|
||||
for a in address.hosts():
|
||||
yield str(a)
|
||||
count += 1
|
||||
at_least_one = True
|
||||
else:
|
||||
a = ipaddress.ip_address(address)
|
||||
yield str(a)
|
||||
count += 1
|
||||
if count == 0:
|
||||
yield str(address)
|
||||
at_least_one = True
|
||||
if not at_least_one:
|
||||
# IPv4Network.hosts() and IPv6Network.hosts() might never return an IP address.
|
||||
# at_least_one makes sure the generator does not turn into infinite loop without yield
|
||||
yield None
|
||||
|
||||
def iter_proxies(self):
|
||||
if not self.proxies:
|
||||
return
|
||||
# https://www.python-httpx.org/compatibility/#proxy-keys
|
||||
if isinstance(self.proxies, str):
|
||||
yield 'all://', [self.proxies]
|
||||
else:
|
||||
for pattern, proxy_url in self.proxies.items():
|
||||
pattern = PROXY_PATTERN_MAPPING.get(pattern, pattern)
|
||||
if isinstance(proxy_url, str):
|
||||
proxy_url = [proxy_url]
|
||||
yield pattern, proxy_url
|
||||
def _get_proxy_cycles(self):
|
||||
"""Never-ending generator of proxy configurations.
|
||||
|
||||
def get_proxy_cycles(self):
|
||||
proxy_settings = {}
|
||||
for pattern, proxy_urls in self.iter_proxies():
|
||||
proxy_settings[pattern] = cycle(proxy_urls)
|
||||
Each iteration returns tuples of tuples.
|
||||
Semantically, this is a dictionary where
|
||||
* keys are the mount points (see https://www.python-httpx.org/advanced/#mounting-transports )
|
||||
* values are the proxy URLs.
|
||||
|
||||
This private method returns a tuple instead of a dictionary to be hashable.
|
||||
See the line `key = (local_addresses, proxies)` above.
|
||||
|
||||
For example, if settings.yml contains:
|
||||
```yaml
|
||||
proxies: socks5h://localhost:1337
|
||||
```
|
||||
|
||||
This is equivalent to
|
||||
```yaml
|
||||
proxies:
|
||||
- all://: socks5h://localhost:1337
|
||||
```
|
||||
|
||||
And this method always returns:
|
||||
* `(('all://', 'socks5h://localhost:1337'))`
|
||||
|
||||
Another example:
|
||||
|
||||
```yaml
|
||||
proxies:
|
||||
- all://: socks5h://localhost:1337
|
||||
- https://bing.com:
|
||||
- socks5h://localhost:4000
|
||||
- socks5h://localhost:5000
|
||||
```
|
||||
|
||||
In this example, this method alternately returns these two responses:
|
||||
|
||||
* `(('all://', 'socks5h://localhost:1337'), ('https://bing.com', 'socks5h://localhost:4000'))`
|
||||
* `(('all://', 'socks5h://localhost:1337'), ('https://bing.com', 'socks5h://localhost:5000'))`
|
||||
|
||||
When no proxies are configured, this method returns an empty tuple at each iteration.
|
||||
"""
|
||||
# for each pattern, turn each list of proxy into a cycle
|
||||
proxy_settings = {pattern: cycle(proxy_urls) for pattern, proxy_urls in (self._settings.proxies).items()}
|
||||
while True:
|
||||
# pylint: disable=stop-iteration-return
|
||||
# ^^ is it a pylint bug ?
|
||||
yield tuple((pattern, next(proxy_url_cycle)) for pattern, proxy_url_cycle in proxy_settings.items())
|
||||
|
||||
async def log_response(self, response: httpx.Response):
|
||||
def _log_response(self, response: httpx.Response):
|
||||
"""Logs from httpx are disabled. Log the HTTP response with the logger from the network"""
|
||||
request = response.request
|
||||
status = f"{response.status_code} {response.reason_phrase}"
|
||||
response_line = f"{response.http_version} {status}"
|
||||
|
@ -156,270 +231,274 @@ class Network:
|
|||
content_type = f' ({content_type})' if content_type else ''
|
||||
self._logger.debug(f'HTTP Request: {request.method} {request.url} "{response_line}"{content_type}')
|
||||
|
||||
@staticmethod
|
||||
async def check_tor_proxy(client: httpx.AsyncClient, proxies) -> bool:
|
||||
if proxies in Network._TOR_CHECK_RESULT:
|
||||
return Network._TOR_CHECK_RESULT[proxies]
|
||||
def _log_trace(self, name: str, info: Mapping[str, Any]) -> None:
|
||||
"""Log the actual source / dest IPs and SSL cipher.
|
||||
|
||||
result = True
|
||||
# ignore client._transport because it is not used with all://
|
||||
for transport in client._mounts.values(): # pylint: disable=protected-access
|
||||
if isinstance(transport, AsyncHTTPTransportNoHttp):
|
||||
continue
|
||||
if getattr(transport, "_pool") and getattr(
|
||||
transport._pool, "_rdns", False # pylint: disable=protected-access
|
||||
):
|
||||
continue
|
||||
return False
|
||||
response = await client.get("https://check.torproject.org/api/ip", timeout=60)
|
||||
if not response.json()["IsTor"]:
|
||||
result = False
|
||||
Network._TOR_CHECK_RESULT[proxies] = result
|
||||
return result
|
||||
Note: does not work with socks proxy
|
||||
|
||||
async def get_client(self, verify=None, max_redirects=None):
|
||||
verify = self.verify if verify is None else verify
|
||||
max_redirects = self.max_redirects if max_redirects is None else max_redirects
|
||||
local_address = next(self._local_addresses_cycle)
|
||||
proxies = next(self._proxies_cycle) # is a tuple so it can be part of the key
|
||||
key = (verify, max_redirects, local_address, proxies)
|
||||
hook_log_response = self.log_response if searx_debug else None
|
||||
if key not in self._clients or self._clients[key].is_closed:
|
||||
client = new_client(
|
||||
self.enable_http,
|
||||
verify,
|
||||
self.enable_http2,
|
||||
self.max_connections,
|
||||
self.max_keepalive_connections,
|
||||
self.keepalive_expiry,
|
||||
dict(proxies),
|
||||
local_address,
|
||||
0,
|
||||
max_redirects,
|
||||
hook_log_response,
|
||||
)
|
||||
if self.using_tor_proxy and not await self.check_tor_proxy(client, proxies):
|
||||
await client.aclose()
|
||||
raise httpx.ProxyError('Network configuration problem: not using Tor')
|
||||
self._clients[key] = client
|
||||
return self._clients[key]
|
||||
See
|
||||
* https://www.encode.io/httpcore/extensions/
|
||||
* https://github.com/encode/httpx/blob/e874351f04471029b2c5dcb2d0b50baccc7b9bc0/httpx/_main.py#L207
|
||||
"""
|
||||
if name == "connection.connect_tcp.complete":
|
||||
stream = info["return_value"]
|
||||
server_addr = stream.get_extra_info("server_addr")
|
||||
client_addr = stream.get_extra_info("client_addr")
|
||||
self._logger.debug(f"* Connected from {client_addr[0]!r} to {server_addr[0]!r} on port {server_addr[1]}")
|
||||
elif name == "connection.start_tls.complete": # pragma: no cover
|
||||
stream = info["return_value"]
|
||||
ssl_object = stream.get_extra_info("ssl_object")
|
||||
version = ssl_object.version()
|
||||
cipher = ssl_object.cipher()
|
||||
alpn = ssl_object.selected_alpn_protocol()
|
||||
self._logger.debug(f"* SSL established using {version!r} / {cipher[0]!r}, ALPN protocol: {alpn!r}")
|
||||
elif name == "http2.send_request_headers.started":
|
||||
self._logger.debug(f"* HTTP/2 stream_id: {info['stream_id']}")
|
||||
|
||||
async def aclose(self):
|
||||
async def close_client(client):
|
||||
try:
|
||||
await client.aclose()
|
||||
except httpx.HTTPError:
|
||||
pass
|
||||
|
||||
await asyncio.gather(*[close_client(client) for client in self._clients.values()], return_exceptions=False)
|
||||
|
||||
@staticmethod
|
||||
def extract_kwargs_clients(kwargs):
|
||||
kwargs_clients = {}
|
||||
if 'verify' in kwargs:
|
||||
kwargs_clients['verify'] = kwargs.pop('verify')
|
||||
if 'max_redirects' in kwargs:
|
||||
kwargs_clients['max_redirects'] = kwargs.pop('max_redirects')
|
||||
if 'allow_redirects' in kwargs:
|
||||
# see https://github.com/encode/httpx/pull/1808
|
||||
kwargs['follow_redirects'] = kwargs.pop('allow_redirects')
|
||||
return kwargs_clients
|
||||
|
||||
@staticmethod
|
||||
def extract_do_raise_for_httperror(kwargs):
|
||||
do_raise_for_httperror = True
|
||||
if 'raise_for_httperror' in kwargs:
|
||||
do_raise_for_httperror = kwargs['raise_for_httperror']
|
||||
del kwargs['raise_for_httperror']
|
||||
return do_raise_for_httperror
|
||||
|
||||
@staticmethod
|
||||
def patch_response(response, do_raise_for_httperror):
|
||||
if isinstance(response, httpx.Response):
|
||||
# requests compatibility (response is not streamed)
|
||||
# see also https://www.python-httpx.org/compatibility/#checking-for-4xx5xx-responses
|
||||
response.ok = not response.is_error
|
||||
|
||||
# raise an exception
|
||||
if do_raise_for_httperror:
|
||||
raise_for_httperror(response)
|
||||
|
||||
return response
|
||||
|
||||
def is_valid_response(self, response):
|
||||
# pylint: disable=too-many-boolean-expressions
|
||||
if (
|
||||
(self.retry_on_http_error is True and 400 <= response.status_code <= 599)
|
||||
or (isinstance(self.retry_on_http_error, list) and response.status_code in self.retry_on_http_error)
|
||||
or (isinstance(self.retry_on_http_error, int) and response.status_code == self.retry_on_http_error)
|
||||
):
|
||||
return False
|
||||
return True
|
||||
|
||||
async def call_client(self, stream, method, url, **kwargs):
|
||||
retries = self.retries
|
||||
was_disconnected = False
|
||||
do_raise_for_httperror = Network.extract_do_raise_for_httperror(kwargs)
|
||||
kwargs_clients = Network.extract_kwargs_clients(kwargs)
|
||||
while retries >= 0: # pragma: no cover
|
||||
client = await self.get_client(**kwargs_clients)
|
||||
try:
|
||||
if stream:
|
||||
response = client.stream(method, url, **kwargs)
|
||||
else:
|
||||
response = await client.request(method, url, **kwargs)
|
||||
if self.is_valid_response(response) or retries <= 0:
|
||||
return Network.patch_response(response, do_raise_for_httperror)
|
||||
except httpx.RemoteProtocolError as e:
|
||||
if not was_disconnected:
|
||||
# the server has closed the connection:
|
||||
# try again without decreasing the retries variable & with a new HTTP client
|
||||
was_disconnected = True
|
||||
await client.aclose()
|
||||
self._logger.warning('httpx.RemoteProtocolError: the server has disconnected, retrying')
|
||||
continue
|
||||
if retries <= 0:
|
||||
raise e
|
||||
except (httpx.RequestError, httpx.HTTPStatusError) as e:
|
||||
if retries <= 0:
|
||||
raise e
|
||||
retries -= 1
|
||||
|
||||
async def request(self, method, url, **kwargs):
|
||||
return await self.call_client(False, method, url, **kwargs)
|
||||
|
||||
async def stream(self, method, url, **kwargs):
|
||||
return await self.call_client(True, method, url, **kwargs)
|
||||
|
||||
@classmethod
|
||||
async def aclose_all(cls):
|
||||
await asyncio.gather(*[network.aclose() for network in NETWORKS.values()], return_exceptions=False)
|
||||
def __repr__(self):
|
||||
return f"<{self.__class__.__name__} logger_name={self._settings.logger_name!r}>"
|
||||
|
||||
|
||||
def get_network(name=None):
|
||||
return NETWORKS.get(name or DEFAULT_NAME)
|
||||
class NetwortSettingsDecoder:
|
||||
"""Convert a description of a network in settings.yml to a NetworkSettings instance"""
|
||||
|
||||
|
||||
def check_network_configuration():
|
||||
async def check():
|
||||
exception_count = 0
|
||||
for network in NETWORKS.values():
|
||||
if network.using_tor_proxy:
|
||||
try:
|
||||
await network.get_client()
|
||||
except Exception: # pylint: disable=broad-except
|
||||
network._logger.exception('Error') # pylint: disable=protected-access
|
||||
exception_count += 1
|
||||
return exception_count
|
||||
|
||||
future = asyncio.run_coroutine_threadsafe(check(), get_loop())
|
||||
exception_count = future.result()
|
||||
if exception_count > 0:
|
||||
raise RuntimeError("Invalid network configuration")
|
||||
|
||||
|
||||
def initialize(settings_engines=None, settings_outgoing=None):
|
||||
# pylint: disable=import-outside-toplevel)
|
||||
from searx.engines import engines
|
||||
from searx import settings
|
||||
|
||||
# pylint: enable=import-outside-toplevel)
|
||||
|
||||
settings_engines = settings_engines or settings['engines']
|
||||
settings_outgoing = settings_outgoing or settings['outgoing']
|
||||
|
||||
# default parameters for AsyncHTTPTransport
|
||||
# see https://github.com/encode/httpx/blob/e05a5372eb6172287458b37447c30f650047e1b8/httpx/_transports/default.py#L108-L121 # pylint: disable=line-too-long
|
||||
default_params = {
|
||||
'enable_http': False,
|
||||
'verify': settings_outgoing['verify'],
|
||||
'enable_http2': settings_outgoing['enable_http2'],
|
||||
'max_connections': settings_outgoing['pool_connections'],
|
||||
'max_keepalive_connections': settings_outgoing['pool_maxsize'],
|
||||
'keepalive_expiry': settings_outgoing['keepalive_expiry'],
|
||||
'local_addresses': settings_outgoing['source_ips'],
|
||||
'using_tor_proxy': settings_outgoing['using_tor_proxy'],
|
||||
'proxies': settings_outgoing['proxies'],
|
||||
'max_redirects': settings_outgoing['max_redirects'],
|
||||
'retries': settings_outgoing['retries'],
|
||||
'retry_on_http_error': None,
|
||||
# requests compatibility when reading proxy settings from settings.yml
|
||||
PROXY_PATTERN_MAPPING = {
|
||||
'http': 'http://',
|
||||
'https': 'https://',
|
||||
'socks4': 'socks4://',
|
||||
'socks5': 'socks5://',
|
||||
'socks5h': 'socks5h://',
|
||||
'http:': 'http://',
|
||||
'https:': 'https://',
|
||||
'socks4:': 'socks4://',
|
||||
'socks5:': 'socks5://',
|
||||
'socks5h:': 'socks5h://',
|
||||
}
|
||||
|
||||
def new_network(params, logger_name=None):
|
||||
nonlocal default_params
|
||||
result = {}
|
||||
result.update(default_params)
|
||||
result.update(params)
|
||||
if logger_name:
|
||||
result['logger_name'] = logger_name
|
||||
return Network(**result)
|
||||
@classmethod
|
||||
def from_dict(cls, network_settings: Dict[str, Any]) -> NetworkSettings:
|
||||
# Decode the parameters that require it; the other parameters are left as they are
|
||||
decoders = {
|
||||
"proxies": cls._decode_proxies,
|
||||
"local_addresses": cls._decode_local_addresses,
|
||||
"retry_strategy": cls._decode_retry_strategy,
|
||||
}
|
||||
for key, decode_func in decoders.items():
|
||||
if key not in network_settings:
|
||||
continue
|
||||
if network_settings[key] is None:
|
||||
# None is seen as not set: rely on the default values from NetworkSettings
|
||||
del network_settings[key]
|
||||
else:
|
||||
network_settings[key] = decode_func(network_settings[key])
|
||||
# Relies on the default values of NetworkSettings for unset parameters
|
||||
return NetworkSettings(**network_settings)
|
||||
|
||||
def iter_networks():
|
||||
nonlocal settings_engines
|
||||
@classmethod
|
||||
def _decode_proxies(cls, proxies) -> Dict[str, List[str]]:
|
||||
if isinstance(proxies, str):
|
||||
# for example:
|
||||
# proxies: socks5://localhost:8000
|
||||
proxies = {'all://': [proxies]}
|
||||
elif isinstance(proxies, list):
|
||||
# for example:
|
||||
# proxies:
|
||||
# - socks5h://localhost:8000
|
||||
# - socks5h://localhost:8001
|
||||
proxies = {'all://': proxies}
|
||||
|
||||
if not isinstance(proxies, dict):
|
||||
raise ValueError('proxies type has to be str, list, dict or None')
|
||||
|
||||
# Here we are sure to have
|
||||
# proxies = {
|
||||
# pattern: a_value
|
||||
# }
|
||||
# with a_value that can be either a string or a list.
|
||||
# Now, we make sure that a_value is always a list of strings.
|
||||
# Also, we keep compatibility with requests regarding the patterns:
|
||||
# see https://www.python-httpx.org/compatibility/#proxy-keys
|
||||
result = {}
|
||||
for pattern, proxy_list in proxies.items():
|
||||
pattern = cls.PROXY_PATTERN_MAPPING.get(pattern, pattern)
|
||||
if isinstance(proxy_list, str):
|
||||
proxy_list = [proxy_list]
|
||||
if not isinstance(proxy_list, list):
|
||||
raise ValueError('proxy list')
|
||||
for proxy in proxy_list:
|
||||
if not isinstance(proxy, str):
|
||||
raise ValueError(f'{repr(proxy)} : an URL is expected')
|
||||
result[pattern] = proxy_list
|
||||
return result
|
||||
|
||||
@staticmethod
|
||||
def _decode_local_addresses(ip_addresses: Union[str, List[str]]) -> List[TYPE_IP_ANY]:
|
||||
if isinstance(ip_addresses, str):
|
||||
ip_addresses = [ip_addresses]
|
||||
|
||||
if not isinstance(ip_addresses, list):
|
||||
raise ValueError('IP address must be either None or a string or a list of strings')
|
||||
|
||||
# check IP address syntax
|
||||
result = []
|
||||
for address in ip_addresses:
|
||||
if not isinstance(address, str):
|
||||
raise ValueError(f'An {address!r} must be an IP address written as a string')
|
||||
if '/' in address:
|
||||
result.append(ipaddress.ip_network(address, False))
|
||||
else:
|
||||
result.append(ipaddress.ip_address(address))
|
||||
return result
|
||||
|
||||
@staticmethod
|
||||
def _decode_retry_strategy(retry_strategy: str) -> RetryStrategy:
|
||||
for member in RetryStrategy:
|
||||
if member.name.lower() == retry_strategy.lower():
|
||||
return member
|
||||
raise ValueError(f"{retry_strategy} is not a RetryStrategy")
|
||||
|
||||
|
||||
class NetworkManager:
|
||||
"""Contains all the Network instances.
|
||||
|
||||
By default, there is one default network with the default parameters,
|
||||
so @searx.network.provide_networkcontext() works out of the box.
|
||||
"""
|
||||
|
||||
DEFAULT_NAME = '__DEFAULT__'
|
||||
|
||||
def __init__(self):
|
||||
# Create a default network so scripts in searxng_extra don't have load settings.yml
|
||||
self.networks: Dict[str, Network] = {NetworkManager.DEFAULT_NAME: Network.from_dict()}
|
||||
|
||||
def get(self, name: Optional[str] = None):
|
||||
return self.networks[name or NetworkManager.DEFAULT_NAME]
|
||||
|
||||
def initialize_from_settings(self, settings_engines, settings_outgoing, check=True):
|
||||
# pylint: disable=too-many-branches
|
||||
from searx.engines import engines # pylint: disable=import-outside-toplevel
|
||||
|
||||
# Default parameters for HTTPTransport
|
||||
# see https://github.com/encode/httpx/blob/e05a5372eb6172287458b37447c30f650047e1b8/httpx/_transports/default.py#L108-L121 # pylint: disable=line-too-long
|
||||
default_network_settings = {
|
||||
'verify': settings_outgoing['verify'],
|
||||
'enable_http': settings_outgoing['enable_http'],
|
||||
'enable_http2': settings_outgoing['enable_http2'],
|
||||
'max_connections': settings_outgoing['pool_connections'], # different because of historical reason
|
||||
'max_keepalive_connections': settings_outgoing['pool_maxsize'], # different because of historical reason
|
||||
'keepalive_expiry': settings_outgoing['keepalive_expiry'],
|
||||
'max_redirects': settings_outgoing['max_redirects'],
|
||||
'retries': settings_outgoing['retries'],
|
||||
'proxies': settings_outgoing['proxies'],
|
||||
'local_addresses': settings_outgoing['source_ips'], # different because of historical reason
|
||||
'using_tor_proxy': settings_outgoing['using_tor_proxy'],
|
||||
'retry_on_http_error': None,
|
||||
}
|
||||
|
||||
def new_network(network_settings: Dict[str, Any], logger_name: Optional[str] = None):
|
||||
nonlocal default_network_settings
|
||||
result = {}
|
||||
result.update(default_network_settings)
|
||||
result.update(network_settings)
|
||||
if logger_name:
|
||||
result['logger_name'] = logger_name
|
||||
return Network.from_dict(**result)
|
||||
|
||||
# ipv4 and ipv6 are always defined
|
||||
self.networks = {
|
||||
NetworkManager.DEFAULT_NAME: new_network({}, logger_name='default'),
|
||||
'ipv4': new_network({'local_addresses': '0.0.0.0'}, logger_name='ipv4'),
|
||||
'ipv6': new_network({'local_addresses': '::'}, logger_name='ipv6'),
|
||||
}
|
||||
|
||||
# define networks from outgoing.networks. Example of configuration:
|
||||
#
|
||||
# outgoing:
|
||||
# networks:
|
||||
# my_proxy:
|
||||
# proxies: http://localhost:1337
|
||||
#
|
||||
for network_name, network_dict in settings_outgoing['networks'].items():
|
||||
self.networks[network_name] = new_network(network_dict, logger_name=network_name)
|
||||
|
||||
# Get the engine network settings directly from the engine modules and settings.yml (not as NetworkSettings)
|
||||
engine_network_dict_settings = {}
|
||||
for engine_spec in settings_engines:
|
||||
engine_name = engine_spec['name']
|
||||
engine = engines.get(engine_name)
|
||||
if engine is None:
|
||||
continue
|
||||
engine_network_dict_settings[engine_name] = self._get_engine_network_settings(
|
||||
engine_name, engine, default_network_settings
|
||||
)
|
||||
|
||||
# Define networks from engines.[i].network (except references)
|
||||
for engine_name, network_dict in engine_network_dict_settings.items():
|
||||
if isinstance(network_dict, dict):
|
||||
self.networks[engine_name] = new_network(network_dict, logger_name=engine_name)
|
||||
|
||||
# Define networks from engines.[i].network (only references)
|
||||
for engine_name, network_dict in engine_network_dict_settings.items():
|
||||
if isinstance(network_dict, str):
|
||||
self.networks[engine_name] = self.networks[network_dict]
|
||||
|
||||
# The /image_proxy endpoint has a dedicated network using the same parameters
|
||||
# as the default network, but HTTP/2 is disabled. It decreases the CPU load average,
|
||||
# and the total time is more or less the same.
|
||||
if 'image_proxy' not in self.networks:
|
||||
image_proxy_params = default_network_settings.copy()
|
||||
image_proxy_params['enable_http2'] = False
|
||||
self.networks['image_proxy'] = new_network(image_proxy_params, logger_name='image_proxy')
|
||||
|
||||
# Define a network the autocompletion
|
||||
if 'autocomplete' not in self.networks:
|
||||
self.networks['autocomplete'] = new_network(default_network_settings, logger_name='autocomplete')
|
||||
|
||||
# Check if each network is valid:
|
||||
# * one HTTP client is instantiated
|
||||
# --> Tor connectivity is checked if using_tor_proxy is True
|
||||
if check:
|
||||
exception_count = 0
|
||||
for network in self.networks.values():
|
||||
if not network.check_configuration():
|
||||
exception_count += 1
|
||||
if exception_count > 0:
|
||||
raise RuntimeError("Invalid network configuration")
|
||||
|
||||
@staticmethod
|
||||
def _get_engine_network_settings(engine_name, engine, default_network_settings):
|
||||
if hasattr(engine, 'network'):
|
||||
# The network configuration is defined in settings.yml inside a network key.
|
||||
# For example:
|
||||
#
|
||||
# - name: arxiv
|
||||
# engine: arxiv
|
||||
# shortcut: arx
|
||||
# network:
|
||||
# http2: false
|
||||
# proxies: socks5h://localhost:1337
|
||||
#
|
||||
network = getattr(engine, 'network', None)
|
||||
yield engine_name, engine, network
|
||||
|
||||
if NETWORKS:
|
||||
done()
|
||||
NETWORKS.clear()
|
||||
NETWORKS[DEFAULT_NAME] = new_network({}, logger_name='default')
|
||||
NETWORKS['ipv4'] = new_network({'local_addresses': '0.0.0.0'}, logger_name='ipv4')
|
||||
NETWORKS['ipv6'] = new_network({'local_addresses': '::'}, logger_name='ipv6')
|
||||
|
||||
# define networks from outgoing.networks
|
||||
for network_name, network in settings_outgoing['networks'].items():
|
||||
NETWORKS[network_name] = new_network(network, logger_name=network_name)
|
||||
|
||||
# define networks from engines.[i].network (except references)
|
||||
for engine_name, engine, network in iter_networks():
|
||||
if network is None:
|
||||
network = {}
|
||||
for attribute_name, attribute_value in default_params.items():
|
||||
if hasattr(engine, attribute_name):
|
||||
network[attribute_name] = getattr(engine, attribute_name)
|
||||
else:
|
||||
network[attribute_name] = attribute_value
|
||||
NETWORKS[engine_name] = new_network(network, logger_name=engine_name)
|
||||
elif isinstance(network, dict):
|
||||
NETWORKS[engine_name] = new_network(network, logger_name=engine_name)
|
||||
|
||||
# define networks from engines.[i].network (references)
|
||||
for engine_name, engine, network in iter_networks():
|
||||
if isinstance(network, str):
|
||||
NETWORKS[engine_name] = NETWORKS[network]
|
||||
|
||||
# the /image_proxy endpoint has a dedicated network.
|
||||
# same parameters than the default network, but HTTP/2 is disabled.
|
||||
# It decreases the CPU load average, and the total time is more or less the same
|
||||
if 'image_proxy' not in NETWORKS:
|
||||
image_proxy_params = default_params.copy()
|
||||
image_proxy_params['enable_http2'] = False
|
||||
NETWORKS['image_proxy'] = new_network(image_proxy_params, logger_name='image_proxy')
|
||||
if not isinstance(network, (dict, str)):
|
||||
raise ValueError(f'Engine {engine_name}: network must be a dictionnary or string')
|
||||
return network
|
||||
# The network settings are mixed with the other engine settings.
|
||||
# The code checks if the keys from default_network_settings are defined in the engine module
|
||||
#
|
||||
# For example:
|
||||
#
|
||||
# - name: arxiv
|
||||
# engine: arxiv
|
||||
# shortcut: arx
|
||||
# http2: false
|
||||
# proxies: socks5h://localhost:1337
|
||||
#
|
||||
return {
|
||||
attribute_name: getattr(engine, attribute_name)
|
||||
for attribute_name in default_network_settings.keys()
|
||||
if hasattr(engine, attribute_name)
|
||||
}
|
||||
|
||||
|
||||
@atexit.register
|
||||
def done():
|
||||
"""Close all HTTP client
|
||||
|
||||
Avoid a warning at exit
|
||||
See https://github.com/encode/httpx/pull/2026
|
||||
|
||||
Note: since Network.aclose has to be async, it is not possible to call this method on Network.__del__
|
||||
So Network.aclose is called here using atexit.register
|
||||
"""
|
||||
try:
|
||||
loop = get_loop()
|
||||
if loop:
|
||||
future = asyncio.run_coroutine_threadsafe(Network.aclose_all(), loop)
|
||||
# wait 3 seconds to close the HTTP clients
|
||||
future.result(3)
|
||||
finally:
|
||||
NETWORKS.clear()
|
||||
|
||||
|
||||
NETWORKS[DEFAULT_NAME] = Network()
|
||||
NETWORKS = NetworkManager()
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
|
||||
"""
|
||||
|
||||
from searx import get_setting
|
||||
from searx.exceptions import (
|
||||
SearxEngineAccessDeniedException,
|
||||
SearxEngineCaptchaException,
|
||||
SearxEngineTooManyRequestsException,
|
||||
SearxEngineAccessDeniedException,
|
||||
)
|
||||
from searx import get_setting
|
||||
|
||||
|
||||
def is_cloudflare_challenge(resp):
|
||||
|
|
|
@ -18,7 +18,7 @@ from searx import logger
|
|||
from searx.plugins import plugins
|
||||
from searx.search.models import EngineRef, SearchQuery
|
||||
from searx.engines import load_engines
|
||||
from searx.network import initialize as initialize_network, check_network_configuration
|
||||
from searx.network import NETWORKS
|
||||
from searx.metrics import initialize as initialize_metrics, counter_inc, histogram_observe_time
|
||||
from searx.search.processors import PROCESSORS, initialize as initialize_processors
|
||||
from searx.search.checker import initialize as initialize_checker
|
||||
|
@ -30,9 +30,7 @@ logger = logger.getChild('search')
|
|||
def initialize(settings_engines=None, enable_checker=False, check_network=False, enable_metrics=True):
|
||||
settings_engines = settings_engines or settings['engines']
|
||||
load_engines(settings_engines)
|
||||
initialize_network(settings_engines, settings['outgoing'])
|
||||
if check_network:
|
||||
check_network_configuration()
|
||||
NETWORKS.initialize_from_settings(settings_engines, settings['outgoing'], check=check_network)
|
||||
initialize_metrics([engine['name'] for engine in settings_engines], enable_metrics)
|
||||
initialize_processors(settings_engines)
|
||||
if enable_checker:
|
||||
|
|
|
@ -13,12 +13,14 @@ from urllib.parse import urlparse
|
|||
import re
|
||||
import httpx
|
||||
|
||||
from searx import network, logger
|
||||
from searx import logger
|
||||
from searx.network import NETWORKS
|
||||
from searx.utils import gen_useragent, detect_language
|
||||
from searx.results import ResultContainer
|
||||
from searx.search.models import SearchQuery, EngineRef
|
||||
from searx.search.processors import EngineProcessor
|
||||
from searx.metrics import counter_inc
|
||||
from searx.exceptions import SearxEngineResponseException
|
||||
|
||||
|
||||
logger = logger.getChild('searx.search.checker')
|
||||
|
@ -72,8 +74,8 @@ def _download_and_check_if_image(image_url: str) -> bool:
|
|||
a = time()
|
||||
try:
|
||||
# use "image_proxy" (avoid HTTP/2)
|
||||
network.set_context_network_name('image_proxy')
|
||||
r, stream = network.stream(
|
||||
network_context = NETWORKS.get('image_proxy').get_context()
|
||||
r = network_context.stream(
|
||||
'GET',
|
||||
image_url,
|
||||
timeout=10.0,
|
||||
|
@ -96,7 +98,6 @@ def _download_and_check_if_image(image_url: str) -> bool:
|
|||
else:
|
||||
is_image = False
|
||||
del r
|
||||
del stream
|
||||
return is_image
|
||||
except httpx.TimeoutException:
|
||||
logger.error('Timeout for %s: %i', image_url, int(time() - a))
|
||||
|
@ -104,6 +105,9 @@ def _download_and_check_if_image(image_url: str) -> bool:
|
|||
except httpx.HTTPError:
|
||||
logger.exception('Exception for %s', image_url)
|
||||
return False
|
||||
except SearxEngineResponseException:
|
||||
logger.exception('Exception for %s', image_url)
|
||||
return False
|
||||
return False
|
||||
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ from typing import Dict, Union
|
|||
|
||||
from searx import settings, logger
|
||||
from searx.engines import engines
|
||||
from searx.network import get_time_for_thread, get_network
|
||||
from searx.network import NETWORKS
|
||||
from searx.metrics import histogram_observe, counter_inc, count_exception, count_error
|
||||
from searx.exceptions import SearxEngineAccessDeniedException, SearxEngineResponseException
|
||||
from searx.utils import get_engine_from_settings
|
||||
|
@ -64,7 +64,7 @@ class EngineProcessor(ABC):
|
|||
self.engine = engine
|
||||
self.engine_name = engine_name
|
||||
self.logger = engines[engine_name].logger
|
||||
key = get_network(self.engine_name)
|
||||
key = NETWORKS.get(self.engine_name)
|
||||
key = id(key) if key else self.engine_name
|
||||
self.suspended_status = SUSPENDED_STATUS.setdefault(key, SuspendedStatus())
|
||||
|
||||
|
@ -105,26 +105,25 @@ class EngineProcessor(ABC):
|
|||
suspended_time = exception_or_message.suspended_time
|
||||
self.suspended_status.suspend(suspended_time, error_message) # pylint: disable=no-member
|
||||
|
||||
def _extend_container_basic(self, result_container, start_time, search_results):
|
||||
def _extend_container_basic(self, result_container, start_time, search_results, network_time=None):
|
||||
# update result_container
|
||||
result_container.extend(self.engine_name, search_results)
|
||||
engine_time = default_timer() - start_time
|
||||
page_load_time = get_time_for_thread()
|
||||
result_container.add_timing(self.engine_name, engine_time, page_load_time)
|
||||
result_container.add_timing(self.engine_name, engine_time, network_time)
|
||||
# metrics
|
||||
counter_inc('engine', self.engine_name, 'search', 'count', 'successful')
|
||||
histogram_observe(engine_time, 'engine', self.engine_name, 'time', 'total')
|
||||
if page_load_time is not None:
|
||||
histogram_observe(page_load_time, 'engine', self.engine_name, 'time', 'http')
|
||||
if network_time is not None:
|
||||
histogram_observe(network_time, 'engine', self.engine_name, 'time', 'http')
|
||||
|
||||
def extend_container(self, result_container, start_time, search_results):
|
||||
def extend_container(self, result_container, start_time, search_results, network_time=None):
|
||||
if getattr(threading.current_thread(), '_timeout', False):
|
||||
# the main thread is not waiting anymore
|
||||
self.handle_exception(result_container, 'timeout', None)
|
||||
else:
|
||||
# check if the engine accepted the request
|
||||
if search_results is not None:
|
||||
self._extend_container_basic(result_container, start_time, search_results)
|
||||
self._extend_container_basic(result_container, start_time, search_results, network_time)
|
||||
self.suspended_status.resume()
|
||||
|
||||
def extend_container_if_suspended(self, result_container):
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
from timeit import default_timer
|
||||
import asyncio
|
||||
import ssl
|
||||
from typing import Dict, List
|
||||
|
||||
import httpx
|
||||
|
||||
import searx.network
|
||||
|
@ -40,13 +42,8 @@ class OnlineProcessor(EngineProcessor):
|
|||
engine_type = 'online'
|
||||
|
||||
def initialize(self):
|
||||
# set timeout for all HTTP requests
|
||||
searx.network.set_timeout_for_thread(self.engine.timeout, start_time=default_timer())
|
||||
# reset the HTTP total time
|
||||
searx.network.reset_time_for_thread()
|
||||
# set the network
|
||||
searx.network.set_context_network_name(self.engine_name)
|
||||
super().initialize()
|
||||
with searx.network.networkcontext_manager(self.engine_name, self.engine.timeout) as network_context:
|
||||
network_context.call(super().initialize)
|
||||
|
||||
def get_params(self, search_query, engine_category):
|
||||
"""Returns a set of :ref:`request params <engine request online>` or ``None``
|
||||
|
@ -110,7 +107,8 @@ class OnlineProcessor(EngineProcessor):
|
|||
else:
|
||||
req = searx.network.post
|
||||
|
||||
request_args['data'] = params['data']
|
||||
if params['data']:
|
||||
request_args['data'] = params['data']
|
||||
|
||||
# send the request
|
||||
response = req(params['url'], **request_args)
|
||||
|
@ -131,7 +129,7 @@ class OnlineProcessor(EngineProcessor):
|
|||
|
||||
return response
|
||||
|
||||
def _search_basic(self, query, params):
|
||||
def _search_basic(self, query, params) -> List[Dict]:
|
||||
# update request parameters dependent on
|
||||
# search-engine (contained in engines folder)
|
||||
self.engine.request(query, params)
|
||||
|
@ -151,21 +149,18 @@ class OnlineProcessor(EngineProcessor):
|
|||
return self.engine.response(response)
|
||||
|
||||
def search(self, query, params, result_container, start_time, timeout_limit):
|
||||
# set timeout for all HTTP requests
|
||||
searx.network.set_timeout_for_thread(timeout_limit, start_time=start_time)
|
||||
# reset the HTTP total time
|
||||
searx.network.reset_time_for_thread()
|
||||
# set the network
|
||||
searx.network.set_context_network_name(self.engine_name)
|
||||
|
||||
try:
|
||||
# send requests and parse the results
|
||||
search_results = self._search_basic(query, params)
|
||||
self.extend_container(result_container, start_time, search_results)
|
||||
with searx.network.networkcontext_manager(self.engine_name, timeout_limit, start_time) as network_context:
|
||||
# send requests and parse the results
|
||||
search_results = network_context.call(self._search_basic, query, params)
|
||||
# extend_container in the network context to get the HTTP runtime
|
||||
self.extend_container(
|
||||
result_container, start_time, search_results, network_time=network_context.get_http_runtime()
|
||||
)
|
||||
except ssl.SSLError as e:
|
||||
# requests timeout (connect or read)
|
||||
self.handle_exception(result_container, e, suspend=True)
|
||||
self.logger.error("SSLError {}, verify={}".format(e, searx.network.get_network(self.engine_name).verify))
|
||||
self.logger.error("SSLError {}, verify={}".format(e, searx.network.NETWORKS.get(self.engine_name).verify))
|
||||
except (httpx.TimeoutException, asyncio.TimeoutError) as e:
|
||||
# requests timeout (connect or read)
|
||||
self.handle_exception(result_container, e, suspend=True)
|
||||
|
|
|
@ -12,6 +12,8 @@ __all__ = [
|
|||
'CATEGORY_GROUPS',
|
||||
'STYLE_NAMES',
|
||||
'BRAND_CUSTOM_LINKS',
|
||||
'WEATHER_TERMS',
|
||||
'SOCIAL_MEDIA_TERMS',
|
||||
]
|
||||
|
||||
CONSTANT_NAMES = {
|
||||
|
@ -27,6 +29,8 @@ CATEGORY_NAMES = {
|
|||
'SOCIAL_MEDIA': 'social media',
|
||||
'IMAGES': 'images',
|
||||
'VIDEOS': 'videos',
|
||||
'RADIO': 'radio',
|
||||
'TV': 'tv',
|
||||
'IT': 'it',
|
||||
'NEWS': 'news',
|
||||
'MAP': 'map',
|
||||
|
@ -57,3 +61,37 @@ BRAND_CUSTOM_LINKS = {
|
|||
'UPTIME': 'Uptime',
|
||||
'ABOUT': 'About',
|
||||
}
|
||||
|
||||
WEATHER_TERMS = {
|
||||
'AVERAGE TEMP.': 'Average temp.',
|
||||
'CLOUD COVER': 'Cloud cover',
|
||||
'CONDITION': 'Condition',
|
||||
'CURRENT CONDITION': 'Current condition',
|
||||
'EVENING': 'Evening',
|
||||
'FEELS LIKE': 'Feels like',
|
||||
'HUMIDITY': 'Humidity',
|
||||
'MAX TEMP.': 'Max temp.',
|
||||
'MIN TEMP.': 'Min temp.',
|
||||
'MORNING': 'Morning',
|
||||
'NIGHT': 'Night',
|
||||
'NOON': 'Noon',
|
||||
'PRESSURE': 'Pressure',
|
||||
'SUNRISE': 'Sunrise',
|
||||
'SUNSET': 'Sunset',
|
||||
'TEMPERATURE': 'Temperature',
|
||||
'UV INDEX': 'UV index',
|
||||
'VISIBILITY': 'Visibility',
|
||||
'WIND': 'Wind',
|
||||
}
|
||||
|
||||
SOCIAL_MEDIA_TERMS = {
|
||||
'SUBSCRIBERS': 'subscribers',
|
||||
'POSTS': 'posts',
|
||||
'ACTIVE USERS': 'active users',
|
||||
'COMMENTS': 'comments',
|
||||
'USER': 'user',
|
||||
'COMMUNITY': 'community',
|
||||
'POINTS': 'points',
|
||||
'TITLE': 'title',
|
||||
'AUTHOR': 'author',
|
||||
}
|
||||
|
|
|
@ -438,32 +438,19 @@ engines:
|
|||
shortcut: bt
|
||||
disabled: true
|
||||
|
||||
- name: ccc-tv
|
||||
engine: xpath
|
||||
paging: false
|
||||
search_url: https://media.ccc.de/search/?q={query}
|
||||
url_xpath: //div[@class="caption"]/h3/a/@href
|
||||
title_xpath: //div[@class="caption"]/h3/a/text()
|
||||
content_xpath: //div[@class="caption"]/h4/@title
|
||||
categories: videos
|
||||
disabled: true
|
||||
shortcut: c3tv
|
||||
about:
|
||||
website: https://media.ccc.de/
|
||||
wikidata_id: Q80729951
|
||||
official_api_documentation: https://github.com/voc/voctoweb
|
||||
use_official_api: false
|
||||
require_api_key: false
|
||||
results: HTML
|
||||
# We don't set language: de here because media.ccc.de is not just
|
||||
# for a German audience. It contains many English videos and many
|
||||
# German videos have English subtitles.
|
||||
|
||||
- name: openverse
|
||||
engine: openverse
|
||||
categories: images
|
||||
shortcut: opv
|
||||
|
||||
- name: media.ccc.de
|
||||
engine: ccc_media
|
||||
shortcut: c3tv
|
||||
# We don't set language: de here because media.ccc.de is not just
|
||||
# for a German audience. It contains many English videos and many
|
||||
# German videos have English subtitles.
|
||||
disabled: true
|
||||
|
||||
- name: chefkoch
|
||||
engine: chefkoch
|
||||
shortcut: chef
|
||||
|
@ -1060,6 +1047,16 @@ engines:
|
|||
shortcut: loc
|
||||
categories: images
|
||||
|
||||
- name: libretranslate
|
||||
engine: libretranslate
|
||||
# https://github.com/LibreTranslate/LibreTranslate?tab=readme-ov-file#mirrors
|
||||
base_url:
|
||||
- https://translate.terraprint.co
|
||||
- https://trans.zillyhuhn.com
|
||||
# api_key: abc123
|
||||
shortcut: lt
|
||||
disabled: true
|
||||
|
||||
- name: lingva
|
||||
engine: lingva
|
||||
shortcut: lv
|
||||
|
|
|
@ -210,9 +210,11 @@ SCHEMA = {
|
|||
'outgoing': {
|
||||
'useragent_suffix': SettingsValue(str, ''),
|
||||
'request_timeout': SettingsValue(numbers.Real, 3.0),
|
||||
'enable_http2': SettingsValue(bool, True),
|
||||
'verify': SettingsValue((bool, str), True),
|
||||
'max_request_timeout': SettingsValue((None, numbers.Real), None),
|
||||
# defaut network
|
||||
'verify': SettingsValue((bool, str), True),
|
||||
'enable_http': SettingsValue(bool, False),
|
||||
'enable_http2': SettingsValue(bool, True),
|
||||
'pool_connections': SettingsValue(int, 100),
|
||||
'pool_maxsize': SettingsValue(int, 10),
|
||||
'keepalive_expiry': SettingsValue(numbers.Real, 5.0),
|
||||
|
|
|
@ -218,7 +218,7 @@ module.exports = function (grunt) {
|
|||
name: "addAttributesToSVGElement",
|
||||
params: {
|
||||
attributes: [
|
||||
{ "aria-hidden": "true" }
|
||||
{ "class": "ionicon", "aria-hidden": "true" }
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,25 +1,25 @@
|
|||
{# this file was generated by searx/static/themes/simple/gruntfile.js #}
|
||||
{%- set icons = {
|
||||
'warning':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M256 80c-8.66 0-16.58 7.36-16 16l8 216a8 8 0 008 8h0a8 8 0 008-8l8-216c.58-8.64-7.34-16-16-16z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><circle cx="256" cy="416" r="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'close':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M368 368L144 144M368 144L144 368"/></svg>',
|
||||
'chevron-up-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M112 328l144-144 144 144"/></svg>',
|
||||
'chevron-right':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M184 112l144 144-144 144"/></svg>',
|
||||
'chevron-left':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M328 112L184 256l144 144"/></svg>',
|
||||
'menu-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M262.29 192.31a64 64 0 1057.4 57.4 64.13 64.13 0 00-57.4-57.4zM416.39 256a154.34 154.34 0 01-1.53 20.79l45.21 35.46a10.81 10.81 0 012.45 13.75l-42.77 74a10.81 10.81 0 01-13.14 4.59l-44.9-18.08a16.11 16.11 0 00-15.17 1.75A164.48 164.48 0 01325 400.8a15.94 15.94 0 00-8.82 12.14l-6.73 47.89a11.08 11.08 0 01-10.68 9.17h-85.54a11.11 11.11 0 01-10.69-8.87l-6.72-47.82a16.07 16.07 0 00-9-12.22 155.3 155.3 0 01-21.46-12.57 16 16 0 00-15.11-1.71l-44.89 18.07a10.81 10.81 0 01-13.14-4.58l-42.77-74a10.8 10.8 0 012.45-13.75l38.21-30a16.05 16.05 0 006-14.08c-.36-4.17-.58-8.33-.58-12.5s.21-8.27.58-12.35a16 16 0 00-6.07-13.94l-38.19-30A10.81 10.81 0 0149.48 186l42.77-74a10.81 10.81 0 0113.14-4.59l44.9 18.08a16.11 16.11 0 0015.17-1.75A164.48 164.48 0 01187 111.2a15.94 15.94 0 008.82-12.14l6.73-47.89A11.08 11.08 0 01213.23 42h85.54a11.11 11.11 0 0110.69 8.87l6.72 47.82a16.07 16.07 0 009 12.22 155.3 155.3 0 0121.46 12.57 16 16 0 0015.11 1.71l44.89-18.07a10.81 10.81 0 0113.14 4.58l42.77 74a10.8 10.8 0 01-2.45 13.75l-38.21 30a16.05 16.05 0 00-6.05 14.08c.33 4.14.55 8.3.55 12.47z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'ellipsis-vertical-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><circle cx="256" cy="256" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><circle cx="256" cy="416" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><circle cx="256" cy="96" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/></svg>',
|
||||
'magnet-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M421.83 293.82A144 144 0 00218.18 90.17M353.94 225.94a48 48 0 00-67.88-67.88" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M192 464v-48M90.18 421.82l33.94-33.94M48 320h48"/><path d="M286.06 158.06L172.92 271.19a32 32 0 01-45.25 0L105 248.57a32 32 0 010-45.26L218.18 90.17M421.83 293.82L308.69 407a32 32 0 01-45.26 0l-22.62-22.63a32 32 0 010-45.26l113.13-113.17M139.6 169.98l67.88 67.89M275.36 305.75l67.89 67.88" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'globe-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path d="M256 48c-58.07 0-112.67 93.13-112.67 208S197.93 464 256 464s112.67-93.13 112.67-208S314.07 48 256 48z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path d="M117.33 117.33c38.24 27.15 86.38 43.34 138.67 43.34s100.43-16.19 138.67-43.34M394.67 394.67c-38.24-27.15-86.38-43.34-138.67-43.34s-100.43 16.19-138.67 43.34" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32" d="M256 48v416M464 256H48"/></svg>',
|
||||
'search-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M338.29 338.29L448 448"/></svg>',
|
||||
'image-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><rect x="48" y="80" width="416" height="352" rx="48" ry="48" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><circle cx="336" cy="176" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path d="M304 335.79l-90.66-90.49a32 32 0 00-43.87-1.3L48 352M224 432l123.34-123.34a32 32 0 0143.11-2L464 368" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'play-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M112 111v290c0 17.44 17 28.52 31 20.16l247.9-148.37c12.12-7.25 12.12-26.33 0-33.58L143 90.84c-14-8.36-31 2.72-31 20.16z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/></svg>',
|
||||
'newspaper-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M368 415.86V72a24.07 24.07 0 00-24-24H72a24.07 24.07 0 00-24 24v352a40.12 40.12 0 0040 40h328" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><path d="M416 464h0a48 48 0 01-48-48V128h72a24 24 0 0124 24v264a48 48 0 01-48 48z" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M240 128h64M240 192h64M112 256h192M112 320h192M112 384h192"/><path d="M176 208h-64a16 16 0 01-16-16v-64a16 16 0 0116-16h64a16 16 0 0116 16v64a16 16 0 01-16 16z"/></svg>',
|
||||
'location-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M256 48c-79.5 0-144 61.39-144 137 0 87 96 224.87 131.25 272.49a15.77 15.77 0 0025.5 0C304 409.89 400 272.07 400 185c0-75.61-64.5-137-144-137z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><circle cx="256" cy="192" r="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'musical-notes-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M192 218v-6c0-14.84 10-27 24.24-30.59l174.59-46.68A20 20 0 01416 154v22" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path d="M416 295.94v80c0 13.91-8.93 25.59-22 30l-22 8c-25.9 8.72-52-10.42-52-38h0a33.37 33.37 0 0123-32l51-18.15c13.07-4.4 22-15.94 22-29.85V58a10 10 0 00-12.6-9.61L204 102a16.48 16.48 0 00-12 16v226c0 13.91-8.93 25.6-22 30l-52 18c-13.88 4.68-22 17.22-22 32h0c0 27.58 26.52 46.55 52 38l22-8c13.07-4.4 22-16.08 22-30v-80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'layers-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M434.8 137.65l-149.36-68.1c-16.19-7.4-42.69-7.4-58.88 0L77.3 137.65c-17.6 8-17.6 21.09 0 29.09l148 67.5c16.89 7.7 44.69 7.7 61.58 0l148-67.5c17.52-8 17.52-21.1-.08-29.09zM160 308.52l-82.7 37.11c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.89 7.69 44.69 7.69 61.58 0l148-67.5c17.6-8 17.6-21.1 0-29.1l-79.94-38.47" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path d="M160 204.48l-82.8 37.16c-17.6 8-17.6 21.1 0 29.1l148 67.49c16.89 7.7 44.69 7.7 61.58 0l148-67.49c17.7-8 17.7-21.1.1-29.1L352 204.48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'school-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M32 192L256 64l224 128-224 128L32 192z"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M112 240v128l144 80 144-80V240M480 368V192M256 320v128"/></svg>',
|
||||
'file-tray-full-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M384 80H128c-26 0-43 14-48 40L48 272v112a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48V272l-32-152c-5-27-23-40-48-40z" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M48 272h144M320 272h144M192 272a64 64 0 00128 0M144 144h224M128 208h256"/></svg>',
|
||||
'people-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M402 168c-2.93 40.67-33.1 72-66 72s-63.12-31.32-66-72c-3-42.31 26.37-72 66-72s69 30.46 66 72z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path d="M336 304c-65.17 0-127.84 32.37-143.54 95.41-2.08 8.34 3.15 16.59 11.72 16.59h263.65c8.57 0 13.77-8.25 11.72-16.59C463.85 335.36 401.18 304 336 304z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path d="M200 185.94c-2.34 32.48-26.72 58.06-53 58.06s-50.7-25.57-53-58.06C91.61 152.15 115.34 128 147 128s55.39 24.77 53 57.94z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path d="M206 306c-18.05-8.27-37.93-11.45-59-11.45-52 0-102.1 25.85-114.65 76.2-1.65 6.66 2.53 13.25 9.37 13.25H154" fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32"/></svg>',
|
||||
'heart-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M352.92 80C288 80 256 144 256 144s-32-64-96.92-64c-52.76 0-94.54 44.14-95.08 96.81-1.1 109.33 86.73 187.08 183 252.42a16 16 0 0018 0c96.26-65.34 184.09-143.09 183-252.42-.54-52.67-42.32-96.81-95.08-96.81z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'warning':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path d="M256 80c-8.66 0-16.58 7.36-16 16l8 216a8 8 0 008 8h0a8 8 0 008-8l8-216c.58-8.64-7.34-16-16-16z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><circle cx="256" cy="416" r="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'close':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M368 368L144 144M368 144L144 368"/></svg>',
|
||||
'chevron-up-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M112 328l144-144 144 144"/></svg>',
|
||||
'chevron-right':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M184 112l144 144-144 144"/></svg>',
|
||||
'chevron-left':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M328 112L184 256l144 144"/></svg>',
|
||||
'menu-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path d="M262.29 192.31a64 64 0 1057.4 57.4 64.13 64.13 0 00-57.4-57.4zM416.39 256a154.34 154.34 0 01-1.53 20.79l45.21 35.46a10.81 10.81 0 012.45 13.75l-42.77 74a10.81 10.81 0 01-13.14 4.59l-44.9-18.08a16.11 16.11 0 00-15.17 1.75A164.48 164.48 0 01325 400.8a15.94 15.94 0 00-8.82 12.14l-6.73 47.89a11.08 11.08 0 01-10.68 9.17h-85.54a11.11 11.11 0 01-10.69-8.87l-6.72-47.82a16.07 16.07 0 00-9-12.22 155.3 155.3 0 01-21.46-12.57 16 16 0 00-15.11-1.71l-44.89 18.07a10.81 10.81 0 01-13.14-4.58l-42.77-74a10.8 10.8 0 012.45-13.75l38.21-30a16.05 16.05 0 006-14.08c-.36-4.17-.58-8.33-.58-12.5s.21-8.27.58-12.35a16 16 0 00-6.07-13.94l-38.19-30A10.81 10.81 0 0149.48 186l42.77-74a10.81 10.81 0 0113.14-4.59l44.9 18.08a16.11 16.11 0 0015.17-1.75A164.48 164.48 0 01187 111.2a15.94 15.94 0 008.82-12.14l6.73-47.89A11.08 11.08 0 01213.23 42h85.54a11.11 11.11 0 0110.69 8.87l6.72 47.82a16.07 16.07 0 009 12.22 155.3 155.3 0 0121.46 12.57 16 16 0 0015.11 1.71l44.89-18.07a10.81 10.81 0 0113.14 4.58l42.77 74a10.8 10.8 0 01-2.45 13.75l-38.21 30a16.05 16.05 0 00-6.05 14.08c.33 4.14.55 8.3.55 12.47z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'ellipsis-vertical-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><circle cx="256" cy="256" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><circle cx="256" cy="416" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><circle cx="256" cy="96" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/></svg>',
|
||||
'magnet-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path d="M421.83 293.82A144 144 0 00218.18 90.17M353.94 225.94a48 48 0 00-67.88-67.88" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M192 464v-48M90.18 421.82l33.94-33.94M48 320h48"/><path d="M286.06 158.06L172.92 271.19a32 32 0 01-45.25 0L105 248.57a32 32 0 010-45.26L218.18 90.17M421.83 293.82L308.69 407a32 32 0 01-45.26 0l-22.62-22.63a32 32 0 010-45.26l113.13-113.17M139.6 169.98l67.88 67.89M275.36 305.75l67.89 67.88" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'globe-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path d="M256 48c-58.07 0-112.67 93.13-112.67 208S197.93 464 256 464s112.67-93.13 112.67-208S314.07 48 256 48z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path d="M117.33 117.33c38.24 27.15 86.38 43.34 138.67 43.34s100.43-16.19 138.67-43.34M394.67 394.67c-38.24-27.15-86.38-43.34-138.67-43.34s-100.43 16.19-138.67 43.34" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32" d="M256 48v416M464 256H48"/></svg>',
|
||||
'search-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path d="M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M338.29 338.29L448 448"/></svg>',
|
||||
'image-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><rect x="48" y="80" width="416" height="352" rx="48" ry="48" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><circle cx="336" cy="176" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path d="M304 335.79l-90.66-90.49a32 32 0 00-43.87-1.3L48 352M224 432l123.34-123.34a32 32 0 0143.11-2L464 368" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'play-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path d="M112 111v290c0 17.44 17 28.52 31 20.16l247.9-148.37c12.12-7.25 12.12-26.33 0-33.58L143 90.84c-14-8.36-31 2.72-31 20.16z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/></svg>',
|
||||
'newspaper-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path d="M368 415.86V72a24.07 24.07 0 00-24-24H72a24.07 24.07 0 00-24 24v352a40.12 40.12 0 0040 40h328" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><path d="M416 464h0a48 48 0 01-48-48V128h72a24 24 0 0124 24v264a48 48 0 01-48 48z" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M240 128h64M240 192h64M112 256h192M112 320h192M112 384h192"/><path d="M176 208h-64a16 16 0 01-16-16v-64a16 16 0 0116-16h64a16 16 0 0116 16v64a16 16 0 01-16 16z"/></svg>',
|
||||
'location-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path d="M256 48c-79.5 0-144 61.39-144 137 0 87 96 224.87 131.25 272.49a15.77 15.77 0 0025.5 0C304 409.89 400 272.07 400 185c0-75.61-64.5-137-144-137z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><circle cx="256" cy="192" r="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'musical-notes-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path d="M192 218v-6c0-14.84 10-27 24.24-30.59l174.59-46.68A20 20 0 01416 154v22" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path d="M416 295.94v80c0 13.91-8.93 25.59-22 30l-22 8c-25.9 8.72-52-10.42-52-38h0a33.37 33.37 0 0123-32l51-18.15c13.07-4.4 22-15.94 22-29.85V58a10 10 0 00-12.6-9.61L204 102a16.48 16.48 0 00-12 16v226c0 13.91-8.93 25.6-22 30l-52 18c-13.88 4.68-22 17.22-22 32h0c0 27.58 26.52 46.55 52 38l22-8c13.07-4.4 22-16.08 22-30v-80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'layers-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path d="M434.8 137.65l-149.36-68.1c-16.19-7.4-42.69-7.4-58.88 0L77.3 137.65c-17.6 8-17.6 21.09 0 29.09l148 67.5c16.89 7.7 44.69 7.7 61.58 0l148-67.5c17.52-8 17.52-21.1-.08-29.09zM160 308.52l-82.7 37.11c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.89 7.69 44.69 7.69 61.58 0l148-67.5c17.6-8 17.6-21.1 0-29.1l-79.94-38.47" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path d="M160 204.48l-82.8 37.16c-17.6 8-17.6 21.1 0 29.1l148 67.49c16.89 7.7 44.69 7.7 61.58 0l148-67.49c17.7-8 17.7-21.1.1-29.1L352 204.48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'school-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M32 192L256 64l224 128-224 128L32 192z"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M112 240v128l144 80 144-80V240M480 368V192M256 320v128"/></svg>',
|
||||
'file-tray-full-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path d="M384 80H128c-26 0-43 14-48 40L48 272v112a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48V272l-32-152c-5-27-23-40-48-40z" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M48 272h144M320 272h144M192 272a64 64 0 00128 0M144 144h224M128 208h256"/></svg>',
|
||||
'people-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path d="M402 168c-2.93 40.67-33.1 72-66 72s-63.12-31.32-66-72c-3-42.31 26.37-72 66-72s69 30.46 66 72z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path d="M336 304c-65.17 0-127.84 32.37-143.54 95.41-2.08 8.34 3.15 16.59 11.72 16.59h263.65c8.57 0 13.77-8.25 11.72-16.59C463.85 335.36 401.18 304 336 304z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path d="M200 185.94c-2.34 32.48-26.72 58.06-53 58.06s-50.7-25.57-53-58.06C91.61 152.15 115.34 128 147 128s55.39 24.77 53 57.94z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path d="M206 306c-18.05-8.27-37.93-11.45-59-11.45-52 0-102.1 25.85-114.65 76.2-1.65 6.66 2.53 13.25 9.37 13.25H154" fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32"/></svg>',
|
||||
'heart-outline':'<svg viewBox="0 0 512 512" class="ionicon" aria-hidden="true"><path d="M352.92 80C288 80 256 144 256 144s-32-64-96.92-64c-52.76 0-94.54 44.14-95.08 96.81-1.1 109.33 86.73 187.08 183 252.42a16 16 0 0018 0c96.26-65.34 184.09-143.09 183-252.42-.54-52.67-42.32-96.81-95.08-96.81z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>',
|
||||
'information-circle-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M248 64C146.39 64 64 146.39 64 248s82.39 184 184 184 184-82.39 184-184S349.61 64 248 64z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M220 220h32v116"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M208 340h88"/><path fill="currentColor" stroke="currentColor" stroke-linecap="round" d="M248 130a26 26 0 1026 26 26 26 0 00-26-26z"/></svg>',
|
||||
|
||||
}
|
||||
|
|
Binary file not shown.
|
@ -13,17 +13,17 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-12 17:28+0000\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Afrikaans <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/af/>\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>"
|
||||
"\n"
|
||||
"Language: af\n"
|
||||
"Language-Team: Afrikaans "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/af/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.4.2\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -66,6 +66,16 @@ msgstr "prente"
|
|||
msgid "videos"
|
||||
msgstr "video's"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "draadloos"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -157,116 +167,256 @@ msgid "Uptime"
|
|||
msgstr ""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Aangaande"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "aand"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Oggend"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Nag"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Middag"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Geen item gevind"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Bron"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Fout met die laai van die volgende bladsy"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Ongeldige opstellings, redigeer asb jou voorkeure"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Ongeldige opstellings"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "soekfout"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "tydsverloop"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "ontledingsfout"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "HTTP protokol fout"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "netwerk fout"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL vout: Kon nie sertifikaat verifieer nie"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "onverwagse breek"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP fout"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "HTTP koppelingsfout"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "proksie fout"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "te veel versoeke"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "toegang geweier"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "bediener API fout"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Opgehef"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "{minutes} minute terug"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "{hours} ure, {minutes} minute terug"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Ewekansige getal genereerder"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Genereer verskillende ewekansige waardes"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Statistiese funksies"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Verwerk {functions} van die argumente"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Kry aanwysings"
|
||||
|
||||
|
@ -278,31 +428,28 @@ msgstr "{title} (VEROUDERD)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Hierdie inskrywing was vervang deur"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Kanaal"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "draadloos"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "bitsnelheid"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "stemme"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "klikke"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Taal"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -310,7 +457,7 @@ msgstr ""
|
|||
"{numCitations} aanhalings vanaf die jaar {firstCitationVelocityYear} tot "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -320,7 +467,7 @@ msgstr ""
|
|||
"wat nie ondersteun is nie. TinEye ondersteun slegs prente wat JPEG, PNG, "
|
||||
"GIF, BMP, TIFF of WebP is."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -329,57 +476,41 @@ msgstr ""
|
|||
"basiese vlak van visuele detail om suksesvol ooreenkomste te "
|
||||
"identifiseer."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Die prent kon nie afgelaai word nie."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Oggend"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Middag"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "aand"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Nag"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "boekgradering"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Lêer kwaliteit"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Skakel snare om na verskillende hash digests."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "hash digest"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "vervang Gasheernaam"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Herskryf resultaatgasheername of verwyder resultate op grond van die "
|
||||
"gasheernaam"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "oop toegang DOI oorskryf"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -387,11 +518,11 @@ msgstr ""
|
|||
"Vermy betaalmure deur na ope-toegang weergawes van publikasies te herlei "
|
||||
"wanneer beskikbaar"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Self-inligting"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -399,11 +530,11 @@ msgstr ""
|
|||
"Vertoon jou IP indien die navraag \"ip\" is en jou gebruiker agent indien"
|
||||
" die navraag \"user agent\" bevat."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Tor toets inprop"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -412,7 +543,7 @@ msgstr ""
|
|||
"uitgang nodus is en stel die gebruiker in kennis indien wel, soos "
|
||||
"check.torproject.org maar vanaf SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -420,7 +551,7 @@ msgstr ""
|
|||
"Kon nie die lys van Tor-uitgangsnodes aflaai vanaf: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
|
@ -428,17 +559,17 @@ msgstr ""
|
|||
"Jy maak gebruik van Tor en dit lys as of jy hierdie eksterne IP-adres het"
|
||||
" :{ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr ""
|
||||
"Jy maak gebruik van Tor en dit lys as of jy hierdie eksterne IP-adres het"
|
||||
" :{ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Spoorsnyer URL verwyderaar"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Verwyder spoorsnyersargumente van die teruggestuurde URL"
|
||||
|
||||
|
@ -455,45 +586,45 @@ msgstr "Gaan na %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "soekblad"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Skenk"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Voorkeure"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Aangedryf deur"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "'n oop metasoekenjin wat privaatheid respekteer"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Bronkode"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Uitgawe spoorsnyer"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Enjin statistieke"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Openbare instansies"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Privaatheidsbeleid"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Kontak instansie onderhouer"
|
||||
|
||||
|
@ -1512,3 +1643,4 @@ msgstr "versteek video"
|
|||
#~ "use another query or search in "
|
||||
#~ "more categories."
|
||||
#~ msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -18,21 +18,20 @@
|
|||
# Yahya-Lando <Yahya-Lando@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"PO-Revision-Date: 2024-03-25 23:18+0000\n"
|
||||
"Last-Translator: Yahya-Lando <Yahya-Lando@users.noreply.translate.codeberg."
|
||||
"org>\n"
|
||||
"Language-Team: Arabic <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/ar/>\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-04-21 16:49+0000\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>"
|
||||
"\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"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
|
||||
"X-Generator: Weblate 5.4.2\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -75,6 +74,16 @@ msgstr "صور"
|
|||
msgid "videos"
|
||||
msgstr "ڤيديوهات"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "راديو"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -163,119 +172,259 @@ msgstr "مظلم"
|
|||
#. BRAND_CUSTOM_LINKS['UPTIME']
|
||||
#: searx/searxng.msg
|
||||
msgid "Uptime"
|
||||
msgstr ""
|
||||
msgstr "فترة التشغيل"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "حَول"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "مساء"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "صباحا"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "ليلا"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "ظهيرة"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "تعذر العثور على عناصر"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "المصدر"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "حدث خلل أثناء تحميل الصفحة التالية"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "إنّ الإعدادات خاطئة، يرجى تعديل خياراتك"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "إعدادات غير صالحة"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "خطأ في البحث"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "نفذ الوقت"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "خطأ تحليل"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "خطأ في بروتوكول HTTP"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "خطأ في الشبكة"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "خطأ SSL: فشل التحقق من صحة الشهادة"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "تعطل غير متوقع"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "خطأ HTTP"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "خطأ في اتصال HTTP"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "خطأ في وكيل البروكسي"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "أسئلة التحقق"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "الكثير من الطلبات"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "الدخول مرفوض"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "خطأ في API الخادم"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "معلق"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "قبل دقائق"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "قبل {hours} ساعات، {minutes} دقائق"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "مولّد قيمة عشوائية"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "توليد قِيم عشوائية مختلفة"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "الدالات الإحصائية"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "حوسبة معطيات ال{functions}"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "احصل على الاتجاهات"
|
||||
|
||||
|
@ -287,31 +436,28 @@ msgstr "{title} (قديما)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "هذا الإدخال تم استبداله بـ"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "القناة"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "راديو"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "معدل البت"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "تصويتات"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "نقرات"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "اللغة"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -319,7 +465,7 @@ msgstr ""
|
|||
"{numCitation}استجلاب من العام {firstCitationVelocityYear} إلى "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -328,7 +474,7 @@ msgstr ""
|
|||
"تعذر قراءة عنوان url للصورة. قد يكون هذا بسبب تنسيق ملف غير مدعوم. تدعم "
|
||||
"TinEye فقط الصور بتنسيق JPEG أو PNG أو GIF أو BMP أو TIFF أو WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -336,55 +482,39 @@ msgstr ""
|
|||
"الصورة أبسط من أن تجد مطابقات. يتطلب TinEye مستوى أساسيًا من التفاصيل "
|
||||
"المرئية لتحديد التطابقات بنجاح."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "لا يمكن تنزيل الصورة."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "صباحا"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "ظهيرة"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "مساء"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "ليلا"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "تقييم الكتاب"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "جودة الملف"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "يحول السلسلة إلى ملخص التجزئة."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "ملخص التجزئة"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "استبدال اسم المضيف"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr "أعد كتابة أسماء مضيفي النتائج أو أزل النتائج بناءً على اسم المضيف"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "فتح الوصول معرف الكائن الرقمي إعادة كتابة"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -392,11 +522,11 @@ msgstr ""
|
|||
"تجنب جدران الدفع عن طريق إعادة التوجيه إلى إصدارات الوصول المفتوح من "
|
||||
"المنشورات عند توفرها"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "نشرة المعلومات"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -404,11 +534,11 @@ msgstr ""
|
|||
"يعرض IP إذا كان الاستعلام \"ip\" و وكيل المستخدم الخاص بك إذا كان "
|
||||
"الاستعلام يحتوي على\"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "فحص المكون الإضافي ل Tor"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -416,7 +546,7 @@ msgstr ""
|
|||
"يتحقق هذا المكون الإضافي مما إذا كان عنوان الطلب هو عقدة خروج TOR ، ويبلغ"
|
||||
" المستخدم إذا كان كذلك ، مثل check.torproject.org ولكن من SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -424,21 +554,21 @@ msgstr ""
|
|||
"لم يمكن تنزيل قائمة Tor exit-nodes من عناوين: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr "انت تستعمل Tor ويبدو انه لديك هذا الIP: {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "أنت لا تستعمل Tor حالياً وهذا هو عنوان الـIP الخاص بك: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "مزيل روابط التعقّب"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr ""
|
||||
"إزالة وسيطات التتبع من \"URL\" الذي تم إرجاعه , إزالة وسيطات التتبع من "
|
||||
|
@ -457,45 +587,45 @@ msgstr "إذهب إلى %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "صفحة البحث"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "تبرُّع"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "التفضيلات"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "مدعوم بواسطة"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "الخصوصية ذو الاعتبار, محرك البحث عميق عُموميا"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "شيفرة مصدرية"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "تعقب القضايا"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "إحصائيات المحرك"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "نماذج الخوادم العمومية"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "سياسة الخصوصية"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "اتصال بالمشرف المخدم النموذجي"
|
||||
|
||||
|
@ -1767,3 +1897,4 @@ msgstr "إخفاء الفيديو"
|
|||
#~ "لم نتوصل إلى العثور على أية نتيجة."
|
||||
#~ " الرجاء إعادة صياغة طلب البحث أو "
|
||||
#~ "إبحث مع تحديد أكثر من فئة."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -13,19 +13,19 @@
|
|||
# return42 <return42@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-22 07:09+0000\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Bulgarian <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/bg/>\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>"
|
||||
"\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"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.4.2\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -68,6 +68,16 @@ msgstr "изображения"
|
|||
msgid "videos"
|
||||
msgstr "видео"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "радио"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -159,116 +169,256 @@ msgid "Uptime"
|
|||
msgstr ""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Относно"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Вечер"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Сутрин"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Нощ"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Обяд"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Не е намерен артикул"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Източник"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Грешка при зареждането на следващата страница"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Неправилни настройки, моля проверете предпочитанията си"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Невалидни настройки"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "Грешка при търсенето"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "изчакване"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "грешка при анализа"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "Грешка в протокола HTTP"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "мрежова грешка"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL грешка: проверката на сертификата е неуспешна"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "неочакван срив"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP грешка"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "HTTP грешка във връзката"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "прокси грешка"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "Кепча"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "твърде много искания"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "отказан достъп"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "грешка в API на сървъра"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "преустановен"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "преди {minutes} минута(минути)"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "преди {hours} час(ове), {minutes} минута(минути)"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Генератор на произволни стойности"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Генерирайте различни произволни стойности"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Функции за статистика"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Изчислете {functions} на аргументите"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Вземете упътвания"
|
||||
|
||||
|
@ -280,31 +430,28 @@ msgstr "{title} (ОСТАРЯЛО)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Този запис е заменен от"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Канал"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "радио"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "Скорост"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "Гласове"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "клика"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Език"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -312,7 +459,7 @@ msgstr ""
|
|||
"{numCitations} цитати от годината {firstCitationVelocityYear} до "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -322,7 +469,7 @@ msgstr ""
|
|||
"дължи на неподдържан файлов формат. TinEye поддържа само изображения, "
|
||||
"които са JPEG, PNG, GIF, BMP, TIFF или WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -331,57 +478,41 @@ msgstr ""
|
|||
"основно ниво на визуална детайлност за успешно идентифициране на "
|
||||
"съвпадения."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Снимката не може да бъде смъкната."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Сутрин"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Обяд"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Вечер"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Нощ"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Рейтинг на книги"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Качество на файл"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Преобразува низове в различни хаш-извлечение."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "хеш извлечение"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Замяна на името на хоста"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Пренапишете имената на хостове на резултатите или премахнете резултатите "
|
||||
"въз основа на името на хоста"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Отворен достъп DOI пренаписване"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -389,21 +520,21 @@ msgstr ""
|
|||
"Избягвайте заплатите, като пренасочвате към версии с отворен достъп на "
|
||||
"публикации, когато са налични"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
msgstr "Показва IP-то ви и др. инфо, ако търсенето е \"ip\" или \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Проверка на Tor приставката"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -411,7 +542,7 @@ msgstr ""
|
|||
"Тази добавка проверява дали адресът на заявката е изходен възел на TOR и "
|
||||
"осведомява потребителя ако е - като check.torproject.org, но от SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -419,21 +550,21 @@ msgstr ""
|
|||
"Не можe да се изтегли списъка с mаршрутизатори/рутери на Tor от: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr "В момента използваш Tor и твоят IP адрес е: {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "В момента не използваш Tor и твоят IP адрес е: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Премахвач на URL тракери"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Премахни следящите аргументи от върнатия URL"
|
||||
|
||||
|
@ -450,45 +581,45 @@ msgstr "Отиди на %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "търси страница"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Дарете"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Предпочитания"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "С подкрепата на"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "отворена метатърсачка, уважаваща поверителността на потребителя"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Код на SearXNG"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Търсачка на проблеми"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Статистика на търсачката"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Публични сървъри"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Политика за поверителност"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Контакт за връзка с поддържащия публичния сървър"
|
||||
|
||||
|
@ -1767,3 +1898,4 @@ msgstr "скрий видеото"
|
|||
#~ "не намерихме резултати. Моля пробвайте "
|
||||
#~ "други ключови думи или търсете в "
|
||||
#~ "повече категории."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -15,18 +15,17 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-16 19:53+0000\n"
|
||||
"Last-Translator: MonsoonRain <MonsoonRain@users.noreply.translate.codeberg."
|
||||
"org>\n"
|
||||
"Language-Team: Bengali <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/bn/>\n"
|
||||
"Last-Translator: MonsoonRain "
|
||||
"<MonsoonRain@users.noreply.translate.codeberg.org>\n"
|
||||
"Language: bn\n"
|
||||
"Language-Team: Bengali "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/bn/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 5.4.2\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -69,6 +68,16 @@ msgstr "ছবি"
|
|||
msgid "videos"
|
||||
msgstr "ভিডিও"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "বেতার"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -160,116 +169,256 @@ msgid "Uptime"
|
|||
msgstr "চলনকাল"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "সম্বন্ধে"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "সন্ধ্যা"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "সকাল"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "রাত"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "দুপুর"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "কোন আইটেম পাওয়া যায়নি"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "উৎস"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "পরবর্তী পৃষ্ঠাটি লোড করায় ত্রুটি দেখা যাচ্ছে"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "অকেজো সেটিংস, অনুগ্রহ করে আপনার পছন্দগুলি সম্পাদনা করুন"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "অকেজো সেটিংস"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "সার্চ ত্রুটি"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "সময় শেষ"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "পার্স ত্রুটি"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "HTTP প্রোটোকল ত্রুটি"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "নেটওয়ার্ক ত্রুটি"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL ত্রুটি: সার্টিফিকেট বৈধতা ব্যর্থ হয়েছে৷"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "অপ্রত্যাশিত ক্র্যাশ"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP ত্রুটি"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "HTTP সংযোগ ত্রুটি"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "প্রক্সি ত্রুটি"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "ক্যাপচা"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "অনেক বেশি অনুরোধ"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "প্রবেশ অগ্রাহ্য করা হল"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "সার্ভার API ত্রুটি"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "স্থগিত"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "{minutes} মিনিট আগে"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "{hours} ঘণ্টা, {minutes} মিনিট আগে"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "এলোমেলো মান জেনারেটর"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "বিভিন্ন এলোমেলো মান তৈরি করুন"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "পরিসংখ্যান কার্যাবলী"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "আর্গুমেন্টগুলির {functions} গণনা করুন৷"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "দিকনির্দেশ পান"
|
||||
|
||||
|
@ -281,31 +430,28 @@ msgstr "{title} (অচল)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "এই এনট্রিটি দ্বারা বাতিল করা হয়েছে৷"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "চ্যানেল"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "বেতার"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "বিটরেট"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "ভোট"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "ক্লিক সংখ্যা"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "ভাষা"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -313,7 +459,7 @@ msgstr ""
|
|||
"{numCitations} উদ্ধৃতি সাল {firstCitationVelocityYear} থেকে "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -323,7 +469,7 @@ msgstr ""
|
|||
"পারার জন্যে। TinEye কেবল JPEG, PNG, GIF, BMP, TIFF আর WebP ফরম্যাট কে "
|
||||
"পড়তে পারে।"
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -331,55 +477,39 @@ msgstr ""
|
|||
"এই ছবিটি খুবই সাধারণ হওয়ায় কোন মিল পাওয়া যাচ্ছে না। TinEye এর একটু "
|
||||
"চাক্ষুষ বিস্তর প্রয়োজন সফল ভাবে মিল পাওয়ার জন্যে ।"
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "ছবিটি ডাউনলোড করা যায়নি ।"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "সকাল"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "দুপুর"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "সন্ধ্যা"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "রাত"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "বই পর্যালোচনা"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "নথি মান"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "স্ট্রিংগুলিকে বিভিন্ন হ্যাশ ডাইজেস্টে রূপান্তর করে।"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "হ্যাশ ডাইজেস্ট"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "হোস্টনাম প্রতিস্থাপন"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr "ফলাফল হোস্টনাম পুনরায় লিখুন বা হোস্টনামের উপর ভিত্তি করে ফলাফল মুছে ফেলুন"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "পুনর্লিখিত DOI উন্মুক্ত প্রবেশ"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -387,11 +517,11 @@ msgstr ""
|
|||
"Paywall এড়িয়ে চলতে প্রকাশন গুলির open-access সংস্করণে রিডাইরেক্ট করুন "
|
||||
"উপলব্ধ থাকলে"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "নিজ তথ্য"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -399,11 +529,11 @@ msgstr ""
|
|||
"ক্যোয়ারীটি \"ip\" হলে আপনার আইপি এবং যদি ক্যোয়ারীতে \"ব্যবহারকারী "
|
||||
"এজেন্ট\" থাকে তাহলে আপনার ব্যবহারকারী এজেন্ট প্রদর্শন করে।"
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "টর চেক প্লাগইন"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -412,13 +542,13 @@ msgstr ""
|
|||
"ব্যবহারকারীকে জানিয়ে দেয় যে এটি কিনা, যেমন check.torproject.org কিন্তু "
|
||||
"SearXNG থেকে।"
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
msgstr "টর exit-node থেকে লিস্ট ডাউনলোড করা যায়নি"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
|
@ -426,17 +556,17 @@ msgstr ""
|
|||
"আপনি টর ব্যবহার করছেন এবং মনে হচ্ছে এটি আপনার বাহ্যিক আইপি অ্যাড্রেসঃ "
|
||||
"{ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr ""
|
||||
"আপনি টর ব্যবহার করছেন না এবং মনে হচ্ছে এটি আপনার বাহ্যিক আইপি অ্যাড্রেসঃ "
|
||||
"{ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "ট্র্যাকার URL রিমুভার"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "ফিরে আসা URL থেকে ট্র্যাকার আর্গুমেন্টগুলি সরান৷"
|
||||
|
||||
|
@ -453,45 +583,45 @@ msgstr "%(search_page)s এ যান৷"
|
|||
msgid "search page"
|
||||
msgstr "অনুসন্ধান পৃষ্ঠা"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "দান করুন"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "পছন্দসমূহ"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "দ্বারা চালিত"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "একটি গোপনীয়তা-সম্মানকারী, খোলা মেটাসার্চ ইঞ্জিন"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "সোর্স কোড"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "সমস্যা অনুসরণ"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "ইঞ্জিন পরিসংখ্যান"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "পাবলিক ইন্সট্যান্স"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "গোপনীয়তা নীতি"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "ইন্সট্যান্স রক্ষণাবেক্ষণকারীর সাথে যোগাযোগ করুন"
|
||||
|
||||
|
@ -1065,8 +1195,8 @@ msgid ""
|
|||
"Navigate search results with hotkeys (JavaScript required). Press \"h\" "
|
||||
"key on main or result page to get help."
|
||||
msgstr ""
|
||||
"অনুসন্ধানের ফলাফল হটকি দিয়ে পরিভ্রমণ করো (জাভাস্ক্রিপ্ট প্রয়োজন)। মূল পাতায় "
|
||||
"বা ফলাফল পাতায় \"h\" টিপ দাও সাহায্যের জন্য।"
|
||||
"অনুসন্ধানের ফলাফল হটকি দিয়ে পরিভ্রমণ করো (জাভাস্ক্রিপ্ট প্রয়োজন)। মূল "
|
||||
"পাতায় বা ফলাফল পাতায় \"h\" টিপ দাও সাহায্যের জন্য।"
|
||||
|
||||
#: searx/templates/simple/preferences/image_proxy.html:2
|
||||
msgid "Image proxy"
|
||||
|
@ -1523,3 +1653,4 @@ msgstr "ভিডিও লুকিয়ে ফেলুন"
|
|||
#~ "আমরা কোন ফলাফল খুঁজে পাইনি. অনুগ্রহ "
|
||||
#~ "করে অন্য কোনো প্রশ্ন ব্যবহার করুন "
|
||||
#~ "বা আরও বিভাগে অনুসন্ধান করুন।"
|
||||
|
||||
|
|
Binary file not shown.
|
@ -10,7 +10,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2023-06-02 07:07+0000\n"
|
||||
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
|
||||
"Language: bo\n"
|
||||
|
@ -62,6 +62,16 @@ msgstr "པར་རིས།"
|
|||
msgid "videos"
|
||||
msgstr "བརྙན་ཟློས།"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -153,116 +163,256 @@ msgid "Uptime"
|
|||
msgstr ""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "རྣམ་གྲངས་གང་ཡང་རྙེད་རྒྱུ་མ་བྱུང་།"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "ནུས་མེད་ཀྱི་སྒྲིག་འགོད།ཁྱེད་ཀྱིས་གདམ་ཀ་ལ་བཅོས་སྒྲིག་གཏོང་རོགས།"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "ནུས་མེད་ཀྱི་སྒྲིག་འགོད།"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "འཚོལ་བཤེར་ལ་ནོར་འཁྲུལ་བྱུང་།"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "སྐར་མ་ {minutes} སྔོན་ལ།"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "ཆུ་ཚོད་ {hours} དང་སྐར་མ {minutes} སྔོན་ལ།"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "ངེས་མེད་གྲངས་ཀ་མཁོ་སྤྲོད།"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "ངེས་མེད་གྲངས་ཀ་ཁ་ཤས་ཐོབ་པར་བྱེད།"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "སྡོམ་བརྩིས་ཀྱི་བྱེད་ནུས།"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "{functions} གཞི་གྲངས་གྲངས་རྩིས།"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr ""
|
||||
|
||||
|
@ -274,144 +424,125 @@ msgstr ""
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "འཚོལ་བྱང་འདི་གཞན་གྱིས་ཚབ་བྱེད་འདུག"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
" WebP."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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 ""
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "དྲ་གནས་རྗེས་འདེད་སྤོ་འབུད།"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr ""
|
||||
|
||||
|
@ -428,45 +559,45 @@ msgstr "%(search_page)s ལ་བསྐྱོད།"
|
|||
msgid "search page"
|
||||
msgstr "འཚོལ་བཤེར་དྲ་ངོས།"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "སྒྲིག་བཀོད།"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "བཟོ་སྐུན་པ་ནི"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "སྒུལ་བྱེད་ཀྱི་སྡོམ་རྩིས།"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -19,19 +19,18 @@
|
|||
# sserra <sserra@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-04-06 00:18+0000\n"
|
||||
"Last-Translator: sserra <sserra@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Catalan <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/ca/>\n"
|
||||
"Language: ca\n"
|
||||
"Language-Team: Catalan "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/ca/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.4.3\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -74,6 +73,16 @@ msgstr "imatges"
|
|||
msgid "videos"
|
||||
msgstr "vídeos"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -165,116 +174,256 @@ msgid "Uptime"
|
|||
msgstr "Temps actiu"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Quant a"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Vespre"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Matí"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Nit"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Migdia"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "No s'ha trobat cap element"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Origen"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "S'ha produït un error en carregar la següent pàgina"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "La configuració no és vàlida, editeu-la"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "La configuració no és vàlida"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "error de cerca"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "expirat"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "error de processament"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "error del protocol HTTP"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "error de xarxa"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "error de SSL: la validació del certificat ha fallat"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "error inesperat"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "error de HTTP"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "error de connexió HTTP"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "error del servidor intermediari"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "masses peticions"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "accés denegat"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "error en l'API del servidor"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Suspès"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "fa {minutes} minut(s)"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "fa {hours} hores i {minutes} minut(s)"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Generador de valors aleatoris"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Genera diferents valors aleatoris"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Funcions estadístiques"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Calcula {functions} dels arguments"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Obtén indicacions"
|
||||
|
||||
|
@ -286,31 +435,28 @@ msgstr "{title} (OBSOLET)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Aquesta entrada ha estat substituïda per"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Canal"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "tasa de bits"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "vots"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "clics"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Llengua"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -318,7 +464,7 @@ msgstr ""
|
|||
"{numCitations} cites des de l'any {firstCitationVelocityYear} fins a "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -328,7 +474,7 @@ msgstr ""
|
|||
" de fitxer no compatible. TinEye només admet imatges en format JPEG, PNG,"
|
||||
" GIF, BMP, TIFF o WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -336,55 +482,39 @@ msgstr ""
|
|||
"La imatge és massa senzilla per trobar coincidències. TinEye requereix un"
|
||||
" mínim de complexitat visual per identificar amb èxit les coincidències."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "No s'ha pogut baixar la imatge."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Matí"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Migdia"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Vespre"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Nit"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Valoració de llibre"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Qualitat del fitxer"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Converteix cadenes en diferents empremtes de hash."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "resum del hash"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Substitució del nom de l'amfitrió"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr "Reescriu o suprimeix resultats basant-se en els noms d'amfitrió"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Reescriptura de l'Open Access DOI"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -392,11 +522,11 @@ msgstr ""
|
|||
"Evita els llocs de pagament redirigint a versions d'accés obert de les "
|
||||
"publicacions quan estiguin disponibles"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Informació pròpia"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -404,11 +534,11 @@ msgstr ""
|
|||
"Mostra la vostra IP si la consulta és «ip» i el valor «user agent» del "
|
||||
"navegador si la consulta conté «user agent»."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Plugin de comprovació de Tor"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -417,7 +547,7 @@ msgstr ""
|
|||
"sortida TOR i informa a l'usuari si ho és, com check.torproject.org però "
|
||||
"des de SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -425,21 +555,21 @@ msgstr ""
|
|||
"No s'ha pogut descarregar la llista de nodes de sortida de Tor des de: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr "Estàs usant Tor i sembla que tens aquesta adreça IP: {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "No estàs usant Tor i tens aquesta adreça IP: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Suprimeix l'URL de rastreig"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Suprimeix els arguments de rastreig dels URL retornats"
|
||||
|
||||
|
@ -456,45 +586,45 @@ msgstr "Ves a %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "pàgina de cerca"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Donar"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Preferències"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Funciona amb"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "metacercador obert, que respecta la privacitat"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Codi font"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Gestor d'incidències"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Estadístiques del cercador"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Instàncies públiques"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Política de privacitat"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Contacteu amb el mantenidor de la instància"
|
||||
|
||||
|
@ -1790,3 +1920,4 @@ msgstr "oculta el vídeo"
|
|||
#~ "no hem trobat cap resultat. Feu "
|
||||
#~ "una consulta diferent o cerqueu en "
|
||||
#~ "més categories."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -15,20 +15,19 @@
|
|||
# Fjuro <ifjuro@proton.me>, 2023, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-02-26 16:56+0000\n"
|
||||
"Last-Translator: Fjuro <ifjuro@proton.me>\n"
|
||||
"Language-Team: Czech <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/cs/>\n"
|
||||
"Language: cs\n"
|
||||
"Language-Team: Czech "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/cs/>\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && "
|
||||
"n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n "
|
||||
"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
|
||||
"X-Generator: Weblate 5.4\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -71,6 +70,16 @@ msgstr "obrázky"
|
|||
msgid "videos"
|
||||
msgstr "videa"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "rádio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -162,116 +171,256 @@ msgid "Uptime"
|
|||
msgstr "Spolehlivost"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "O SearXNG"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Večer"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Ráno"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Noc"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Poledne"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Nic nenalezeno"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "zdroj"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Chyba při načítání další stránky"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Neplatné nastavení, upravte své předvolby"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Neplatné nastavení"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "chyba vyhledávání"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "čas vypršel"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "chyba parsování"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "chyba HTTP protokolu"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "síťová chyba"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "chyba SSL: ověření certifikátu selhalo"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "nečekaná chyba"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "chyba HTTP"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "Chyba spojení HTTP"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "chyba proxy"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "příliš mnoho požadavků"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "přístup odepřen"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "chyba API serveru"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Pozastaveno"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "před {minutes} minutami"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "před {hours} hodinami, {minutes} minutami"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Generátor náhodných hodnot"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Generování náhodných hodnot"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Statistické funkce"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Výpočet funkcí {functions} pro daný argument"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Získat pokyny"
|
||||
|
||||
|
@ -283,31 +432,28 @@ msgstr "{title} (ZASTARALÉ)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Tato položka byla nahrazena položkou"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Kanál"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "rádio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "datový tok"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "hlasy"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "kliknutí"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Jazyk"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -315,7 +461,7 @@ msgstr ""
|
|||
"{numCitations} citace z roku {firstCitationVelocityYear} do "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -325,7 +471,7 @@ msgstr ""
|
|||
"souboru. TinEye podporuje pouze obrázky ve formátu JPEG, PNG, GIF, BMP, "
|
||||
"TIFF nebo WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -333,55 +479,39 @@ msgstr ""
|
|||
"Obrázek je příliš jednoduchý na to, aby bylo možné najít shody. TinEye "
|
||||
"vyžaduje základní úroveň vizuálních detailů pro úspěšnou identifikaci."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Obrázek se nepodařilo stáhnout."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Ráno"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Poledne"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Večer"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Noc"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Hodnocení knih"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Množství souborů"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Převádí řetězce na různé hash hodnoty."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "hash hodnota"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Nahrazení adresy serveru"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr "Přepsat adresy serverů nebo odstranit výsledky podle adresy"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Přesměrování na Open Access DOI"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -389,11 +519,11 @@ msgstr ""
|
|||
"Automaticky přesměrovat na volně přístupné verze publikací místo "
|
||||
"placených, pokud je to možné"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Informace o sobě"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -401,11 +531,11 @@ msgstr ""
|
|||
"Umožňuje hledat informace o sobě: \"ip\" zobrazí vaši IP adresu a \"user "
|
||||
"agent\" zobrazí identifikátor prohlížeče."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Plugin kontroly TORu"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -414,7 +544,7 @@ msgstr ""
|
|||
"informuje uživatele, pokud tomu tak je; jako check.torproject.org, ale od"
|
||||
" SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -422,21 +552,21 @@ msgstr ""
|
|||
"Nelze stáhnout seznam výstupních uzlů Tor z: https://check.torproject.org"
|
||||
"/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr "Používáte Tor a vypadá to, že máte tuto externí IP adresu: {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Nepoužíváte Tor a máte tuto externí IP adresu: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Odstraňovač sledovacích URL"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Odstranit sledovací parametry z načtených URL"
|
||||
|
||||
|
@ -453,45 +583,45 @@ msgstr "Přejít na %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "stránka vyhledávání"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Dar"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Nastavení"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Poháněno softwarem"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "otevřený, metavyhledávající engine, respektující soukromí"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Zdrojový kód"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Hlášení chyb"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Statistiky vyhledávače"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Veřejné instance"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Zásady soukromí"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Kontaktujte správce instance"
|
||||
|
||||
|
@ -1775,3 +1905,4 @@ msgstr "skrýt video"
|
|||
#~ "Nenašli jsme žádné výsledky. Použijte "
|
||||
#~ "prosím jiný dotaz nebo hledejte ve "
|
||||
#~ "více kategoriích."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -12,7 +12,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2023-11-23 06:13+0000\n"
|
||||
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
|
||||
"Language: cy\n"
|
||||
|
@ -65,6 +65,16 @@ msgstr "delweddau"
|
|||
msgid "videos"
|
||||
msgstr "fideos"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -156,116 +166,256 @@ msgid "Uptime"
|
|||
msgstr ""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Ynghylch"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Noswaith"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Bore"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Nos"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Canol Dydd"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Ni chanfuwyd eitem"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Ffynhonnell"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Gwall wrth lwytho'r dudalen nesaf"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Gosodiadau annilys, golygu eich dewisiadau"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Gosodiadau annilys"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "gwall chwilio"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "amser allan"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "gwall dosrannu"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "Gwall protocol HTTP"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "gwall rhwydwaith"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "Gwall SSL: dilysu tystysgrif wedi methu"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "damwain annisgwyl"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "gwall http"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "gwall cysylltiad http"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "gwall dirprwy"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "gormod o geisiadau"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "mynediad wedi ei wrthod"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "gwall API gweinydd"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Atal"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "{minutes} munud yn ôl"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "{hours} awr, {minutes} munud yn ôl"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Generadur gwerth ar hap"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Cynhyrchu gwahanol werthoedd ar hap"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Swyddogaethau ystadegau"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Compute {functions} o'r dadleuon"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Cael cyfarwyddiadau"
|
||||
|
||||
|
@ -277,31 +427,28 @@ msgstr "{title} (OBSOLETE)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Mae'r cofnod hwn wedi ei ddisodli gan"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Sianel"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "cyfradd didau"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Iaith"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -309,7 +456,7 @@ msgstr ""
|
|||
"{numCitations} dyfyniadau o'r flwyddyn {firstCitationVelocityYear} i "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -319,7 +466,7 @@ msgstr ""
|
|||
"ffeil heb gymorth. Mae TinEye yn cefnogi delweddau yn unig sy'n JPEG, "
|
||||
"PNG, GIF, BMP, TIFF neu WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -327,101 +474,85 @@ msgstr ""
|
|||
"Mae'r ddelwedd yn rhy syml i ddod o hyd i gemau. Mae TinEye angen lefel "
|
||||
"sylfaenol o fanylion gweledol i adnabod gemau yn llwyddiannus."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Doedd dim modd lawrlwytho'r ddelwedd."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Bore"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Canol Dydd"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Noswaith"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Nos"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Gradd llyfr"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Trosi llinynnau i wahanol dreuliadau hash."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "Digon o hash"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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 ""
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr ""
|
||||
|
||||
|
@ -438,45 +569,45 @@ msgstr "Mynd i %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "tudalen chwilio"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Rhoddi"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Dewisiadau"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Pwerwyd gan"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Cod ffynhonnell"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -10,19 +10,19 @@
|
|||
# return42 <return42@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-04-04 14:18+0000\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Danish <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/da/>\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>"
|
||||
"\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 5.4.3\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -65,6 +65,16 @@ msgstr "billeder"
|
|||
msgid "videos"
|
||||
msgstr "videoer"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -156,116 +166,256 @@ msgid "Uptime"
|
|||
msgstr "Oppetid"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Om"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Aften"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Morgen"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Nat"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Middag"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Intet fundet"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Kilde"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Fejl ved indlæsning af den næste side"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Ugyldige indstillinger, redigér venligst dine valg"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Ugyldig indstilling"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "søgefejl"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "udløbstid"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "fortolkningsfejl"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "HTTP-protokolfejl"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "netværksfejl"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL-fejl: certifikatvalidering mislykkedes"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "uventet nedbrud"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP-fejl"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "HTTP-tilkoblingsfejl"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "proxyfejl"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "for mange forespørgsler"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "adgang nægtet"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "server-API-fejl"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Suspenderet"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "for {minutes} minut(ter) siden"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "for {hours} time(r) og {minutes} minut(ter) siden"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Generator af tilfældig værdi"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Generér forskellige tilfældige værdier"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Statistiske funktioner"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Beregn {functions} af parametrene"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Få rutevejledning"
|
||||
|
||||
|
@ -277,31 +427,28 @@ msgstr "{title} (FORÆLDET)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Denne værdi er blevet overskrevet af"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Kanal"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "Bitrate"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "Stemmer"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "Klik"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Sprog"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -309,7 +456,7 @@ msgstr ""
|
|||
"{numCitations} citater fra år {firstCitationVelocityYear} til "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -319,7 +466,7 @@ msgstr ""
|
|||
"understøttet filformat. TinEye understøtter kun billeder, der er i JPEG, "
|
||||
"PNG, GIF, BMP, TIFF eller WebP format."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -328,57 +475,41 @@ msgstr ""
|
|||
"grundlæggende niveau af visuelle detaljer for at kunne identificere "
|
||||
"matchene billeder."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Dette billede kunne ikke downloades."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Morgen"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Middag"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Aften"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Nat"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Bogbedømmelse"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Filkvalitet"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Konverterer strenge til forskellige hash-digests."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "hash-digest"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Værtsnavn erstat"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Omskriv resultatets værtsnavne eller fjerne resultater baseret på "
|
||||
"værtsnavnet"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Open Access DOI-omskrivning"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -386,11 +517,11 @@ msgstr ""
|
|||
"Undgå betalingsmure ved at viderestille til en åbent tilgængelig version,"
|
||||
" hvis en sådan findes"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Selv information"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -398,11 +529,11 @@ msgstr ""
|
|||
"Viser din IP adresse hvis søgningen er \"ip\" og din user-agent i "
|
||||
"søgningen indeholder \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Tor undersøg plugin"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -411,7 +542,7 @@ msgstr ""
|
|||
"informerer brugeren, hvis den er, som check.torproject.org, men fra "
|
||||
"SearXNG i stedet."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -419,21 +550,21 @@ msgstr ""
|
|||
"Kunne ikke downloade liste af Tor exit-nodes fra: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr "Du bruger Tor og du har denne eksterne IP adresse: {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Du bruger ikke Tor og du har denne eksterne IP adresse: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Fjernelse af tracker URL"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Fjern trackeres parametre fra den returnerede URL"
|
||||
|
||||
|
@ -450,45 +581,45 @@ msgstr "Gå til 1%(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "søgeside"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Donere"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Indstillinger"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Leveret af"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "en åben metasøgemaskine, der respekterer privatlivet"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Kildekode"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Problemsporer"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Søgemaskine-statistik"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Offentlige instanser"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Privatlivspolitik"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Kontakt tilbyderen af instansen"
|
||||
|
||||
|
@ -1775,3 +1906,4 @@ msgstr "skjul video"
|
|||
#~ "Vi fandt ingen resultater. Benyt "
|
||||
#~ "venligst en anden søge-streng eller "
|
||||
#~ "søg i flere kategorier."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -22,19 +22,18 @@
|
|||
# return42 <markus.heiser@darmarit.de>, 2023, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-02-26 16:56+0000\n"
|
||||
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
|
||||
"Language-Team: German <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/de/>\n"
|
||||
"Language: de\n"
|
||||
"Language-Team: German "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/de/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.4\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -77,6 +76,16 @@ msgstr "Bilder"
|
|||
msgid "videos"
|
||||
msgstr "Videos"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -168,116 +177,256 @@ msgid "Uptime"
|
|||
msgstr "Laufzeit"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Über"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Abends"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Morgens"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Nachts"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Mittags"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Keine Einträge gefunden"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Quelle"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Fehler beim Laden der nächsten Seite"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Ungültige Einstellungen, bitte Einstellungen ändern"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Ungültige Einstellungen"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "Suchfehler"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "Timeout"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "Fehler beim Parsen"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "HTTP-Protokollfehler"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "Netzwerkfehler"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL Fehler: Zertifikatsprüfung ist fehlgeschlagen"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "unerwarteter Absturz"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP-Fehler"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "HTTP-Verbindungsfehler"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "Proxy-Fehler"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "zu viele Anfragen"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "Zugriff verweigert"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "Server-API-Fehler"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Ausgesetzt"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "vor {minutes} Minute(n)"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "vor {hours} Stunde(n), {minutes} Minute(n)"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Zufallswertgenerator"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Erzeugt diverse Zufallswerte"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Statistikfunktionen"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "{functions} der Argumente berechnen"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Richtung holen"
|
||||
|
||||
|
@ -289,31 +438,28 @@ msgstr "{title} (OBSOLET)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Dieser Eintrag wurde überschrieben von"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Kanal"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "Radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "Bitrate"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "Stimmen"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "Clicks"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Sprache"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -321,7 +467,7 @@ msgstr ""
|
|||
"{numCitations} Zitierungen in den Jahren {firstCitationVelocityYear} bis "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -331,7 +477,7 @@ msgstr ""
|
|||
" unterstütztes Dateiformat zurückzuführen sein. TinEye unterstützt nur "
|
||||
"Bilder im Format JPEG, PNG, GIF, BMP, TIFF oder WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -340,57 +486,41 @@ msgstr ""
|
|||
"ein grundlegendes Maß an visuellen Details, um erfolgreich "
|
||||
"Übereinstimmungen zu erkennen."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Das Bild konnte nicht heruntergeladen werden."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Morgens"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Mittags"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Abends"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Nachts"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Buchbewertung"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Dateiqualität"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Konvertiert Zeichenketten in verschiedene Hashwerte."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "Hashwert"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Hostnamen ändern"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Umschreiben des Hostnamen oder sperren von Hostnamen in den Such-"
|
||||
"Ergebnissen"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Open-Access-DOI umschreiben"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -398,11 +528,11 @@ msgstr ""
|
|||
"Bezahlbeschränkungen durch die Weiterleitung zu der verfügbaren Open-"
|
||||
"Access-Version vermeiden"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Selbstauskunft"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -410,11 +540,11 @@ msgstr ""
|
|||
"Zeigt deine IP-Adresse an, wenn die Suchabfrage \"ip\" lautet, und deinen"
|
||||
" User-Agent, wenn deine Suchabfrage \"user agent\" beinhaltet."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Tor Prüf-Plugin"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -423,7 +553,7 @@ msgstr ""
|
|||
"und informiert den Benutzer, wenn dies der Fall ist; wie "
|
||||
"check.torproject.org, aber von SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -431,7 +561,7 @@ msgstr ""
|
|||
"Die Liste der Tor-Exit-Nodes konnte nicht heruntergeladen werden von: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
|
@ -439,17 +569,17 @@ msgstr ""
|
|||
"Du benutzt Tor und es sieht so aus, als hättest du diese externe IP-"
|
||||
"Adresse: {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr ""
|
||||
"Du benutzt Tor und es sieht so aus, als hättest du diese externe IP-"
|
||||
"Adresse: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Tracker-URL-Entferner"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Tracker-Argumente von den zurückgegebenen URLs entfernen"
|
||||
|
||||
|
@ -466,45 +596,45 @@ msgstr "Gehe zu %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "Suchseite"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Spenden"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Betrieben mit"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "Eine privatsphären-respektierende, offene Metasuchmaschine"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Quellcode"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Bugtracker"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Suchmaschinenstatistiken"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Öffentliche Instanzen"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Datenschutzerklärung"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Kontakt zum Betreuer der Instanz"
|
||||
|
||||
|
@ -1809,3 +1939,4 @@ msgstr "Video verstecken"
|
|||
#~ "werden. Bitte nutze einen anderen "
|
||||
#~ "Suchbegriff, oder suche das gewünschte "
|
||||
#~ "in einer anderen Kategorie."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2022-11-04 07:18+0000\n"
|
||||
"Last-Translator: Landhoo School Students "
|
||||
"<landhooschoolstudents@gmail.com>\n"
|
||||
|
@ -60,6 +60,16 @@ msgstr "ފޮޓޯ"
|
|||
msgid "videos"
|
||||
msgstr "ވީޑިޔޯތައް"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -151,116 +161,256 @@ msgid "Uptime"
|
|||
msgstr ""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr ""
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr ""
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr ""
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr ""
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr ""
|
||||
|
||||
|
@ -272,144 +422,125 @@ msgstr ""
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
" WebP."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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 ""
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr ""
|
||||
|
||||
|
@ -426,45 +557,45 @@ msgstr ""
|
|||
msgid "search page"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -14,19 +14,19 @@
|
|||
# return42 <return42@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-12 17:28+0000\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Greek <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/el/>\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>"
|
||||
"\n"
|
||||
"Language: el_GR\n"
|
||||
"Language-Team: Greek "
|
||||
"<https://translate.codeberg.org/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 5.4.2\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -69,6 +69,16 @@ msgstr "εικόνες"
|
|||
msgid "videos"
|
||||
msgstr "Βίντεο"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "ράδιο"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -160,116 +170,256 @@ msgid "Uptime"
|
|||
msgstr ""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Σχετικά με το SearXNG"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Βράδι"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Πρωί"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Βράδι"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Μεσημέρι"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Δεν βρέθηκαν αντικείμενα"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Πηγή"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Σφάλμα φόρτωσης της επόμενης σελίδας"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Μη έγκυρες ρυθμίσεις, παρακαλούμε ελέγξτε τις προτιμήσεις σας"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Μη έγκυρες ρυθμίσεις"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "σφάλμα αναζήτησης"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "Λήξη χρόνου"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "σφάλμα ανάλυσης"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "Σφάλμα πρωτοκόλλου HTTP"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "Σφάλμα δικτύου"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "Σφάλμα SSL: η επικύρωση του πιστοποιητικού απέτυχε"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "Απροσδόκητο σφάλμα"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "Σφάλμα HTTP"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "Σφάλμα σύνδεσης HTTP"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "Σφάλμα διακομιστή μεσολάβησης"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "υπέρβαση ορίου αιτημάτων"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "Άρνηση πρόσβασης"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "Σφάλμα API διακομιστή"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Σε αναστολή"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "{minutes} λεπτά πριν"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "{hours} ώρα(-ες), {minutes} λεπτό(-ά) πριν"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Γεννήτρια τυχαίων τιμών"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Δημιουργία διαφορετικών τυχαίων τιμών"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Λειτουργίες στατιστικής"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Υπολογισμός {functions} των παραμέτρων"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Πάρτε οδηγίες"
|
||||
|
||||
|
@ -281,31 +431,28 @@ msgstr "{title} (ΠΑΡΩΧΗΜΕΝΟΣ)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Αυτή η καταχώριση έχει αντικατασταθεί από"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Κανάλι"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "ράδιο"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "ρυθμός μετάδοσης"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "ψήφους"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "κλικ"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Γλώσσα"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -313,7 +460,7 @@ msgstr ""
|
|||
"{numCitations} αναφορές απο τα έτη {firstCitationVelocityYear} εώς "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -323,7 +470,7 @@ msgstr ""
|
|||
" μη υποστηριζόμενη μορφή αρχείου. Το TinEye υποστηρίζει μόνο εικόνες που "
|
||||
"είναι JPEG, PNG, GIF, BMP, TIFF ή WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -332,57 +479,41 @@ msgstr ""
|
|||
"ένα στοιχειώδης επίπεδο λεπτομέρειας για τον επιτυχή εντοπισμό "
|
||||
"αντιστοιχιών."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Αποτυχία μεταφόρτωσης εικόνας."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Πρωί"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Μεσημέρι"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Βράδι"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Βράδι"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Βαθμολογία βιβλίου"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Ποιότητα αρχείου"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Μετατρέπει κείμενο σε διαφορετικές συναρτήσεις κατατεμαχισμού."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "συνάρτηση κατατεμαχισμού"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Αντικατάσταση hostname"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Αντικατάσταση hostname των αποτελεσμάτων ή αφαίρεση των αποτελεσμάτων με "
|
||||
"βάση το hostname"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Αντικατάσταση με DOI ανοιχτής πρόσβασης"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -390,11 +521,11 @@ msgstr ""
|
|||
"Αποφυγή τοίχων πληρωμής με ανακατεύθυνση σε ανοικτές εκδόσεις των "
|
||||
"δημοσιεύσεων όταν είναι διαθέσιμες"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Αυτοπληροφορίες"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -402,11 +533,11 @@ msgstr ""
|
|||
"Προβολή της IP διεύθυνσης αν η αναζήτηση είναι \"ip\" και το user agent "
|
||||
"αν η αναζήτηση περιέχει \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Πρόσθετο ελέγχου Tor"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -415,7 +546,7 @@ msgstr ""
|
|||
"εξόδου του δικτύου Tor και ενημερώνει τον χρήστη εάν είναι έτσι. Όπως στο"
|
||||
" check.torproject.org, αλλά από το SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -423,7 +554,7 @@ msgstr ""
|
|||
"Δεν ήταν δυνατή η λήψη της λίστας διευθύνσεων εξόδου του δικτύου Tor από "
|
||||
"το: https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
|
@ -431,17 +562,17 @@ msgstr ""
|
|||
"Χρησιμοποιείτε το δίκτυο Tor και φαίνεται πως η εξωτερική σας διεύθυνση "
|
||||
"είναι η: {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
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
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Αφαίρεση ιχνηλατών από συνδέσμους"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Αφαίρεση ιχνηλατών από τους επιστρεφόμενους συνδέσμους"
|
||||
|
||||
|
@ -458,45 +589,45 @@ msgstr "Μετάβαση στο %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "σελίδα αναζήτησης"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Κάνε δωρεά"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Προτιμήσεις"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Με την υποστήριξη του"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "μια ανοικτή μηχανή μετα-αναζήτησης που σέβεται την ιδιωτικότητα"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Πηγαίος κώδικας"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Παρακολούθηση ζητημάτων"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Στατιστικά μηχανής"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Δημόσιες εκφάνσεις"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Πολιτική απορρήτου"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Επικοινωνήστε με τον συντηρητή αυτής της σελίδας"
|
||||
|
||||
|
@ -1783,3 +1914,4 @@ msgstr "απόκρυψη βίντεο"
|
|||
#~ "δε βρέθηκαν αποτελέσματα. Παρακαλούμε "
|
||||
#~ "χρησιμοποιήστε άλλη αναζήτηση ή ψάξτε σε"
|
||||
#~ " περισσότερες κατηγορίες."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2014-01-30 15:22+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: en\n"
|
||||
|
@ -58,6 +58,16 @@ msgstr ""
|
|||
msgid "videos"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -149,116 +159,256 @@ msgid "Uptime"
|
|||
msgstr ""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr ""
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr ""
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr ""
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr ""
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr ""
|
||||
|
||||
|
@ -270,144 +420,125 @@ msgstr ""
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
" WebP."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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 ""
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr ""
|
||||
|
||||
|
@ -424,45 +555,45 @@ msgstr ""
|
|||
msgid "search page"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -15,19 +15,19 @@
|
|||
# return42 <return42@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-22 07:09+0000\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Esperanto <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/eo/>\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>"
|
||||
"\n"
|
||||
"Language: eo\n"
|
||||
"Language-Team: Esperanto "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/eo/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.4.2\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -70,6 +70,16 @@ msgstr "bildoj"
|
|||
msgid "videos"
|
||||
msgstr "videoj"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -161,116 +171,256 @@ msgid "Uptime"
|
|||
msgstr ""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Pri"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Vespero"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Mateno"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Nokto"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Tagmezo"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Nenio trovita"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Fonto"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Eraro dum la ŝarĝado de la sekvan paĝon"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Nevalidaj agordoj, bonvolu redaktu viajn agordojn"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Nevalidaj agordoj"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "serĉa eraro"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "eltempiĝo"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "analiza eraro"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "HTTP-protokolo-eraro"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "reta eraro"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL-eraro: atestila validigo malsukcesis"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "neatendita kraŝo"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP-eraro"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "HTTP-konekto-eraro"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "prokurilo-eraro"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "tro da petoj"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "aliro rifuzita"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "servilo-API-eraro"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Suspendigita"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "antaŭ {minutes} minuto(j)"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "antaŭ {hours} horo(j), {minutes} minuto(j)"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Hazardvalora generilo"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Generi diversajn hazardajn valorojn"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Statistikaj funkcioj"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Kalkuli {functions} de la argumentoj"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Akiri direktojn"
|
||||
|
||||
|
@ -282,31 +432,28 @@ msgstr "{title} (MALAKTUALA)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Tiu ĉi enigo estis anstataŭigita per"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Kanalo"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "bito-rapido"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "voĉoj"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "klakoj"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Lingvo"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -314,7 +461,7 @@ msgstr ""
|
|||
"{numCitations} citaĵoj de la {firstCitationVelocityYear}-a jaro ĝis la "
|
||||
"{lastCitationVelocityYear}-a jaro"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -324,7 +471,7 @@ msgstr ""
|
|||
"dosierformo. TineEye nur subtenas bildojn, kiuj estas JPEG, PNG, GIF, "
|
||||
"BMP, TIFF aŭ WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -332,57 +479,41 @@ msgstr ""
|
|||
"La bildo estas tro simpla por trovi kongruojn. TinEye bezonas bazan "
|
||||
"levelon de detalo por sukcese identigi kongruojn."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "La bildo ne eblis elŝuti."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Mateno"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Tagmezo"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Vespero"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Nokto"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Taksado de libro"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Dosiera kvalito"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Konvertas ĉenojn al malsamaj hash-digestoj."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "haketa mesaĝaro"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Gastnomo anstataŭigas"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Reskribi rezultajn gastigajn nomojn aŭ forigi rezultojn bazitajn sur la "
|
||||
"gastiga nomo"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Malfermalira COI-ŝanĝo"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -390,11 +521,11 @@ msgstr ""
|
|||
"Eviti pagomurojn per direkto al malfermaliraj versioj de eldonaĵoj, se "
|
||||
"eblas"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Meminformoj"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -402,11 +533,11 @@ msgstr ""
|
|||
"Montras vian IP-adreson se la serĉofrazo estas \"ip\" kaj vian klientan "
|
||||
"aplikaĵon se la serĉofrazo enhavas \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Tor-kontrolo kromprogramo"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -415,7 +546,7 @@ msgstr ""
|
|||
" informas la uzanton ĉu ĝi estas; kiel check.torproject.org, sed de "
|
||||
"SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -423,7 +554,7 @@ msgstr ""
|
|||
"Ne eblis elŝuti liston de Tor elirnodoj de: https://check.torproject.org"
|
||||
"/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
|
@ -431,15 +562,15 @@ msgstr ""
|
|||
"Vi uzas Tor kaj ŝajnas, ke vi havas ĉi tiun eksteran IP-adreson: "
|
||||
"{ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Vi ne uzas Tor kaj vi havas ĉi tiun eksteran IP-adreson: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Forigilo de URL-spuriloj"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Forviŝi spurajn argumentojn el la ricevita URL"
|
||||
|
||||
|
@ -456,45 +587,45 @@ msgstr "Iri al %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "Serĉopaĝo"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Donacu"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Agordoj"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Funkciigita per"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "privateco-respektanta, libera metaserĉilo"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Fontaĵo"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Spurilo de problemoj"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Statistikoj pri la motoro"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Publikaj instancoj"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Regularo pri privateco"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Kontaktu instancon prizorganto"
|
||||
|
||||
|
@ -1757,3 +1888,4 @@ msgstr "kaŝi videojn"
|
|||
#~ "ni ne trovis rezultojn. Bonvole uzu "
|
||||
#~ "alian serĉfrazon aŭ serĉu en pliaj "
|
||||
#~ "kategorioj."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -31,19 +31,18 @@
|
|||
# sserra <sserra@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-04-06 00:18+0000\n"
|
||||
"Last-Translator: sserra <sserra@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Spanish <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/es/>\n"
|
||||
"Language: es\n"
|
||||
"Language-Team: Spanish "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/es/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.4.3\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -86,6 +85,16 @@ msgstr "imágenes"
|
|||
msgid "videos"
|
||||
msgstr "vídeos"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -177,116 +186,256 @@ msgid "Uptime"
|
|||
msgstr "Tiempo de actividad"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Acerca de"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Tarde"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Mañana"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Noche"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Mediodía"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Ningún artículo encontrado"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Fuente"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Error al cargar la siguiente página"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Ajustes inválidos, por favor, cambia tus preferencias"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Ajustes inválidos"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "error en la búsqueda"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "expirado"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "error de análisis"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "Error de protocolo HTTP"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "error de red"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "Error SSL: la validación del certificado ha fallado"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "cierre inesperado"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "Error de HTTP"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "Error de conexión HTTP"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "error de proxy"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "demasiadas peticiones"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "acceso denegado"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "error en la API del servidor"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Suspendido"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "hace {minutes} minuto(s)"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "hace {hours} hora(s) y {minutes} minuto(s)"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Generador de valores aleatorios"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Generar varios valores aleatorios"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Funciones de estadística"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Calcular las funciones {functions} de parámetros dados"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Obtener indicaciones"
|
||||
|
||||
|
@ -298,31 +447,28 @@ msgstr "{title} (OBSOLETO)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Esta entrada ha sido sustituida por"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Canal"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "Tasa de bits"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "votos"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "clics"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Idioma"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -330,7 +476,7 @@ msgstr ""
|
|||
"{numCitations} citas desde el año {firstCitationVelocityYear} hasta "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -340,7 +486,7 @@ msgstr ""
|
|||
"archivo no compatible. TinEye solo admite imágenes que son JPEG, PNG, "
|
||||
"GIF, BMP, TIFF o WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -349,57 +495,41 @@ msgstr ""
|
|||
"requiere un nivel básico de detalle visual para identificar con éxito las"
|
||||
" coincidencias."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "No se pudo descargar la imagen."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Mañana"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Mediodía"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Tarde"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Noche"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Valoración del libro"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Calidad de los archivos"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Convierte cadenas de texto a diferentes resúmenes hash."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "resumen de hash"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Sustituir el nombre de host"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Reescribir los nombres de host de los resultados o eliminar los "
|
||||
"resultados en función del nombre de host"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Reescribir DOI (Identificador de objeto digital) de Open Access"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -407,11 +537,11 @@ msgstr ""
|
|||
"Evitar barreras de pago redireccionando a las versiones de acceso libre "
|
||||
"de las publicaciones cuando estén disponibles"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Información propia"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -419,11 +549,11 @@ msgstr ""
|
|||
"Muestra tu dirección IP si la consulta es \"ip\" y tu Agente de Usuario "
|
||||
"si la consulta contiene \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Plugin de comprobación de Tor"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -432,7 +562,7 @@ msgstr ""
|
|||
"salida de Tor, e informa al usuario si lo es; como check.torproject.org, "
|
||||
"pero desde SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -440,7 +570,7 @@ msgstr ""
|
|||
"No se pudo descargar la lista de nodos de salida de Tor desde: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
|
@ -448,15 +578,15 @@ msgstr ""
|
|||
"Estás usando Tor y parece que tienes esta dirección IP externa: "
|
||||
"{ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "No estás usando Tor y tienes esta dirección IP externa: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Removedor de URL rastreadora"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Remueve los argumentos de rastreadores de la URL devuelta"
|
||||
|
||||
|
@ -473,45 +603,45 @@ msgstr "Ir a %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "página de búsqueda"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Donar"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Preferencias"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Desarrollado por"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "Un metabuscador de código abierto que respeta la privacidad"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Código fuente"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Rastreador de problemas"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Estadísticas del motor de búsqueda"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Instancias públicas"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Politica de privacidad"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Contactar al mantenedor de la instancia"
|
||||
|
||||
|
@ -1808,3 +1938,4 @@ msgstr "ocultar video"
|
|||
#~ "No encontramos ningún resultado. Por "
|
||||
#~ "favor, formule su búsqueda de otra "
|
||||
#~ "forma o busque en más categorías."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -12,19 +12,19 @@
|
|||
# pixrobot <pixrobot@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-25 23:18+0000\n"
|
||||
"Last-Translator: pixrobot <pixrobot@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Estonian <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/et/>\n"
|
||||
"Last-Translator: pixrobot <pixrobot@users.noreply.translate.codeberg.org>"
|
||||
"\n"
|
||||
"Language: et\n"
|
||||
"Language-Team: Estonian "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/et/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.4.2\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -67,6 +67,16 @@ msgstr "pildid"
|
|||
msgid "videos"
|
||||
msgstr "videod"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "raadio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -158,116 +168,256 @@ msgid "Uptime"
|
|||
msgstr "Kasutusaeg"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Teave"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Õhtu"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Hommik"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Öö"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Keskpäev"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Üksust ei leitud"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Allikas"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Viga järgmise lehekülje laadimisel"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Sobimatud seaded, palun muuda oma eelistusi"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Sobimatud seaded"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "otsingu viga"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "aeg maha"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "parsimise viga"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "HTTP-protokolli viga"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "võrguviga"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL viga: sertifikaadi valideerimine ebaõnnestus"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "ootamatu krahh"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP-viga"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "HTTP-ühenduse viga"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "proxy viga"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "liiga palju taotlusi"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "ligipääs keelatud"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "serveri API viga"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Peatatud"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "{minutes} minut(it) tagasi"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "{hours} tund(i), {minutes} minut(it) tagasi"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Juhusliku väärtuse generaator"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Genereeri erinevaid juhuslikke väärtusi"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Statistikafunktsioonid"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Arvuta argumentide {functions}"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Hangi juhised"
|
||||
|
||||
|
@ -279,31 +429,28 @@ msgstr "{title} (VANANENUD)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "See üksus on asendatud"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Kanal"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "raadio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "bitikiirus"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "hääled"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "klikid"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Keel"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -311,7 +458,7 @@ msgstr ""
|
|||
"{numCitations} aasta tsitaadid {firstCitationVelocityYear} kuni "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -321,7 +468,7 @@ msgstr ""
|
|||
"TinEye ainult lubab ainult järgmisi formaate: JPEG, PNG, GIF, BMP, TIFF "
|
||||
"või WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -329,57 +476,41 @@ msgstr ""
|
|||
"Pilt on liiga lihtne, et leida vasteid. TinEye nõuab vastete edukaks "
|
||||
"tuvastamiseks elementaarseid visuaalseid üksikasju."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Pilti ei saanud alla laadida."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Hommik"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Keskpäev"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Õhtu"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Öö"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Raamatu hinnang"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Faili kvaliteet"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Teisendab stringid erinevateks hash-digestideks."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "hash-digest"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Hostnime asendamine"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Tulemuste hostinimede ümberkirjutamine või tulemuste eemaldamine "
|
||||
"hostinime alusel"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Avatud juurdepääsu DOI ümberkirjutamine"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -387,11 +518,11 @@ msgstr ""
|
|||
"Väldi maksumüüre, suunates võimalusel väljaannete avatud ligipääsuga "
|
||||
"versioonidele"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Eneseteave"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -399,19 +530,20 @@ msgstr ""
|
|||
"Kuvab sinu IP'd, kui päringuks on \"ip\" ning kasutajaagenti, kui "
|
||||
"päringuks on \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Tor kontrollplugin"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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 ""
|
||||
"See plugin kontrollib, kas päringu aadress on Tor'i väljumissõlm ja teavitab "
|
||||
"kasutajat, kui see on nii: nagu check.torproject.org, aga alates SearXNG."
|
||||
"See plugin kontrollib, kas päringu aadress on Tor'i väljumissõlm ja "
|
||||
"teavitab kasutajat, kui see on nii: nagu check.torproject.org, aga alates"
|
||||
" SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -419,22 +551,23 @@ msgstr ""
|
|||
"Ei saanud alla laadida Tori väljumissõlmede nimekiri aadressilt: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr ""
|
||||
"Te kasutate Tor'i ja tundub, et teil on see väline IP-aadress: {ip_address}"
|
||||
"Te kasutate Tor'i ja tundub, et teil on see väline IP-aadress: "
|
||||
"{ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Te ei kasuta Tor'i ja teil on see väline IP-aadress: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Jälitajate eemaldus URList"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Eemaldab jälitavad argumendid tagastatud URList"
|
||||
|
||||
|
@ -451,45 +584,45 @@ msgstr "Mine %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "otsinguleht"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Anneta"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Eelistused"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Põhineb tarkvaral"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "üks privaatsust austav, vaba metaotsingumootor"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Lähtekood"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Vigade loetelu"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Mootori statistika"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Avalikud eksemplarid"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Privaatsus poliitika"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Võtke ühendust instantsi hooldajaga"
|
||||
|
||||
|
@ -527,8 +660,8 @@ msgstr "Palun uurige olemasolevate selle otsingumootori tõrgete kohta GitHubist
|
|||
#: searx/templates/simple/new_issue.html:69
|
||||
msgid "I confirm there is no existing bug about the issue I encounter"
|
||||
msgstr ""
|
||||
"Ma kinnitan et mul ei ole olemasolevat viga probleemi kohta millega ma kokku "
|
||||
"puutun"
|
||||
"Ma kinnitan et mul ei ole olemasolevat viga probleemi kohta millega ma "
|
||||
"kokku puutun"
|
||||
|
||||
#: searx/templates/simple/new_issue.html:71
|
||||
msgid "If this is a public instance, please specify the URL in the bug report"
|
||||
|
@ -1003,8 +1136,8 @@ msgid ""
|
|||
"This tab does not exists in the user interface, but you can search in "
|
||||
"these engines by its !bangs."
|
||||
msgstr ""
|
||||
"Seda vahekaarti ei ole kasutajaliideses olemas, kuid te saate otsida neis "
|
||||
"mootorites selle !bang järgi."
|
||||
"Seda vahekaarti ei ole kasutajaliideses olemas, kuid te saate otsida neis"
|
||||
" mootorites selle !bang järgi."
|
||||
|
||||
#: searx/templates/simple/preferences/engines.html:19
|
||||
msgid "!bang"
|
||||
|
@ -1063,8 +1196,8 @@ msgid ""
|
|||
"Navigate search results with hotkeys (JavaScript required). Press \"h\" "
|
||||
"key on main or result page to get help."
|
||||
msgstr ""
|
||||
"Otsingutulemustes navigeerimine kiirklahvide abil (Vajalik JavaScript). Abi "
|
||||
"saamiseks vajutage põhi või tulemuslehel klahvi \"h\"."
|
||||
"Otsingutulemustes navigeerimine kiirklahvide abil (Vajalik JavaScript). "
|
||||
"Abi saamiseks vajutage põhi või tulemuslehel klahvi \"h\"."
|
||||
|
||||
#: searx/templates/simple/preferences/image_proxy.html:2
|
||||
msgid "Image proxy"
|
||||
|
@ -1131,8 +1264,8 @@ msgid ""
|
|||
"Perform search immediately if a category selected. Disable to select "
|
||||
"multiple categories"
|
||||
msgstr ""
|
||||
"Teostage otsing kohe kui kategooria on valitud. Mitme kategooria valimiseks "
|
||||
"keelake"
|
||||
"Teostage otsing kohe kui kategooria on valitud. Mitme kategooria "
|
||||
"valimiseks keelake"
|
||||
|
||||
#: searx/templates/simple/preferences/theme.html:2
|
||||
msgid "Theme"
|
||||
|
@ -1751,3 +1884,4 @@ msgstr "peida video"
|
|||
#~ "me ei leidnud ühtegi tulemust. Palun "
|
||||
#~ "kasuta teist päringut või otsi "
|
||||
#~ "rohkematest kategooriatest."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -13,19 +13,18 @@
|
|||
# alexgabi <alexgabi@disroot.org>, 2023, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-11 04:54+0000\n"
|
||||
"Last-Translator: alexgabi <alexgabi@disroot.org>\n"
|
||||
"Language-Team: Basque <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/eu/>\n"
|
||||
"Language: eu\n"
|
||||
"Language-Team: Basque "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/eu/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.4\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -68,6 +67,16 @@ msgstr "irudiak"
|
|||
msgid "videos"
|
||||
msgstr "bideoak"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "irratia"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -159,116 +168,256 @@ msgid "Uptime"
|
|||
msgstr "Epea"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Honi buruz"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Arratsaldean"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Goizean"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Gauean"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Eguerdian"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Ez da elementurik aurkitu"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Iturria"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Errorea hurrengo orrialdea kargatzean"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Ezarpen baliogabeak, editatu zure hobespenak"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Ezarpen baliogabeak"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "bilaketa akatsa"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "itxarote-denbora"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "analizatze errorea"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "HTTP protokoloaren errorea"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "sareko errorea"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL errorea: ziurtagiria baliozkotzeak huts egin du"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "ustekabeko kraskatzea"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP errorea"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "HTTP konexioaren errorea"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "proxy-aren errorea"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "eskaera gehiegi"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "sarbidea ukatua"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "API zerbitzariaren errorea"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Etenda"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "duela {minutes} minutu"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "duela {hours} ordu eta {minutes} minutu"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Ausazko balio sortzailea"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Ausazko balio ezberdinak sortu"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Funtzio estatistikoak"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Kalkulatu argumentuen {funtzioak}"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Lortu jarraibideak"
|
||||
|
||||
|
@ -280,31 +429,28 @@ msgstr "{title} (ZAHARKITUA)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Sarrera hau hurrengoarekin ordezkatu da"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Kanala"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "irratia"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "bit emaria"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "botoak"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "klikak"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Hizkuntza"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -312,7 +458,7 @@ msgstr ""
|
|||
"{numCitations} aipamen {firstCitationVelocityYear} urtetik "
|
||||
"{lastCitationVelocityYear} bitartekoak"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -322,7 +468,7 @@ msgstr ""
|
|||
"fitxategi-formatu baten ondorioz izatea. TinEye-k JPEG, PNG, GIF, BMP, "
|
||||
"TIFF edo WebP diren irudiak soilik onartzen ditu."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -330,57 +476,41 @@ msgstr ""
|
|||
"Irudia sinpleegia da antzekoak aurkitzeko. TinEye-k oinarrizko xehetasun "
|
||||
"bisual bat behar du antzekoak ongi identifikatzeko."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Ezin izan da deskargatu irudia."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Goizean"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Eguerdian"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Arratsaldean"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Gauean"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Liburuaren balorazioa"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Fitxategiaren kalitatea"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Kateak traola laburpen desberdinetara bihurtzen ditu."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "traola laburpena"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Ostalariaren izena ordezkatu"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Berridatzi emaitzen ostalari-izenak edo kendu emaitzak ostalari-izenaren "
|
||||
"arabera"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Berridatzi Open Access DOI"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -388,11 +518,11 @@ msgstr ""
|
|||
"Saihestu ordain-hormak argitalpenen sarbide irekiko bertsioetara "
|
||||
"birbideratuz, ahal denean"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Norberaren informazioa"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -400,11 +530,11 @@ msgstr ""
|
|||
"Zure IPa bistaratzen du kontsulta \"ip\" bada eta zure erabiltzaile-"
|
||||
"agentea kontsultak \"erabiltzaile-agentea\" badu."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Tor check plugina"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -413,7 +543,7 @@ msgstr ""
|
|||
" du eta hala ote den jakinarazten dio erabiltzaileari; "
|
||||
"check.torproject.org bezala, baina SearXNG-tik."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -421,7 +551,7 @@ msgstr ""
|
|||
"Ezin izan da Tor irteera-nodoen zerrenda deskargatu: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
|
@ -429,15 +559,15 @@ msgstr ""
|
|||
"Tor erabiltzen ari zara eta kanpoko IP helbide hau duzula dirudi: "
|
||||
"{ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Ez zara Tor erabiltzen ari eta kanpoko IP helbide hau duzu: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "URL aztarnariak kendu"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Aztarnarien argumentuak kendu itzulitako URLtik"
|
||||
|
||||
|
@ -454,45 +584,45 @@ msgstr "%(search_page)s(e)ra joan."
|
|||
msgid "search page"
|
||||
msgstr "bilaketa orria"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Lagundu diruz"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Hobespenak"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Garatzailea"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "pribatutasuna errespetatzen duen metabilatzaile irekia"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Iturburu-kodea"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Arazoen jarraipena"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Bilatzaileen estatistikak"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Instantzia publikoak"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Pribatutasun politika"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Instantziaren mantentzailearekin harremanetan jarri"
|
||||
|
||||
|
@ -1758,3 +1888,4 @@ msgstr "ezkutatu bideoa"
|
|||
#~ "ez dugu emaitzarik aurkitu. Mesedez "
|
||||
#~ "beste kontsulta bat egin edo bilatu "
|
||||
#~ "kategoria gehiagotan."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -17,19 +17,18 @@
|
|||
# tegcope <tegcope@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-04-06 00:18+0000\n"
|
||||
"Last-Translator: tegcope <tegcope@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Persian <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/fa/>\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"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 5.4.3\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -72,6 +71,16 @@ msgstr "تصاویر"
|
|||
msgid "videos"
|
||||
msgstr "ویدیوها"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "رادیو"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -163,116 +172,256 @@ msgid "Uptime"
|
|||
msgstr "زمان به کار سرور"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "درباره"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "عصر"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "صبح"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "شب"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "ظهر"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "چیزی پیدا نشد"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "منبع"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "خطا در بارگزاری صفحه جدید"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "تنظیمات نادرست است، لطفا تنظیمات جستجو را تغییر دهید"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "تنظیمات نادرست"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "خطای جستوجو"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "مهلت پاسخدهی به پایان رسید"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "خطای تجزیه"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "خطای پروتکل HTTP"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "خطای شبکه"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "ارور SSL:اعتبار سنجی گواهی امنیتی SSL ناموفق بود"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "مشکل غیرمنتظره"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "خطای HTTP"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "خطای اتصال HTTP"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "خطای پروکسی"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "کپچا"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "درخواستهای زیاد"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "دسترسی مجاز نیست"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "خطای API سرور"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "تعلیقشده"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "{minutes} دقیقه پیش"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "{hours} ساعت و {minutes} دقیقه پیش"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "ایجادگر مقدار تصادفی"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "ایجاد مقادیر تصادفی متفاوت"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "توابع آماری"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "پردازش {functions} از آرگومان ها"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "دستورهای دریافت"
|
||||
|
||||
|
@ -284,31 +433,28 @@ msgstr "{title} (منسوخ شده)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "این ورودی معلق شده است، توسط"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "کانال"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "رادیو"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "بیت ریت"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "رای ها"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "کلیک ها"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "زبان"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -316,17 +462,17 @@ msgstr ""
|
|||
"{numCitations} نقل قول از سال {firstCitationVelocityYear} تا "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
" WebP."
|
||||
msgstr ""
|
||||
"نمیتوان آدرسِ URL تصویر را خواند. این ممکن است به دلیل فرمت فایل پشتیبانی "
|
||||
"نشده ای باشد. TinEye فقط تصویر های با فرمت JPEG، PNG، GIF، BMP، TIFF یا WebP "
|
||||
"را پشتیبانی میکند."
|
||||
"نمیتوان آدرسِ URL تصویر را خواند. این ممکن است به دلیل فرمت فایل "
|
||||
"پشتیبانی نشده ای باشد. TinEye فقط تصویر های با فرمت JPEG، PNG، GIF، BMP، "
|
||||
"TIFF یا WebP را پشتیبانی میکند."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -334,55 +480,39 @@ msgstr ""
|
|||
"تصویر برای یافتن موارد منطبق بسیار ساده است. TinEye برای شناسایی موفق به "
|
||||
"سطح اولیه جزئیات بصری نیاز دارد."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "تصویر نمیتواند دانلود شود."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "صبح"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "ظهر"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "عصر"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "شب"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "رتبه بندی کتاب"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "کیفیت فایل"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "رشتهها را به چکیدههای هش تبدیل میکند."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "چکیدهٔ هش"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "جایگزینی نام میزبان"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr "نام میزبان نتایج را بازنویسی کنید یا نتایج را بر اساس نام میزبان حذف کنید"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "بازنویسی DOI Access را باز کنید"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -390,11 +520,11 @@ msgstr ""
|
|||
"با هدایت مجدد به نسخههای دسترسی آزاد انتشارات در صورت وجود، از دیوارهای "
|
||||
"پرداخت اجتناب کنید"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "اطلاعات شخصی"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -402,11 +532,11 @@ msgstr ""
|
|||
"اگر پرس و جو \"ip\" باشد IP شما و اگر پرس و جو حاوی \"عامل کاربر\" باشد، "
|
||||
"عامل کاربری شما را نشان می دهد."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "افزونه بررسی Tor"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -415,7 +545,7 @@ msgstr ""
|
|||
"و در صورت وجود آن به کاربر اطلاع می دهد. مانند check.torproject.org، اما "
|
||||
"از SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -423,7 +553,7 @@ msgstr ""
|
|||
"نمی توان لیست گره های خروج Tor را از: https://check.torproject.org/exit-"
|
||||
"addresses دانلود کرد"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
|
@ -431,15 +561,15 @@ msgstr ""
|
|||
"شما از Tor استفاده می کنید و به نظر می رسد این آدرس IP خارجی را دارید: "
|
||||
"{ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "شما از Tor استفاده نمی کنید و این آدرس IP خارجی را دارید: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "حذف کننده URL ردیاب"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "آرگومان های ردیاب ها را از URL برگشتی حذف کنید"
|
||||
|
||||
|
@ -456,45 +586,45 @@ msgstr "برو به %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "صفحهٔ جستوجو"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "اهداء کردن"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "تنظیمات"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "قدرت گرفته از<br>"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "یک موتور فراجستجوی آزاد که به حریم خصوصی احترام می گذارد"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "کد منبع"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "ردیاب مشکل"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "آمار موتور"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "نمونههای عمومی"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "سیاست حفظ حریم خصوصی"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "تماس با مسئولنگهداری نمونه"
|
||||
|
||||
|
@ -1066,8 +1196,8 @@ msgid ""
|
|||
"Navigate search results with hotkeys (JavaScript required). Press \"h\" "
|
||||
"key on main or result page to get help."
|
||||
msgstr ""
|
||||
"هدایت نتایج جستوجو با کلید های میانبر (نیازمند JavaScript). برای راهنمایی،"
|
||||
" کلید «h» را در صفحه اصلی یا صفحه نتایج فشار دهید."
|
||||
"هدایت نتایج جستوجو با کلید های میانبر (نیازمند JavaScript). برای "
|
||||
"راهنمایی، کلید «h» را در صفحه اصلی یا صفحه نتایج فشار دهید."
|
||||
|
||||
#: searx/templates/simple/preferences/image_proxy.html:2
|
||||
msgid "Image proxy"
|
||||
|
@ -1134,8 +1264,8 @@ msgid ""
|
|||
"Perform search immediately if a category selected. Disable to select "
|
||||
"multiple categories"
|
||||
msgstr ""
|
||||
"انجام دادن جستوجو درجا درصورت انتخاب یک دسته بندی. برای انتخاب بیش از یک "
|
||||
"دسته بندی غیر فعال کنید"
|
||||
"انجام دادن جستوجو درجا درصورت انتخاب یک دسته بندی. برای انتخاب بیش از یک"
|
||||
" دسته بندی غیر فعال کنید"
|
||||
|
||||
#: searx/templates/simple/preferences/theme.html:2
|
||||
msgid "Theme"
|
||||
|
@ -1771,3 +1901,4 @@ msgstr "پنهانسازی ویدئو"
|
|||
#~ "چیزی پیدا نشد. لطفاً ورودی دیگری "
|
||||
#~ "را بیازمایید یا در دستههای بیشتری "
|
||||
#~ "جستوجو کنید."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -11,19 +11,19 @@
|
|||
# return42 <return42@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-22 07:09+0000\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Finnish <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/fi/>\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>"
|
||||
"\n"
|
||||
"Language: fi\n"
|
||||
"Language-Team: Finnish "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/fi/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.4.2\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -66,6 +66,16 @@ msgstr "kuvat"
|
|||
msgid "videos"
|
||||
msgstr "videot"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -157,116 +167,256 @@ msgid "Uptime"
|
|||
msgstr ""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Tietoa SearXNG:stä"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Ilta"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Aamu"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Yö"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Päivä"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Tietuetta ei löytynyt"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Lähde"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Virhe ladattaessa seuraavaa sivua"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Virheelliset asetukset, muokkaa siis asetuksia"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Virheelliset asetukset"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "hakuvirhe"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "aikakatkaistu"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "jäsentämisvirhe"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "HTTP-protokollavirhe"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "verkkovirhe"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL-virhe: sertifikaatin vahvistus epäonnistui"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "odottamaton kaatuminen"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP-virhe"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "HTTP-yhteysvirhe"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "proxy-virhe"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "liian monta pyyntöä"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "pääsy kielletty"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "palvelimen API-virhe"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Keskeytetty"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "{minutes} minuutti(a) sitten"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "{hours} tunti(a), {minutes} minuutti(a) sitten"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Satunnaisluvun generaattori"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Generoi satunnaislukuja"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Tilastolliset funktiot"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Laske argumenttien {functions}"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Reittiohjeet"
|
||||
|
||||
|
@ -278,31 +428,28 @@ msgstr "{title} (VANHENTUNUT)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Tämän kohdan on korvannut"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Kanava"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "bittinopeus"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "ääntä"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "klikkaukset"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Kieli"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -310,7 +457,7 @@ msgstr ""
|
|||
"{numCitations} Sitaatit vuodesta {firstCitationVelocityYear} vuoteen "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -320,7 +467,7 @@ msgstr ""
|
|||
" jota ei tueta. TinEye tukee vain kuvia, jotka ovat JPEG, PNG, GIF, BMP, "
|
||||
"TIFF tai WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -328,57 +475,41 @@ msgstr ""
|
|||
"Kuva on liian yksinkertainen löytääkseen osumia. TinEye vaatii "
|
||||
"visuaalisen tarkkuuden perustason, jotta osumien tunnistaminen onnistuu."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Tätä kuvaa ei voida ladata."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Aamu"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Päivä"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Ilta"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Yö"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Kirjan arvostelu"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Tiedoston laatu"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Muuntaa merkkijonot erilaisiksi hash-digesteiksi."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "hash-digest"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Isäntänimen korvaus"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Kirjoita tuloksien isäntänimiä uudelleen tai poista tulokset isäntänimen "
|
||||
"perusteella"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Open Access DOI -uudelleenkirjoitus"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -386,11 +517,11 @@ msgstr ""
|
|||
"Vältä maksumuureja ohjaamalla julkaisujen avoimiin versioihin jos "
|
||||
"mahdollista"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Tietojasi"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -398,11 +529,11 @@ msgstr ""
|
|||
"Näyttää IP-osoitteesi jos hakuehtosi on \"ip\" ja selaimen tunnistetiedot"
|
||||
" jos hakuehtosi sisältää sanat \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Tor-verkon tarkistus lisäosa"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -411,7 +542,7 @@ msgstr ""
|
|||
"käyttäjälle, jos se on, samalla tavalla kuin check.torproject.org, mutta "
|
||||
"SearXNGista."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -419,7 +550,7 @@ msgstr ""
|
|||
"Lopetuspisteiden luettelo Tor-verkon poistumisreiteistä ei voitu ladata "
|
||||
"osoitteesta: https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
|
@ -427,15 +558,15 @@ msgstr ""
|
|||
"Käytät Tor-verkkoa ja vaikuttaa siltä, että sinulla on tämä ulkoinen IP-"
|
||||
"osoite: {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Et käytä Tor-verkkoa ja sinulla on tämä ulkoinen IP-osoite: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Seurantapalvelimen osoitteen poistaja"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Poista seurantapalvelinten argumentit palautetusta osoitteesta"
|
||||
|
||||
|
@ -452,45 +583,45 @@ msgstr "Siirry %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "hakusivulle"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Lahjoita"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Asetukset"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Taustavoimana"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "yksityisyyttä kunnioittava, avoin metahakukone"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Lähdekoodi"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Ongelmien seuranta"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Hakukoneen tilastot"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Julkiset palvelimet"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Tietosuojakäytäntö"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Ota yhteyttä palvelun ylläpitäjään"
|
||||
|
||||
|
@ -1771,3 +1902,4 @@ msgstr "piilota video"
|
|||
#~ "löytynyt. Etsi käyttäen eri hakuehtoja "
|
||||
#~ "tai ulota hakusi nykyistä useampiin eri"
|
||||
#~ " luokkiin."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -13,20 +13,19 @@
|
|||
# Kita Ikuyo <searinminecraft@courvix.com>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-04-03 13:28+0000\n"
|
||||
"Last-Translator: Kita Ikuyo <searinminecraft@courvix.com>\n"
|
||||
"Language-Team: Filipino <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/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"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n == 1 || n==2 || n==3) || (n % 10 != 4 || "
|
||||
"n % 10 != 6 || n % 10 != 9);\n"
|
||||
"X-Generator: Weblate 5.4.3\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -69,6 +68,16 @@ msgstr "larawan"
|
|||
msgid "videos"
|
||||
msgstr "mga bidyo"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radyo"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -160,116 +169,256 @@ msgid "Uptime"
|
|||
msgstr "\"uptime\""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Tungkol"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Hapon"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Umaga"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Gabi"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Tanghali"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Walang nakita na aytem"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Pinagmulan"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Error sa paglo-load ng susunod na pahina"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Di-wastong mga setting, pakibago ang iyong mga kagustuhan"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Di-wastong mga setting"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "nagkaproblema sa paghahanap ng mga resulta"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "panandaliang pagtigil"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "error sa pag-parse ng mga resulta"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "Error sa HTTPS protokol"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "Network Error"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL error: Nabigo ang pagpapatunay ng sertipiko"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "Hindi inaasahang pagbagsak"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP error"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "Error sa koneksyong HTTP"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "Proxy Error"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "masyadong maraming mga kahilingan"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "tinanggihan ang access"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "pagkakamali sa server API"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Suspendido"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "{minutes} na minuto ang nakalipas"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "{hours} oras at {minutes} na minto ang nakalipas"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Random na generator ng halaga"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Maglabas ng iba't ibang halaga"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Estatistika ng mga tungkulin"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Tuusin ang {functions} ng pangangatuwiran"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Kumuha ng direksyon"
|
||||
|
||||
|
@ -281,31 +430,28 @@ msgstr "{title} (Luma)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Ang tala na ito ay ipinagpaliban ng"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Tyanel"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radyo"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "bitrate"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "mga boto"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "mga click"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Wika"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -313,7 +459,7 @@ msgstr ""
|
|||
"{numCitations} mga sipi mula sa taon {firstCitationVelocityYear} at "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -322,7 +468,7 @@ msgstr ""
|
|||
"Hindi mabasa ang url ng imahe. Baka ang format ay hindi suportado. JPEG, "
|
||||
"PNG, GIF, BMP, TIFF o WebP lamang ang tinatanggap ng TinEye."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -330,55 +476,39 @@ msgstr ""
|
|||
"Masyadong payak ang imahe. Gusto ni TinEye ng higit pang detalye para "
|
||||
"makahanap ng katugma."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Hindi ma-download ang imahe na ito."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Umaga"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Tanghali"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Hapon"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Gabi"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "rating ng libro"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Kalidad ng file"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Isinasalin ang string sa iba't ibang hash digests."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "Hash digest"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Palitan ang hostname"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr "Palitan ang resulta ng hostname o tanggalin ang resulta base sa hostname"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Malayang akses sa muling pagsulat ng DOI"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -386,11 +516,11 @@ msgstr ""
|
|||
"Iwasan ang paywall sa pag-redirect sa open-access na bersyon ng "
|
||||
"pahahayagan kapagmakukuha"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Pansariling impormasyon"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -398,11 +528,11 @@ msgstr ""
|
|||
"Ipapakita ang iyong IP kapag ang tanong ay \"ip\" at ang iyong user agent"
|
||||
" kapag ang sa tanong ay naglalaman ng \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Tor check plugin"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -411,7 +541,7 @@ msgstr ""
|
|||
" exit node, at i-iinform ang user kung oo, gaya ng check.torproject.org "
|
||||
"ngunit SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -419,7 +549,7 @@ msgstr ""
|
|||
"Hindi ma-download ang listahan ng mga Tor exit-node mula sa: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
|
@ -427,17 +557,17 @@ msgstr ""
|
|||
"Ginagamit mo ang Tor at mukang ito ang iyong external IP address: "
|
||||
"{ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr ""
|
||||
"Hindi mo ginagamit ang Tor at ito ang iyong external IP address: "
|
||||
"{ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Alisin ang URL tracker"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Alisin ang tracker sa ibabalik na URL"
|
||||
|
||||
|
@ -454,45 +584,45 @@ msgstr "Pumunta sa %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "ang pahina ng paghahanap"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Magbigay"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Mga Kagustuhan"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Pinapatakbo ng"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "isang nagrerespeto sa privacy, at open na metasearch engine"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "sors kowd"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Tagasubaybay ng isyu"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Engine stats"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Pampublikong instances"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Polisiyang pampribado"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Kontakin ang iyong instance maintainer"
|
||||
|
||||
|
@ -1784,3 +1914,4 @@ msgstr "itago ang video"
|
|||
#~ "wala kaming nakita na resulta. Pakiusap"
|
||||
#~ " na ibahin ang tanong o maghanap "
|
||||
#~ "sa maraming uri."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -21,20 +21,19 @@
|
|||
# GeoffreyGx <GeoffreyGx@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-12 17:28+0000\n"
|
||||
"Last-Translator: GeoffreyGx <GeoffreyGx@users.noreply.translate.codeberg.org>"
|
||||
"\n"
|
||||
"Language-Team: French <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/fr/>\n"
|
||||
"Last-Translator: GeoffreyGx "
|
||||
"<GeoffreyGx@users.noreply.translate.codeberg.org>\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"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 5.4.2\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -77,6 +76,16 @@ msgstr "images"
|
|||
msgid "videos"
|
||||
msgstr "vidéos"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -168,116 +177,256 @@ msgid "Uptime"
|
|||
msgstr "Temps de fonctionnement"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "À propos"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Soir"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Matin"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Nuit"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Midi"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Pas d'élément trouvé"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Source"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Erreur lors du chargement de la page suivante"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Paramètres non valides, veuillez éditer vos préférences"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Paramètres non valides"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "erreur de recherche"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "délai dépassé"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "erreur d'analyse"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "erreur de protocole HTTP"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "Erreur de réseau"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "Erreur SSL : La vérification du certificat a échoué"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "erreur inattendue"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "erreur HTTP"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "erreur de connexion HTTP"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "Erreur proxy"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "trop de requêtes"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "accès refusé"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "erreur API du serveur"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Suspendu"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "il y a {minutes} minute(s)"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "il y a {hours} heure(s), {minutes} minute(s)"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Générateur de valeur aléatoire"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Crée des valeurs aléatoires différentes"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Fonctions statistiques"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Calcule les {functions} des arguments"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Obtenir l'itinéraire"
|
||||
|
||||
|
@ -289,31 +438,28 @@ msgstr "{title} (OBSOLÈTE)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Cet item a été remplacé par"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Chaîne"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "débit"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "voix"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "clics"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Langue"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -321,7 +467,7 @@ msgstr ""
|
|||
"{numCitations} citations de l'année {firstCitationVelocityYear} à "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -331,7 +477,7 @@ msgstr ""
|
|||
"fichier non pris en charge. TinEye ne prend en charge que les images au "
|
||||
"format JPEG, PNG, GIF, BMP, TIFF ou WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -340,55 +486,39 @@ msgstr ""
|
|||
" d'un niveau de détail visuel minimum pour réussir à identifier les "
|
||||
"correspondances."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "L'image n'a pas pu être téléchargée."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Matin"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Midi"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Soir"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Nuit"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Évaluation du livre"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Qualité du fichier"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Convertit les chaînes de caractères en différents condensés de hachage."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "hash digest"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Remplacer les noms de domaine"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr "Réécrit ou supprime les résultats en se basant sur les noms de domaine"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Utiliser Open Access DOI"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -396,11 +526,11 @@ msgstr ""
|
|||
"Contourne les verrous payants de certaines publications scientifiques en "
|
||||
"redirigeant vers la version ouverte de ces papiers si elle est disponible"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Informations sur le navigateur"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -408,11 +538,11 @@ msgstr ""
|
|||
"Affiche votre adresse IP si la requête est \"ip\", et affiche votre user-"
|
||||
"agent si la requête contient \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Plugin de vérification de Tor"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -421,7 +551,7 @@ msgstr ""
|
|||
"et informe l’utilisateur si c’en est un ; par exemple "
|
||||
"check.torproject.org, mais depuis SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -429,21 +559,21 @@ msgstr ""
|
|||
"Erreur lors du téléchargement des noeuds de sortie Tor depuis : "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr "Vous utilisez Tor et votre adresse IP externe semble être : {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Vous n'utilisez pas Tor et votre adresse IP externe est : {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Nettoyeur d'URL de suivis"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Retire les arguments utilisés pour vous pister des URL retournées"
|
||||
|
||||
|
@ -460,45 +590,45 @@ msgstr "Aller à %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "la page d'accueil"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Faire un don"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Préférences"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Propulsé par"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "un métamoteur ouvert et respectueux de la vie privée"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Code source"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Suivi des problèmes"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Statistiques des moteurs"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Instances publiques"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Politique de confidentialité"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Contacter le responsable de l'instance"
|
||||
|
||||
|
@ -1804,3 +1934,4 @@ msgstr "cacher la vidéo"
|
|||
#~ "nous n'avons trouvé aucun résultat. "
|
||||
#~ "Effectuez une autre recherche ou changez"
|
||||
#~ " de catégorie."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -9,19 +9,18 @@
|
|||
# return42 <markus.heiser@darmarit.de>, 2023, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-02-26 16:56+0000\n"
|
||||
"Last-Translator: ghose <correo@xmgz.eu>\n"
|
||||
"Language-Team: Galician <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/gl/>\n"
|
||||
"Language: gl\n"
|
||||
"Language-Team: Galician "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/gl/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.4\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -64,6 +63,16 @@ msgstr "imaxes"
|
|||
msgid "videos"
|
||||
msgstr "vídeos"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -155,116 +164,256 @@ msgid "Uptime"
|
|||
msgstr "Activo fai"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Acerca de"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Tarde"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Mañán"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Noite"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Mediodía"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Non se atoparon elementos"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Fonte"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Erro ao cargar a páxina seguinte"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Axustes non válidos, por favor edita a configuración"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Axustes non válidos"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "fallo na busca"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "tempo máximo"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "erro sintáctico"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "erro de protocolo HTTP"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "erro de conexión"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "Erro SSL: fallou a validación do certificado"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "erro non agardado"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "Erro HTTP"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "Erro da conexión HTTP"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "erro do proxy"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "demasiadas solicitudes"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "acceso denegado"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "erro na API do servidor"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Suspendido"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "fai {minutes} minuto(s)"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "fai {hours} hora(s), {minutes} minuto(s)"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Xerador de valor aleatorio"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Xerar diferentes valores aleatorios"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Funcións de estatística"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Calcula {functions} dos argumentos"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Obter direccións"
|
||||
|
||||
|
@ -276,31 +425,28 @@ msgstr "{title} (OBSOLETO)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Esta entrada foi proporcionada por"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Canle"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "taxa de bits"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "votos"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "clicks"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Idioma"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -308,7 +454,7 @@ msgstr ""
|
|||
"{numCitations} citas desde o ano {firstCitationVelocityYear} ao "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -318,7 +464,7 @@ msgstr ""
|
|||
"ficheiro non soportado. TinEye só soporta imaxes tipo JPEG, PNG, GIF, "
|
||||
"BMP, TIFF ou WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -326,57 +472,41 @@ msgstr ""
|
|||
"A imaxe é demasiado simple para atopar coincidencias. TinEyes require un "
|
||||
"nivel de detalle básico para poder atopar coincidencias."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Non se puido descargar a imaxe."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Mañán"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Mediodía"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Tarde"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Noite"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Valoración do libro"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Calidade do ficheiro"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Converte o escrito usando diferentes funcións hash."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "función hash"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Substituír servidor"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Reescribir o nome do servidor ou eliminar resultado en función do nome do"
|
||||
" servidor"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Reescritura Open Access DOI"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -384,11 +514,11 @@ msgstr ""
|
|||
"Evitar valados de pago redireccionando a versións públicas das "
|
||||
"publicacións cando estén dispoñibles"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Información propia"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -396,11 +526,11 @@ msgstr ""
|
|||
"Mostra o teu IP se a consulta é \"ip\" e o teu Use Agent se a consulta "
|
||||
"contén \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Complemento para comprobar Tor"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -409,7 +539,7 @@ msgstr ""
|
|||
"Tor, e informate de se o é; como check.torproject.org, pero desde "
|
||||
"SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -417,21 +547,21 @@ msgstr ""
|
|||
"Non se puido descargar a lista de nodos de saída a Tor desde: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr "Estás usando Tor e semella que tes este enderezo IP externo: {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Non estás usando Tor e tes este endero IP externo: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Eliminador de rastrexadores na URL"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Elimina os elementos de rastrexo da URL devolta"
|
||||
|
||||
|
@ -448,45 +578,45 @@ msgstr "Ir a %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "páxina de busca"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Doar"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Axustes"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Proporcionado por"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "metabuscador aberto que respecta a privacidade"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Código fonte"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Seguimento de problemas"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Estatísticas do buscador"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Instancias públicas"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Política de privacidade"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Contactar coa administración"
|
||||
|
||||
|
@ -1779,3 +1909,4 @@ msgstr "agochar vídeo"
|
|||
#~ "non atopamos ningún resultado. Por "
|
||||
#~ "favor, realiza outra consulta ou busca"
|
||||
#~ " en máis categorías."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -16,20 +16,20 @@
|
|||
# return42 <return42@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-04-18 13:18+0000\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Hebrew <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/he/>\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>"
|
||||
"\n"
|
||||
"Language: he\n"
|
||||
"Language-Team: Hebrew "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/he/>\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 "
|
||||
"&& n % 10 == 0) ? 2 : 3));\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
|
||||
"n % 10 == 0) ? 2 : 3));\n"
|
||||
"X-Generator: Weblate 5.4.3\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -72,6 +72,16 @@ msgstr "תמונות"
|
|||
msgid "videos"
|
||||
msgstr "וידאו"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "רדיו"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -163,116 +173,256 @@ msgid "Uptime"
|
|||
msgstr "זמינות"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "אודות"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "ערב"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "בוקר"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "לילה"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "צהריים"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "לא נמצא פריט"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "מקור"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "שגיאה בטעינת העמוד הבא"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "הגדרות לא תקינות, עליך לתקן את ההעדפות שלך"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "הגדרות לא תקינות"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "שגיאת חיפוש"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "פקיעת זמן"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "שגיאת ניתוח"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "שגיאת פרוטוקול HTTP"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "שגיאת רשת תקשורת"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "שגיאת SSL: אימות התעודה נכשל"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "קריסה לא צפויה"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "שגיאת HTTP"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "שגיאת חיבור HTTP"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "שגיאת פרוקסי"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "יותר מדי בקשות"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "הגישה נדחתה"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "שגיאת API שרת"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "מושהה"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "לפני {minutes} דקות"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "לפני {hours} שעות, {minutes} דקות"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "מפיק ערך אקראי"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "מייצרת ערכים אקראיים שונים"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "פונקציות סטטיסטיקה"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "מחשבת {functions} של הארגומנטים"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "קבל כיוונים"
|
||||
|
||||
|
@ -284,31 +434,28 @@ msgstr "{title} (OBSOLETE)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "רשומה זו הוחלפה על ידי"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "ערוץ"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "רדיו"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "קצב נתונים"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "הצבעות"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "לחיצות"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "שפה"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -316,7 +463,7 @@ msgstr ""
|
|||
"{numCitations} אזכורים מ {firstCitationVelocityYear} עד "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -326,7 +473,7 @@ msgstr ""
|
|||
"קובץ שאינו נתמך. TinEye תומך רק בתמונות שהן JPEG, PNG, GIF, BMP, TIFF או "
|
||||
"WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -334,55 +481,39 @@ msgstr ""
|
|||
"התמונה הזו הינה יותר מידי פשוטה מכדי למצוא התאמות. TinEye צריך רמה בסיסית"
|
||||
" של פרטים חזותיים כדי להצליח למצוא התאמות."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "אי אפשר להוריד את תמונה זו."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "בוקר"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "צהריים"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "ערב"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "לילה"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "דירוג ספרים"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "איכות קובץ"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "ממיר מחרוזות לתוך hash digests (לקט גיבוב) שונים."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "hash digest"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "החלפת Hostname"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr "שכתב hostname של תוצאות או הסר תוצאות בהתבסס על hostname"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "שכתוב Open Access DOI"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -390,11 +521,11 @@ msgstr ""
|
|||
"הימנע מגרסאות paywall על ידי הכוונה מחודשת לגרסאות כניסה-חופשית של "
|
||||
"כתבי-עת כאשר ישנן"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "מידע עצמי"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -402,11 +533,11 @@ msgstr ""
|
|||
"מציגה כתובת IP המשוייכת לך אם השאילתא היא \"ip\" וגם סוכן משתמש אם "
|
||||
"השאילתא מכילה \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "טור בודק תוסף"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -414,7 +545,7 @@ msgstr ""
|
|||
"תוסף זה בודק אם הכתובת של הבקשה היא צומת יציאה של TOR, ומודיע למשתמש אם "
|
||||
"כן, כמו check.torproject.org אבל מ-SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -422,21 +553,21 @@ msgstr ""
|
|||
"לא ניתן להוריד את רשימת צמתי היציאה של טור מ: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr "אתה משתמש בטור וזה נראה שיש לך את הIP הזה: {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
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
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "הסרת Tracker URL"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "הסר ארגומנטי איתור מתוך URL מוחזר"
|
||||
|
||||
|
@ -453,45 +584,45 @@ msgstr "המשך לעמוד %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "עמוד חיפוש"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "תרומות"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "העדפות"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "מופעל באמצעות"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "מנוע מטא-חיפוש בקוד חופשי המכבד את פרטיותך"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "קוד מקור"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "דווח על בעיה"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "סטטיסטיקת מנוע חיפוש"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "שרתים מקבילים"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "פוליסת פרטיות"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "צור קשר עם מפעיל השירת"
|
||||
|
||||
|
@ -1744,3 +1875,4 @@ msgstr "הסתר וידאו"
|
|||
#~ "use another query or search in "
|
||||
#~ "more categories."
|
||||
#~ msgstr "לא מצאנו תוצאות. אנא נסו שאילתא אחרת או חפשו בתוך יותר קטגוריות."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -15,20 +15,19 @@
|
|||
# Uzakmo <Uzakmo@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-04-07 07:18+0000\n"
|
||||
"Last-Translator: Uzakmo <Uzakmo@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Croatian <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/hr/>\n"
|
||||
"Language: hr\n"
|
||||
"Language-Team: Croatian "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/hr/>\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 5.4.3\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -71,6 +70,16 @@ msgstr "slike"
|
|||
msgid "videos"
|
||||
msgstr "video zapisi"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -162,116 +171,256 @@ msgid "Uptime"
|
|||
msgstr "Vrijeme rada"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "O nama"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Večer"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Jutro"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Noć"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Podne"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Nije pronađena nijedna stavka"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Izvor"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Greška u učitavnju sljedeće stranice"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Nevažeće postavke, molimo uredite svoje postavke"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Nevažeće postavke"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "greška u pretraživanju"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "pauza"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "pogreška pri raščlanjivanju"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "greška HTTP protokola"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "greška u mreži"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL pogreška: provjera valjanosti certifikata nije uspjela"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "neočekivani prekid"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP greška"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "greška HTTP veze"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "proxy greška"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "previše upita"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "pristup odbijen"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "server API greška"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Suspendirano"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "prije {minutes} minut(u,e,a)"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "prije {hours} sat(i,a) i {minutes} minut(u,e,a)"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Nasumični generator vrijednosti"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Generirajte različite nasumične vrijednosti"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Statistične funkcije"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Izračunajte {functions} argumenata"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Dobij upute"
|
||||
|
||||
|
@ -283,31 +432,28 @@ msgstr "{title} (ZASTARJELO)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Ovaj je unos zamijenio"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Kanal"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "bitrata"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "glasovi"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "klikovi"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Jezik"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -315,7 +461,7 @@ msgstr ""
|
|||
"{numCitations} citati iz godine {firstCitationVelocityYear} do "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -325,7 +471,7 @@ msgstr ""
|
|||
"format dokumenta. TinEye samo podržava slike JPEG, PNG, GIF, BMP, TIFF i "
|
||||
"WebP formata."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -333,67 +479,51 @@ msgstr ""
|
|||
"Slika je previše jednostavna da bi se pronašla sličnost. TinEye zahtjeva "
|
||||
"osnovnu razinu detalja za pronalaženje sličnosti."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Sliku nije moguće preuzeti."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Jutro"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Podne"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Večer"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Noć"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Ocjena knjige"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Kvaliteta datoteke"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Pretvara niz u drukčije hash mješavine."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "Izlaz hash funkcije"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Zamjena lokalnog imena"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Ispravite (prepišite) rezultat hostnameova ili maknite rezultate bazirane na "
|
||||
"hostname"
|
||||
"Ispravite (prepišite) rezultat hostnameova ili maknite rezultate bazirane"
|
||||
" na hostname"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Otvoreni pristup DOI prijepisa"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
msgstr "Izbjegnite plaćanje u slučaju dostupnosti besplatne objave"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Informacije o sebi"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -401,11 +531,11 @@ msgstr ""
|
|||
"Prikazuje vašu IP adresu ako je upit \"ip\" i vaš korisnički agent ako "
|
||||
"upit sadrži \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Tor plugin za provjeru"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -414,7 +544,7 @@ msgstr ""
|
|||
"šalje obavijest korisniku, kao check.torproject.org ali od strane "
|
||||
"SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -422,21 +552,21 @@ msgstr ""
|
|||
"Nije moguće preuzeti popis Tor izlaznih čvorova s: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr "Vi koristite Tor i izgleda da imate ovu vanjsku IP adresu: {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Vi ne koristite Tor i imate ovu vanjsku IP adresu: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Ukloni praćenje URL-ova"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Ukloni elemente za označavanje rezultata vraćenih s URL-a"
|
||||
|
||||
|
@ -453,45 +583,45 @@ msgstr "Idi na %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "pretraži stranicu"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Donirajte"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Postavke"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Pokreće"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "otvoreni metapretraživač koji poštuje privatnost"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Izvorni kod"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Tragač problema"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Podaci o tražilici"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Javne instance"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Politika privatnosti"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Kontaktirajte održavatelja instance"
|
||||
|
||||
|
@ -1771,3 +1901,4 @@ msgstr "sakrij video"
|
|||
#~ msgstr ""
|
||||
#~ "nema rezultata pretraživanja. Unesite novi "
|
||||
#~ "upit ili pretražite u više kategorija."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -16,20 +16,19 @@
|
|||
# meskobalazs <meskobalazs@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-04-04 14:18+0000\n"
|
||||
"Last-Translator: meskobalazs <meskobalazs@users.noreply.translate.codeberg."
|
||||
"org>\n"
|
||||
"Language-Team: Hungarian <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/hu/>\n"
|
||||
"Last-Translator: meskobalazs "
|
||||
"<meskobalazs@users.noreply.translate.codeberg.org>\n"
|
||||
"Language: hu\n"
|
||||
"Language-Team: Hungarian "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/hu/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.4.3\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -72,6 +71,16 @@ msgstr "képek"
|
|||
msgid "videos"
|
||||
msgstr "videók"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "rádió"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -163,116 +172,256 @@ msgid "Uptime"
|
|||
msgstr "Üzemidő"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Névjegy"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Este"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Reggel"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Éjszaka"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Dél"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Nincs találat"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Forrás"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Hiba a következő oldal betöltése során"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Érvénytelen beállítások, módosítsa őket"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Érvénytelen beállítások"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "keresési hiba"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "időtúllépés"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "feldolgozási hiba"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "HTTP protokollhiba"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "hálózati hiba"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL hiba: a tanúsítvány ellenőrzése nem sikerült"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "váratlan összeomlás"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP hiba"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "HTTP csatlakozási hiba"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "proxy hiba"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "túl sok kérés"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "hozzáférés megtagadva"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "kiszolgáló API hiba"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Felfüggesztve"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "{minutes} perce"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "{hours} óra, {minutes} perce"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Véletlenérték-generátor"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Különböző véletlen értékek előállítása"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Statisztikai függvények"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "{functions} alkalmazása az argumentumokon"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Útvonaltervezés"
|
||||
|
||||
|
@ -284,31 +433,28 @@ msgstr "{title} (elavult)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Ezt a bejegyzést leváltotta:"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Csatorna"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "rádió"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "bitráta:"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "szavazatok:"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "kattintások:"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Nyelv"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -316,17 +462,17 @@ msgstr ""
|
|||
"{numCitations} idézet ebben az évben: {firstCitationVelocityYear} és "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
" WebP."
|
||||
msgstr ""
|
||||
"Ennek a képnek az webcíme nem olvasható. Ennek az oka a nem támogatott "
|
||||
"fájlformátum lehet. A TinEye által támogatott formátumok: JPEG, PNG, GIF, "
|
||||
"BMP, TIFF vagy WebP."
|
||||
"fájlformátum lehet. A TinEye által támogatott formátumok: JPEG, PNG, GIF,"
|
||||
" BMP, TIFF vagy WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -334,81 +480,65 @@ msgstr ""
|
|||
"A kép túl egyszerű a kereséshez. A TinEye-nak szüksége van egy alapvető "
|
||||
"vizuális részletességre a sikeres kereséshez."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "A kép nem tölthető le."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Reggel"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Dél"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Este"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Éjszaka"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Könyv értékelése"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Fájlminőség"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "A szöveget különböző hash értékekké alakítja."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "hash érték"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Kiszolgálónév cseréje"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Találatok kiszolgálónevének átírása, vagy a találatok eltávolítása gépnév "
|
||||
"alapján"
|
||||
"Találatok kiszolgálónevének átírása, vagy a találatok eltávolítása gépnév"
|
||||
" alapján"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Szabad DOI használata"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
msgstr ""
|
||||
"Ha lehetséges, elkerüli a fizetőkapukat azáltal, hogy a kiadvány szabadon "
|
||||
"elérhető változatára irányítja át"
|
||||
"Ha lehetséges, elkerüli a fizetőkapukat azáltal, hogy a kiadvány szabadon"
|
||||
" elérhető változatára irányítja át"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Személyes információk"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
msgstr ""
|
||||
"Megjeleníti a saját IP-címét és felhasználói ügynökét, ha a keresése ezeket "
|
||||
"tartalmazza: „ip” és „user agent”."
|
||||
"Megjeleníti a saját IP-címét és felhasználói ügynökét, ha a keresése "
|
||||
"ezeket tartalmazza: „ip” és „user agent”."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Tor ellenőrző kiegészítő"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -417,7 +547,7 @@ msgstr ""
|
|||
" és értesíti a felhasználót, ha igen; mint a check.torproject.org, de a "
|
||||
"SearXNG-től."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -425,25 +555,25 @@ msgstr ""
|
|||
"Nem sikerült letölteni a Tor kilépési csomópontok listáját innen: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr "Ön Tort használ, és úgy tűnik, ez a külső IP-címe: {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Nem használ Tor kapcsolatot, és ez a külső IP-címe: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Követők eltávolítása a webcímekből"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr ""
|
||||
"Eltávolítja a felhasználók követéshez használt argumentumokat a találatok "
|
||||
"webcíméből"
|
||||
"Eltávolítja a felhasználók követéshez használt argumentumokat a találatok"
|
||||
" webcíméből"
|
||||
|
||||
#: searx/templates/simple/404.html:4
|
||||
msgid "Page not found"
|
||||
|
@ -458,45 +588,45 @@ msgstr "Ugrás a %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "keresőoldalra"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Támogatás"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Beállítások"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Az oldalt kiszolgálja:"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "egy adatvédelmet tiszteletben tartó, nyílt forráskódú metakereső"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Forráskód"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Hibajegykövető"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Keresőstatisztikák"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Publikus példányok"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Adatvédelmi irányelvek"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Kapcsolatfelvétel a példány karbantartójával"
|
||||
|
||||
|
@ -1011,8 +1141,8 @@ msgid ""
|
|||
"This tab does not exists in the user interface, but you can search in "
|
||||
"these engines by its !bangs."
|
||||
msgstr ""
|
||||
"Ez a lap nem létezik a felhasználói felületen, de ezekben a keresőmotorokban "
|
||||
"a !bang parancsok segítségével kereshet."
|
||||
"Ez a lap nem létezik a felhasználói felületen, de ezekben a "
|
||||
"keresőmotorokban a !bang parancsok segítségével kereshet."
|
||||
|
||||
#: searx/templates/simple/preferences/engines.html:19
|
||||
msgid "!bang"
|
||||
|
@ -1035,16 +1165,16 @@ msgid ""
|
|||
"These settings are stored in your cookies, this allows us not to store "
|
||||
"this data about you."
|
||||
msgstr ""
|
||||
"Ezek a beállítások böngészősütikben vannak tárolva, így nem kell adatokat "
|
||||
"tárolnunk Önről."
|
||||
"Ezek a beállítások böngészősütikben vannak tárolva, így nem kell adatokat"
|
||||
" tárolnunk Önről."
|
||||
|
||||
#: searx/templates/simple/preferences/footer.html:3
|
||||
msgid ""
|
||||
"These cookies serve your sole convenience, we don't use these cookies to "
|
||||
"track you."
|
||||
msgstr ""
|
||||
"Ezek a sütik csak kényelmi funkciókat látnak el, nem használjuk arra, hogy "
|
||||
"kövessük Önt."
|
||||
"Ezek a sütik csak kényelmi funkciókat látnak el, nem használjuk arra, "
|
||||
"hogy kövessük Önt."
|
||||
|
||||
#: searx/templates/simple/preferences/footer.html:6
|
||||
msgid "Save"
|
||||
|
@ -1072,7 +1202,8 @@ msgid ""
|
|||
"key on main or result page to get help."
|
||||
msgstr ""
|
||||
"Gyorsbillentyűkkel navigálhat a keresési eredmények között (JavaScript "
|
||||
"szükséges). Segítségét nyomja meg a „h” gombot a fő vagy a találati oldalon."
|
||||
"szükséges). Segítségét nyomja meg a „h” gombot a fő vagy a találati "
|
||||
"oldalon."
|
||||
|
||||
#: searx/templates/simple/preferences/image_proxy.html:2
|
||||
msgid "Image proxy"
|
||||
|
@ -1088,8 +1219,7 @@ msgstr "Végtelen görgetés"
|
|||
|
||||
#: searx/templates/simple/preferences/infinite_scroll.html:14
|
||||
msgid "Automatically load next page when scrolling to bottom of current page"
|
||||
msgstr ""
|
||||
"Görgetéskor automatikusan betölti a következő oldalt, ha a lap aljára ér"
|
||||
msgstr "Görgetéskor automatikusan betölti a következő oldalt, ha a lap aljára ér"
|
||||
|
||||
#: searx/templates/simple/preferences/language.html:24
|
||||
msgid "What language do you prefer for search?"
|
||||
|
@ -1098,8 +1228,8 @@ msgstr "Milyen nyelven keres?"
|
|||
#: searx/templates/simple/preferences/language.html:25
|
||||
msgid "Choose Auto-detect to let SearXNG detect the language of your query."
|
||||
msgstr ""
|
||||
"Válassza az „Automatikus” lehetőséget, hogy a SearXNG ismerje fel a keresési "
|
||||
"nyelvet."
|
||||
"Válassza az „Automatikus” lehetőséget, hogy a SearXNG ismerje fel a "
|
||||
"keresési nyelvet."
|
||||
|
||||
#: searx/templates/simple/preferences/method.html:2
|
||||
msgid "HTTP Method"
|
||||
|
@ -1118,8 +1248,8 @@ msgid ""
|
|||
"When enabled, the result page's title contains your query. Your browser "
|
||||
"can record this title"
|
||||
msgstr ""
|
||||
"Ha be van kapcsolva, akkor a találati oldal fejléce tartalmazza a keresést. "
|
||||
"A böngésző így elmentheti a címét."
|
||||
"Ha be van kapcsolva, akkor a találati oldal fejléce tartalmazza a "
|
||||
"keresést. A böngésző így elmentheti a címét."
|
||||
|
||||
#: searx/templates/simple/preferences/results_on_new_tab.html:2
|
||||
msgid "Results on new tabs"
|
||||
|
@ -1159,8 +1289,7 @@ msgstr "Téma stílusa"
|
|||
|
||||
#: searx/templates/simple/preferences/theme.html:31
|
||||
msgid "Choose auto to follow your browser settings"
|
||||
msgstr ""
|
||||
"A böngésző beállításainak követéséhez válassza az „automatikus” beállítást"
|
||||
msgstr "A böngésző beállításainak követéséhez válassza az „automatikus” beállítást"
|
||||
|
||||
#: searx/templates/simple/preferences/tokens.html:2
|
||||
msgid "Engine tokens"
|
||||
|
@ -1779,3 +1908,4 @@ msgstr "videó elrejtése"
|
|||
#~ "Nincs megjeleníthető találat. Kérlek, hogy "
|
||||
#~ "használj másik kifejezést vagy keress "
|
||||
#~ "több kategóriában."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -9,7 +9,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2023-06-22 09:02+0000\n"
|
||||
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
|
||||
"Language: ia\n"
|
||||
|
@ -61,6 +61,16 @@ msgstr "imagines"
|
|||
msgid "videos"
|
||||
msgstr "videos"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -152,116 +162,256 @@ msgid "Uptime"
|
|||
msgstr ""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Nulle item trovate"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Configurationes non valide, per favor, modifica tu preferentias"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Configurationes invalide"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "error in recerca"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "{minutes} minuta(s) retro"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "{hours} hora(s), {minutes} minuta(s) retro"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Generator de valores aleatori"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Generar differente valores aleatori"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Functiones statistic"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Computa {functions} del argumentos"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr ""
|
||||
|
||||
|
@ -273,98 +423,79 @@ msgstr ""
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Iste entrata esseva substituite per"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
" WebP."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -372,11 +503,11 @@ msgstr ""
|
|||
"Evita paywalls per redirectionar a versiones de publicationes in accesso "
|
||||
"aperte, quando disponibile"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -384,37 +515,37 @@ msgstr ""
|
|||
"Monstra tu IP si le consulta es \"ip\"; e monstra tu agente de usator si "
|
||||
"le consulta contine \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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 ""
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Remover tracker del URL"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Remover argumentos del tracker ab le URL retornate"
|
||||
|
||||
|
@ -431,45 +562,45 @@ msgstr "Ir al %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "pagina de recerca"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Preferentias"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Actionate per"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Statisticas de motores"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -9,17 +9,16 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-02-26 16:56+0000\n"
|
||||
"Last-Translator: return42 <markus.heiser@darmarit.de>\n"
|
||||
"Language-Team: Indonesian <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/id/>\n"
|
||||
"Language: id\n"
|
||||
"Language-Team: Indonesian "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/id/>\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 5.4\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -62,6 +61,16 @@ msgstr "gambar"
|
|||
msgid "videos"
|
||||
msgstr "video"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -153,116 +162,256 @@ msgid "Uptime"
|
|||
msgstr "Waktu aktif"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Tentang"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Sore"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Pagi"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Malam"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Siang"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Item tidak ditemukan"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Sumber"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Gagal memuat halaman berikutnya"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Pengaturan tidak valid, mohon ubah preferensi Anda"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Pengaturan tidak valid"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "kesalahan pencarian"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "waktu habis"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "kesalahan penguraian"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "kesalahan protokol HTTP"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "kesalahan jaringan"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "Kesalahan SSL: validasi sertifikat gagal"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "kegagalan yang tak terduga"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "kesalahan HTTP"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "kesalahan koneksi HTTP"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "kesalahan proksi"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "terlalu banyak permintaan"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "akses ditolak"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "kesalahan server API"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Ditangguhkan"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "{minutes} menit yang lalu"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "{hours} jam, {minutes} menit yang lalu"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Penghasil nilai acak"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Menghasilkan nilai-nilai acak yang berbeda"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Fungsi statistik"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Menghitung {functions} dari argumen"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Mendapatkan arah"
|
||||
|
||||
|
@ -274,31 +423,28 @@ msgstr "{title} (USANG)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Masukan ini telah digantikan oleh"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Saluran"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "kecepatan bit"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "suara"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "klik"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Bahasa"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -306,7 +452,7 @@ msgstr ""
|
|||
"{numCitations} kutipan dari tahun {firstCitationVelocityYear} sampai "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -316,7 +462,7 @@ msgstr ""
|
|||
"yang tidak didukung. TinEye hanya mendukung gambar JPEG, PNG, GIF, BMP, "
|
||||
"TIFF, atau WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -325,55 +471,39 @@ msgstr ""
|
|||
"membutuhkan sebuah detail yang dasar untuk mengenal kecocokan dengan "
|
||||
"berhasil."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Gambar ini tidak dapat diunduh."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Pagi"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Siang"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Sore"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Malam"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Peringkat buku"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Kualitas berkas"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Mengubah string menjadi hash digest yang berbeda."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "intisari hash"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Pengubah nama host"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr "Tulis ulang nama host hasil atau hapus hasil berdasarkan pada nama host"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Penulisan ulang Open Access DOI"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -381,11 +511,11 @@ msgstr ""
|
|||
"Hindari paywall dengan mengalihkan ke versi yang terbuka dari publikasi "
|
||||
"saat tersedia"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Informasi Diri"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -393,11 +523,11 @@ msgstr ""
|
|||
"Menampilkan IP Anda jika pencariannya adalah \"ip\" dan agen pengguna "
|
||||
"Anda jika pencariannya mengandung \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Plugin pemeriksaan Tor"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -406,7 +536,7 @@ msgstr ""
|
|||
"memberi tahu pengguna jika benar; seperti check.torproject.org, tetapi "
|
||||
"dari SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -414,7 +544,7 @@ msgstr ""
|
|||
"Tidak dapat mengunduh daftar node keluar Tor dari: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
|
@ -422,17 +552,17 @@ msgstr ""
|
|||
"Anda sedang menggunakan Tor dan sepertinya Anda memiliki alamat IP "
|
||||
"eksternal berikut: {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr ""
|
||||
"Anda sedang tidak menggunakan Tor dan Anda memiliki alamat IP eksternal "
|
||||
"berikut: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Penghapus URL pelacak"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Membuang argumen pelacak dari URL yang dikembalikan"
|
||||
|
||||
|
@ -449,45 +579,45 @@ msgstr "Pergi ke %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "halaman pencarian"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Donasi"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Preferensi"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Diberdayakan oleh"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "sebuah mesin pencari meta terbuka yang menghormati privasi"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Kode sumber"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Pelacak masalah"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Statistik mesin"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Instansi umum"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Kebijakan privasi"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Hubungi pengelola instansi"
|
||||
|
||||
|
@ -1658,3 +1788,4 @@ msgstr "sembunyikan video"
|
|||
#~ "kami tidak menemukan hasil apa pun. "
|
||||
#~ "Mohon menggunakan pencarian lain atau "
|
||||
#~ "cari dalam kategori lain."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -27,19 +27,19 @@
|
|||
# return42 <return42@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-22 07:09+0000\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Italian <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/it/>\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>"
|
||||
"\n"
|
||||
"Language: it\n"
|
||||
"Language-Team: Italian "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/it/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.4.2\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -82,6 +82,16 @@ msgstr "immagini"
|
|||
msgid "videos"
|
||||
msgstr "video"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -173,116 +183,256 @@ msgid "Uptime"
|
|||
msgstr "Tempo di attività"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "A proposito"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Sera"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Mattina"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Notte"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Mezzogiorno"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Nessun oggetto trovato"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Sorgente"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Errore di caricamento della pagina successiva"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Impostazioni non valide, modifica le tue preferenze"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Impostazioni non valide"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "errore di ricerca"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "tempo scaduto"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "errore di analisi"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "errore protocollo HTTP"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "errore di rete"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "Errore SSL: La verifica del certificato è fallita"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "crash inaspettato"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "errore HTTP"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "errore di connessione HTTP"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "errore proxy"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "troppe richieste"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "accesso negato"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "errore server API"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Sospeso"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "di {minutes} minuto(i) fa"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "di {hours} ora(e) e {minutes} minuto(i) fa"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Generatore di numeri casuali"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Genera più numeri casuali"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Funzioni statistiche"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Calcola {functions} degli argomenti"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Ricevi direzioni"
|
||||
|
||||
|
@ -294,31 +444,28 @@ msgstr "{title} (OBSOLETO)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Questa voce è stata sostituita da"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Canale"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "velocità in bit"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "voti"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "clic"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Lingua"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -326,7 +473,7 @@ msgstr ""
|
|||
"{numCitations} citazioni dall anno {firstCitationVelocityYear} fino al "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -336,7 +483,7 @@ msgstr ""
|
|||
"formato del file non supportato. TinEye supporta solo immagini JPEG, PNG,"
|
||||
" GIF, BMP, TIFF o Web."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -345,57 +492,41 @@ msgstr ""
|
|||
"un maggiore livello di dettagli visivi per identificare corrispondenze "
|
||||
"con successo."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "L'immagine non può essere scaricata."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Mattina"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Mezzogiorno"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Sera"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Notte"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Valutazione del libro"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Qualità del file"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Converte le stringhe in diversi digest di hash."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "digest dell'hash"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Sostituzione del nome host"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Riscrivere gli hostname dei risultati o rimuovere i risultati in base "
|
||||
"all'hostname"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Reindirizzamento Open Access DOI"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -403,11 +534,11 @@ msgstr ""
|
|||
"Se possibile, evita il paywall di una pubblicazione reindirizzando ad una"
|
||||
" versione ad accesso libero"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Informazioni su di sé"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -415,11 +546,11 @@ msgstr ""
|
|||
"Mostra il tuo IP se hai cercato \"ip\" ed il tuo user agent se hai "
|
||||
"cercato \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Plugin di verifica tor"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -427,7 +558,7 @@ msgstr ""
|
|||
"Questo plugin controlla se l'indirizzo richiesto è un nodo di uscita di "
|
||||
"Tor e informa l'utente se lo è; come check.torproject.org, ma da SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -435,7 +566,7 @@ msgstr ""
|
|||
"Non ho potuto scaricare la lista dei nodi di uscita di Tor da: "
|
||||
"https://check.torproject.org?exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
|
@ -443,15 +574,15 @@ msgstr ""
|
|||
"Stai usando Tor e sembra che tu abbia il seguente indirizzo IP: "
|
||||
"{ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Non stai usando Tor e il tuo indirizzo IP esterno è: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Rimuovi URL traccianti"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Rimuovi gli elementi traccianti dall'indirizzo URL riportato"
|
||||
|
||||
|
@ -468,45 +599,45 @@ msgstr "Vai a %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "cerca nella pagina"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Dona"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Preferenze"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Offerto da"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "un meta-motore di ricerca web, open source e rispettoso della privacy"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Codice sorgente"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Registratore dei problemi"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Statistiche dei motori"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Istanze pubbliche"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Politica sulla riservatezza"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Contatta il manutentore dell'istanza"
|
||||
|
||||
|
@ -1803,3 +1934,4 @@ msgstr "nascondi video"
|
|||
#~ "non abbiamo trovato alcun risultato. "
|
||||
#~ "Prova una nuova ricerca, o cerca "
|
||||
#~ "in più categorie."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -21,19 +21,18 @@
|
|||
# syobon <syobon@syobon.net>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-05 21:13+0000\n"
|
||||
"Last-Translator: tentsbet <remendne@pentrens.jp>\n"
|
||||
"Language-Team: Japanese <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/ja/>\n"
|
||||
"Language: ja\n"
|
||||
"Language-Team: Japanese "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/ja/>\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.4\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -76,6 +75,16 @@ msgstr "画像"
|
|||
msgid "videos"
|
||||
msgstr "動画"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "ラジオ"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -167,116 +176,256 @@ msgid "Uptime"
|
|||
msgstr "稼働時間"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "関連情報"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "夕方"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "朝"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "夜間"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "昼"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "アイテムが見つかりません"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "ソース"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "次のページの読み込み中にエラーが発生しました"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "設定が無効です、設定を変更してください"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "無効な設定です"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "検索エラー"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "タイムアウト"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "解析エラー"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "HTTP プロトコルエラー"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "ネットワークエラー"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL エラー: 証明書の検証に失敗しました"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "予期しないクラッシュ"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP エラー"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "HTTP 接続エラー"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "プロキシエラー"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "リクエストが多すぎます"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "アクセスが拒否されました"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "サーバー API エラー"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "一時停止"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "{minutes} 分前"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "{hours} 時間と{minutes} 分前"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "ランダムな値を生成"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "異なるランダムな値を生成する"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "統計機能"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "変数の {functions} を計算する"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "経路を取得する"
|
||||
|
||||
|
@ -288,31 +437,28 @@ msgstr "{title} (廃止)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "このエントリは、置き換えられました:"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "チャンネル"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "ラジオ"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "ビットレート"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "票数"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "クリック"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "言語"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -320,115 +466,98 @@ msgstr ""
|
|||
"{firstCitationVelocityYear} 年から "
|
||||
"{lastCitationVelocityYear}年まで{numCitations} が引用文献として"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
" WebP."
|
||||
msgstr "この画像URLは読み取ることができません。サポートされていないフォーマットだと考えられます。TinEyeはJPEG、PNG、GIF、BMP、TIFF、WebPの画像のみサポートしています。"
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
msgstr "画像が単純すぎます。TinEyeが正しく照合を行うにはある程度詳細な視覚情報が必要"
|
||||
"です。"
|
||||
msgstr "画像が単純すぎます。TinEyeが正しく照合を行うにはある程度詳細な視覚情報が必要です。"
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "この画像はダウンロードはできません。"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "朝"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "昼"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "夕方"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "夜間"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "書籍評価点数"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "ファイル品質"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "文字列を異なるハッシュダイジェストに変換。"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "ハッシュダイジェスト"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "ホストネーム入れ替え"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr "結果のホスト名を書き換えるか、ホスト名に基づいて結果を削除します"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "オープンアクセス DOI の書き換え"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
msgstr "可能ならば オープンアクセス版の出版物へリダイレクトし、有料出版物を回避する"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "自分の情報"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
msgstr "クエリが \"ip\" の場合にあなたのIPを、クエリに \"user agent\" が含まれる場合にあなたのユーザーエージェントを表示します。"
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Tor 確認プラグイン"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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 "このプラグインではcheck.torprogject.orgのようにTor 出口ノードのIPアドレスをSearXNGからチェックする。"
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
msgstr "「https://check.torproject.org/exit-addresses」からTor 出口ノードの一覧をダウンロードできません"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr "あなたの利用しているTorの外部IPアドレスは次のようになっている : {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "あなたはTorを利用しておらず外部IPアドレスは次のようになっている : {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "トラッカー URL リムーバー"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "返された URL からトラッカー引数を消去する"
|
||||
|
||||
|
@ -445,45 +574,45 @@ msgstr "%(search_page)s へ行く。"
|
|||
msgid "search page"
|
||||
msgstr "検索ページ"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "寄付"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "設定"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Powered by"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "プライバシーを尊重する、オープンメタ検索エンジン"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "ソースコード"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "課題報告"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "検索エンジンの状態"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "パブリック インスタンス"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "プライバシーポリシー"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "インスタンスメンテナと連絡を取る"
|
||||
|
||||
|
@ -1713,3 +1842,4 @@ msgstr "動画を隠す"
|
|||
#~ "use another query or search in "
|
||||
#~ "more categories."
|
||||
#~ msgstr "検索結果はありませんでした。別のカテゴリ、または他のクエリで検索してください。"
|
||||
|
||||
|
|
Binary file not shown.
|
@ -12,17 +12,17 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-22 07:09+0000\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Korean <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/ko/>\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>"
|
||||
"\n"
|
||||
"Language: ko\n"
|
||||
"Language-Team: Korean "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/ko/>\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 5.4.2\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -65,6 +65,16 @@ msgstr "이미지"
|
|||
msgid "videos"
|
||||
msgstr "비디오"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "라디오"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -156,116 +166,256 @@ msgid "Uptime"
|
|||
msgstr ""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "정보"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "저녁"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "아침"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "밤"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "정오"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "검색 결과가 없습니다"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "소스"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "다음 페이지를 로드하는 동안 오류가 발생했습니다"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "잘못된 설정입니다, 설정을 수정하세요"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "잘못된 설정"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "검색 오류"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "대기 시간"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "구문 분석 오류"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "HTTP 프로토콜 오류"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "네트워크 오류"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL 에러: 인증서 무효"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "예상치 못한 충돌"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP 오류"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "HTTP 연결 오류"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "프록시 오류"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "너무 많은 요청"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "액세스 거부"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "서버 API 오류"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "중단됨"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "{minutes}분 전"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "{hours}시간 {minutes}분 전"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "난수 생성기"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "다른 난수 생성"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "통계 기능"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "{functions} 매개변수 계산"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "길찾기"
|
||||
|
||||
|
@ -277,31 +427,28 @@ msgstr "{title} (사용되지 않음)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "이 항목은 다음으로 대체되었습니다"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "채널"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "라디오"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "비트 레이트"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "표"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "clicks"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "언어"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -309,7 +456,7 @@ msgstr ""
|
|||
"{firstCitationVelocityYear}년부터 {lastCitationVelocityYear}년까지의 "
|
||||
"{numCitations}회 인용"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -318,7 +465,7 @@ msgstr ""
|
|||
"이미지 주소를 읽을 수 없습니다. 파일 포맷을 지원하지 않아 발생하는 문제일 수도 있습니다. TinEye는 JPEG, PNG, "
|
||||
"GIF, BMP, TIFF 그리고 WebP 이미지만 지원합니다."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -326,75 +473,59 @@ msgstr ""
|
|||
"이미지가 너무 단순해 일치하는 항목을 찾을 수 없습니다. TinEye가 일치하는 이미지를 성공적으로 식별하기 위해선 최소 수준의 "
|
||||
"시각적 정보가 필요합니다;."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "다운로드할 수 없는 이미지입니다."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "아침"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "정오"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "저녁"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "밤"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "책 평점"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "파일 품질"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "문자열을 다른 해시 다이제스트 값으로 변환합니다."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "해시 다이제스트"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "호스트 이름 변경"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr "결과의 호스트 이름을 재작성하거나 호스트 이름에 따라 결과를 삭제합니다"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "오픈 액세스 DOI 재작성"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
msgstr "가능한 경우 공개 액세스 버전의 출판물로 리디렉션하여 페이월 방지"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "본인 정보"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
msgstr "쿼리가 \"ip\"인 경우 사용자의 IP를 표시하고 쿼리에 \"user agent\"가 포함된 경우 사용자 에이전트를 표시합니다."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Tor 검사 플러그인"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -402,27 +533,27 @@ msgstr ""
|
|||
"이 플러그인은 요청의 주소가 토르 출구 노드 인지 확인하고 사용자에게 check.torproject.org와 같이 "
|
||||
"SearchXNG의 주소인지 알려줍니다."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
msgstr "https://check.torproject.org/exit-addresses 에서 토르 출구 노드를 다운로드 받는데 실패하였습니다"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr "Tor를 사용하고 있고 외부 IP 주소는 {ip_address} 입니다"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Tor를 사용하고 있지 않고 외부 IP 주소가 {ip_address}인 것 같습니다"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "추적기 URL 제거기"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "반환된 URL에서 추적기 매개변수 제거"
|
||||
|
||||
|
@ -439,45 +570,45 @@ msgstr "%(search_page)s로 이동합니다."
|
|||
msgid "search page"
|
||||
msgstr "검색 페이지"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "기부"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "설정"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Powered by"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "개인정보를 존중하는 개방형 메타 검색 엔진"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "소스 코드"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "이슈 트래커"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "검색 엔진 상태"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "공개 인스턴스"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "개인 정보 정책"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "인스턴스 관리자에게 문의"
|
||||
|
||||
|
@ -1588,3 +1719,4 @@ msgstr "비디오 숨기기"
|
|||
#~ "use another query or search in "
|
||||
#~ "more categories."
|
||||
#~ msgstr "검색결과를 찾을 수 없습니다. 다른 검색어로 검색하거나 검색 범주를 추가해주세요."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -11,21 +11,21 @@
|
|||
# return42 <return42@users.noreply.translate.codeberg.org>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-22 07:09+0000\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Lithuanian <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/lt/>\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>"
|
||||
"\n"
|
||||
"Language: lt\n"
|
||||
"Language-Team: Lithuanian "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/lt/>\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100"
|
||||
" < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < "
|
||||
"11) ? 1 : n % 1 != 0 ? 2: 3);\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < "
|
||||
"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 :"
|
||||
" n % 1 != 0 ? 2: 3);\n"
|
||||
"X-Generator: Weblate 5.4.2\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -68,6 +68,16 @@ msgstr "nuotraukos"
|
|||
msgid "videos"
|
||||
msgstr "vaizdo įrašai"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radijas"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -159,116 +169,256 @@ msgid "Uptime"
|
|||
msgstr ""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Apie"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Vakaras"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Rytas"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Naktis"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Vidurdienis"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Elementų nerasta"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Šaltinis"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Klaida keliant kitą puslapį"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Neteisingi nustatymai, pakeiskite savo nuostatas"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Neteisingi nustatymai"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "paieškos klaida"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "laikas baigėsi"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "parsavymo klaida"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "HTTP protokolo klaida"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "tinklo klaida"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL klaida: liudijimo tikrinimas patyrė nesėkmę"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "netikėta klaida"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP klaida"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "HTTP ryšio klaida"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "persiuntimų serverio klaida"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "per daug užklausų"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "prieiga uždrausta"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "serverio API klaida"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Sustabdytas"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "prieš {minutes} min"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "prieš {hours} val., {minutes} min"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Atsitiktinių skaičiu generatorius"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Generuoja įvairias atsitiktinius skaičius"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Statistikos funkcijos"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Skaičiuoti argumentų {functions} funkcijas"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Gauti nurodymus"
|
||||
|
||||
|
@ -280,31 +430,28 @@ msgstr "{title} (PASENĘS)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Šį įrašą pakeitė"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Kanalas"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radijas"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "Bitrate"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "balsai"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "paspaudimai"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Kalba"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -312,7 +459,7 @@ msgstr ""
|
|||
"{numCitations} citatos iš metų{firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -321,7 +468,7 @@ msgstr ""
|
|||
"Nepavyko perskaityti šio vaizdo URL. Taip gali būti dėl nepalaikomo failo"
|
||||
" formato. TinEye palaiko tik JPEG, PNG, GIF, BMP, TIFF arba WebP vaizdus."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -330,57 +477,41 @@ msgstr ""
|
|||
" nustatyti atitikmenis, „TinEye“ reikalingas pagrindinis vizualinių "
|
||||
"detalių lygis."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Nepavyko atsisiųsti vaizdo."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Rytas"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Vidurdienis"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Vakaras"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Naktis"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Knygos įvertinimas"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Failo kokybė"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Konvertuoja eilutes į skirtingas maišos santraukas."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "maišos santrauka"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Kompiuterio pavadinimo pakeitimas"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Perašyti kompiuterio pavadinimo rezultatus arba ištrinti rezultatus pagal"
|
||||
" kompiuterio pavadinimą"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Atvirosios prieigos DOI perrašymas"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -388,11 +519,11 @@ msgstr ""
|
|||
"Vengti apmokamas sienas, peradresuojant į atviros prieigos publikacijų "
|
||||
"versijas"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Savęs informacija"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -400,11 +531,11 @@ msgstr ""
|
|||
"Rodo jūsų IP adresą, jei užklausa yra \"ip\" ir jūsų naudotojo agentą, "
|
||||
"jei užklausoje yra \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "„Tor check“ papildinys"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -413,7 +544,7 @@ msgstr ""
|
|||
" informuoja vartotoją, jei taip yra; kaip check.torproject.org, bet iš "
|
||||
"SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -421,21 +552,21 @@ msgstr ""
|
|||
"Nepavyko atsisiųsti „Tor“ išėjimo mazgų sąrašo iš: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr "Naudojate Tor ir atrodo, kad turite šį išorinį IP adresą: {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Jūs nenaudojate Tor ir turite šį išorinį IP adresą: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Seklių URL šalintojas"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Šalinti seklių argumentus iš grąžinamų URL"
|
||||
|
||||
|
@ -452,45 +583,45 @@ msgstr "Pereiti į %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "paieškos puslapį"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Paaukoti"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Nuostatos"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Veikia su"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "privatumą gerbiantis atviras metapaieškos variklis"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Šaltinio kodas"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Klaidų sekiklis"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Statistika statistika"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Viešos instancijos"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Privatumo politika"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Susisiekite su instancijos prižiūrėtoju"
|
||||
|
||||
|
@ -1749,3 +1880,4 @@ msgstr "slėpti vaizdo įrašą"
|
|||
#~ "mes neradome jokių rezultatų. Naudokite "
|
||||
#~ "kitokią užklausą arba ieškokite kitose "
|
||||
#~ "kategorijose."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -11,18 +11,18 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-12 17:28+0000\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Latvian <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/lv/>\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>"
|
||||
"\n"
|
||||
"Language: lv\n"
|
||||
"Language-Team: Latvian "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/lv/>\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100"
|
||||
" <= 19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= "
|
||||
"19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n"
|
||||
"X-Generator: Weblate 5.4.2\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -65,6 +65,16 @@ msgstr "attēli"
|
|||
msgid "videos"
|
||||
msgstr "video"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -156,116 +166,256 @@ msgid "Uptime"
|
|||
msgstr ""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Par"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Vakara"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Rīts"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Nakts"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Pusdiena"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Nav atrasts neviens vienums"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Avots"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Kļūda lādējot nākošo lapu"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Nepareizi iestatījumi, lūdzu rediģējiet savas preferences"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Nederīgi iestatījumi"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "meklēšanas kļūda"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "noildze"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "parsēšanas kļūda"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "HTTP protokola kļūda"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "tīkla kļūda"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL kļūda: certifikāta validācija neizdevās"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "negaidīta avārija"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP kļūda"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "HTTP savienojuma kļūda"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "starpniekservera kļūda"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "pārāk daudz pieprasījumu"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "piekļuve aizliegta"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "servera API kļūda"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Apturēts"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "pirms {minutes} minūtes(-ēm)"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "pirms {hours} stundas(-ām) un {minutes} minūtēm(-es)"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Nejaušu vērtību ģenerators"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Ģenerēt citas nejaušas vērtības"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Statistikas funkcijas"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Aprēķināt argumentu {functions}"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Saņemt norādījumus"
|
||||
|
||||
|
@ -277,31 +427,28 @@ msgstr "{title} (NOVECOJIS)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Šis ieraksts ir ticis aizstāts ar"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Kanāls"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "bitu pārraide"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "balsis"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "klikšķi"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Valoda"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -309,7 +456,7 @@ msgstr ""
|
|||
"{numCitations} citāti no {firstCitationVelocityYear} līdz "
|
||||
"{lastCitationVelocityYear} gada"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -319,7 +466,7 @@ msgstr ""
|
|||
"formātu. TinEye atbalsta tikai JPEG, PNG, GIF, BMP, TIFF vai WebP "
|
||||
"attēlus."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -327,57 +474,41 @@ msgstr ""
|
|||
"Attēls ir pārāk vienkāršs, lai atrastu atbilstību. Lai veiksmīgi noteiktu"
|
||||
" sakritības, TinEye ir nepieciešams pamata vizuālo detaļu līmenis."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Attēlu neizdevās lejupielādēt."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Rīts"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Pusdiena"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Vakara"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Nakts"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "grāmatu vērtējums"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Failu kvalitāte"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Pārvērš virknes (strings) par dažādiem jaucējkoda īssavilkumiem."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "jaucējkoda sašķelšana"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Resursdatora vārda nomaiņa"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Pārrakstīt rezultātu saimniekvārdus vai noņemt rezultātus, pamatojoties "
|
||||
"uz saimniekvārdu"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Atvērtās piekļuves DOI pārrakstīšana"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -385,11 +516,11 @@ msgstr ""
|
|||
"Izvairieties no maksas sienām, novirzot uz publikāciju atvērtās piekļuves"
|
||||
" versijām, ja tās ir pieejamas"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Informācija par sevi"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -397,37 +528,37 @@ msgstr ""
|
|||
"Tiek parādīts jūsu IP, ja pieprasījums ir \"ip\", un jūsu lietotāja "
|
||||
"aģents, ja pieprasījumā ir \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Pārbaudiet Tor spraudni"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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 ""
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr "Jūs izmantojat TOR un izskatās ka jūsu ārējā IP adrese ir:{ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Izsekošanas URL noņemšanas līdzeklis"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr ""
|
||||
|
||||
|
@ -444,45 +575,45 @@ msgstr "Doties uz %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Ziedo"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Opcijas"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Pirmkods"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Privātuma politika"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1482,3 +1613,4 @@ msgstr "slēpt video"
|
|||
#~ "use another query or search in "
|
||||
#~ "more categories."
|
||||
#~ msgstr ""
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -57,6 +57,16 @@ msgstr ""
|
|||
msgid "videos"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -148,116 +158,256 @@ msgid "Uptime"
|
|||
msgstr ""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr ""
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr ""
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr ""
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr ""
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr ""
|
||||
|
||||
|
@ -269,144 +419,125 @@ msgstr ""
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
" WebP."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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 ""
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr ""
|
||||
|
||||
|
@ -423,45 +554,45 @@ msgstr ""
|
|||
msgid "search page"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -14,17 +14,17 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-12 17:28+0000\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Malay <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/ms/>\n"
|
||||
"Last-Translator: return42 <return42@users.noreply.translate.codeberg.org>"
|
||||
"\n"
|
||||
"Language: ms\n"
|
||||
"Language-Team: Malay "
|
||||
"<https://translate.codeberg.org/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 5.4.2\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -67,6 +67,16 @@ msgstr "gambar-gambar"
|
|||
msgid "videos"
|
||||
msgstr "video"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -158,116 +168,256 @@ msgid "Uptime"
|
|||
msgstr ""
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Tentang"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Petang"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Pagi"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Malam"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Tengah hari"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "barang tidak dijumpai"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Punca"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Gagal memuat turun muka seterusnya"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Kesilapan tetapan, sila ubahsuai pilihan"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Tetapan tidak sah"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "ralat pencarian"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "masa tamat"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "ralat huraian"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "kesilapan protokol HTTP"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "ralat rangkaian"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "RALAT ssl: pengesahan sijil gagal"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "kemalangan tidak dijangka"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "kesilapan HTTP"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "kesilapan sambungan HTTP"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "kesilapan proksi"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "terlalu banyak permintaan"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "akses dinafikan"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "ralat API pelayan"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Digantung"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "{minit} minit yang lalu"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "{jam} jam, {minit} minit yang lalu"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Penjana nombor rawak"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Jana jumlah rawak yang berbeza"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Fungsi statistik"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Dapatkan tunjuk-arah"
|
||||
|
||||
|
@ -279,37 +429,34 @@ msgstr "{title} (USANG)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Kemasukan ini telah diganti oleh"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Saluran"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "undi"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "klik"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Bahasa"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -319,61 +466,45 @@ msgstr ""
|
|||
"yang tidak disokong. TinEye hanya menyokong imeg yang dalam format JPEG, "
|
||||
"PNG, GIF, BMP, TIFF atau WebP."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Imej tidak dapat dimuat turun."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Pagi"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Tengah hari"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Petang"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Malam"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr ""
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Kualiti fail"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Ubah rentetan kepada \"hash digest\" yang berbeza."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Gantikan nama hos"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr "Buat semula keputusan nama hos atau buang keputusan berdasarkan nama hos"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Akses Terbuka DOI tulis-semula"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -381,11 +512,11 @@ msgstr ""
|
|||
"Elakkan paywall dengan mengubahalih kepada penerbitan versi akses-awam "
|
||||
"jika ada"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Maklumat Diri"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -393,17 +524,17 @@ msgstr ""
|
|||
"Memaparkan IP anda jika pertanyaan ialah \"ip\" dan ejen pengguna anda "
|
||||
"jika pertanyaan mengandungi \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Tor semak plugin"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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 ""
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -411,7 +542,7 @@ msgstr ""
|
|||
"Tidak dapat memuat turun senarai nod keluar Tor dari: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
|
@ -419,15 +550,15 @@ msgstr ""
|
|||
"Anda sedang menggunakan Tor dan nampaknya anda mempunyai alamat IP luaran"
|
||||
" ini: {ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Anda tidak mengguna Tor dan ini adalah alamat IP luaran anda: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr ""
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr ""
|
||||
|
||||
|
@ -444,45 +575,45 @@ msgstr "Pergi ke %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "Laman carian"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Derma"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Pilihan"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Didukung oleh"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Kod sumber"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Statistik enjin"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr ""
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Polisi privasi"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1467,3 +1598,4 @@ msgstr "sembunyikkan video"
|
|||
#~ "use another query or search in "
|
||||
#~ "more categories."
|
||||
#~ msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -13,17 +13,16 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-04-07 07:18+0000\n"
|
||||
"Last-Translator: omfj <omfj@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Norwegian Bokmål <https://translate.codeberg.org/projects/"
|
||||
"searxng/searxng/nb_NO/>\n"
|
||||
"Language: nb_NO\n"
|
||||
"Language-Team: Norwegian Bokmål "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/nb_NO/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.4.3\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -66,6 +65,16 @@ msgstr "bilder"
|
|||
msgid "videos"
|
||||
msgstr "videoer"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -157,116 +166,256 @@ msgid "Uptime"
|
|||
msgstr "Oppetid"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Om"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "Kveld"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "Morgen"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "Natt"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "Formiddag"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Fant ingen elementer"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Kilde"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "Det var et problem med lasting av neste side"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Ugyldige innstillinger, rediger dine preferanser"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Ugyldige innstillinger"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "søkefeil"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "tidsavbrudd"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "tolkningsfeil"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "HTTP-protokollfeil"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "nettverksfeil"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "SSL-feil: sertifikat validering mislyktes"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "uventet krasj"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "HTTP-feil"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "HTTP-tilkoblingsfeil"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "mellomtjenerfeil"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "CAPTCHA"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "for mange forespørsler"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "tilgang nektet"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "Tjener-API-feil"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "I hvilemodus"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "for {minutes} minuter siden"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "for {hours} time(r), {minutes} minutt(er) siden"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Generator for tilfeldige tall"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Generer forskjellige tilfeldige verdier"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Statistikkfunksjoner"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Regn ut {functions} av parameterne"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Få veibeskrivelser"
|
||||
|
||||
|
@ -278,31 +427,28 @@ msgstr "{title} (FORELDET)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Denne oppføringen har blitt erstattet av"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Kanal"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "overføringshastighet"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "stemmer"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "klikk"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Språk"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -310,7 +456,7 @@ msgstr ""
|
|||
"{numCitations} sitater fra år {firstCitationVelocityYear} til "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -320,7 +466,7 @@ msgstr ""
|
|||
"som ikke er støttet. TinEye støtter bare JPEG, PNG, GIF, BMP, TIFF eller "
|
||||
"WebP formater."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -328,55 +474,39 @@ msgstr ""
|
|||
"Bildet har for få særskilte detaljer for at TinEye kan finne like eller "
|
||||
"lignende bilder."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "Bildet kunne ikke lastes ned."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "Morgen"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "Formiddag"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "Kveld"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "Natt"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "Bokvurdering"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "Filkvalitet"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Konverterer strenger til andre sjekksumsføljetonger."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "sjekksumsføljetong"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Vertsnavnserstatning"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr "Skriv om vertsnavn eller fjern resultater basert på vertsnavn"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Open Access DOI-omskriving"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -384,11 +514,11 @@ msgstr ""
|
|||
"Tillat betalingsmurer ved å videresende til åpen-tilgang -versjoner av "
|
||||
"publikasjoner når de forefinnes"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Selv informasjon"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -396,11 +526,11 @@ msgstr ""
|
|||
"Viser din IP hvis spørringen er \"ip\" og din brukeragent hvis spørringen"
|
||||
" inneholder \"user agent\"."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Tor sjekk pluggin"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -409,7 +539,7 @@ msgstr ""
|
|||
" og informerer brukeren om den er det; som check.torproject.org, men fra "
|
||||
"SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -417,7 +547,7 @@ msgstr ""
|
|||
"Kunne ikke laste ned listen over Tor-utgangsnoder fra: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
|
@ -425,15 +555,15 @@ msgstr ""
|
|||
"Du bruker Tor og det ser ut som om du har denne eksterne IP adressen: "
|
||||
"{ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Du bruker ikke Tor og du har denne IP adressen: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Sporings-nettadressefjerner"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Fjern sporer-argumenter fra returnert nettadresse"
|
||||
|
||||
|
@ -450,45 +580,45 @@ msgstr "Gå til %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "søkeside"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Doner"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Innstillinger"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Drevet av"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "en åpen metasøkemotor som respekterer personvernet"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Kildekode"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Problemsporer"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Søkemotorstatistikk"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Offentlige instanser"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Personvernerklæring"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Kontakt tilbyderen av instansen"
|
||||
|
||||
|
@ -1130,8 +1260,8 @@ msgid ""
|
|||
"Perform search immediately if a category selected. Disable to select "
|
||||
"multiple categories"
|
||||
msgstr ""
|
||||
"Utfør søk umiddelbart hvis en kategori er valgt. Deaktiver for å velge flere "
|
||||
"kategorier"
|
||||
"Utfør søk umiddelbart hvis en kategori er valgt. Deaktiver for å velge "
|
||||
"flere kategorier"
|
||||
|
||||
#: searx/templates/simple/preferences/theme.html:2
|
||||
msgid "Theme"
|
||||
|
@ -1678,3 +1808,4 @@ msgstr "skjul video"
|
|||
#~ "use another query or search in "
|
||||
#~ "more categories."
|
||||
#~ msgstr "fant ingen resultater. Søk etter noe annet, eller i flere kategorier."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -20,19 +20,18 @@
|
|||
# marcelStangenberger <codeberg@xo.nl>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-02-25 15:26+0000\n"
|
||||
"POT-Creation-Date: 2024-04-26 05:37+0000\n"
|
||||
"PO-Revision-Date: 2024-03-02 14:36+0000\n"
|
||||
"Last-Translator: marcelStangenberger <codeberg@xo.nl>\n"
|
||||
"Language-Team: Dutch <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/nl/>\n"
|
||||
"Language: nl\n"
|
||||
"Language-Team: Dutch "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/nl/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.4\n"
|
||||
"Generated-By: Babel 2.14.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
|
@ -75,6 +74,16 @@ msgstr "afbeeldingen"
|
|||
msgid "videos"
|
||||
msgstr "video’s"
|
||||
|
||||
#. CATEGORY_NAMES['RADIO']
|
||||
#: searx/engines/radio_browser.py:103 searx/searxng.msg
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#. CATEGORY_NAMES['TV']
|
||||
#: searx/searxng.msg
|
||||
msgid "tv"
|
||||
msgstr ""
|
||||
|
||||
#. CATEGORY_NAMES['IT']
|
||||
#: searx/searxng.msg
|
||||
msgid "it"
|
||||
|
@ -166,116 +175,256 @@ msgid "Uptime"
|
|||
msgstr "bedrijfstijd"
|
||||
|
||||
#. BRAND_CUSTOM_LINKS['ABOUT']
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:49
|
||||
#: searx/searxng.msg searx/templates/simple/base.html:50
|
||||
msgid "About"
|
||||
msgstr "Over"
|
||||
|
||||
#: searx/webapp.py:332
|
||||
#. WEATHER_TERMS['AVERAGE TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Average temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CLOUD COVER']
|
||||
#: searx/searxng.msg
|
||||
msgid "Cloud cover"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['CURRENT CONDITION']
|
||||
#: searx/searxng.msg
|
||||
msgid "Current condition"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['EVENING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Evening"
|
||||
msgstr "avond"
|
||||
|
||||
#. WEATHER_TERMS['FEELS LIKE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Feels like"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['HUMIDITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Humidity"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MAX TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Max temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MIN TEMP.']
|
||||
#: searx/searxng.msg
|
||||
msgid "Min temp."
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['MORNING']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Morning"
|
||||
msgstr "ochtend"
|
||||
|
||||
#. WEATHER_TERMS['NIGHT']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Night"
|
||||
msgstr "nacht"
|
||||
|
||||
#. WEATHER_TERMS['NOON']
|
||||
#: searx/engines/wttr.py:100 searx/searxng.msg
|
||||
msgid "Noon"
|
||||
msgstr "'s middags"
|
||||
|
||||
#. WEATHER_TERMS['PRESSURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Pressure"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNRISE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunrise"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['SUNSET']
|
||||
#: searx/searxng.msg
|
||||
msgid "Sunset"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['TEMPERATURE']
|
||||
#: searx/searxng.msg
|
||||
msgid "Temperature"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['UV INDEX']
|
||||
#: searx/searxng.msg
|
||||
msgid "UV index"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['VISIBILITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "Visibility"
|
||||
msgstr ""
|
||||
|
||||
#. WEATHER_TERMS['WIND']
|
||||
#: searx/searxng.msg
|
||||
msgid "Wind"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "subscribers"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POSTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['ACTIVE USERS']
|
||||
#: searx/searxng.msg
|
||||
msgid "active users"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMENTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "comments"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['USER']
|
||||
#: searx/searxng.msg
|
||||
msgid "user"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['COMMUNITY']
|
||||
#: searx/searxng.msg
|
||||
msgid "community"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['POINTS']
|
||||
#: searx/searxng.msg
|
||||
msgid "points"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['TITLE']
|
||||
#: searx/searxng.msg
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
#. SOCIAL_MEDIA_TERMS['AUTHOR']
|
||||
#: searx/searxng.msg
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: searx/webapp.py:330
|
||||
msgid "No item found"
|
||||
msgstr "Er is geen resultaat gevonden"
|
||||
|
||||
#: searx/engines/qwant.py:282
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:334
|
||||
#: searx/engines/qwant.py:281
|
||||
#: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:332
|
||||
msgid "Source"
|
||||
msgstr "Bron"
|
||||
|
||||
#: searx/webapp.py:336
|
||||
#: searx/webapp.py:334
|
||||
msgid "Error loading the next page"
|
||||
msgstr "De volgende pagina kan niet worden geladen"
|
||||
|
||||
#: searx/webapp.py:483 searx/webapp.py:879
|
||||
#: searx/webapp.py:491 searx/webapp.py:887
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "De instellingen zijn ongeldig - werk ze bij"
|
||||
|
||||
#: searx/webapp.py:499
|
||||
#: searx/webapp.py:507
|
||||
msgid "Invalid settings"
|
||||
msgstr "Ongeldige instellingen"
|
||||
|
||||
#: searx/webapp.py:576 searx/webapp.py:658
|
||||
#: searx/webapp.py:584 searx/webapp.py:666
|
||||
msgid "search error"
|
||||
msgstr "zoekfout"
|
||||
|
||||
#: searx/webutils.py:34
|
||||
#: searx/webutils.py:36
|
||||
msgid "timeout"
|
||||
msgstr "verlopen"
|
||||
|
||||
#: searx/webutils.py:35
|
||||
#: searx/webutils.py:37
|
||||
msgid "parsing error"
|
||||
msgstr "verwerkingsfout"
|
||||
|
||||
#: searx/webutils.py:36
|
||||
#: searx/webutils.py:38
|
||||
msgid "HTTP protocol error"
|
||||
msgstr "Http-protocolfout"
|
||||
|
||||
#: searx/webutils.py:37
|
||||
#: searx/webutils.py:39
|
||||
msgid "network error"
|
||||
msgstr "netwerkfout"
|
||||
|
||||
#: searx/webutils.py:38
|
||||
#: searx/webutils.py:40
|
||||
msgid "SSL error: certificate validation has failed"
|
||||
msgstr "Ssl-fout: de certificaatvalidatie is mislukt"
|
||||
|
||||
#: searx/webutils.py:40
|
||||
#: searx/webutils.py:42
|
||||
msgid "unexpected crash"
|
||||
msgstr "onverwachte crash"
|
||||
|
||||
#: searx/webutils.py:47
|
||||
#: searx/webutils.py:49
|
||||
msgid "HTTP error"
|
||||
msgstr "Http-fout"
|
||||
|
||||
#: searx/webutils.py:48
|
||||
#: searx/webutils.py:50
|
||||
msgid "HTTP connection error"
|
||||
msgstr "Http-verbindingsfout"
|
||||
|
||||
#: searx/webutils.py:54
|
||||
#: searx/webutils.py:56
|
||||
msgid "proxy error"
|
||||
msgstr "proxyfout"
|
||||
|
||||
#: searx/webutils.py:55
|
||||
#: searx/webutils.py:57
|
||||
msgid "CAPTCHA"
|
||||
msgstr "Captcha"
|
||||
|
||||
#: searx/webutils.py:56
|
||||
#: searx/webutils.py:58
|
||||
msgid "too many requests"
|
||||
msgstr "teveel verzoeken"
|
||||
|
||||
#: searx/webutils.py:57
|
||||
#: searx/webutils.py:59
|
||||
msgid "access denied"
|
||||
msgstr "toegang geweigerd"
|
||||
|
||||
#: searx/webutils.py:58
|
||||
#: searx/webutils.py:60
|
||||
msgid "server API error"
|
||||
msgstr "server-api-fout"
|
||||
|
||||
#: searx/webutils.py:77
|
||||
#: searx/webutils.py:79
|
||||
msgid "Suspended"
|
||||
msgstr "Geschorst"
|
||||
|
||||
#: searx/webutils.py:315
|
||||
#: searx/webutils.py:314
|
||||
msgid "{minutes} minute(s) ago"
|
||||
msgstr "{minutes} minu(u)t(en) geleden"
|
||||
|
||||
#: searx/webutils.py:316
|
||||
#: searx/webutils.py:315
|
||||
msgid "{hours} hour(s), {minutes} minute(s) ago"
|
||||
msgstr "{hours} uur, {minutes} minu(u)t(en) geleden"
|
||||
|
||||
#: searx/answerers/random/answerer.py:73
|
||||
#: searx/answerers/random/answerer.py:75
|
||||
msgid "Random value generator"
|
||||
msgstr "Willekeurigewaardegenerator"
|
||||
|
||||
#: searx/answerers/random/answerer.py:74
|
||||
#: searx/answerers/random/answerer.py:76
|
||||
msgid "Generate different random values"
|
||||
msgstr "Genereer verschillende willekeurige waarden"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:47
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
msgid "Statistics functions"
|
||||
msgstr "Statistische functies"
|
||||
|
||||
#: searx/answerers/statistics/answerer.py:48
|
||||
#: searx/answerers/statistics/answerer.py:49
|
||||
msgid "Compute {functions} of the arguments"
|
||||
msgstr "Bereken {functions} van de opties"
|
||||
|
||||
#: searx/engines/openstreetmap.py:160
|
||||
#: searx/engines/openstreetmap.py:159
|
||||
msgid "Get directions"
|
||||
msgstr "Routebeschrijving"
|
||||
|
||||
|
@ -287,31 +436,28 @@ msgstr "{title} (VEROUDERD)"
|
|||
msgid "This entry has been superseded by"
|
||||
msgstr "Dit object is overbodig gemaakt door"
|
||||
|
||||
#: searx/engines/qwant.py:284
|
||||
#: searx/engines/qwant.py:283
|
||||
msgid "Channel"
|
||||
msgstr "Kanaal"
|
||||
|
||||
#: searx/engines/radio_browser.py:104
|
||||
msgid "radio"
|
||||
msgstr "radio"
|
||||
|
||||
#: searx/engines/radio_browser.py:106
|
||||
#: searx/engines/radio_browser.py:105
|
||||
msgid "bitrate"
|
||||
msgstr "bitrate"
|
||||
|
||||
#: searx/engines/radio_browser.py:107
|
||||
#: searx/engines/radio_browser.py:106
|
||||
msgid "votes"
|
||||
msgstr "stemmen"
|
||||
|
||||
#: searx/engines/radio_browser.py:108
|
||||
#: searx/engines/radio_browser.py:107
|
||||
msgid "clicks"
|
||||
msgstr "clicks"
|
||||
|
||||
#: searx/engines/seekr.py:194 searx/engines/zlibrary.py:129
|
||||
#: searx/engines/seekr.py:193 searx/engines/yummly.py:71
|
||||
#: searx/engines/zlibrary.py:128
|
||||
msgid "Language"
|
||||
msgstr "Taal"
|
||||
|
||||
#: searx/engines/semantic_scholar.py:79
|
||||
#: searx/engines/semantic_scholar.py:78
|
||||
msgid ""
|
||||
"{numCitations} citations from the year {firstCitationVelocityYear} to "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
@ -319,7 +465,7 @@ msgstr ""
|
|||
"{numCitations} citaties van {firstCitationVelocityYear} tot "
|
||||
"{lastCitationVelocityYear}"
|
||||
|
||||
#: searx/engines/tineye.py:40
|
||||
#: searx/engines/tineye.py:39
|
||||
msgid ""
|
||||
"Could not read that image url. This may be due to an unsupported file "
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
|
@ -329,7 +475,7 @@ msgstr ""
|
|||
"ondersteunde bestandsindeling. TinEye ondersteunt alleen afbeeldingen die"
|
||||
" JPEG, PNG, GIF, BMP, TIFF of WebP zijn."
|
||||
|
||||
#: searx/engines/tineye.py:46
|
||||
#: searx/engines/tineye.py:45
|
||||
msgid ""
|
||||
"The image is too simple to find matches. TinEye requires a basic level of"
|
||||
" visual detail to successfully identify matches."
|
||||
|
@ -338,57 +484,41 @@ msgstr ""
|
|||
" een basisniveau van visuele details om overeenkomsten met succes te "
|
||||
"identificeren."
|
||||
|
||||
#: searx/engines/tineye.py:52
|
||||
#: searx/engines/tineye.py:51
|
||||
msgid "The image could not be downloaded."
|
||||
msgstr "De afbeelding kon niet worden gedownload."
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Morning"
|
||||
msgstr "ochtend"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Noon"
|
||||
msgstr "'s middags"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Evening"
|
||||
msgstr "avond"
|
||||
|
||||
#: searx/engines/wttr.py:101
|
||||
msgid "Night"
|
||||
msgstr "nacht"
|
||||
|
||||
#: searx/engines/zlibrary.py:130
|
||||
#: searx/engines/zlibrary.py:129
|
||||
msgid "Book rating"
|
||||
msgstr "boekbeoordeling"
|
||||
|
||||
#: searx/engines/zlibrary.py:131
|
||||
#: searx/engines/zlibrary.py:130
|
||||
msgid "File quality"
|
||||
msgstr "bestandskwaliteit"
|
||||
|
||||
#: searx/plugins/hash_plugin.py:24
|
||||
#: searx/plugins/hash_plugin.py:10
|
||||
msgid "Converts strings to different hash digests."
|
||||
msgstr "Zet tekstwaarden om naar verschillende hash digests."
|
||||
|
||||
#: searx/plugins/hash_plugin.py:52
|
||||
#: searx/plugins/hash_plugin.py:38
|
||||
msgid "hash digest"
|
||||
msgstr "hash digest"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:9
|
||||
#: searx/plugins/hostname_replace.py:12
|
||||
msgid "Hostname replace"
|
||||
msgstr "Servernaam vervangen"
|
||||
|
||||
#: searx/plugins/hostname_replace.py:10
|
||||
#: searx/plugins/hostname_replace.py:13
|
||||
msgid "Rewrite result hostnames or remove results based on the hostname"
|
||||
msgstr ""
|
||||
"Pas resulterende servernamen aan of verwijder resultaten op basis van de "
|
||||
"servernaam"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:9
|
||||
#: searx/plugins/oa_doi_rewrite.py:12
|
||||
msgid "Open Access DOI rewrite"
|
||||
msgstr "Open Access DOI herschrijven"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:10
|
||||
#: searx/plugins/oa_doi_rewrite.py:13
|
||||
msgid ""
|
||||
"Avoid paywalls by redirecting to open-access versions of publications "
|
||||
"when available"
|
||||
|
@ -396,11 +526,11 @@ msgstr ""
|
|||
"Omzeil betaalmuren met een doorverwijzing naar vrij toegankelijke versies"
|
||||
" van publicaties indien beschikbaar"
|
||||
|
||||
#: searx/plugins/self_info.py:10
|
||||
#: searx/plugins/self_info.py:9
|
||||
msgid "Self Information"
|
||||
msgstr "Informatie Over Jezelf"
|
||||
|
||||
#: searx/plugins/self_info.py:11
|
||||
#: searx/plugins/self_info.py:10
|
||||
msgid ""
|
||||
"Displays your IP if the query is \"ip\" and your user agent if the query "
|
||||
"contains \"user agent\"."
|
||||
|
@ -408,11 +538,11 @@ msgstr ""
|
|||
"Geeft je IP-adres weer als de zoekopdracht ‘ip’ is en je gebruikersagent "
|
||||
"als de zoekopdracht ‘user agent’ bevat."
|
||||
|
||||
#: searx/plugins/tor_check.py:25
|
||||
#: searx/plugins/tor_check.py:24
|
||||
msgid "Tor check plugin"
|
||||
msgstr "Tor controle plug-in"
|
||||
|
||||
#: searx/plugins/tor_check.py:28
|
||||
#: searx/plugins/tor_check.py:27
|
||||
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."
|
||||
|
@ -421,7 +551,7 @@ msgstr ""
|
|||
"is en informeert de gebruiker als dit zo is; net als bij "
|
||||
"check.torproject.org, maar dan van SearXNG."
|
||||
|
||||
#: searx/plugins/tor_check.py:62
|
||||
#: searx/plugins/tor_check.py:61
|
||||
msgid ""
|
||||
"Could not download the list of Tor exit-nodes from: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
@ -429,7 +559,7 @@ msgstr ""
|
|||
"Kan de lijst met Tor exit-nodes niet downloaden van: "
|
||||
"https://check.torproject.org/exit-addresses"
|
||||
|
||||
#: searx/plugins/tor_check.py:78
|
||||
#: searx/plugins/tor_check.py:77
|
||||
msgid ""
|
||||
"You are using Tor and it looks like you have this external IP address: "
|
||||
"{ip_address}"
|
||||
|
@ -437,15 +567,15 @@ msgstr ""
|
|||
"Je gebruikt Tor en het lijkt er op dat dit je externe IP adres is: "
|
||||
"{ip_address}"
|
||||
|
||||
#: searx/plugins/tor_check.py:86
|
||||
#: searx/plugins/tor_check.py:85
|
||||
msgid "You are not using Tor and you have this external IP address: {ip_address}"
|
||||
msgstr "Je maakt geen gebruik van Tor en dit is je externe IP adres: {ip_address}"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:29
|
||||
#: searx/plugins/tracker_url_remover.py:16
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Tracker-URL-verwijderaar"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:30
|
||||
#: searx/plugins/tracker_url_remover.py:17
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
msgstr "Verwijdert trackerargumenten van de gekregen URL"
|
||||
|
||||
|
@ -462,45 +592,45 @@ msgstr "Ga naar %(search_page)s."
|
|||
msgid "search page"
|
||||
msgstr "zoekpagina"
|
||||
|
||||
#: searx/templates/simple/base.html:53
|
||||
#: searx/templates/simple/base.html:54
|
||||
msgid "Donate"
|
||||
msgstr "Doneren"
|
||||
|
||||
#: searx/templates/simple/base.html:57
|
||||
#: searx/templates/simple/base.html:58
|
||||
#: searx/templates/simple/preferences.html:156
|
||||
msgid "Preferences"
|
||||
msgstr "Voorkeuren"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "Powered by"
|
||||
msgstr "Zoekmachine"
|
||||
|
||||
#: searx/templates/simple/base.html:67
|
||||
#: searx/templates/simple/base.html:68
|
||||
msgid "a privacy-respecting, open metasearch engine"
|
||||
msgstr "een privacy respecterende meta zoek machine"
|
||||
|
||||
#: searx/templates/simple/base.html:68
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/result_templates/packages.html:59
|
||||
msgid "Source code"
|
||||
msgstr "Broncode"
|
||||
|
||||
#: searx/templates/simple/base.html:69
|
||||
#: searx/templates/simple/base.html:70
|
||||
msgid "Issue tracker"
|
||||
msgstr "Probleem-tracker"
|
||||
|
||||
#: searx/templates/simple/base.html:70 searx/templates/simple/stats.html:18
|
||||
#: searx/templates/simple/base.html:71 searx/templates/simple/stats.html:18
|
||||
msgid "Engine stats"
|
||||
msgstr "Zoekmachinestatistieken"
|
||||
|
||||
#: searx/templates/simple/base.html:72
|
||||
#: searx/templates/simple/base.html:73
|
||||
msgid "Public instances"
|
||||
msgstr "Openbare instanties"
|
||||
|
||||
#: searx/templates/simple/base.html:75
|
||||
#: searx/templates/simple/base.html:76
|
||||
msgid "Privacy policy"
|
||||
msgstr "Privacybeleid"
|
||||
|
||||
#: searx/templates/simple/base.html:78
|
||||
#: searx/templates/simple/base.html:79
|
||||
msgid "Contact instance maintainer"
|
||||
msgstr "Neem contact op met beheerder instantie"
|
||||
|
||||
|
@ -998,8 +1128,7 @@ msgstr "Kopie instellingen sleutel"
|
|||
|
||||
#: searx/templates/simple/preferences/cookies.html:57
|
||||
msgid "Insert copied preferences hash (without URL) to restore"
|
||||
msgstr ""
|
||||
"Voeg kopie instellingen sleutel (zonder de verwijzing) in om te herstellen"
|
||||
msgstr "Voeg kopie instellingen sleutel (zonder de verwijzing) in om te herstellen"
|
||||
|
||||
#: searx/templates/simple/preferences/cookies.html:59
|
||||
msgid "Preferences hash"
|
||||
|
@ -1795,3 +1924,4 @@ msgstr "verberg video"
|
|||
#~ "We konden geen resultaten vinden. "
|
||||
#~ "Probeer een andere zoekopdracht, of zoek"
|
||||
#~ " in meer categorieën."
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue