Merge remote-tracking branch 'origin/master'

This commit is contained in:
Kang-min Liu 2015-11-14 00:05:44 +01:00
commit ac8759cd3f
73 changed files with 2780 additions and 1334 deletions

View File

@ -1,3 +1,9 @@
sudo: false
cache:
- pip
- npm
- directories:
- $HOME/.cache/pip
language: python
python:
- "2.7"

View File

@ -34,3 +34,7 @@ generally made searx better:
- @opi
- @dimqua
- Giorgos Logiotatidis
- Luc Didry
- Niklas Haas
- @underr
- Emmanuel Benazera

View File

@ -1,3 +1,49 @@
0.8.0 2015.09.08
================
- New engines
- Blekko (image)
- Gigablast (general)
- Spotify (music)
- Swisscows (general, images)
- Qwant (general, images, news, social media)
- Plugin system
- New plugins
- HTTPS rewrite
- Search on cagetory select
- User information
- Tracker url part remover
- Multiple outgoing IP and HTTP/HTTPS proxy support
- New autocompleter: startpage
- New theme: pix-art
- Settings file structure change
- Fabfile, docker deployment
- Optional safesearch result filter
- Force HTTPS in engines if possible
- Disabled HTTP referrer on outgoing links
- Display cookie information
- Prettier search URLs
- Right-to-left text handling in themes
- Translation updates (New locales: Chinese, Hebrew, Portuguese, Romanian)
New dependencies
~~~~~~~~~~~~~~~~
- pyopenssl
- ndg-httpsclient
- pyasn1
- pyasn1-modules
- certifi
News
~~~~
@dalf joined the maintainer "team"
0.7.0 2015.02.03
================

View File

@ -96,7 +96,7 @@ remember 'untested code is broken code'.
Runs robot (Selenium) tests, you must have ``firefox`` installed because
this functional tests actually run the browser and perform operations on
it. Also searx is executed with
`settings\_robot <https://github.com/asciimoo/searx/blob/master/searx/settings_robot.py>`__.
`settings\_robot <https://github.com/asciimoo/searx/blob/master/searx/settings_robot.yml>`__.
``make flake8``
'''''''''''''''

View File

@ -40,7 +40,7 @@ else:
with open(settings_path) as settings_yaml:
settings = load(settings_yaml)
if settings.get('server', {}).get('debug'):
if settings.get('general', {}).get('debug'):
logging.basicConfig(level=logging.DEBUG)
else:
logging.basicConfig(level=logging.WARNING)

View File

@ -29,7 +29,7 @@ from searx.poolrequests import get as http_get
def get(*args, **kwargs):
if 'timeout' not in kwargs:
kwargs['timeout'] = settings['server']['request_timeout']
kwargs['timeout'] = settings['outgoing']['request_timeout']
return http_get(*args, **kwargs)

View File

@ -75,7 +75,7 @@ def load_engine(engine_data):
engine.safesearch = False
if not hasattr(engine, 'timeout'):
engine.timeout = settings['server']['request_timeout']
engine.timeout = settings['outgoing']['request_timeout']
if not hasattr(engine, 'shortcut'):
engine.shortcut = ''

View File

@ -52,7 +52,7 @@ def request(query, params):
def response(resp):
results = []
dom = html.fromstring(resp.content)
dom = html.fromstring(resp.text)
# parse results
for result in dom.xpath('//div[@class="sa_cc"]'):

View File

@ -63,7 +63,7 @@ def request(query, params):
def response(resp):
results = []
dom = html.fromstring(resp.content)
dom = html.fromstring(resp.text)
# init regex for yaml-parsing
p = re.compile('({|,)([a-z]+):(")')

View File

@ -13,6 +13,8 @@
from urllib import urlencode
from cgi import escape
from lxml import etree
from random import randint
from time import time
# engine dependent config
categories = ['general']
@ -21,7 +23,7 @@ number_of_results = 5
# search-url, invalid HTTPS certificate
base_url = 'http://gigablast.com/'
search_string = 'search?{query}&n={number_of_results}&s={offset}&xml=1&qh=0'
search_string = 'search?{query}&n={number_of_results}&s={offset}&xml=1&qh=0&uxid={uxid}&rand={rand}'
# specific xpath variables
results_xpath = '//response//result'
@ -37,7 +39,9 @@ def request(query, params):
search_path = search_string.format(
query=urlencode({'q': query}),
offset=offset,
number_of_results=number_of_results)
number_of_results=number_of_results,
uxid=randint(10000, 10000000),
rand=int(time()))
params['url'] = base_url + search_path

View File

@ -9,11 +9,15 @@
# @parse url, title, content, suggestion
import re
from cgi import escape
from urllib import urlencode
from urlparse import urlparse, parse_qsl
from lxml import html
from lxml import html, etree
from searx.poolrequests import get
from searx.engines.xpath import extract_text, extract_url
from searx.search import logger
logger = logger.getChild('google engine')
# engine dependent config
@ -167,7 +171,7 @@ def parse_url(url_string, google_hostname):
def extract_text_from_dom(result, xpath):
r = result.xpath(xpath)
if len(r) > 0:
return extract_text(r[0])
return escape(extract_text(r[0]))
return None
@ -224,8 +228,8 @@ def response(resp):
# parse results
for result in dom.xpath(results_xpath):
title = extract_text(result.xpath(title_xpath)[0])
try:
title = extract_text(result.xpath(title_xpath)[0])
url = parse_url(extract_url(result.xpath(url_xpath), google_url), google_hostname)
parsed_url = urlparse(url, google_hostname)
@ -268,12 +272,13 @@ def response(resp):
'content': content
})
except:
logger.debug('result parse error in:\n%s', etree.tostring(result, pretty_print=True))
continue
# parse suggestion
for suggestion in dom.xpath(suggestion_xpath):
# append suggestion
results.append({'suggestion': extract_text(suggestion)})
results.append({'suggestion': escape(extract_text(suggestion))})
# return results
return results

View File

@ -20,7 +20,7 @@ categories = ['videos', 'music', 'files']
paging = True
# search-url
url = 'https://thepiratebay.am/'
url = 'https://thepiratebay.se/'
search_url = url + 'search/{search_term}/{pageno}/99/{search_type}'
# piratebay specific type-definitions

View File

@ -34,6 +34,11 @@ def request(query, params):
params['url'] = search_url.format(query=urlencode({'q': query}),
pageno=params['pageno']-1)
# Disable SSL verification
# error: (60) SSL certificate problem: unable to get local issuer
# certificate
params['verify'] = False
return params

View File

@ -27,6 +27,11 @@ def request(query, params):
params['url'] = search_url.format(query=urlencode({'q': query}),
pageno=params['pageno']-1)
# Disable SSL verification
# error: (60) SSL certificate problem: unable to get local issuer
# certificate
params['verify'] = False
return params

View File

@ -12,6 +12,8 @@
from lxml import html
from cgi import escape
from dateutil import parser
from datetime import datetime, timedelta
import re
from searx.engines.xpath import extract_text
@ -66,16 +68,53 @@ def response(resp):
url = link.attrib.get('href')
# block google-ad url's
if re.match("^http(s|)://www.google.[a-z]+/aclk.*$", url):
if re.match("^http(s|)://(www\.)?google\.[a-z]+/aclk.*$", url):
continue
# block startpage search url's
if re.match("^http(s|)://(www\.)?startpage\.com/do/search\?.*$", url):
continue
# block ixquick search url's
if re.match("^http(s|)://(www\.)?ixquick\.com/do/search\?.*$", url):
continue
title = escape(extract_text(link))
if result.xpath('./p[@class="desc"]'):
content = escape(extract_text(result.xpath('./p[@class="desc"]')))
if result.xpath('./p[@class="desc clk"]'):
content = escape(extract_text(result.xpath('./p[@class="desc clk"]')))
else:
content = ''
published_date = None
# check if search result starts with something like: "2 Sep 2014 ... "
if re.match("^([1-9]|[1-2][0-9]|3[0-1]) [A-Z][a-z]{2} [0-9]{4} \.\.\. ", content):
date_pos = content.find('...')+4
date_string = content[0:date_pos-5]
published_date = parser.parse(date_string, dayfirst=True)
# fix content string
content = content[date_pos:]
# check if search result starts with something like: "5 days ago ... "
elif re.match("^[0-9]+ days? ago \.\.\. ", content):
date_pos = content.find('...')+4
date_string = content[0:date_pos-5]
# calculate datetime
published_date = datetime.now() - timedelta(days=int(re.match(r'\d+', date_string).group()))
# fix content string
content = content[date_pos:]
if published_date:
# append result
results.append({'url': url,
'title': title,
'content': content,
'publishedDate': published_date})
else:
# append result
results.append({'url': url,
'title': title,

View File

@ -55,10 +55,14 @@ def response(resp):
# parse results
for tweet in dom.xpath(results_xpath):
try:
link = tweet.xpath(link_xpath)[0]
content = extract_text(tweet.xpath(content_xpath)[0])
except Exception:
continue
url = urljoin(base_url, link.attrib.get('href'))
title = extract_text(tweet.xpath(title_xpath))
content = extract_text(tweet.xpath(content_xpath)[0])
pubdate = tweet.xpath(timestamp_xpath)
if len(pubdate) > 0:

View File

@ -1,8 +1,15 @@
import json
from urllib import urlencode
from searx import logger
from searx.poolrequests import get
from searx.utils import format_date_by_locale
from datetime import datetime
from dateutil.parser import parse as dateutil_parse
from urllib import urlencode
logger = logger.getChild('wikidata')
result_count = 1
wikidata_host = 'https://www.wikidata.org'
wikidata_api = wikidata_host + '/w/api.php'
@ -164,14 +171,12 @@ def getDetail(jsonresponse, wikidata_id, language, locale):
if postal_code is not None:
attributes.append({'label': 'Postal code(s)', 'value': postal_code})
date_of_birth = get_time(claims, 'P569', None)
date_of_birth = get_time(claims, 'P569', locale, None)
if date_of_birth is not None:
date_of_birth = format_date_by_locale(date_of_birth[8:], locale)
attributes.append({'label': 'Date of birth', 'value': date_of_birth})
date_of_death = get_time(claims, 'P570', None)
date_of_death = get_time(claims, 'P570', locale, None)
if date_of_death is not None:
date_of_death = format_date_by_locale(date_of_death[8:], locale)
attributes.append({'label': 'Date of death', 'value': date_of_death})
if len(attributes) == 0 and len(urls) == 2 and len(description) == 0:
@ -229,7 +234,7 @@ def get_string(claims, propertyName, defaultValue=None):
return result[0]
def get_time(claims, propertyName, defaultValue=None):
def get_time(claims, propertyName, locale, defaultValue=None):
propValue = claims.get(propertyName, {})
if len(propValue) == 0:
return defaultValue
@ -244,9 +249,22 @@ def get_time(claims, propertyName, defaultValue=None):
result.append(value.get('time', ''))
if len(result) == 0:
return defaultValue
date_string = defaultValue
else:
return ', '.join(result)
date_string = ', '.join(result)
try:
parsed_date = datetime.strptime(date_string, "+%Y-%m-%dT%H:%M:%SZ")
except:
if date_string.startswith('-'):
return date_string.split('T')[0]
try:
parsed_date = dateutil_parse(date_string, fuzzy=False, default=False)
except:
logger.debug('could not parse date %s', date_string)
return date_string.split('T')[0]
return format_date_by_locale(parsed_date, locale)
def get_geolink(claims, propertyName, defaultValue=''):

62
searx/engines/yandex.py Normal file
View File

@ -0,0 +1,62 @@
"""
Yahoo (Web)
@website https://yandex.ru/
@provide-api ?
@using-api no
@results HTML (using search portal)
@stable no (HTML can change)
@parse url, title, content
"""
from urllib import urlencode
from lxml import html
from searx.search import logger
logger = logger.getChild('yandex engine')
# engine dependent config
categories = ['general']
paging = True
language_support = True # TODO
default_tld = 'com'
language_map = {'ru': 'ru',
'ua': 'uk',
'tr': 'com.tr'}
# search-url
base_url = 'https://yandex.{tld}/'
search_url = 'search/?{query}&p={page}'
results_xpath = '//div[@class="serp-item serp-item_plain_yes clearfix i-bem"]'
url_xpath = './/h2/a/@href'
title_xpath = './/h2/a//text()'
content_xpath = './/div[@class="serp-item__text"]//text()'
def request(query, params):
lang = params['language'].split('_')[0]
host = base_url.format(tld=language_map.get(lang) or default_tld)
params['url'] = host + search_url.format(page=params['pageno']-1,
query=urlencode({'text': query}))
return params
# get response from search-request
def response(resp):
dom = html.fromstring(resp.text)
results = []
for result in dom.xpath(results_xpath):
try:
res = {'url': result.xpath(url_xpath)[0],
'title': ''.join(result.xpath(title_xpath)),
'content': ''.join(result.xpath(content_xpath))}
except:
logger.exception('yandex parse crash')
continue
results.append(res)
return results

View File

@ -1,93 +0,0 @@
# Youtube (Videos)
#
# @website https://www.youtube.com/
# @provide-api yes (http://gdata-samples-youtube-search-py.appspot.com/)
#
# @using-api yes
# @results JSON
# @stable yes
# @parse url, title, content, publishedDate, thumbnail, embedded
from json import loads
from urllib import urlencode
from dateutil import parser
# engine dependent config
categories = ['videos', 'music']
paging = True
language_support = True
# search-url
base_url = 'https://gdata.youtube.com/feeds/api/videos'
search_url = base_url + '?alt=json&{query}&start-index={index}&max-results=5'
embedded_url = '<iframe width="540" height="304" ' +\
'data-src="//www.youtube-nocookie.com/embed/{videoid}" ' +\
'frameborder="0" allowfullscreen></iframe>'
# do search-request
def request(query, params):
index = (params['pageno'] - 1) * 5 + 1
params['url'] = search_url.format(query=urlencode({'q': query}),
index=index)
# add language tag if specified
if params['language'] != 'all':
params['url'] += '&lr=' + params['language'].split('_')[0]
return params
# get response from search-request
def response(resp):
results = []
search_results = loads(resp.text)
# return empty array if there are no results
if 'feed' not in search_results:
return []
feed = search_results['feed']
# parse results
for result in feed['entry']:
url = [x['href'] for x in result['link'] if x['type'] == 'text/html']
if not url:
continue
# remove tracking
url = url[0].replace('feature=youtube_gdata', '')
if url.endswith('&'):
url = url[:-1]
videoid = url[32:]
title = result['title']['$t']
content = ''
thumbnail = ''
pubdate = result['published']['$t']
publishedDate = parser.parse(pubdate)
if 'media$thumbnail' in result['media$group']:
thumbnail = result['media$group']['media$thumbnail'][0]['url']
content = result['content']['$t']
embedded = embedded_url.format(videoid=videoid)
# append result
results.append({'url': url,
'title': title,
'content': content,
'template': 'videos.html',
'publishedDate': publishedDate,
'embedded': embedded,
'thumbnail': thumbnail})
# return results
return results

View File

@ -35,10 +35,10 @@ def post_search(request, ctx):
ip = x_forwarded_for[0]
else:
ip = request.remote_addr
ctx['search'].answers.clear()
ctx['search'].answers.add(ip)
ctx['search'].result_container.answers.clear()
ctx['search'].result_container.answers.add(ip)
elif p.match(ctx['search'].query):
ua = request.user_agent
ctx['search'].answers.clear()
ctx['search'].answers.add(ua)
ctx['search'].result_container.answers.clear()
ctx['search'].result_container.answers.add(ua)
return True

View File

@ -1,5 +1,7 @@
import requests
from itertools import cycle
from threading import RLock
from searx import settings
@ -39,11 +41,11 @@ class HTTPAdapterWithConnParams(requests.adapters.HTTPAdapter):
block=self._pool_block, **self._conn_params)
if settings.get('source_ips'):
if settings['outgoing'].get('source_ips'):
http_adapters = cycle(HTTPAdapterWithConnParams(pool_connections=100, source_address=(source_ip, 0))
for source_ip in settings['source_ips'])
for source_ip in settings['outgoing']['source_ips'])
https_adapters = cycle(HTTPAdapterWithConnParams(pool_connections=100, source_address=(source_ip, 0))
for source_ip in settings['source_ips'])
for source_ip in settings['outgoing']['source_ips'])
else:
http_adapters = cycle((HTTPAdapterWithConnParams(pool_connections=100), ))
https_adapters = cycle((HTTPAdapterWithConnParams(pool_connections=100), ))
@ -55,6 +57,7 @@ class SessionSinglePool(requests.Session):
super(SessionSinglePool, self).__init__()
# reuse the same adapters
with RLock():
self.adapters.clear()
self.mount('https://', next(https_adapters))
self.mount('http://', next(http_adapters))
@ -67,9 +70,8 @@ class SessionSinglePool(requests.Session):
def request(method, url, **kwargs):
"""same as requests/requests/api.py request(...) except it use SessionSinglePool and force proxies"""
global settings
session = SessionSinglePool()
kwargs['proxies'] = settings.get('outgoing_proxies', None)
kwargs['proxies'] = settings['outgoing'].get('proxies', None)
response = session.request(method=method, url=url, **kwargs)
session.close()
return response

239
searx/results.py Normal file
View File

@ -0,0 +1,239 @@
import re
from collections import defaultdict
from operator import itemgetter
from threading import RLock
from urlparse import urlparse, unquote
from searx.engines import engines
CONTENT_LEN_IGNORED_CHARS_REGEX = re.compile('[,;:!?\./\\\\ ()-_]', re.M | re.U)
WHITESPACE_REGEX = re.compile('( |\t|\n)+', re.M | re.U)
# return the meaningful length of the content for a result
def result_content_len(content):
if isinstance(content, basestring):
return len(CONTENT_LEN_IGNORED_CHARS_REGEX.sub('', content))
else:
return 0
def compare_urls(url_a, url_b):
if url_a.netloc != url_b.netloc or url_a.query != url_b.query:
return False
# remove / from the end of the url if required
path_a = url_a.path[:-1]\
if url_a.path.endswith('/')\
else url_a.path
path_b = url_b.path[:-1]\
if url_b.path.endswith('/')\
else url_b.path
return unquote(path_a) == unquote(path_b)
def merge_two_infoboxes(infobox1, infobox2):
if 'urls' in infobox2:
urls1 = infobox1.get('urls', None)
if urls1 is None:
urls1 = []
infobox1.set('urls', urls1)
urlSet = set()
for url in infobox1.get('urls', []):
urlSet.add(url.get('url', None))
for url in infobox2.get('urls', []):
if url.get('url', None) not in urlSet:
urls1.append(url)
if 'attributes' in infobox2:
attributes1 = infobox1.get('attributes', None)
if attributes1 is None:
attributes1 = []
infobox1.set('attributes', attributes1)
attributeSet = set()
for attribute in infobox1.get('attributes', []):
if attribute.get('label', None) not in attributeSet:
attributeSet.add(attribute.get('label', None))
for attribute in infobox2.get('attributes', []):
attributes1.append(attribute)
if 'content' in infobox2:
content1 = infobox1.get('content', None)
content2 = infobox2.get('content', '')
if content1 is not None:
if result_content_len(content2) > result_content_len(content1):
infobox1['content'] = content2
else:
infobox1.set('content', content2)
def result_score(result):
weight = 1.0
for result_engine in result['engines']:
if hasattr(engines[result_engine], 'weight'):
weight *= float(engines[result_engine].weight)
occurences = len(result['positions'])
return sum((occurences * weight) / position for position in result['positions'])
class ResultContainer(object):
"""docstring for ResultContainer"""
def __init__(self):
super(ResultContainer, self).__init__()
self.results = defaultdict(list)
self._merged_results = []
self.infoboxes = []
self._infobox_ids = {}
self.suggestions = set()
self.answers = set()
def extend(self, engine_name, results):
for result in list(results):
if 'suggestion' in result:
self.suggestions.add(result['suggestion'])
results.remove(result)
elif 'answer' in result:
self.answers.add(result['answer'])
results.remove(result)
elif 'infobox' in result:
self._merge_infobox(result)
results.remove(result)
with RLock():
engines[engine_name].stats['search_count'] += 1
engines[engine_name].stats['result_count'] += len(results)
if not results:
return
self.results[engine_name].extend(results)
for i, result in enumerate(results):
position = i + 1
self._merge_result(result, position)
def _merge_infobox(self, infobox):
add_infobox = True
infobox_id = infobox.get('id', None)
if infobox_id is not None:
existingIndex = self._infobox_ids.get(infobox_id, None)
if existingIndex is not None:
merge_two_infoboxes(self.infoboxes[existingIndex], infobox)
add_infobox = False
if add_infobox:
self.infoboxes.append(infobox)
self._infobox_ids[infobox_id] = len(self.infoboxes) - 1
def _merge_result(self, result, position):
result['parsed_url'] = urlparse(result['url'])
# if the result has no scheme, use http as default
if not result['parsed_url'].scheme:
result['parsed_url'] = result['parsed_url']._replace(scheme="http")
result['host'] = result['parsed_url'].netloc
if result['host'].startswith('www.'):
result['host'] = result['host'].replace('www.', '', 1)
result['engines'] = [result['engine']]
# strip multiple spaces and cariage returns from content
if result.get('content'):
result['content'] = WHITESPACE_REGEX.sub(' ', result['content'])
# check for duplicates
duplicated = False
for merged_result in self._merged_results:
if compare_urls(result['parsed_url'], merged_result['parsed_url'])\
and result.get('template') == merged_result.get('template'):
duplicated = merged_result
break
# merge duplicates together
if duplicated:
# using content with more text
if result_content_len(result.get('content', '')) >\
result_content_len(duplicated.get('content', '')):
duplicated['content'] = result['content']
# add the new position
duplicated['positions'].append(position)
# add engine to list of result-engines
duplicated['engines'].append(result['engine'])
# using https if possible
if duplicated['parsed_url'].scheme != 'https' and result['parsed_url'].scheme == 'https':
duplicated['url'] = result['parsed_url'].geturl()
duplicated['parsed_url'] = result['parsed_url']
# if there is no duplicate found, append result
else:
result['positions'] = [position]
with RLock():
self._merged_results.append(result)
def get_ordered_results(self):
for result in self._merged_results:
score = result_score(result)
result['score'] = score
with RLock():
for result_engine in result['engines']:
engines[result_engine].stats['score_count'] += score
results = sorted(self._merged_results, key=itemgetter('score'), reverse=True)
# pass 2 : group results by category and template
gresults = []
categoryPositions = {}
for i, res in enumerate(results):
# FIXME : handle more than one category per engine
category = engines[res['engine']].categories[0] + ':' + ''\
if 'template' not in res\
else res['template']
current = None if category not in categoryPositions\
else categoryPositions[category]
# group with previous results using the same category
# if the group can accept more result and is not too far
# from the current position
if current is not None and (current['count'] > 0)\
and (len(gresults) - current['index'] < 20):
# group with the previous results using
# the same category with this one
index = current['index']
gresults.insert(index, res)
# update every index after the current one
# (including the current one)
for k in categoryPositions:
v = categoryPositions[k]['index']
if v >= index:
categoryPositions[k]['index'] = v + 1
# update this category
current['count'] -= 1
else:
# same category
gresults.append(res)
# update categoryIndex
categoryPositions[category] = {'index': len(gresults), 'count': 8}
# return gresults
return gresults
def results_length(self):
return len(self._merged_results)

View File

@ -16,19 +16,16 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
'''
import threading
import re
import searx.poolrequests as requests_lib
from itertools import izip_longest, chain
from operator import itemgetter
from Queue import Queue
from time import time
from urlparse import urlparse, unquote
from searx import settings
from searx.engines import (
categories, engines
)
from searx.languages import language_codes
from searx.utils import gen_useragent, get_blocked_engines
from searx.query import Query
from searx.results import ResultContainer
from searx import logger
logger = logger.getChild('search')
@ -41,6 +38,7 @@ def search_request_wrapper(fn, url, engine_name, **kwargs):
return fn(url, **kwargs)
except:
# increase errors stats
with threading.RLock():
engines[engine_name].stats['errors'] += 1
# print engine name and specific error message
@ -83,7 +81,7 @@ def default_request_params():
# create a callback wrapper for the search engine results
def make_callback(engine_name, results_queue, callback, params):
def make_callback(engine_name, callback, params, result_container):
# creating a callback wrapper for the search engine results
def process_callback(response, **kwargs):
@ -95,11 +93,16 @@ def make_callback(engine_name, results_queue, callback, params):
response.search_params = params
timeout_overhead = 0.2 # seconds
search_duration = time() - params['started']
# update stats with current page-load-time
with threading.RLock():
engines[engine_name].stats['page_load_time'] += search_duration
timeout_overhead = 0.2 # seconds
timeout_limit = engines[engine_name].timeout + timeout_overhead
if search_duration > timeout_limit:
engines[engine_name].stats['page_load_time'] += timeout_limit
with threading.RLock():
engines[engine_name].stats['errors'] += 1
return
@ -110,207 +113,11 @@ def make_callback(engine_name, results_queue, callback, params):
for result in search_results:
result['engine'] = engine_name
results_queue.put_nowait((engine_name, search_results))
# update stats with current page-load-time
engines[engine_name].stats['page_load_time'] += search_duration
result_container.extend(engine_name, search_results)
return process_callback
# return the meaningful length of the content for a result
def content_result_len(content):
if isinstance(content, basestring):
content = re.sub('[,;:!?\./\\\\ ()-_]', '', content)
return len(content)
else:
return 0
# score results and remove duplications
def score_results(results):
# calculate scoring parameters
flat_res = filter(
None, chain.from_iterable(izip_longest(*results.values())))
flat_len = len(flat_res)
engines_len = len(results)
results = []
# pass 1: deduplication + scoring
for i, res in enumerate(flat_res):
res['parsed_url'] = urlparse(res['url'])
res['host'] = res['parsed_url'].netloc
if res['host'].startswith('www.'):
res['host'] = res['host'].replace('www.', '', 1)
res['engines'] = [res['engine']]
weight = 1.0
# strip multiple spaces and cariage returns from content
if res.get('content'):
res['content'] = re.sub(' +', ' ',
res['content'].strip().replace('\n', ''))
# get weight of this engine if possible
if hasattr(engines[res['engine']], 'weight'):
weight = float(engines[res['engine']].weight)
# calculate score for that engine
score = int((flat_len - i) / engines_len) * weight + 1
# check for duplicates
duplicated = False
for new_res in results:
# remove / from the end of the url if required
p1 = res['parsed_url'].path[:-1]\
if res['parsed_url'].path.endswith('/')\
else res['parsed_url'].path
p2 = new_res['parsed_url'].path[:-1]\
if new_res['parsed_url'].path.endswith('/')\
else new_res['parsed_url'].path
# check if that result is a duplicate
if res['host'] == new_res['host'] and\
unquote(p1) == unquote(p2) and\
res['parsed_url'].query == new_res['parsed_url'].query and\
res.get('template') == new_res.get('template'):
duplicated = new_res
break
# merge duplicates together
if duplicated:
# using content with more text
if content_result_len(res.get('content', '')) >\
content_result_len(duplicated.get('content', '')):
duplicated['content'] = res['content']
# increase result-score
duplicated['score'] += score
# add engine to list of result-engines
duplicated['engines'].append(res['engine'])
# using https if possible
if duplicated['parsed_url'].scheme == 'https':
continue
elif res['parsed_url'].scheme == 'https':
duplicated['url'] = res['parsed_url'].geturl()
duplicated['parsed_url'] = res['parsed_url']
# if there is no duplicate found, append result
else:
res['score'] = score
results.append(res)
results = sorted(results, key=itemgetter('score'), reverse=True)
# pass 2 : group results by category and template
gresults = []
categoryPositions = {}
for i, res in enumerate(results):
# FIXME : handle more than one category per engine
category = engines[res['engine']].categories[0] + ':' + ''\
if 'template' not in res\
else res['template']
current = None if category not in categoryPositions\
else categoryPositions[category]
# group with previous results using the same category
# if the group can accept more result and is not too far
# from the current position
if current is not None and (current['count'] > 0)\
and (len(gresults) - current['index'] < 20):
# group with the previous results using
# the same category with this one
index = current['index']
gresults.insert(index, res)
# update every index after the current one
# (including the current one)
for k in categoryPositions:
v = categoryPositions[k]['index']
if v >= index:
categoryPositions[k]['index'] = v + 1
# update this category
current['count'] -= 1
else:
# same category
gresults.append(res)
# update categoryIndex
categoryPositions[category] = {'index': len(gresults), 'count': 8}
# return gresults
return gresults
def merge_two_infoboxes(infobox1, infobox2):
if 'urls' in infobox2:
urls1 = infobox1.get('urls', None)
if urls1 is None:
urls1 = []
infobox1.set('urls', urls1)
urlSet = set()
for url in infobox1.get('urls', []):
urlSet.add(url.get('url', None))
for url in infobox2.get('urls', []):
if url.get('url', None) not in urlSet:
urls1.append(url)
if 'attributes' in infobox2:
attributes1 = infobox1.get('attributes', None)
if attributes1 is None:
attributes1 = []
infobox1.set('attributes', attributes1)
attributeSet = set()
for attribute in infobox1.get('attributes', []):
if attribute.get('label', None) not in attributeSet:
attributeSet.add(attribute.get('label', None))
for attribute in infobox2.get('attributes', []):
attributes1.append(attribute)
if 'content' in infobox2:
content1 = infobox1.get('content', None)
content2 = infobox2.get('content', '')
if content1 is not None:
if content_result_len(content2) > content_result_len(content1):
infobox1['content'] = content2
else:
infobox1.set('content', content2)
def merge_infoboxes(infoboxes):
results = []
infoboxes_id = {}
for infobox in infoboxes:
add_infobox = True
infobox_id = infobox.get('id', None)
if infobox_id is not None:
existingIndex = infoboxes_id.get(infobox_id, None)
if existingIndex is not None:
merge_two_infoboxes(results[existingIndex], infobox)
add_infobox = False
if add_infobox:
results.append(infobox)
infoboxes_id[infobox_id] = len(results) - 1
return results
class Search(object):
"""Search information container"""
@ -328,10 +135,7 @@ class Search(object):
# set blocked engines
self.blocked_engines = get_blocked_engines(engines, request.cookies)
self.results = []
self.suggestions = set()
self.answers = set()
self.infoboxes = []
self.result_container = ResultContainer()
self.request_data = {}
# set specific language if set
@ -386,11 +190,11 @@ class Search(object):
load_default_categories = True
for pd_name, pd in self.request_data.items():
if pd_name == 'categories':
self.categories.extend(categ.strip() for categ in pd.split(',') if categ in categories)
self.categories.extend(categ for categ in map(unicode.strip, pd.split(',')) if categ in categories)
elif pd_name == 'engines':
pd_engines = [{'category': engines[engine].categories[0],
'name': engine}
for engine in map(str.strip, pd.split(',')) if engine in engines]
for engine in map(unicode.strip, pd.split(',')) if engine in engines]
if pd_engines:
self.engines.extend(pd_engines)
load_default_categories = False
@ -409,6 +213,9 @@ class Search(object):
self.categories.remove(category)
if not load_default_categories:
if not self.categories:
self.categories = list(set(engine['category']
for engine in self.engines))
return
# if no category is specified for this search,
@ -440,8 +247,6 @@ class Search(object):
# init vars
requests = []
results_queue = Queue()
results = {}
# increase number of searches
number_of_searches += 1
@ -473,16 +278,16 @@ class Search(object):
request_params['started'] = time()
request_params['pageno'] = self.pageno
if hasattr(engine, 'language'):
if hasattr(engine, 'language') and engine.language:
request_params['language'] = engine.language
else:
request_params['language'] = self.lang
try:
# 0 = None, 1 = Moderate, 2 = Strict
request_params['safesearch'] = int(request.cookies.get('safesearch', 1))
except ValueError:
request_params['safesearch'] = 1
request_params['safesearch'] = int(request.cookies.get('safesearch'))
except Exception:
request_params['safesearch'] = settings['search']['safe_search']
# update request parameters dependent on
# search-engine (contained in engines folder)
@ -495,9 +300,9 @@ class Search(object):
# create a callback wrapper for the search engine results
callback = make_callback(
selected_engine['name'],
results_queue,
engine.response,
request_params)
request_params,
self.result_container)
# create dictionary which contain all
# informations about the request
@ -530,42 +335,5 @@ class Search(object):
# send all search-request
threaded_requests(requests)
while not results_queue.empty():
engine_name, engine_results = results_queue.get_nowait()
# TODO type checks
[self.suggestions.add(x['suggestion'])
for x in list(engine_results)
if 'suggestion' in x
and engine_results.remove(x) is None]
[self.answers.add(x['answer'])
for x in list(engine_results)
if 'answer' in x
and engine_results.remove(x) is None]
self.infoboxes.extend(x for x in list(engine_results)
if 'infobox' in x
and engine_results.remove(x) is None)
results[engine_name] = engine_results
# update engine-specific stats
for engine_name, engine_results in results.items():
engines[engine_name].stats['search_count'] += 1
engines[engine_name].stats['result_count'] += len(engine_results)
# score results and remove duplications
self.results = score_results(results)
# merge infoboxes according to their ids
self.infoboxes = merge_infoboxes(self.infoboxes)
# update engine stats, using calculated score
for result in self.results:
for res_engine in result['engines']:
engines[result['engine']]\
.stats['score_count'] += result['score']
# return results, suggestions, answers and infoboxes
return self

View File

@ -1,25 +1,34 @@
general:
debug : False # Debug mode, only for development
search:
safe_search : 0 # Filter results. 0: None, 1: Moderate, 2: Strict
autocomplete : "" # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "startpage", "wikipedia" - leave blank to turn it off by default
server:
port : 8888
bind_address : "127.0.0.1" # address to listen on
secret_key : "ultrasecretkey" # change this!
debug : False # Debug mode, only for development
request_timeout : 2.0 # seconds
base_url : False # Set custom base_url. Possible values: False or "https://your.custom.host/location/"
image_proxy : False # Proxying image results through searx
ui:
themes_path : "" # Custom ui themes path - leave it blank if you didn't change
default_theme : oscar # ui theme
useragent_suffix : "" # suffix of searx_useragent, could contain informations like an email address to the administrator
image_proxy : False # Proxying image results through searx
default_locale : "" # Default interface locale - leave blank to detect from browser information or use codes from the 'locales' config section
outgoing: # communication with search engines
request_timeout : 2.0 # seconds
useragent_suffix : "" # suffix of searx_useragent, could contain informations like an email address to the administrator
# uncomment below section if you want to use a proxy
# see http://docs.python-requests.org/en/latest/user/advanced/#proxies
# SOCKS proxies are not supported : see https://github.com/kennethreitz/requests/pull/478
#outgoing_proxies :
# proxies :
# http : http://127.0.0.1:8080
# https: http://127.0.0.1:8080
# uncomment below section only if you have more than one network interface
# which can be the source of outgoing search requests
#source_ips:
# source_ips:
# - 1.1.1.1
# - 1.1.1.2
@ -265,6 +274,11 @@ engines:
engine : yahoo
shortcut : yh
- name : yandex
engine : yandex
shortcut : yn
disabled : True
- name : yahoo news
engine : yahoo_news
shortcut : yhn
@ -310,6 +324,7 @@ locales:
nl : Nederlands
ja : 日本語 (Japanese)
tr : Türkçe
pt: Português
pt : Português
ru : Russian
ro : Romanian
zh : 中文 (Chinese)

View File

@ -1,13 +1,25 @@
general:
debug : False
search:
safe_search : 0
autocomplete : 0
server:
port : 11111
bind_address : 127.0.0.1
secret_key : "ultrasecretkey" # change this!
debug : False
request_timeout : 3.0 # seconds
base_url: False
base_url : False
image_proxy : False
ui:
themes_path : ""
default_theme : default
https_rewrite : True
image_proxy : False
default_locale : ""
outgoing:
request_timeout : 1.0 # seconds
useragent_suffix : ""
engines:
- name : general_dummy

View File

@ -1 +1,88 @@
html{position:relative;min-height:100%}body{margin-bottom:80px}.footer{position:absolute;bottom:0;width:100%;height:60px}input[type=checkbox]:checked+.label_hide_if_checked,input[type=checkbox]:checked+.label_hide_if_not_checked+.label_hide_if_checked{display:none}input[type=checkbox]:not(:checked)+.label_hide_if_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_checked+.label_hide_if_not_checked{display:none}.result_header{margin-bottom:5px;margin-top:20px}.result_header .favicon{margin-bottom:-3px}.result_header a{vertical-align:bottom}.result_header a .highlight{font-weight:bold}.result-content{margin-top:5px;word-wrap:break-word}.result-content .highlight{font-weight:bold}.result-default{clear:both}.result-images{float:left !important}.img-thumbnail{margin:5px;max-height:128px;min-height:128px}.result-videos{clear:both}.result-torrents{clear:both}.result-map{clear:both}.result-code{clear:both}.suggestion_item{margin:2px 5px}.result_download{margin-right:5px}#pagination{margin-top:30px;padding-bottom:50px}.infobox .infobox_part{margin-bottom:20px;word-wrap:break-word}.infobox .infobox_part:last-child{margin-bottom:0}.search_categories{margin:10px 0;text-transform:capitalize}.cursor-text{cursor:text !important}.cursor-pointer{cursor:pointer !important}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#408080;font-style:italic}.highlight .err{border:1px solid #f00}.highlight .k{color:#008000;font-weight:bold}.highlight .o{color:#666}.highlight .cm{color:#408080;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .c1{color:#408080;font-style:italic}.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:#f00}.highlight .gh{color:#000080;font-weight:bold}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:#000080;font-weight:bold}.highlight .gs{font-weight:bold}.highlight .gu{color:#800080;font-weight:bold}.highlight .gt{color:#04d}.highlight .kc{color:#008000;font-weight:bold}.highlight .kd{color:#008000;font-weight:bold}.highlight .kn{color:#008000;font-weight:bold}.highlight .kp{color:#008000}.highlight .kr{color:#008000;font-weight:bold}.highlight .kt{color:#b00040}.highlight .m{color:#666}.highlight .s{color:#ba2121}.highlight .na{color:#7d9029}.highlight .nb{color:#008000}.highlight .nc{color:#00f;font-weight:bold}.highlight .no{color:#800}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:bold}.highlight .ne{color:#d2413a;font-weight:bold}.highlight .nf{color:#00f}.highlight .nl{color:#a0a000}.highlight .nn{color:#00f;font-weight:bold}.highlight .nt{color:#008000;font-weight:bold}.highlight .nv{color:#19177c}.highlight .ow{color:#a2f;font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#666}.highlight .mh{color:#666}.highlight .mi{color:#666}.highlight .mo{color:#666}.highlight .sb{color:#ba2121}.highlight .sc{color:#ba2121}.highlight .sd{color:#ba2121;font-style:italic}.highlight .s2{color:#ba2121}.highlight .se{color:#b62;font-weight:bold}.highlight .sh{color:#ba2121}.highlight .si{color:#b68;font-weight:bold}.highlight .sx{color:#008000}.highlight .sr{color:#b68}.highlight .s1{color:#ba2121}.highlight .ss{color:#19177c}.highlight .bp{color:#008000}.highlight .vc{color:#19177c}.highlight .vg{color:#19177c}.highlight .vi{color:#19177c}.highlight .il{color:#666}.highlight .lineno{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.highlight .lineno::selection{background:transparent}.highlight .lineno::-moz-selection{background:transparent}
html{position:relative;min-height:100%}
body{margin-bottom:80px}
.footer{position:absolute;bottom:0;width:100%;height:60px}
input[type=checkbox]:checked+.label_hide_if_checked,input[type=checkbox]:checked+.label_hide_if_not_checked+.label_hide_if_checked{display:none}
input[type=checkbox]:not(:checked)+.label_hide_if_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_checked+.label_hide_if_not_checked{display:none}
.result_header{margin-bottom:5px;margin-top:20px}.result_header .favicon{margin-bottom:-3px}
.result_header a{vertical-align:bottom}.result_header a .highlight{font-weight:bold}
.result-content{margin-top:5px;word-wrap:break-word}.result-content .highlight{font-weight:bold}
.result-default{clear:both}
.result-images{float:left !important}
.img-thumbnail{margin:5px;max-height:128px;min-height:128px}
.result-videos{clear:both}
.result-torrents{clear:both}
.result-map{clear:both}
.result-code{clear:both}
.suggestion_item{margin:2px 5px}
.result_download{margin-right:5px}
#pagination{margin-top:30px;padding-bottom:50px}
.label-default{color:#aaa;background:#fff}
.infobox .infobox_part{margin-bottom:20px;word-wrap:break-word}
.infobox .infobox_part:last-child{margin-bottom:0}
.search_categories{margin:10px 0;text-transform:capitalize}
.cursor-text{cursor:text !important}
.cursor-pointer{cursor:pointer !important}
.highlight .hll{background-color:#ffc}
.highlight{background:#f8f8f8}
.highlight .c{color:#408080;font-style:italic}
.highlight .err{border:1px solid #f00}
.highlight .k{color:#008000;font-weight:bold}
.highlight .o{color:#666}
.highlight .cm{color:#408080;font-style:italic}
.highlight .cp{color:#bc7a00}
.highlight .c1{color:#408080;font-style:italic}
.highlight .cs{color:#408080;font-style:italic}
.highlight .gd{color:#a00000}
.highlight .ge{font-style:italic}
.highlight .gr{color:#f00}
.highlight .gh{color:#000080;font-weight:bold}
.highlight .gi{color:#00a000}
.highlight .go{color:#888}
.highlight .gp{color:#000080;font-weight:bold}
.highlight .gs{font-weight:bold}
.highlight .gu{color:#800080;font-weight:bold}
.highlight .gt{color:#04d}
.highlight .kc{color:#008000;font-weight:bold}
.highlight .kd{color:#008000;font-weight:bold}
.highlight .kn{color:#008000;font-weight:bold}
.highlight .kp{color:#008000}
.highlight .kr{color:#008000;font-weight:bold}
.highlight .kt{color:#b00040}
.highlight .m{color:#666}
.highlight .s{color:#ba2121}
.highlight .na{color:#7d9029}
.highlight .nb{color:#008000}
.highlight .nc{color:#00f;font-weight:bold}
.highlight .no{color:#800}
.highlight .nd{color:#a2f}
.highlight .ni{color:#999;font-weight:bold}
.highlight .ne{color:#d2413a;font-weight:bold}
.highlight .nf{color:#00f}
.highlight .nl{color:#a0a000}
.highlight .nn{color:#00f;font-weight:bold}
.highlight .nt{color:#008000;font-weight:bold}
.highlight .nv{color:#19177c}
.highlight .ow{color:#a2f;font-weight:bold}
.highlight .w{color:#bbb}
.highlight .mf{color:#666}
.highlight .mh{color:#666}
.highlight .mi{color:#666}
.highlight .mo{color:#666}
.highlight .sb{color:#ba2121}
.highlight .sc{color:#ba2121}
.highlight .sd{color:#ba2121;font-style:italic}
.highlight .s2{color:#ba2121}
.highlight .se{color:#b62;font-weight:bold}
.highlight .sh{color:#ba2121}
.highlight .si{color:#b68;font-weight:bold}
.highlight .sx{color:#008000}
.highlight .sr{color:#b68}
.highlight .s1{color:#ba2121}
.highlight .ss{color:#19177c}
.highlight .bp{color:#008000}
.highlight .vc{color:#19177c}
.highlight .vg{color:#19177c}
.highlight .vi{color:#19177c}
.highlight .il{color:#666}
.highlight .lineno{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.highlight .lineno::selection{background:transparent;}
.highlight .lineno::-moz-selection{background:transparent;}

View File

@ -76,3 +76,8 @@
margin-top: 30px;
padding-bottom: 50px;
}
.label-default {
color: #AAA;
background: #FFF;
}

View File

@ -3,6 +3,7 @@
<ShortName>searx</ShortName>
<Description>Search searx</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image>{{ host }}{{ url_for('static', filename='img/favicon.png') | replace("/", "", 1) }}</Image>
<LongName>searx metasearch</LongName>
{% if opensearch_method == 'get' %}
<Url type="text/html" method="get" template="{{ host }}search?q={searchTerms}"/>

View File

@ -3,6 +3,7 @@
<ShortName>searx</ShortName>
<Description>Search searx</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image>{{ host }}{{ url_for('static', filename='img/favicon.png') | replace("/", "", 1) }}</Image>
<LongName>searx metasearch</LongName>
{% if opensearch_method == 'get' %}
<Url type="text/html" method="get" template="{{ host }}search?q={searchTerms}"/>

View File

@ -25,7 +25,11 @@
<!-- Draw result footer -->
{% macro result_footer(result) -%}
<div class="clearfix"></div>
<span class="label label-default pull-right">{{ result.engine }}</span>
<div class="pull-right">
{% for engine in result.engines %}
<span class="label label-default">{{ engine }}</span>
{% endfor %}
</div>
<p class="text-muted">{{ result.pretty_url }}</p>
{%- endmacro %}

View File

@ -3,6 +3,7 @@
<ShortName>searx</ShortName>
<Description>Search searx</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image>{{ host }}{{ url_for('static', filename='img/favicon.png') | replace("/", "", 1) }}</Image>
<LongName>searx metasearch</LongName>
{% if opensearch_method == 'get' %}
<Url type="text/html" method="get" template="{{ host }}search?q={searchTerms}"/>

View File

@ -53,8 +53,8 @@
<th>{{ _('Engine name') }}</th>
<th>{{ _('Allow') }} / {{ _('Block') }}</th>
</tr>
{% for (categ,search_engines) in categs %}
{% for search_engine in search_engines %}
{% for categ in all_categories %}
{% for search_engine in engines_by_category[categ] %}
{% if not search_engine.private %}
<tr>

View File

@ -29,10 +29,10 @@ class TestBingEngine(SearxTestCase):
self.assertRaises(AttributeError, bing.response, '')
self.assertRaises(AttributeError, bing.response, '[]')
response = mock.Mock(content='<html></html>')
response = mock.Mock(text='<html></html>')
self.assertEqual(bing.response(response), [])
response = mock.Mock(content='<html></html>')
response = mock.Mock(text='<html></html>')
self.assertEqual(bing.response(response), [])
html = """
@ -54,7 +54,7 @@ class TestBingEngine(SearxTestCase):
</div>
</div>
"""
response = mock.Mock(content=html)
response = mock.Mock(text=html)
results = bing.response(response)
self.assertEqual(type(results), list)
self.assertEqual(len(results), 1)
@ -81,7 +81,7 @@ class TestBingEngine(SearxTestCase):
</div>
</li>
"""
response = mock.Mock(content=html)
response = mock.Mock(text=html)
results = bing.response(response)
self.assertEqual(type(results), list)
self.assertEqual(len(results), 1)

View File

@ -31,10 +31,10 @@ class TestBingImagesEngine(SearxTestCase):
self.assertRaises(AttributeError, bing_images.response, '')
self.assertRaises(AttributeError, bing_images.response, '[]')
response = mock.Mock(content='<html></html>')
response = mock.Mock(text='<html></html>')
self.assertEqual(bing_images.response(response), [])
response = mock.Mock(content='<html></html>')
response = mock.Mock(text='<html></html>')
self.assertEqual(bing_images.response(response), [])
html = """
@ -52,7 +52,7 @@ oh:&quot;238&quot;,tft:&quot;0&quot;,oi:&quot;http://www.image.url/Images/Test%2
</div>
"""
html = html.replace('\r\n', '').replace('\n', '').replace('\r', '')
response = mock.Mock(content=html)
response = mock.Mock(text=html)
results = bing_images.response(response)
self.assertEqual(type(results), list)
self.assertEqual(len(results), 1)
@ -75,7 +75,7 @@ oh:&quot;238&quot;,tft:&quot;0&quot;,oi:&quot;http://www.image.url/Images/Test%2
style="height:144px;" width="178" height="144"/>
</a>
"""
response = mock.Mock(content=html)
response = mock.Mock(text=html)
results = bing_images.response(response)
self.assertEqual(type(results), list)
self.assertEqual(len(results), 0)
@ -263,7 +263,7 @@ oh:&quot;238&quot;,tft:&quot;0&quot;,oi:&quot;http://www.image.url/Images/Test%2
</div>
"""
html = html.replace('\r\n', '').replace('\n', '').replace('\r', '')
response = mock.Mock(content=html)
response = mock.Mock(text=html)
results = bing_images.response(response)
self.assertEqual(type(results), list)
self.assertEqual(len(results), 10)

View File

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
from collections import defaultdict
import mock
from searx.engines import duckduckgo
@ -30,7 +31,7 @@ class TestDuckduckgoEngine(SearxTestCase):
response = mock.Mock(text='<html></html>')
self.assertEqual(duckduckgo.response(response), [])
html = """
html = u"""
<div class="results_links results_links_deep web-result">
<div class="icon_fav" style="display: block;">
<a rel="nofollow" href="https://www.test.com/">
@ -39,7 +40,7 @@ class TestDuckduckgoEngine(SearxTestCase):
</a>
</div>
<div class="links_main links_deep"> <!-- This is the visible part -->
<a rel="nofollow" class="large" href="http://this.should.be.the.link/">
<a rel="nofollow" class="large" href="http://this.should.be.the.link/ű">
This <b>is</b> <b>the</b> title
</a>
<div class="snippet"><b>This</b> should be the content.</div>
@ -54,7 +55,7 @@ class TestDuckduckgoEngine(SearxTestCase):
self.assertEqual(type(results), list)
self.assertEqual(len(results), 1)
self.assertEqual(results[0]['title'], 'This is the title')
self.assertEqual(results[0]['url'], 'http://this.should.be.the.link/')
self.assertEqual(results[0]['url'], u'http://this.should.be.the.link/ű')
self.assertEqual(results[0]['content'], 'This should be the content.')
html = """

View File

@ -15,7 +15,7 @@ class TestPiratebayEngine(SearxTestCase):
params = piratebay.request(query, dicto)
self.assertIn('url', params)
self.assertIn(query, params['url'])
self.assertIn('piratebay.am', params['url'])
self.assertIn('piratebay.se', params['url'])
self.assertIn('0', params['url'])
dicto['category'] = 'music'
@ -99,7 +99,7 @@ class TestPiratebayEngine(SearxTestCase):
self.assertEqual(type(results), list)
self.assertEqual(len(results), 2)
self.assertEqual(results[0]['title'], 'This is the title')
self.assertEqual(results[0]['url'], 'https://thepiratebay.am/this.is.the.link')
self.assertEqual(results[0]['url'], 'https://thepiratebay.se/this.is.the.link')
self.assertEqual(results[0]['content'], 'This is the content and should be OK')
self.assertEqual(results[0]['seed'], 13)
self.assertEqual(results[0]['leech'], 334)
@ -149,7 +149,7 @@ class TestPiratebayEngine(SearxTestCase):
self.assertEqual(type(results), list)
self.assertEqual(len(results), 1)
self.assertEqual(results[0]['title'], 'This is the title')
self.assertEqual(results[0]['url'], 'https://thepiratebay.am/this.is.the.link')
self.assertEqual(results[0]['url'], 'https://thepiratebay.se/this.is.the.link')
self.assertEqual(results[0]['content'], 'This is the content and should be OK')
self.assertEqual(results[0]['seed'], 0)
self.assertEqual(results[0]['leech'], 0)

View File

@ -42,7 +42,7 @@ class TestStartpageEngine(SearxTestCase):
</a>
<span id='title_stars_2' name='title_stars_2'> </span>
</h3>
<p class='desc'>
<p class='desc clk'>
This should be the content.
</p>
<p>
@ -78,7 +78,7 @@ class TestStartpageEngine(SearxTestCase):
</a>
<span id='title_stars_2' name='title_stars_2'> </span>
</h3>
<p class='desc'>
<p class='desc clk'>
This should be the content.
</p>
<p>
@ -101,7 +101,7 @@ class TestStartpageEngine(SearxTestCase):
<h3>
<span id='title_stars_2' name='title_stars_2'> </span>
</h3>
<p class='desc'>
<p class='desc clk'>
This should be the content.
</p>
<p>

View File

@ -1,204 +0,0 @@
from collections import defaultdict
import mock
from searx.engines import youtube
from searx.testing import SearxTestCase
class TestYoutubeEngine(SearxTestCase):
def test_request(self):
query = 'test_query'
dicto = defaultdict(dict)
dicto['pageno'] = 0
dicto['language'] = 'fr_FR'
params = youtube.request(query, dicto)
self.assertTrue('url' in params)
self.assertTrue(query in params['url'])
self.assertTrue('youtube.com' in params['url'])
self.assertTrue('fr' in params['url'])
dicto['language'] = 'all'
params = youtube.request(query, dicto)
self.assertFalse('fr' in params['url'])
def test_response(self):
self.assertRaises(AttributeError, youtube.response, None)
self.assertRaises(AttributeError, youtube.response, [])
self.assertRaises(AttributeError, youtube.response, '')
self.assertRaises(AttributeError, youtube.response, '[]')
response = mock.Mock(text='{}')
self.assertEqual(youtube.response(response), [])
response = mock.Mock(text='{"data": []}')
self.assertEqual(youtube.response(response), [])
json = """
{"feed":{"entry":[{
"id":{"$t":"http://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM"},
"published":{"$t":"2015-01-23T21:25:00.000Z"},
"updated":{"$t":"2015-01-26T14:38:15.000Z"},
"title":{"$t":"Title",
"type":"text"},"content":{"$t":"Description","type":"text"},
"link":[{"rel":"alternate","type":"text/html",
"href":"https://www.youtube.com/watch?v=DIVZCPfAOeM&feature=youtube_gdata"},
{"rel":"http://gdata.youtube.com/schemas/2007#video.related",
"type":"application/atom+xml",
"href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM/related"},
{"rel":"http://gdata.youtube.com/schemas/2007#mobile","type":"text/html",
"href":"https://m.youtube.com/details?v=DIVZCPfAOeM"},
{"rel":"self","type":"application/atom+xml",
"href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM"}],
"author":[{"name":{"$t":"Cauet"},
"uri":{"$t":"https://gdata.youtube.com/feeds/api/users/cauetofficiel"} }],
"gd$comments":{"gd$feedLink":{"rel":"http://gdata.youtube.com/schemas/2007#comments",
"href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM/comments",
"countHint":8} },
"media$group":{"media$category":[{"$t":"Comedy","label":"Comedy",
"scheme":"http://gdata.youtube.com/schemas/2007/categories.cat"}],
"media$content":[{"url":"https://www.youtube.com/v/DIVZCPfAOeM?version=3&f=videos&app=youtube_gdata",
"type":"application/x-shockwave-flash","medium":"video",
"isDefault":"true","expression":"full","duration":354,"yt$format":5},
{"url":"rtsp://r1---sn-cg07luel.c.youtube.com/CiILENy73wIaGQnjOcD3CFmFDBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
"type":"video/3gpp","medium":"video","expression":"full","duration":354,
"yt$format":1},
{"url":"rtsp://r1---sn-cg07luel.c.youtube.com/CiILENy73wIaGQnjOcD3CFmFDBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
"type":"video/3gpp","medium":"video","expression":"full","duration":354,"yt$format":6}],
"media$description":{"$t":"Desc","type":"plain"},
"media$keywords":{},
"media$player":[{"url":"https://www.youtube.com/watch?v=DIVZCPfAOeM&feature=youtube_gdata_player"}],
"media$thumbnail":[{"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/0.jpg",
"height":360,"width":480,"time":"00:02:57"},
{"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/1.jpg","height":90,"width":120,"time":"00:01:28.500"},
{"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/2.jpg","height":90,"width":120,"time":"00:02:57"},
{"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/3.jpg","height":90,"width":120,"time":"00:04:25.500"}],
"media$title":{"$t":"Title","type":"plain"},
"yt$duration":{"seconds":"354"} },
"gd$rating":{"average":4.932159,"max":5,"min":1,"numRaters":1533,
"rel":"http://schemas.google.com/g/2005#overall"},
"yt$statistics":{"favoriteCount":"0","viewCount":"92464"} }
]
}
}
"""
response = mock.Mock(text=json)
results = youtube.response(response)
self.assertEqual(type(results), list)
self.assertEqual(len(results), 1)
self.assertEqual(results[0]['title'], 'Title')
self.assertEqual(results[0]['url'], 'https://www.youtube.com/watch?v=DIVZCPfAOeM')
self.assertEqual(results[0]['content'], 'Description')
self.assertEqual(results[0]['thumbnail'], 'https://i.ytimg.com/vi/DIVZCPfAOeM/0.jpg')
self.assertTrue('DIVZCPfAOeM' in results[0]['embedded'])
json = """
{"feed":{"entry":[{
"id":{"$t":"http://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM"},
"published":{"$t":"2015-01-23T21:25:00.000Z"},
"updated":{"$t":"2015-01-26T14:38:15.000Z"},
"title":{"$t":"Title",
"type":"text"},"content":{"$t":"Description","type":"text"},
"link":[{"rel":"http://gdata.youtube.com/schemas/2007#video.related",
"type":"application/atom+xml",
"href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM/related"},
{"rel":"self","type":"application/atom+xml",
"href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM"}],
"author":[{"name":{"$t":"Cauet"},
"uri":{"$t":"https://gdata.youtube.com/feeds/api/users/cauetofficiel"} }],
"gd$comments":{"gd$feedLink":{"rel":"http://gdata.youtube.com/schemas/2007#comments",
"href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM/comments",
"countHint":8} },
"media$group":{"media$category":[{"$t":"Comedy","label":"Comedy",
"scheme":"http://gdata.youtube.com/schemas/2007/categories.cat"}],
"media$content":[{"url":"https://www.youtube.com/v/DIVZCPfAOeM?version=3&f=videos&app=youtube_gdata",
"type":"application/x-shockwave-flash","medium":"video",
"isDefault":"true","expression":"full","duration":354,"yt$format":5},
{"url":"rtsp://r1---sn-cg07luel.c.youtube.com/CiILENy73wIaGQnjOcD3CFmFDBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
"type":"video/3gpp","medium":"video","expression":"full","duration":354,
"yt$format":1},
{"url":"rtsp://r1---sn-cg07luel.c.youtube.com/CiILENy73wIaGQnjOcD3CFmFDBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
"type":"video/3gpp","medium":"video","expression":"full","duration":354,"yt$format":6}],
"media$description":{"$t":"Desc","type":"plain"},
"media$keywords":{},
"media$player":[{"url":"https://www.youtube.com/watch?v=DIVZCPfAOeM&feature=youtube_gdata_player"}],
"media$thumbnail":[{"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/0.jpg",
"height":360,"width":480,"time":"00:02:57"},
{"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/1.jpg","height":90,"width":120,"time":"00:01:28.500"},
{"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/2.jpg","height":90,"width":120,"time":"00:02:57"},
{"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/3.jpg","height":90,"width":120,"time":"00:04:25.500"}],
"media$title":{"$t":"Title","type":"plain"},
"yt$duration":{"seconds":"354"} },
"gd$rating":{"average":4.932159,"max":5,"min":1,"numRaters":1533,
"rel":"http://schemas.google.com/g/2005#overall"},
"yt$statistics":{"favoriteCount":"0","viewCount":"92464"} }
]
}
}
"""
response = mock.Mock(text=json)
results = youtube.response(response)
self.assertEqual(type(results), list)
self.assertEqual(len(results), 0)
json = """
{"feed":{"entry":[{
"id":{"$t":"http://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM"},
"published":{"$t":"2015-01-23T21:25:00.000Z"},
"updated":{"$t":"2015-01-26T14:38:15.000Z"},
"title":{"$t":"Title",
"type":"text"},"content":{"$t":"Description","type":"text"},
"link":[{"rel":"alternate","type":"text/html",
"href":"https://www.youtube.com/watch?v=DIVZCPfAOeM"},
{"rel":"http://gdata.youtube.com/schemas/2007#video.related",
"type":"application/atom+xml",
"href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM/related"},
{"rel":"http://gdata.youtube.com/schemas/2007#mobile","type":"text/html",
"href":"https://m.youtube.com/details?v=DIVZCPfAOeM"},
{"rel":"self","type":"application/atom+xml",
"href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM"}],
"author":[{"name":{"$t":"Cauet"},
"uri":{"$t":"https://gdata.youtube.com/feeds/api/users/cauetofficiel"} }],
"gd$comments":{"gd$feedLink":{"rel":"http://gdata.youtube.com/schemas/2007#comments",
"href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM/comments",
"countHint":8} },
"media$group":{"media$category":[{"$t":"Comedy","label":"Comedy",
"scheme":"http://gdata.youtube.com/schemas/2007/categories.cat"}],
"media$content":[{"url":"https://www.youtube.com/v/DIVZCPfAOeM?version=3&f=videos&app=youtube_gdata",
"type":"application/x-shockwave-flash","medium":"video",
"isDefault":"true","expression":"full","duration":354,"yt$format":5},
{"url":"rtsp://r1---sn-cg07luel.c.youtube.com/CiILENy73wIaGQnjOcD3CFmFDBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
"type":"video/3gpp","medium":"video","expression":"full","duration":354,
"yt$format":1},
{"url":"rtsp://r1---sn-cg07luel.c.youtube.com/CiILENy73wIaGQnjOcD3CFmFDBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
"type":"video/3gpp","medium":"video","expression":"full","duration":354,"yt$format":6}],
"media$description":{"$t":"Desc","type":"plain"},
"media$keywords":{},
"media$player":[{"url":"https://www.youtube.com/watch?v=DIVZCPfAOeM&feature=youtube_gdata_player"}],
"media$title":{"$t":"Title","type":"plain"},
"yt$duration":{"seconds":"354"} },
"gd$rating":{"average":4.932159,"max":5,"min":1,"numRaters":1533,
"rel":"http://schemas.google.com/g/2005#overall"},
"yt$statistics":{"favoriteCount":"0","viewCount":"92464"} }
]
}
}
"""
response = mock.Mock(text=json)
results = youtube.response(response)
self.assertEqual(type(results), list)
self.assertEqual(len(results), 1)
self.assertEqual(results[0]['title'], 'Title')
self.assertEqual(results[0]['url'], 'https://www.youtube.com/watch?v=DIVZCPfAOeM')
self.assertEqual(results[0]['content'], 'Description')
self.assertEqual(results[0]['thumbnail'], '')
self.assertTrue('DIVZCPfAOeM' in results[0]['embedded'])
json = """
{"toto":{"entry":[]
}
}
"""
response = mock.Mock(text=json)
results = youtube.response(response)
self.assertEqual(type(results), list)
self.assertEqual(len(results), 0)

View File

@ -40,7 +40,6 @@ from searx.tests.engines.test_www1x import * # noqa
from searx.tests.engines.test_www500px import * # noqa
from searx.tests.engines.test_yacy import * # noqa
from searx.tests.engines.test_yahoo import * # noqa
from searx.tests.engines.test_youtube import * # noqa
from searx.tests.engines.test_youtube_api import * # noqa
from searx.tests.engines.test_youtube_noapi import * # noqa
from searx.tests.engines.test_yahoo_news import * # noqa

View File

@ -5,6 +5,12 @@ from searx import plugins
from mock import Mock
def get_search_mock(query, **kwargs):
return {'search': Mock(query=query,
result_container=Mock(answers=set()),
**kwargs)}
class PluginStoreTest(SearxTestCase):
def test_PluginStore_init(self):
@ -46,23 +52,23 @@ class SelfIPTest(SearxTestCase):
request = Mock(user_plugins=store.plugins,
remote_addr='127.0.0.1')
request.headers.getlist.return_value = []
ctx = {'search': Mock(answers=set(),
query='ip')}
ctx = get_search_mock(query='ip')
store.call('post_search', request, ctx)
self.assertTrue('127.0.0.1' in ctx['search'].answers)
self.assertTrue('127.0.0.1' in ctx['search'].result_container.answers)
# User agent test
request = Mock(user_plugins=store.plugins,
user_agent='Mock')
request.headers.getlist.return_value = []
ctx = {'search': Mock(answers=set(),
query='user-agent')}
ctx = get_search_mock(query='user-agent')
store.call('post_search', request, ctx)
self.assertTrue('Mock' in ctx['search'].answers)
ctx = {'search': Mock(answers=set(),
query='user agent')}
self.assertTrue('Mock' in ctx['search'].result_container.answers)
ctx = get_search_mock(query='user-agent')
store.call('post_search', request, ctx)
self.assertTrue('Mock' in ctx['search'].answers)
ctx = {'search': Mock(answers=set(),
query='What is my User-Agent?')}
self.assertTrue('Mock' in ctx['search'].result_container.answers)
ctx = get_search_mock(query='What is my User-Agent?')
store.call('post_search', request, ctx)
self.assertTrue('Mock' in ctx['search'].result_container.answers)

View File

@ -0,0 +1,41 @@
# -*- coding: utf-8 -*-
from searx.results import ResultContainer
from searx.testing import SearxTestCase
def fake_result(url='https://aa.bb/cc?dd=ee#ff',
title='aaa',
content='bbb',
engine='wikipedia', **kwargs):
result = {'url': url,
'title': title,
'content': content,
'engine': engine}
result.update(kwargs)
return result
# TODO
class ResultContainerTestCase(SearxTestCase):
def test_empty(self):
c = ResultContainer()
self.assertEqual(c.get_ordered_results(), [])
def test_one_result(self):
c = ResultContainer()
c.extend('wikipedia', [fake_result()])
self.assertEqual(c.results_length(), 1)
def test_one_suggestion(self):
c = ResultContainer()
c.extend('wikipedia', [fake_result(suggestion=True)])
self.assertEqual(len(c.suggestions), 1)
self.assertEqual(c.results_length(), 0)
def test_result_merge(self):
c = ResultContainer()
c.extend('wikipedia', [fake_result()])
c.extend('wikidata', [fake_result(), fake_result(url='https://example.com/')])
self.assertEqual(c.results_length(), 2)

View File

@ -1,25 +1,10 @@
# -*- coding: utf-8 -*-
from searx.search import score_results
from searx.testing import SearxTestCase
def fake_result(url='https://aa.bb/cc?dd=ee#ff',
title='aaa',
content='bbb',
engine='wikipedia'):
return {'url': url,
'title': title,
'content': content,
'engine': engine}
# TODO
class SearchTestCase(SearxTestCase):
class ScoreResultsTestCase(SearxTestCase):
def test_empty(self):
self.assertEqual(score_results(dict()), [])
def test_urlparse(self):
results = score_results(dict(a=[fake_result(url='https://aa.bb/cc?dd=ee#ff')]))
parsed_url = results[0]['parsed_url']
self.assertEqual(parsed_url.query, 'dd=ee')
def test_(self):
pass

View File

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import mock
from searx.testing import SearxTestCase
from searx import utils
@ -51,6 +52,15 @@ class TestUtils(SearxTestCase):
self.assertIsNotNone(utils.html_to_text(html))
self.assertEqual(utils.html_to_text(html), "Test text")
def test_prettify_url(self):
data = (('https://searx.me/', 'https://searx.me/'),
(u'https://searx.me/ű', u'https://searx.me/ű'),
('https://searx.me/' + (100 * 'a'), 'https://searx.me/[...]aaaaaaaaaaaaaaaaa'),
(u'https://searx.me/' + (100 * u'ű'), u'https://searx.me/[...]űűűűűűűűűűűűűűűűű'))
for test_url, expected in data:
self.assertEqual(utils.prettify_url(test_url, max_length=32), expected)
class TestHTMLTextExtractor(SearxTestCase):

View File

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
import json
from mock import Mock
from urlparse import ParseResult
from searx import webapp
from searx.testing import SearxTestCase
@ -33,7 +34,12 @@ class ViewsTestCase(SearxTestCase):
]
def search_mock(search_self, *args):
search_self.results = self.test_results
search_self.result_container = Mock(get_ordered_results=lambda: self.test_results,
answers=set(),
suggestions=set(),
infoboxes=[],
results=self.test_results,
results_length=lambda: len(self.test_results))
webapp.Search.search = search_mock

View File

@ -14,10 +14,10 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2015-04-26 18:57+0200\n"
"PO-Revision-Date: 2015-04-26 19:24+0000\n"
"POT-Creation-Date: 2015-08-24 11:44+0200\n"
"PO-Revision-Date: 2015-08-24 10:00+0000\n"
"Last-Translator: pointhi\n"
"Language-Team: German (http://www.transifex.com/projects/p/searx/language/de/)\n"
"Language-Team: German (http://www.transifex.com/asciimoo/searx/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -25,67 +25,67 @@ msgstr ""
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: searx/webapp.py:104
#: searx/webapp.py:114
msgid "files"
msgstr "Dateien"
#: searx/webapp.py:105
#: searx/webapp.py:115
msgid "general"
msgstr "Allgemein"
#: searx/webapp.py:106
#: searx/webapp.py:116
msgid "music"
msgstr "Musik"
#: searx/webapp.py:107
#: searx/webapp.py:117
msgid "social media"
msgstr "Soziale Medien"
#: searx/webapp.py:108
#: searx/webapp.py:118
msgid "images"
msgstr "Bilder"
#: searx/webapp.py:109
#: searx/webapp.py:119
msgid "videos"
msgstr "Videos"
#: searx/webapp.py:110
#: searx/webapp.py:120
msgid "it"
msgstr "IT"
#: searx/webapp.py:111
#: searx/webapp.py:121
msgid "news"
msgstr "Neuigkeiten"
#: searx/webapp.py:112
#: searx/webapp.py:122
msgid "map"
msgstr "Karte"
#: searx/webapp.py:396
#: searx/webapp.py:414
msgid "{minutes} minute(s) ago"
msgstr "vor {minutes} Minute(n)"
#: searx/webapp.py:398
#: searx/webapp.py:416
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "vor {hours} Stunde(n), {minutes} Minute(n)"
#: searx/engines/__init__.py:182
#: searx/engines/__init__.py:185
msgid "Page loads (sec)"
msgstr "Ladezeit (sek)"
#: searx/engines/__init__.py:186
#: searx/engines/__init__.py:189
msgid "Number of results"
msgstr "Trefferanzahl"
#: searx/engines/__init__.py:190
#: searx/engines/__init__.py:193
msgid "Scores"
msgstr "Punkte"
#: searx/engines/__init__.py:194
#: searx/engines/__init__.py:197
msgid "Scores per result"
msgstr "Punkte pro Treffer"
#: searx/engines/__init__.py:198
#: searx/engines/__init__.py:201
msgid "Errors"
msgstr "Fehler"
@ -100,12 +100,22 @@ msgstr "Starte Suche wenn Kategorie angeklickt wird"
#: searx/plugins/search_on_category_select.py:19
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories."
msgstr "Startet eine Suche sofort, wenn eine Kategorie angeklickt wird. Deaktiviere dieses Plugin um mehrere Kategorien anzuwählen."
"multiple categories. (JavaScript required)"
msgstr "Starte die Suche sofort wenn eine Kategorie ausgewählt wird. Es ist nicht mehr möglich mehrere Kategorien auszuwählen. (JavaScript benötigt)"
#: searx/plugins/self_ip.py:19
msgid "Display your source IP address if the query expression is \"ip\""
msgstr "Zeigt deine IP-Adresse an wenn die Suchanfrage \"ip\" lautet"
#: searx/plugins/self_info.py:20
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr "Zeigt deine IP-Adresse wenn die Suche \"ip\" lautet, und deinen User-Agent wenn deine Suche \"user agent\" beinhaltet."
#: searx/plugins/tracker_url_remover.py:26
msgid "Tracker URL remover"
msgstr "Tracker-URL entferner"
#: searx/plugins/tracker_url_remover.py:27
msgid "Remove trackers arguments from the returned URL"
msgstr "Entferne Tracker Argumente von den URLs"
#: searx/templates/courgette/index.html:9
#: searx/templates/courgette/index.html:13
@ -133,90 +143,92 @@ msgstr "Einstellungen"
#: searx/templates/courgette/preferences.html:9
#: searx/templates/default/preferences.html:9
#: searx/templates/oscar/preferences.html:35
#: searx/templates/oscar/preferences.html:37
#: searx/templates/oscar/preferences.html:36
#: searx/templates/oscar/preferences.html:38
msgid "Default categories"
msgstr "Standardkategorien"
#: searx/templates/courgette/preferences.html:13
#: searx/templates/default/preferences.html:14
#: searx/templates/oscar/preferences.html:43
#: searx/templates/oscar/preferences.html:44
#: searx/templates/pix-art/preferences.html:9
msgid "Search language"
msgstr "Suchsprache"
#: searx/templates/courgette/preferences.html:16
#: searx/templates/default/preferences.html:17
#: searx/templates/oscar/preferences.html:47
#: searx/templates/oscar/preferences.html:48
#: searx/templates/pix-art/preferences.html:12
msgid "Automatic"
msgstr "Automatisch"
#: searx/templates/courgette/preferences.html:24
#: searx/templates/default/preferences.html:25
#: searx/templates/oscar/preferences.html:54
#: searx/templates/oscar/preferences.html:55
#: searx/templates/pix-art/preferences.html:20
msgid "Interface language"
msgstr "Oberflächensprache"
#: searx/templates/courgette/preferences.html:34
#: searx/templates/default/preferences.html:35
#: searx/templates/oscar/preferences.html:64
#: searx/templates/oscar/preferences.html:65
msgid "Autocomplete"
msgstr "Autovervollständigung"
#: searx/templates/courgette/preferences.html:45
#: searx/templates/default/preferences.html:46
#: searx/templates/oscar/preferences.html:75
#: searx/templates/oscar/preferences.html:76
msgid "Image proxy"
msgstr "Bilder Proxy"
#: searx/templates/courgette/preferences.html:48
#: searx/templates/default/preferences.html:49
#: searx/templates/oscar/preferences.html:79
#: searx/templates/oscar/preferences.html:80
msgid "Enabled"
msgstr "Aktiviert"
#: searx/templates/courgette/preferences.html:49
#: searx/templates/default/preferences.html:50
#: searx/templates/oscar/preferences.html:80
#: searx/templates/oscar/preferences.html:81
msgid "Disabled"
msgstr "Deaktiviert"
#: searx/templates/courgette/preferences.html:54
#: searx/templates/default/preferences.html:55
#: searx/templates/oscar/preferences.html:84
#: searx/templates/oscar/preferences.html:85
#: searx/templates/pix-art/preferences.html:30
msgid "Method"
msgstr "Methode"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/default/preferences.html:64
#: searx/templates/oscar/preferences.html:93
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:144
#: searx/templates/oscar/preferences.html:150
msgid "SafeSearch"
msgstr "Sichere Suche (SafeSearch)"
#: searx/templates/courgette/preferences.html:66
#: searx/templates/default/preferences.html:67
#: searx/templates/oscar/preferences.html:97
#: searx/templates/oscar/preferences.html:98
msgid "Strict"
msgstr "Streng"
#: searx/templates/courgette/preferences.html:67
#: searx/templates/default/preferences.html:68
#: searx/templates/oscar/preferences.html:98
#: searx/templates/oscar/preferences.html:99
msgid "Moderate"
msgstr "Moderat"
#: searx/templates/courgette/preferences.html:68
#: searx/templates/default/preferences.html:69
#: searx/templates/oscar/preferences.html:99
#: searx/templates/oscar/preferences.html:100
msgid "None"
msgstr "Keine"
#: searx/templates/courgette/preferences.html:73
#: searx/templates/default/preferences.html:74
#: searx/templates/oscar/preferences.html:103
#: searx/templates/oscar/preferences.html:104
#: searx/templates/pix-art/preferences.html:39
msgid "Themes"
msgstr "Designs"
@ -257,6 +269,8 @@ msgstr "Aktuell benutzte Suchmaschinen"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/default/preferences.html:88
#: searx/templates/oscar/preferences.html:142
#: searx/templates/oscar/preferences.html:152
#: searx/templates/pix-art/preferences.html:53
msgid "Engine name"
msgstr "Suchmaschinenname"
@ -271,6 +285,8 @@ msgstr "Kategorie"
#: searx/templates/default/preferences.html:90
#: searx/templates/default/preferences.html:101
#: searx/templates/oscar/macros.html:67
#: searx/templates/oscar/preferences.html:141
#: searx/templates/oscar/preferences.html:153
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
msgid "Allow"
@ -288,7 +304,7 @@ msgstr "Blockieren"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/default/preferences.html:110
#: searx/templates/oscar/preferences.html:180
#: searx/templates/oscar/preferences.html:235
#: searx/templates/pix-art/preferences.html:73
msgid ""
"These settings are stored in your cookies, this allows us not to store this "
@ -297,7 +313,7 @@ msgstr "Diese Informationen werden in Cookies auf Ihrem Rechner gespeichert, dam
#: searx/templates/courgette/preferences.html:124
#: searx/templates/default/preferences.html:112
#: searx/templates/oscar/preferences.html:182
#: searx/templates/oscar/preferences.html:237
#: searx/templates/pix-art/preferences.html:75
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
@ -306,20 +322,20 @@ msgstr "Diese Cookies dienen einzig Ihrem Komfort. Wir verwenden sie nicht, um S
#: searx/templates/courgette/preferences.html:127
#: searx/templates/default/preferences.html:115
#: searx/templates/oscar/preferences.html:185
#: searx/templates/oscar/preferences.html:240
#: searx/templates/pix-art/preferences.html:78
msgid "save"
msgstr "Speichern"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/default/preferences.html:116
#: searx/templates/oscar/preferences.html:187
#: searx/templates/oscar/preferences.html:242
msgid "Reset defaults"
msgstr "Zurücksetzen"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/default/preferences.html:117
#: searx/templates/oscar/preferences.html:186
#: searx/templates/oscar/preferences.html:241
#: searx/templates/pix-art/preferences.html:79
msgid "back"
msgstr "Zurück"
@ -429,51 +445,89 @@ msgid "Toggle navigation"
msgstr "Navigation umschalten"
#: searx/templates/oscar/preferences.html:17
#: searx/templates/oscar/preferences.html:24
#: searx/templates/oscar/preferences.html:25
msgid "General"
msgstr "Allgemein"
#: searx/templates/oscar/preferences.html:18
#: searx/templates/oscar/preferences.html:125
#: searx/templates/oscar/preferences.html:126
msgid "Engines"
msgstr "Suchmaschinen"
#: searx/templates/oscar/preferences.html:19
#: searx/templates/oscar/preferences.html:159
#: searx/templates/oscar/preferences.html:187
msgid "Plugins"
msgstr "Erweiterungen"
#: searx/templates/oscar/preferences.html:44
#: searx/templates/oscar/preferences.html:20
#: searx/templates/oscar/preferences.html:210
msgid "Cookies"
msgstr "Cookies"
#: searx/templates/oscar/preferences.html:45
msgid "What language do you prefer for search?"
msgstr "welche Sprache bevorzugst du für die Suche?"
#: searx/templates/oscar/preferences.html:55
#: searx/templates/oscar/preferences.html:56
msgid "Change the language of the layout"
msgstr "ändere die Sprache des Layouts"
#: searx/templates/oscar/preferences.html:65
#: searx/templates/oscar/preferences.html:66
msgid "Find stuff as you type"
msgstr "zeige Vorschläge während der Eingabe an"
#: searx/templates/oscar/preferences.html:76
#: searx/templates/oscar/preferences.html:77
msgid "Proxying image results through searx"
msgstr "tunnel Bilder durch searx"
#: searx/templates/oscar/preferences.html:85
#: searx/templates/oscar/preferences.html:86
msgid ""
"Change how forms are submited, <a "
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr "ändere wie Formulare übertragen werden, <a href=\"https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol#HTTP-Anfragemethoden\" rel=\"external\">lerne mehr über Anfragemethoden</a>"
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:95
msgid "Filter content"
msgstr "Inhalte filtern"
#: searx/templates/oscar/preferences.html:104
#: searx/templates/oscar/preferences.html:105
msgid "Change searx layout"
msgstr "ändere das Aussehen von searx"
#: searx/templates/oscar/preferences.html:143
#: searx/templates/oscar/preferences.html:151
msgid "Shortcut"
msgstr "Abkürzung"
#: searx/templates/oscar/preferences.html:145
#: searx/templates/oscar/preferences.html:149
msgid "Avg. time"
msgstr "mittlere Zeit"
#: searx/templates/oscar/preferences.html:146
#: searx/templates/oscar/preferences.html:148
msgid "Max time"
msgstr "max. Zeit"
#: searx/templates/oscar/preferences.html:213
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Diese Liste zeigt alle Daten welche searx auf deinem Computer speichert."
#: searx/templates/oscar/preferences.html:214
msgid "With that list, you can assess searx transparency."
msgstr "Mit dieser Liste können Sie die Transparenz von searx bewerten"
#: searx/templates/oscar/preferences.html:219
msgid "Cookie name"
msgstr "Cookie Name"
#: searx/templates/oscar/preferences.html:220
msgid "Value"
msgstr "Wert"
#: searx/templates/oscar/results.html:7
msgid "Search results"
msgstr "Suchergebnisse"
@ -523,6 +577,14 @@ msgstr "Warnung!"
msgid "Please enable JavaScript to use full functionality of this site."
msgstr "Bitte aktiviere JavaScript, um alle Funktionen dieser Seite zu nutzen. "
#: searx/templates/oscar/messages/no_cookies.html:3
msgid "Information!"
msgstr "Information!"
#: searx/templates/oscar/messages/no_cookies.html:4
msgid "currently, there are no cookies defined."
msgstr "derzeit sind keine Cookies gesetzt."
#: searx/templates/oscar/messages/no_data_available.html:4
msgid "There is currently no data available. "
msgstr "Es sind derzeit keine Daten vorhanden."

View File

@ -3,16 +3,18 @@
# This file is distributed under the same license as the PROJECT project.
#
# Translators:
# Adam Tauber <asciimoo@gmail.com>, 2015
# Alejandro León Aznar, 2014
# Alejandro León Aznar, 2014-2015
# Oscar Carrero <holaoscar@protonmail.ch>, 2015
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2015-04-26 18:57+0200\n"
"PO-Revision-Date: 2015-04-27 23:48+0000\n"
"Last-Translator: Alejandro León Aznar\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/searx/language/es/)\n"
"POT-Creation-Date: 2015-08-24 11:44+0200\n"
"PO-Revision-Date: 2015-09-05 20:46+0000\n"
"Last-Translator: Oscar Carrero <holaoscar@protonmail.ch>\n"
"Language-Team: Spanish (http://www.transifex.com/asciimoo/searx/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -20,67 +22,67 @@ msgstr ""
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: searx/webapp.py:104
#: searx/webapp.py:114
msgid "files"
msgstr "Archivos"
#: searx/webapp.py:105
#: searx/webapp.py:115
msgid "general"
msgstr "General"
#: searx/webapp.py:106
#: searx/webapp.py:116
msgid "music"
msgstr "Música"
#: searx/webapp.py:107
#: searx/webapp.py:117
msgid "social media"
msgstr "Medios sociales"
#: searx/webapp.py:108
#: searx/webapp.py:118
msgid "images"
msgstr "Imágenes"
#: searx/webapp.py:109
#: searx/webapp.py:119
msgid "videos"
msgstr "Vídeos"
#: searx/webapp.py:110
#: searx/webapp.py:120
msgid "it"
msgstr "TIC"
#: searx/webapp.py:111
#: searx/webapp.py:121
msgid "news"
msgstr "noticias"
#: searx/webapp.py:112
#: searx/webapp.py:122
msgid "map"
msgstr "mapa"
#: searx/webapp.py:396
#: searx/webapp.py:414
msgid "{minutes} minute(s) ago"
msgstr "hace {minutes} minuto(s)"
#: searx/webapp.py:398
#: searx/webapp.py:416
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "hace {hours} hora(s) y {minutes} minuto(s)"
#: searx/engines/__init__.py:182
#: searx/engines/__init__.py:185
msgid "Page loads (sec)"
msgstr "Tiempo de carga (segundos)"
#: searx/engines/__init__.py:186
#: searx/engines/__init__.py:189
msgid "Number of results"
msgstr "Número de resultados"
#: searx/engines/__init__.py:190
#: searx/engines/__init__.py:193
msgid "Scores"
msgstr "Puntuaciones"
#: searx/engines/__init__.py:194
#: searx/engines/__init__.py:197
msgid "Scores per result"
msgstr "Puntuaciones por resultado"
#: searx/engines/__init__.py:198
#: searx/engines/__init__.py:201
msgid "Errors"
msgstr "Errores"
@ -95,12 +97,22 @@ msgstr "Buscar en la categoría seleccionada"
#: searx/plugins/search_on_category_select.py:19
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories."
msgstr "Realizar la búsqueda inmediatamente si se ha seleccionado una categoría. Desactivar la selección simultánea de varias categorías."
"multiple categories. (JavaScript required)"
msgstr "Realizar una búsqueda inmediatamente si se ha seleccionado una categoría. Desactivar para seleccionar varias categorías. (Se requiere JavaScript)"
#: searx/plugins/self_ip.py:19
msgid "Display your source IP address if the query expression is \"ip\""
msgstr "Mostrar tu dirección IP si el término de búsqueda es «ip»"
#: searx/plugins/self_info.py:20
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr "Muestra tu dirección IP si la consulta es \"ip\" y tu Agente de Usuario si la consulta contiene \"agente de usuario\"."
#: searx/plugins/tracker_url_remover.py:26
msgid "Tracker URL remover"
msgstr "Eliminador de URL rastreadora"
#: searx/plugins/tracker_url_remover.py:27
msgid "Remove trackers arguments from the returned URL"
msgstr "Eliminar los argumentos de los rastreadores en la URL devuelta"
#: searx/templates/courgette/index.html:9
#: searx/templates/courgette/index.html:13
@ -128,90 +140,92 @@ msgstr "Preferencias"
#: searx/templates/courgette/preferences.html:9
#: searx/templates/default/preferences.html:9
#: searx/templates/oscar/preferences.html:35
#: searx/templates/oscar/preferences.html:37
#: searx/templates/oscar/preferences.html:36
#: searx/templates/oscar/preferences.html:38
msgid "Default categories"
msgstr "Categorías predeterminadas"
#: searx/templates/courgette/preferences.html:13
#: searx/templates/default/preferences.html:14
#: searx/templates/oscar/preferences.html:43
#: searx/templates/oscar/preferences.html:44
#: searx/templates/pix-art/preferences.html:9
msgid "Search language"
msgstr "Buscar idioma"
#: searx/templates/courgette/preferences.html:16
#: searx/templates/default/preferences.html:17
#: searx/templates/oscar/preferences.html:47
#: searx/templates/oscar/preferences.html:48
#: searx/templates/pix-art/preferences.html:12
msgid "Automatic"
msgstr "Automático"
#: searx/templates/courgette/preferences.html:24
#: searx/templates/default/preferences.html:25
#: searx/templates/oscar/preferences.html:54
#: searx/templates/oscar/preferences.html:55
#: searx/templates/pix-art/preferences.html:20
msgid "Interface language"
msgstr "Idioma de la interfaz"
#: searx/templates/courgette/preferences.html:34
#: searx/templates/default/preferences.html:35
#: searx/templates/oscar/preferences.html:64
#: searx/templates/oscar/preferences.html:65
msgid "Autocomplete"
msgstr "Autocompletar"
#: searx/templates/courgette/preferences.html:45
#: searx/templates/default/preferences.html:46
#: searx/templates/oscar/preferences.html:75
#: searx/templates/oscar/preferences.html:76
msgid "Image proxy"
msgstr "Imagen proxy"
#: searx/templates/courgette/preferences.html:48
#: searx/templates/default/preferences.html:49
#: searx/templates/oscar/preferences.html:79
#: searx/templates/oscar/preferences.html:80
msgid "Enabled"
msgstr "Activado"
#: searx/templates/courgette/preferences.html:49
#: searx/templates/default/preferences.html:50
#: searx/templates/oscar/preferences.html:80
#: searx/templates/oscar/preferences.html:81
msgid "Disabled"
msgstr "Desactivado"
#: searx/templates/courgette/preferences.html:54
#: searx/templates/default/preferences.html:55
#: searx/templates/oscar/preferences.html:84
#: searx/templates/oscar/preferences.html:85
#: searx/templates/pix-art/preferences.html:30
msgid "Method"
msgstr "Método"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/default/preferences.html:64
#: searx/templates/oscar/preferences.html:93
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:144
#: searx/templates/oscar/preferences.html:150
msgid "SafeSearch"
msgstr "Búsqueda segura"
#: searx/templates/courgette/preferences.html:66
#: searx/templates/default/preferences.html:67
#: searx/templates/oscar/preferences.html:97
#: searx/templates/oscar/preferences.html:98
msgid "Strict"
msgstr "Riguroso"
#: searx/templates/courgette/preferences.html:67
#: searx/templates/default/preferences.html:68
#: searx/templates/oscar/preferences.html:98
#: searx/templates/oscar/preferences.html:99
msgid "Moderate"
msgstr "Moderado"
#: searx/templates/courgette/preferences.html:68
#: searx/templates/default/preferences.html:69
#: searx/templates/oscar/preferences.html:99
#: searx/templates/oscar/preferences.html:100
msgid "None"
msgstr "Ninguno"
#: searx/templates/courgette/preferences.html:73
#: searx/templates/default/preferences.html:74
#: searx/templates/oscar/preferences.html:103
#: searx/templates/oscar/preferences.html:104
#: searx/templates/pix-art/preferences.html:39
msgid "Themes"
msgstr "Temas"
@ -252,6 +266,8 @@ msgstr "Motores de búsqueda actualmente en uso"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/default/preferences.html:88
#: searx/templates/oscar/preferences.html:142
#: searx/templates/oscar/preferences.html:152
#: searx/templates/pix-art/preferences.html:53
msgid "Engine name"
msgstr "Nombre del motor de búsqueda"
@ -266,6 +282,8 @@ msgstr "Categoría"
#: searx/templates/default/preferences.html:90
#: searx/templates/default/preferences.html:101
#: searx/templates/oscar/macros.html:67
#: searx/templates/oscar/preferences.html:141
#: searx/templates/oscar/preferences.html:153
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
msgid "Allow"
@ -283,7 +301,7 @@ msgstr "Bloquear"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/default/preferences.html:110
#: searx/templates/oscar/preferences.html:180
#: searx/templates/oscar/preferences.html:235
#: searx/templates/pix-art/preferences.html:73
msgid ""
"These settings are stored in your cookies, this allows us not to store this "
@ -292,7 +310,7 @@ msgstr "Esta configuración se guarda en sus cookies, lo que nos permite no alma
#: searx/templates/courgette/preferences.html:124
#: searx/templates/default/preferences.html:112
#: searx/templates/oscar/preferences.html:182
#: searx/templates/oscar/preferences.html:237
#: searx/templates/pix-art/preferences.html:75
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
@ -301,20 +319,20 @@ msgstr "Estas cookies son para su propia comodidad, no las utilizamos para rastr
#: searx/templates/courgette/preferences.html:127
#: searx/templates/default/preferences.html:115
#: searx/templates/oscar/preferences.html:185
#: searx/templates/oscar/preferences.html:240
#: searx/templates/pix-art/preferences.html:78
msgid "save"
msgstr "Guardar"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/default/preferences.html:116
#: searx/templates/oscar/preferences.html:187
#: searx/templates/oscar/preferences.html:242
msgid "Reset defaults"
msgstr "Restablecer configuración por defecto"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/default/preferences.html:117
#: searx/templates/oscar/preferences.html:186
#: searx/templates/oscar/preferences.html:241
#: searx/templates/pix-art/preferences.html:79
msgid "back"
msgstr "Atrás"
@ -323,7 +341,7 @@ msgstr "Atrás"
#: searx/templates/default/results.html:13
#: searx/templates/oscar/results.html:110
msgid "Search URL"
msgstr "Buscar URL"
msgstr "URL de la búsqueda"
#: searx/templates/courgette/results.html:16
#: searx/templates/default/results.html:17
@ -413,7 +431,7 @@ msgstr "Creado por"
#: searx/templates/oscar/base.html:78
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "un metabuscador hackeable que respeta la privacidad"
msgstr "un metabuscador hackable que respeta la privacidad"
#: searx/templates/oscar/navbar.html:9 searx/templates/oscar/navbar.html:33
msgid "home"
@ -424,51 +442,89 @@ msgid "Toggle navigation"
msgstr "Cambiar navegación"
#: searx/templates/oscar/preferences.html:17
#: searx/templates/oscar/preferences.html:24
#: searx/templates/oscar/preferences.html:25
msgid "General"
msgstr "General"
#: searx/templates/oscar/preferences.html:18
#: searx/templates/oscar/preferences.html:125
#: searx/templates/oscar/preferences.html:126
msgid "Engines"
msgstr "Motores"
#: searx/templates/oscar/preferences.html:19
#: searx/templates/oscar/preferences.html:159
#: searx/templates/oscar/preferences.html:187
msgid "Plugins"
msgstr "Plugins"
#: searx/templates/oscar/preferences.html:44
#: searx/templates/oscar/preferences.html:20
#: searx/templates/oscar/preferences.html:210
msgid "Cookies"
msgstr "Cookies"
#: searx/templates/oscar/preferences.html:45
msgid "What language do you prefer for search?"
msgstr "¿Qué idioma prefieres para la búsqueda?"
#: searx/templates/oscar/preferences.html:55
#: searx/templates/oscar/preferences.html:56
msgid "Change the language of the layout"
msgstr "Cambiar idioma de la interfaz"
#: searx/templates/oscar/preferences.html:65
#: searx/templates/oscar/preferences.html:66
msgid "Find stuff as you type"
msgstr "Buscar mientras escribes"
#: searx/templates/oscar/preferences.html:76
#: searx/templates/oscar/preferences.html:77
msgid "Proxying image results through searx"
msgstr "Filtrando resultados de imágenes en searx"
#: searx/templates/oscar/preferences.html:85
#: searx/templates/oscar/preferences.html:86
msgid ""
"Change how forms are submited, <a "
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr "Modifica cómo se envian los formularios <a href=\"http://es.wikipedia.org/wiki/Hypertext_Transfer_Protocol#M.C3.A9todos_de_petici.C3.B3n\" rel=\"external\">más información sobre métodos de peticiones</a>"
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:95
msgid "Filter content"
msgstr "Filtro de contenido"
#: searx/templates/oscar/preferences.html:104
#: searx/templates/oscar/preferences.html:105
msgid "Change searx layout"
msgstr "Cambiar aspecto de searx"
#: searx/templates/oscar/preferences.html:143
#: searx/templates/oscar/preferences.html:151
msgid "Shortcut"
msgstr "Atajo"
#: searx/templates/oscar/preferences.html:145
#: searx/templates/oscar/preferences.html:149
msgid "Avg. time"
msgstr "Tiempo promedio"
#: searx/templates/oscar/preferences.html:146
#: searx/templates/oscar/preferences.html:148
msgid "Max time"
msgstr "Tiempo máximo"
#: searx/templates/oscar/preferences.html:213
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Esta es la lista de cookies y sus valores que searx está almacenando en tu ordenador."
#: searx/templates/oscar/preferences.html:214
msgid "With that list, you can assess searx transparency."
msgstr "Con esa lista puedes valorar la transparencia de searx."
#: searx/templates/oscar/preferences.html:219
msgid "Cookie name"
msgstr "Nombre de la cookie"
#: searx/templates/oscar/preferences.html:220
msgid "Value"
msgstr "Valor"
#: searx/templates/oscar/results.html:7
msgid "Search results"
msgstr "Buscar"
@ -516,7 +572,15 @@ msgstr "¡Cuidado!"
#: searx/templates/oscar/messages/js_disabled.html:3
msgid "Please enable JavaScript to use full functionality of this site."
msgstr "Por favor, activa JavaScript para poder usar esta página al 100%."
msgstr "Por favor, activa JavaScript para poder usar esta página al 100%%."
#: searx/templates/oscar/messages/no_cookies.html:3
msgid "Information!"
msgstr "¡Información!"
#: searx/templates/oscar/messages/no_cookies.html:4
msgid "currently, there are no cookies defined."
msgstr "No existen cookies definidas actualmente."
#: searx/templates/oscar/messages/no_data_available.html:4
msgid "There is currently no data available. "

View File

@ -13,10 +13,10 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2015-04-26 18:57+0200\n"
"PO-Revision-Date: 2015-05-14 00:01+0000\n"
"POT-Creation-Date: 2015-08-24 11:44+0200\n"
"PO-Revision-Date: 2015-08-24 15:35+0000\n"
"Last-Translator: Cqoicebordel <david.barouh@wanadoo.fr>\n"
"Language-Team: French (http://www.transifex.com/projects/p/searx/language/fr/)\n"
"Language-Team: French (http://www.transifex.com/asciimoo/searx/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -24,67 +24,67 @@ msgstr ""
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: searx/webapp.py:104
#: searx/webapp.py:114
msgid "files"
msgstr "fichiers"
#: searx/webapp.py:105
#: searx/webapp.py:115
msgid "general"
msgstr "général"
#: searx/webapp.py:106
#: searx/webapp.py:116
msgid "music"
msgstr "musique"
#: searx/webapp.py:107
#: searx/webapp.py:117
msgid "social media"
msgstr "réseaux sociaux"
#: searx/webapp.py:108
#: searx/webapp.py:118
msgid "images"
msgstr "images"
#: searx/webapp.py:109
#: searx/webapp.py:119
msgid "videos"
msgstr "vidéos"
#: searx/webapp.py:110
#: searx/webapp.py:120
msgid "it"
msgstr "informatique"
#: searx/webapp.py:111
#: searx/webapp.py:121
msgid "news"
msgstr "actus"
#: searx/webapp.py:112
#: searx/webapp.py:122
msgid "map"
msgstr "carte"
#: searx/webapp.py:396
#: searx/webapp.py:414
msgid "{minutes} minute(s) ago"
msgstr "il y a {minutes} minute(s)"
#: searx/webapp.py:398
#: searx/webapp.py:416
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "il y a {hours} heure(s), {minutes} minute(s)"
#: searx/engines/__init__.py:182
#: searx/engines/__init__.py:185
msgid "Page loads (sec)"
msgstr "Chargement de la page (sec)"
#: searx/engines/__init__.py:186
#: searx/engines/__init__.py:189
msgid "Number of results"
msgstr "Nombre de résultats"
#: searx/engines/__init__.py:190
#: searx/engines/__init__.py:193
msgid "Scores"
msgstr "Score"
#: searx/engines/__init__.py:194
#: searx/engines/__init__.py:197
msgid "Scores per result"
msgstr "Score par résultat"
#: searx/engines/__init__.py:198
#: searx/engines/__init__.py:201
msgid "Errors"
msgstr "Erreurs"
@ -99,12 +99,22 @@ msgstr "Lancer la recherche lors du choix d'une catégorie"
#: searx/plugins/search_on_category_select.py:19
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories."
msgstr "Exécute la recherche immédiatement si une catégorie est sélectionnée. Désactiver pour sélectionner plusieurs catégories."
"multiple categories. (JavaScript required)"
msgstr "Exécute la recherche immédiatement si une catégorie est sélectionnée. Désactiver pour sélectionner plusieurs catégories (nécessite JavaScript)."
#: searx/plugins/self_ip.py:19
msgid "Display your source IP address if the query expression is \"ip\""
msgstr "Afficher votre adresse IP si la requête contient \"ip\"."
#: searx/plugins/self_info.py:20
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr "Affiche votre adresse IP si la requête est \"ip\", et affiche votre user-agent si la requete contient \"user agent\"."
#: searx/plugins/tracker_url_remover.py:26
msgid "Tracker URL remover"
msgstr "Nettoyeur d'URL de suivis"
#: searx/plugins/tracker_url_remover.py:27
msgid "Remove trackers arguments from the returned URL"
msgstr "Retire les arguments utilisés pour vous pister des URL retournées"
#: searx/templates/courgette/index.html:9
#: searx/templates/courgette/index.html:13
@ -132,90 +142,92 @@ msgstr "Préférences"
#: searx/templates/courgette/preferences.html:9
#: searx/templates/default/preferences.html:9
#: searx/templates/oscar/preferences.html:35
#: searx/templates/oscar/preferences.html:37
#: searx/templates/oscar/preferences.html:36
#: searx/templates/oscar/preferences.html:38
msgid "Default categories"
msgstr "Catégories par défaut"
#: searx/templates/courgette/preferences.html:13
#: searx/templates/default/preferences.html:14
#: searx/templates/oscar/preferences.html:43
#: searx/templates/oscar/preferences.html:44
#: searx/templates/pix-art/preferences.html:9
msgid "Search language"
msgstr "Langue de recherche"
#: searx/templates/courgette/preferences.html:16
#: searx/templates/default/preferences.html:17
#: searx/templates/oscar/preferences.html:47
#: searx/templates/oscar/preferences.html:48
#: searx/templates/pix-art/preferences.html:12
msgid "Automatic"
msgstr "Automatique"
#: searx/templates/courgette/preferences.html:24
#: searx/templates/default/preferences.html:25
#: searx/templates/oscar/preferences.html:54
#: searx/templates/oscar/preferences.html:55
#: searx/templates/pix-art/preferences.html:20
msgid "Interface language"
msgstr "Langue de l'interface"
#: searx/templates/courgette/preferences.html:34
#: searx/templates/default/preferences.html:35
#: searx/templates/oscar/preferences.html:64
#: searx/templates/oscar/preferences.html:65
msgid "Autocomplete"
msgstr "Complétion automatique"
#: searx/templates/courgette/preferences.html:45
#: searx/templates/default/preferences.html:46
#: searx/templates/oscar/preferences.html:75
#: searx/templates/oscar/preferences.html:76
msgid "Image proxy"
msgstr "Proxy d'images"
#: searx/templates/courgette/preferences.html:48
#: searx/templates/default/preferences.html:49
#: searx/templates/oscar/preferences.html:79
#: searx/templates/oscar/preferences.html:80
msgid "Enabled"
msgstr "Activé"
#: searx/templates/courgette/preferences.html:49
#: searx/templates/default/preferences.html:50
#: searx/templates/oscar/preferences.html:80
#: searx/templates/oscar/preferences.html:81
msgid "Disabled"
msgstr "Désactivé"
#: searx/templates/courgette/preferences.html:54
#: searx/templates/default/preferences.html:55
#: searx/templates/oscar/preferences.html:84
#: searx/templates/oscar/preferences.html:85
#: searx/templates/pix-art/preferences.html:30
msgid "Method"
msgstr "Méthode"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/default/preferences.html:64
#: searx/templates/oscar/preferences.html:93
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:144
#: searx/templates/oscar/preferences.html:150
msgid "SafeSearch"
msgstr "Recherche sécurisée"
#: searx/templates/courgette/preferences.html:66
#: searx/templates/default/preferences.html:67
#: searx/templates/oscar/preferences.html:97
#: searx/templates/oscar/preferences.html:98
msgid "Strict"
msgstr "Stricte"
#: searx/templates/courgette/preferences.html:67
#: searx/templates/default/preferences.html:68
#: searx/templates/oscar/preferences.html:98
#: searx/templates/oscar/preferences.html:99
msgid "Moderate"
msgstr "Moyen"
#: searx/templates/courgette/preferences.html:68
#: searx/templates/default/preferences.html:69
#: searx/templates/oscar/preferences.html:99
#: searx/templates/oscar/preferences.html:100
msgid "None"
msgstr "Pas du tout"
#: searx/templates/courgette/preferences.html:73
#: searx/templates/default/preferences.html:74
#: searx/templates/oscar/preferences.html:103
#: searx/templates/oscar/preferences.html:104
#: searx/templates/pix-art/preferences.html:39
msgid "Themes"
msgstr "Thème"
@ -256,6 +268,8 @@ msgstr "Moteurs de recherche actuellement utilisés"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/default/preferences.html:88
#: searx/templates/oscar/preferences.html:142
#: searx/templates/oscar/preferences.html:152
#: searx/templates/pix-art/preferences.html:53
msgid "Engine name"
msgstr "Nom du moteur"
@ -270,6 +284,8 @@ msgstr "Catégorie"
#: searx/templates/default/preferences.html:90
#: searx/templates/default/preferences.html:101
#: searx/templates/oscar/macros.html:67
#: searx/templates/oscar/preferences.html:141
#: searx/templates/oscar/preferences.html:153
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
msgid "Allow"
@ -287,7 +303,7 @@ msgstr "Bloquer"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/default/preferences.html:110
#: searx/templates/oscar/preferences.html:180
#: searx/templates/oscar/preferences.html:235
#: searx/templates/pix-art/preferences.html:73
msgid ""
"These settings are stored in your cookies, this allows us not to store this "
@ -296,7 +312,7 @@ msgstr "Ces paramètres sont stockés dans vos cookies ; ceci nous permet de ne
#: searx/templates/courgette/preferences.html:124
#: searx/templates/default/preferences.html:112
#: searx/templates/oscar/preferences.html:182
#: searx/templates/oscar/preferences.html:237
#: searx/templates/pix-art/preferences.html:75
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
@ -305,20 +321,20 @@ msgstr "Ces cookies existent pour votre confort d'utilisation, nous ne les utili
#: searx/templates/courgette/preferences.html:127
#: searx/templates/default/preferences.html:115
#: searx/templates/oscar/preferences.html:185
#: searx/templates/oscar/preferences.html:240
#: searx/templates/pix-art/preferences.html:78
msgid "save"
msgstr "enregistrer"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/default/preferences.html:116
#: searx/templates/oscar/preferences.html:187
#: searx/templates/oscar/preferences.html:242
msgid "Reset defaults"
msgstr "Remettre les valeurs par défaut"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/default/preferences.html:117
#: searx/templates/oscar/preferences.html:186
#: searx/templates/oscar/preferences.html:241
#: searx/templates/pix-art/preferences.html:79
msgid "back"
msgstr "retour"
@ -428,51 +444,89 @@ msgid "Toggle navigation"
msgstr "Afficher/Masquer la navigation"
#: searx/templates/oscar/preferences.html:17
#: searx/templates/oscar/preferences.html:24
#: searx/templates/oscar/preferences.html:25
msgid "General"
msgstr "Général"
#: searx/templates/oscar/preferences.html:18
#: searx/templates/oscar/preferences.html:125
#: searx/templates/oscar/preferences.html:126
msgid "Engines"
msgstr "Moteurs"
#: searx/templates/oscar/preferences.html:19
#: searx/templates/oscar/preferences.html:159
#: searx/templates/oscar/preferences.html:187
msgid "Plugins"
msgstr "Plugins"
#: searx/templates/oscar/preferences.html:44
#: searx/templates/oscar/preferences.html:20
#: searx/templates/oscar/preferences.html:210
msgid "Cookies"
msgstr "Cookies"
#: searx/templates/oscar/preferences.html:45
msgid "What language do you prefer for search?"
msgstr "Dans quelle langue préférez-vous effectuer la recherche ?"
#: searx/templates/oscar/preferences.html:55
#: searx/templates/oscar/preferences.html:56
msgid "Change the language of the layout"
msgstr "Changer la langue d'affichage"
#: searx/templates/oscar/preferences.html:65
#: searx/templates/oscar/preferences.html:66
msgid "Find stuff as you type"
msgstr "Chercher au fil de la saisie"
#: searx/templates/oscar/preferences.html:76
#: searx/templates/oscar/preferences.html:77
msgid "Proxying image results through searx"
msgstr "Proxifier les images de résultats à travers searx"
#: searx/templates/oscar/preferences.html:85
#: searx/templates/oscar/preferences.html:86
msgid ""
"Change how forms are submited, <a "
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr "Permet de choisir comment la recherche est envoyée, <a href=\"https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol#M.C3.A9thodes\" rel=\"external\">en savoir plus sur les méthodes HTTP</a>"
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:95
msgid "Filter content"
msgstr "Filtrer le contenu"
#: searx/templates/oscar/preferences.html:104
#: searx/templates/oscar/preferences.html:105
msgid "Change searx layout"
msgstr "Modifier l'affichage de searx"
#: searx/templates/oscar/preferences.html:143
#: searx/templates/oscar/preferences.html:151
msgid "Shortcut"
msgstr "Raccourcis"
#: searx/templates/oscar/preferences.html:145
#: searx/templates/oscar/preferences.html:149
msgid "Avg. time"
msgstr "Temps moy."
#: searx/templates/oscar/preferences.html:146
#: searx/templates/oscar/preferences.html:148
msgid "Max time"
msgstr "Temps max"
#: searx/templates/oscar/preferences.html:213
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "C'est une liste de cookies et de leurs valeurs que searx enregistre sur votre ordinateur."
#: searx/templates/oscar/preferences.html:214
msgid "With that list, you can assess searx transparency."
msgstr "Avec cette liste, vous pouvez juger de la transparence de searx."
#: searx/templates/oscar/preferences.html:219
msgid "Cookie name"
msgstr "Nom du cookie"
#: searx/templates/oscar/preferences.html:220
msgid "Value"
msgstr "Valeur"
#: searx/templates/oscar/results.html:7
msgid "Search results"
msgstr "Résultats de recherche"
@ -522,6 +576,14 @@ msgstr "Attention !"
msgid "Please enable JavaScript to use full functionality of this site."
msgstr "Merci d'activer JavaScript pour utiliser toutes les fonctionnalités de ce site."
#: searx/templates/oscar/messages/no_cookies.html:3
msgid "Information!"
msgstr "Information !"
#: searx/templates/oscar/messages/no_cookies.html:4
msgid "currently, there are no cookies defined."
msgstr "il n'y a pas de cookies définit pour le moment."
#: searx/templates/oscar/messages/no_data_available.html:4
msgid "There is currently no data available. "
msgstr "Aucune donnée disponible pour l'instant. "

View File

@ -12,10 +12,10 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2015-04-26 18:57+0200\n"
"PO-Revision-Date: 2015-04-27 06:42+0000\n"
"POT-Creation-Date: 2015-08-24 11:44+0200\n"
"PO-Revision-Date: 2015-08-24 11:19+0000\n"
"Last-Translator: GenghisKhan <genghiskhan@gmx.ca>\n"
"Language-Team: Hebrew (http://www.transifex.com/projects/p/searx/language/he/)\n"
"Language-Team: Hebrew (http://www.transifex.com/asciimoo/searx/language/he/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -23,67 +23,67 @@ msgstr ""
"Language: he\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: searx/webapp.py:104
#: searx/webapp.py:114
msgid "files"
msgstr "קבצים"
#: searx/webapp.py:105
#: searx/webapp.py:115
msgid "general"
msgstr "כללי"
#: searx/webapp.py:106
#: searx/webapp.py:116
msgid "music"
msgstr "מוזיקה"
#: searx/webapp.py:107
#: searx/webapp.py:117
msgid "social media"
msgstr "מדיה חברתית"
#: searx/webapp.py:108
#: searx/webapp.py:118
msgid "images"
msgstr "תמונות"
#: searx/webapp.py:109
#: searx/webapp.py:119
msgid "videos"
msgstr "סרטונים"
#: searx/webapp.py:110
#: searx/webapp.py:120
msgid "it"
msgstr "IT"
#: searx/webapp.py:111
#: searx/webapp.py:121
msgid "news"
msgstr "חדשות"
#: searx/webapp.py:112
#: searx/webapp.py:122
msgid "map"
msgstr "מפה"
#: searx/webapp.py:396
#: searx/webapp.py:414
msgid "{minutes} minute(s) ago"
msgstr "לפני {minutes} דקות"
#: searx/webapp.py:398
#: searx/webapp.py:416
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "לפני {hours} שעות, {minutes} דקות"
#: searx/engines/__init__.py:182
#: searx/engines/__init__.py:185
msgid "Page loads (sec)"
msgstr "עומס עמוד (שניות)"
#: searx/engines/__init__.py:186
#: searx/engines/__init__.py:189
msgid "Number of results"
msgstr "מספר תוצאות"
#: searx/engines/__init__.py:190
#: searx/engines/__init__.py:193
msgid "Scores"
msgstr "דירוג"
#: searx/engines/__init__.py:194
#: searx/engines/__init__.py:197
msgid "Scores per result"
msgstr "דירוג לכל תוצאה"
#: searx/engines/__init__.py:198
#: searx/engines/__init__.py:201
msgid "Errors"
msgstr "שגיאות"
@ -98,12 +98,22 @@ msgstr "חפש בעת בחירת קטגוריה"
#: searx/plugins/search_on_category_select.py:19
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories."
msgstr "בצע חיפוש מיד לאחר שקטגוריה נבחרת. נטרל כדי לבחור מספר קטגוריות."
"multiple categories. (JavaScript required)"
msgstr "בצע חיפוש לאלתר כאשר קטגוריה נבחרת. נטרל כדי לבחור קטגוריות מרובות. (מצריך JavaScript)"
#: searx/plugins/self_ip.py:19
msgid "Display your source IP address if the query expression is \"ip\""
msgstr "הצג מקור כתובת IP כאשר מילת שאילתא היא \"ip\""
#: searx/plugins/self_info.py:20
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr "מציגה כתובת IP המשוייכת לך אם השאילתא היא \"ip\" וגם סוכן משתמש אם שאילתא מכילה \"user agent\"."
#: searx/plugins/tracker_url_remover.py:26
msgid "Tracker URL remover"
msgstr "מסיר URL גשש"
#: searx/plugins/tracker_url_remover.py:27
msgid "Remove trackers arguments from the returned URL"
msgstr "הסר ארגומנטים מאתרים מתוך URL מוחזר"
#: searx/templates/courgette/index.html:9
#: searx/templates/courgette/index.html:13
@ -131,90 +141,92 @@ msgstr "העדפות"
#: searx/templates/courgette/preferences.html:9
#: searx/templates/default/preferences.html:9
#: searx/templates/oscar/preferences.html:35
#: searx/templates/oscar/preferences.html:37
#: searx/templates/oscar/preferences.html:36
#: searx/templates/oscar/preferences.html:38
msgid "Default categories"
msgstr "קטגוריות ברירת מחדל"
#: searx/templates/courgette/preferences.html:13
#: searx/templates/default/preferences.html:14
#: searx/templates/oscar/preferences.html:43
#: searx/templates/oscar/preferences.html:44
#: searx/templates/pix-art/preferences.html:9
msgid "Search language"
msgstr "שפת חיפוש"
#: searx/templates/courgette/preferences.html:16
#: searx/templates/default/preferences.html:17
#: searx/templates/oscar/preferences.html:47
#: searx/templates/oscar/preferences.html:48
#: searx/templates/pix-art/preferences.html:12
msgid "Automatic"
msgstr "אוטומטי"
#: searx/templates/courgette/preferences.html:24
#: searx/templates/default/preferences.html:25
#: searx/templates/oscar/preferences.html:54
#: searx/templates/oscar/preferences.html:55
#: searx/templates/pix-art/preferences.html:20
msgid "Interface language"
msgstr "שפת ממשק"
#: searx/templates/courgette/preferences.html:34
#: searx/templates/default/preferences.html:35
#: searx/templates/oscar/preferences.html:64
#: searx/templates/oscar/preferences.html:65
msgid "Autocomplete"
msgstr "השלמה אוטומטית"
#: searx/templates/courgette/preferences.html:45
#: searx/templates/default/preferences.html:46
#: searx/templates/oscar/preferences.html:75
#: searx/templates/oscar/preferences.html:76
msgid "Image proxy"
msgstr "proxy תמונה"
#: searx/templates/courgette/preferences.html:48
#: searx/templates/default/preferences.html:49
#: searx/templates/oscar/preferences.html:79
#: searx/templates/oscar/preferences.html:80
msgid "Enabled"
msgstr "מאופשר"
#: searx/templates/courgette/preferences.html:49
#: searx/templates/default/preferences.html:50
#: searx/templates/oscar/preferences.html:80
#: searx/templates/oscar/preferences.html:81
msgid "Disabled"
msgstr "מנוטרל"
#: searx/templates/courgette/preferences.html:54
#: searx/templates/default/preferences.html:55
#: searx/templates/oscar/preferences.html:84
#: searx/templates/oscar/preferences.html:85
#: searx/templates/pix-art/preferences.html:30
msgid "Method"
msgstr "שיטה"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/default/preferences.html:64
#: searx/templates/oscar/preferences.html:93
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:144
#: searx/templates/oscar/preferences.html:150
msgid "SafeSearch"
msgstr "חיפוש בטוח"
#: searx/templates/courgette/preferences.html:66
#: searx/templates/default/preferences.html:67
#: searx/templates/oscar/preferences.html:97
#: searx/templates/oscar/preferences.html:98
msgid "Strict"
msgstr "מחמיר"
#: searx/templates/courgette/preferences.html:67
#: searx/templates/default/preferences.html:68
#: searx/templates/oscar/preferences.html:98
#: searx/templates/oscar/preferences.html:99
msgid "Moderate"
msgstr "מתון"
#: searx/templates/courgette/preferences.html:68
#: searx/templates/default/preferences.html:69
#: searx/templates/oscar/preferences.html:99
#: searx/templates/oscar/preferences.html:100
msgid "None"
msgstr "בלי"
#: searx/templates/courgette/preferences.html:73
#: searx/templates/default/preferences.html:74
#: searx/templates/oscar/preferences.html:103
#: searx/templates/oscar/preferences.html:104
#: searx/templates/pix-art/preferences.html:39
msgid "Themes"
msgstr "מוטיבים"
@ -251,10 +263,12 @@ msgstr "אדום"
#: searx/templates/default/preferences.html:84
#: searx/templates/pix-art/preferences.html:49
msgid "Currently used search engines"
msgstr "מנועי חיפוש שבשימוש עתה"
msgstr "מנועי חיפוש בשימוש עתה"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/default/preferences.html:88
#: searx/templates/oscar/preferences.html:142
#: searx/templates/oscar/preferences.html:152
#: searx/templates/pix-art/preferences.html:53
msgid "Engine name"
msgstr "שם מנוע"
@ -269,6 +283,8 @@ msgstr "קטגוריה"
#: searx/templates/default/preferences.html:90
#: searx/templates/default/preferences.html:101
#: searx/templates/oscar/macros.html:67
#: searx/templates/oscar/preferences.html:141
#: searx/templates/oscar/preferences.html:153
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
msgid "Allow"
@ -286,7 +302,7 @@ msgstr "חסום"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/default/preferences.html:110
#: searx/templates/oscar/preferences.html:180
#: searx/templates/oscar/preferences.html:235
#: searx/templates/pix-art/preferences.html:73
msgid ""
"These settings are stored in your cookies, this allows us not to store this "
@ -295,7 +311,7 @@ msgstr "הגדרות אלו מאוחסנות בתוך העוגיות שלך, א
#: searx/templates/courgette/preferences.html:124
#: searx/templates/default/preferences.html:112
#: searx/templates/oscar/preferences.html:182
#: searx/templates/oscar/preferences.html:237
#: searx/templates/pix-art/preferences.html:75
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
@ -304,20 +320,20 @@ msgstr "עוגיות אלו משרתות את נוחותך הבלעדית, אנ
#: searx/templates/courgette/preferences.html:127
#: searx/templates/default/preferences.html:115
#: searx/templates/oscar/preferences.html:185
#: searx/templates/oscar/preferences.html:240
#: searx/templates/pix-art/preferences.html:78
msgid "save"
msgstr "שמור"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/default/preferences.html:116
#: searx/templates/oscar/preferences.html:187
#: searx/templates/oscar/preferences.html:242
msgid "Reset defaults"
msgstr "אפס ברירות מחדל"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/default/preferences.html:117
#: searx/templates/oscar/preferences.html:186
#: searx/templates/oscar/preferences.html:241
#: searx/templates/pix-art/preferences.html:79
msgid "back"
msgstr "חזור"
@ -412,7 +428,7 @@ msgstr "מוטמן"
#: searx/templates/oscar/base.html:78
msgid "Powered by"
msgstr "ממונע באמצעות"
msgstr "מופעל באמצעות"
#: searx/templates/oscar/base.html:78
msgid "a privacy-respecting, hackable metasearch engine"
@ -427,51 +443,89 @@ msgid "Toggle navigation"
msgstr "Toggle ניווט"
#: searx/templates/oscar/preferences.html:17
#: searx/templates/oscar/preferences.html:24
#: searx/templates/oscar/preferences.html:25
msgid "General"
msgstr "כללי"
#: searx/templates/oscar/preferences.html:18
#: searx/templates/oscar/preferences.html:125
#: searx/templates/oscar/preferences.html:126
msgid "Engines"
msgstr "מנועים"
#: searx/templates/oscar/preferences.html:19
#: searx/templates/oscar/preferences.html:159
#: searx/templates/oscar/preferences.html:187
msgid "Plugins"
msgstr "תוספים"
#: searx/templates/oscar/preferences.html:44
#: searx/templates/oscar/preferences.html:20
#: searx/templates/oscar/preferences.html:210
msgid "Cookies"
msgstr "עוגיות"
#: searx/templates/oscar/preferences.html:45
msgid "What language do you prefer for search?"
msgstr "איזו שפה אתם מעדיפים לצורך חיפוש?"
#: searx/templates/oscar/preferences.html:55
#: searx/templates/oscar/preferences.html:56
msgid "Change the language of the layout"
msgstr "שינוי שפת הממשק"
#: searx/templates/oscar/preferences.html:65
#: searx/templates/oscar/preferences.html:66
msgid "Find stuff as you type"
msgstr "מציאת דברים בזמן הקלדה"
#: searx/templates/oscar/preferences.html:76
#: searx/templates/oscar/preferences.html:77
msgid "Proxying image results through searx"
msgstr "Proxying תוצאות תמונה מבעד searx"
#: searx/templates/oscar/preferences.html:85
#: searx/templates/oscar/preferences.html:86
msgid ""
"Change how forms are submited, <a "
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr "שינוי האופן בו טפסים נשלחים, <a href=\"http://he.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">למדו עוד אודות שיטות בקשה (request methods)</a>"
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:95
msgid "Filter content"
msgstr "סנן תוכן"
#: searx/templates/oscar/preferences.html:104
#: searx/templates/oscar/preferences.html:105
msgid "Change searx layout"
msgstr "שינוי ממשק searx"
#: searx/templates/oscar/preferences.html:143
#: searx/templates/oscar/preferences.html:151
msgid "Shortcut"
msgstr "קיצור דרך"
#: searx/templates/oscar/preferences.html:145
#: searx/templates/oscar/preferences.html:149
msgid "Avg. time"
msgstr "זמן ממוצע"
#: searx/templates/oscar/preferences.html:146
#: searx/templates/oscar/preferences.html:148
msgid "Max time"
msgstr "זמן מירבי"
#: searx/templates/oscar/preferences.html:213
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "זוהי רשימה של עוגיות וערכיהן אשר searx מאחסנת על המחשב שלך."
#: searx/templates/oscar/preferences.html:214
msgid "With that list, you can assess searx transparency."
msgstr "בעזרת רשימה זו, באפשרותך לגשת אל searx transparency."
#: searx/templates/oscar/preferences.html:219
msgid "Cookie name"
msgstr "שם עוגייה"
#: searx/templates/oscar/preferences.html:220
msgid "Value"
msgstr "ערך"
#: searx/templates/oscar/results.html:7
msgid "Search results"
msgstr "תוצאות חיפוש"
@ -521,6 +575,14 @@ msgstr "אזהרה!"
msgid "Please enable JavaScript to use full functionality of this site."
msgstr "אנא אפשרו JavaScript כדי לנצל תפקודיות מלאה של אתר זה."
#: searx/templates/oscar/messages/no_cookies.html:3
msgid "Information!"
msgstr "מידע!"
#: searx/templates/oscar/messages/no_cookies.html:4
msgid "currently, there are no cookies defined."
msgstr "ברגע זה, אין עוגיות מוגדרות."
#: searx/templates/oscar/messages/no_data_available.html:4
msgid "There is currently no data available. "
msgstr "אין כעת מידע זמין. "

View File

@ -9,10 +9,10 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2015-04-26 18:57+0200\n"
"PO-Revision-Date: 2015-04-26 17:13+0000\n"
"POT-Creation-Date: 2015-08-24 11:44+0200\n"
"PO-Revision-Date: 2015-08-25 16:29+0000\n"
"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
"Language-Team: Hungarian (http://www.transifex.com/projects/p/searx/language/hu/)\n"
"Language-Team: Hungarian (http://www.transifex.com/asciimoo/searx/language/hu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -20,67 +20,67 @@ msgstr ""
"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: searx/webapp.py:104
#: searx/webapp.py:114
msgid "files"
msgstr "fájlok"
#: searx/webapp.py:105
#: searx/webapp.py:115
msgid "general"
msgstr "általános"
#: searx/webapp.py:106
#: searx/webapp.py:116
msgid "music"
msgstr "zene"
#: searx/webapp.py:107
#: searx/webapp.py:117
msgid "social media"
msgstr "közösségi média"
#: searx/webapp.py:108
#: searx/webapp.py:118
msgid "images"
msgstr "képek"
#: searx/webapp.py:109
#: searx/webapp.py:119
msgid "videos"
msgstr "videók"
#: searx/webapp.py:110
#: searx/webapp.py:120
msgid "it"
msgstr "it"
#: searx/webapp.py:111
#: searx/webapp.py:121
msgid "news"
msgstr "hírek"
#: searx/webapp.py:112
#: searx/webapp.py:122
msgid "map"
msgstr "térkép"
#: searx/webapp.py:396
#: searx/webapp.py:414
msgid "{minutes} minute(s) ago"
msgstr "{minutes} perce"
#: searx/webapp.py:398
#: searx/webapp.py:416
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} óra, {minutes} perce"
#: searx/engines/__init__.py:182
#: searx/engines/__init__.py:185
msgid "Page loads (sec)"
msgstr "Válaszidők (sec)"
#: searx/engines/__init__.py:186
#: searx/engines/__init__.py:189
msgid "Number of results"
msgstr "Találatok száma"
#: searx/engines/__init__.py:190
#: searx/engines/__init__.py:193
msgid "Scores"
msgstr "Pontszámok"
#: searx/engines/__init__.py:194
#: searx/engines/__init__.py:197
msgid "Scores per result"
msgstr "Pontszámok találatonként"
#: searx/engines/__init__.py:198
#: searx/engines/__init__.py:201
msgid "Errors"
msgstr "Hibák"
@ -95,12 +95,22 @@ msgstr "Azonnal keresés kategória választással"
#: searx/plugins/search_on_category_select.py:19
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories."
msgstr "Keresés megkezdése kategória kiválasztáskor. Több kategória kiválasztásához deaktiválás szükséges"
"multiple categories. (JavaScript required)"
msgstr "Keresés megkezdése kategória kiválasztáskor. Több kategória kiválasztásához deaktiválás szükséges. (Javascript szükséges)"
#: searx/plugins/self_ip.py:19
msgid "Display your source IP address if the query expression is \"ip\""
msgstr "Saját IP cím megjelenítése az \"ip\" kulcsszóra keresve"
#: searx/plugins/self_info.py:20
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr "Saját IP cím, user agent megjelenítés az \"ip\", \"user agent\" szavakra keresve."
#: searx/plugins/tracker_url_remover.py:26
msgid "Tracker URL remover"
msgstr "Tracker URL eltávolítás"
#: searx/plugins/tracker_url_remover.py:27
msgid "Remove trackers arguments from the returned URL"
msgstr "Felhasználó követéshez használt találati URL paraméterek eltávolítása"
#: searx/templates/courgette/index.html:9
#: searx/templates/courgette/index.html:13
@ -128,90 +138,92 @@ msgstr "Beállítások"
#: searx/templates/courgette/preferences.html:9
#: searx/templates/default/preferences.html:9
#: searx/templates/oscar/preferences.html:35
#: searx/templates/oscar/preferences.html:37
#: searx/templates/oscar/preferences.html:36
#: searx/templates/oscar/preferences.html:38
msgid "Default categories"
msgstr "Alapértelmezett kategóriák"
#: searx/templates/courgette/preferences.html:13
#: searx/templates/default/preferences.html:14
#: searx/templates/oscar/preferences.html:43
#: searx/templates/oscar/preferences.html:44
#: searx/templates/pix-art/preferences.html:9
msgid "Search language"
msgstr "Keresés nyelve"
#: searx/templates/courgette/preferences.html:16
#: searx/templates/default/preferences.html:17
#: searx/templates/oscar/preferences.html:47
#: searx/templates/oscar/preferences.html:48
#: searx/templates/pix-art/preferences.html:12
msgid "Automatic"
msgstr "Automatikus"
#: searx/templates/courgette/preferences.html:24
#: searx/templates/default/preferences.html:25
#: searx/templates/oscar/preferences.html:54
#: searx/templates/oscar/preferences.html:55
#: searx/templates/pix-art/preferences.html:20
msgid "Interface language"
msgstr "Felület nyelve"
#: searx/templates/courgette/preferences.html:34
#: searx/templates/default/preferences.html:35
#: searx/templates/oscar/preferences.html:64
#: searx/templates/oscar/preferences.html:65
msgid "Autocomplete"
msgstr "Automatikus kiegészítés"
#: searx/templates/courgette/preferences.html:45
#: searx/templates/default/preferences.html:46
#: searx/templates/oscar/preferences.html:75
#: searx/templates/oscar/preferences.html:76
msgid "Image proxy"
msgstr "Kép proxy"
#: searx/templates/courgette/preferences.html:48
#: searx/templates/default/preferences.html:49
#: searx/templates/oscar/preferences.html:79
#: searx/templates/oscar/preferences.html:80
msgid "Enabled"
msgstr "Engedélyez"
#: searx/templates/courgette/preferences.html:49
#: searx/templates/default/preferences.html:50
#: searx/templates/oscar/preferences.html:80
#: searx/templates/oscar/preferences.html:81
msgid "Disabled"
msgstr "Inaktivál"
#: searx/templates/courgette/preferences.html:54
#: searx/templates/default/preferences.html:55
#: searx/templates/oscar/preferences.html:84
#: searx/templates/oscar/preferences.html:85
#: searx/templates/pix-art/preferences.html:30
msgid "Method"
msgstr "Method"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/default/preferences.html:64
#: searx/templates/oscar/preferences.html:93
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:144
#: searx/templates/oscar/preferences.html:150
msgid "SafeSearch"
msgstr "Felnőtt tartalom szűrés"
#: searx/templates/courgette/preferences.html:66
#: searx/templates/default/preferences.html:67
#: searx/templates/oscar/preferences.html:97
#: searx/templates/oscar/preferences.html:98
msgid "Strict"
msgstr "Erős"
#: searx/templates/courgette/preferences.html:67
#: searx/templates/default/preferences.html:68
#: searx/templates/oscar/preferences.html:98
#: searx/templates/oscar/preferences.html:99
msgid "Moderate"
msgstr "Enyhe"
#: searx/templates/courgette/preferences.html:68
#: searx/templates/default/preferences.html:69
#: searx/templates/oscar/preferences.html:99
#: searx/templates/oscar/preferences.html:100
msgid "None"
msgstr "Nincs"
#: searx/templates/courgette/preferences.html:73
#: searx/templates/default/preferences.html:74
#: searx/templates/oscar/preferences.html:103
#: searx/templates/oscar/preferences.html:104
#: searx/templates/pix-art/preferences.html:39
msgid "Themes"
msgstr "Megjelenés"
@ -252,6 +264,8 @@ msgstr "Jelenleg használt keresők"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/default/preferences.html:88
#: searx/templates/oscar/preferences.html:142
#: searx/templates/oscar/preferences.html:152
#: searx/templates/pix-art/preferences.html:53
msgid "Engine name"
msgstr "Kereső neve"
@ -266,6 +280,8 @@ msgstr "Kategória"
#: searx/templates/default/preferences.html:90
#: searx/templates/default/preferences.html:101
#: searx/templates/oscar/macros.html:67
#: searx/templates/oscar/preferences.html:141
#: searx/templates/oscar/preferences.html:153
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
msgid "Allow"
@ -283,7 +299,7 @@ msgstr "Tiltás"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/default/preferences.html:110
#: searx/templates/oscar/preferences.html:180
#: searx/templates/oscar/preferences.html:235
#: searx/templates/pix-art/preferences.html:73
msgid ""
"These settings are stored in your cookies, this allows us not to store this "
@ -292,7 +308,7 @@ msgstr "Ezek a beállítások csak a böngésző cookie-jaiban tárolódnak."
#: searx/templates/courgette/preferences.html:124
#: searx/templates/default/preferences.html:112
#: searx/templates/oscar/preferences.html:182
#: searx/templates/oscar/preferences.html:237
#: searx/templates/pix-art/preferences.html:75
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
@ -301,20 +317,20 @@ msgstr "Ezek a cookie-k csak kényelmi funkciókat látnak el, nem használjuk a
#: searx/templates/courgette/preferences.html:127
#: searx/templates/default/preferences.html:115
#: searx/templates/oscar/preferences.html:185
#: searx/templates/oscar/preferences.html:240
#: searx/templates/pix-art/preferences.html:78
msgid "save"
msgstr "mentés"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/default/preferences.html:116
#: searx/templates/oscar/preferences.html:187
#: searx/templates/oscar/preferences.html:242
msgid "Reset defaults"
msgstr "Alapbeállítások visszaállítása"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/default/preferences.html:117
#: searx/templates/oscar/preferences.html:186
#: searx/templates/oscar/preferences.html:241
#: searx/templates/pix-art/preferences.html:79
msgid "back"
msgstr "vissza"
@ -424,51 +440,89 @@ msgid "Toggle navigation"
msgstr "Navigáció megjelenítés"
#: searx/templates/oscar/preferences.html:17
#: searx/templates/oscar/preferences.html:24
#: searx/templates/oscar/preferences.html:25
msgid "General"
msgstr "Általános"
#: searx/templates/oscar/preferences.html:18
#: searx/templates/oscar/preferences.html:125
#: searx/templates/oscar/preferences.html:126
msgid "Engines"
msgstr "Kereső motorok"
#: searx/templates/oscar/preferences.html:19
#: searx/templates/oscar/preferences.html:159
#: searx/templates/oscar/preferences.html:187
msgid "Plugins"
msgstr "Pluginek"
#: searx/templates/oscar/preferences.html:44
#: searx/templates/oscar/preferences.html:20
#: searx/templates/oscar/preferences.html:210
msgid "Cookies"
msgstr "Sütik"
#: searx/templates/oscar/preferences.html:45
msgid "What language do you prefer for search?"
msgstr "Preferált keresési nyelv"
#: searx/templates/oscar/preferences.html:55
#: searx/templates/oscar/preferences.html:56
msgid "Change the language of the layout"
msgstr "Felület nyelve"
#: searx/templates/oscar/preferences.html:65
#: searx/templates/oscar/preferences.html:66
msgid "Find stuff as you type"
msgstr "Autómatikus kereső kifejezés kiegészítés"
#: searx/templates/oscar/preferences.html:76
#: searx/templates/oscar/preferences.html:77
msgid "Proxying image results through searx"
msgstr "Kép találatok betöltése searx-ön keresztül"
#: searx/templates/oscar/preferences.html:85
#: searx/templates/oscar/preferences.html:86
msgid ""
"Change how forms are submited, <a "
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr "Keresés metódusa (<a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">bővebben</a>)"
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:95
msgid "Filter content"
msgstr "Tartalom szűrés"
#: searx/templates/oscar/preferences.html:104
#: searx/templates/oscar/preferences.html:105
msgid "Change searx layout"
msgstr "Megjelenés"
#: searx/templates/oscar/preferences.html:143
#: searx/templates/oscar/preferences.html:151
msgid "Shortcut"
msgstr "Rövidítés"
#: searx/templates/oscar/preferences.html:145
#: searx/templates/oscar/preferences.html:149
msgid "Avg. time"
msgstr "Átlag idő"
#: searx/templates/oscar/preferences.html:146
#: searx/templates/oscar/preferences.html:148
msgid "Max time"
msgstr "Maximális idő"
#: searx/templates/oscar/preferences.html:213
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Searx által használt sütik listája."
#: searx/templates/oscar/preferences.html:214
msgid "With that list, you can assess searx transparency."
msgstr "Ez a lista a kereső transzparenciáját hivatott megmutatni."
#: searx/templates/oscar/preferences.html:219
msgid "Cookie name"
msgstr "Süti név"
#: searx/templates/oscar/preferences.html:220
msgid "Value"
msgstr "Érték"
#: searx/templates/oscar/results.html:7
msgid "Search results"
msgstr "Keresési eredmények"
@ -518,6 +572,14 @@ msgstr "Figyelem!"
msgid "Please enable JavaScript to use full functionality of this site."
msgstr "Engedélyezze a javascript-et a teljes funkcionalitás használathoz"
#: searx/templates/oscar/messages/no_cookies.html:3
msgid "Information!"
msgstr "Figyelem!"
#: searx/templates/oscar/messages/no_cookies.html:4
msgid "currently, there are no cookies defined."
msgstr "jelenleg nincs süti definiálva"
#: searx/templates/oscar/messages/no_data_available.html:4
msgid "There is currently no data available. "
msgstr "Nincs megjeleníthető adat."

View File

@ -9,10 +9,10 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2015-04-26 18:57+0200\n"
"PO-Revision-Date: 2015-04-26 17:02+0000\n"
"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
"Language-Team: Italian (http://www.transifex.com/projects/p/searx/language/it/)\n"
"POT-Creation-Date: 2015-08-24 11:44+0200\n"
"PO-Revision-Date: 2015-08-24 09:45+0000\n"
"Last-Translator: pointhi\n"
"Language-Team: Italian (http://www.transifex.com/asciimoo/searx/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -20,67 +20,67 @@ msgstr ""
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: searx/webapp.py:104
#: searx/webapp.py:114
msgid "files"
msgstr "documenti"
#: searx/webapp.py:105
#: searx/webapp.py:115
msgid "general"
msgstr "generale"
#: searx/webapp.py:106
#: searx/webapp.py:116
msgid "music"
msgstr "musica"
#: searx/webapp.py:107
#: searx/webapp.py:117
msgid "social media"
msgstr "social media"
#: searx/webapp.py:108
#: searx/webapp.py:118
msgid "images"
msgstr "immagini"
#: searx/webapp.py:109
#: searx/webapp.py:119
msgid "videos"
msgstr "video"
#: searx/webapp.py:110
#: searx/webapp.py:120
msgid "it"
msgstr "it"
#: searx/webapp.py:111
#: searx/webapp.py:121
msgid "news"
msgstr "notizie"
#: searx/webapp.py:112
#: searx/webapp.py:122
msgid "map"
msgstr "mappe"
#: searx/webapp.py:396
#: searx/webapp.py:414
msgid "{minutes} minute(s) ago"
msgstr "di {minutes} minuti fa"
#: searx/webapp.py:398
#: searx/webapp.py:416
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "di {ore} h e {minutes} minuti fa"
#: searx/engines/__init__.py:182
#: searx/engines/__init__.py:185
msgid "Page loads (sec)"
msgstr " Caricamento della pagina (secondi)"
#: searx/engines/__init__.py:186
#: searx/engines/__init__.py:189
msgid "Number of results"
msgstr "Risultati ottenuti"
#: searx/engines/__init__.py:190
#: searx/engines/__init__.py:193
msgid "Scores"
msgstr "Punteggio"
#: searx/engines/__init__.py:194
#: searx/engines/__init__.py:197
msgid "Scores per result"
msgstr "Punteggio per risultato"
#: searx/engines/__init__.py:198
#: searx/engines/__init__.py:201
msgid "Errors"
msgstr "Errori"
@ -95,11 +95,21 @@ msgstr ""
#: searx/plugins/search_on_category_select.py:19
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories."
"multiple categories. (JavaScript required)"
msgstr ""
#: searx/plugins/self_ip.py:19
msgid "Display your source IP address if the query expression is \"ip\""
#: searx/plugins/self_info.py:20
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr ""
#: searx/plugins/tracker_url_remover.py:26
msgid "Tracker URL remover"
msgstr ""
#: searx/plugins/tracker_url_remover.py:27
msgid "Remove trackers arguments from the returned URL"
msgstr ""
#: searx/templates/courgette/index.html:9
@ -128,90 +138,92 @@ msgstr "Preferenze"
#: searx/templates/courgette/preferences.html:9
#: searx/templates/default/preferences.html:9
#: searx/templates/oscar/preferences.html:35
#: searx/templates/oscar/preferences.html:37
#: searx/templates/oscar/preferences.html:36
#: searx/templates/oscar/preferences.html:38
msgid "Default categories"
msgstr "Categorie predefinite"
#: searx/templates/courgette/preferences.html:13
#: searx/templates/default/preferences.html:14
#: searx/templates/oscar/preferences.html:43
#: searx/templates/oscar/preferences.html:44
#: searx/templates/pix-art/preferences.html:9
msgid "Search language"
msgstr "Lingua di ricerca"
#: searx/templates/courgette/preferences.html:16
#: searx/templates/default/preferences.html:17
#: searx/templates/oscar/preferences.html:47
#: searx/templates/oscar/preferences.html:48
#: searx/templates/pix-art/preferences.html:12
msgid "Automatic"
msgstr "Automatico"
#: searx/templates/courgette/preferences.html:24
#: searx/templates/default/preferences.html:25
#: searx/templates/oscar/preferences.html:54
#: searx/templates/oscar/preferences.html:55
#: searx/templates/pix-art/preferences.html:20
msgid "Interface language"
msgstr "Linguaggio dell'interfaccia"
#: searx/templates/courgette/preferences.html:34
#: searx/templates/default/preferences.html:35
#: searx/templates/oscar/preferences.html:64
#: searx/templates/oscar/preferences.html:65
msgid "Autocomplete"
msgstr "Completamento automatico"
#: searx/templates/courgette/preferences.html:45
#: searx/templates/default/preferences.html:46
#: searx/templates/oscar/preferences.html:75
#: searx/templates/oscar/preferences.html:76
msgid "Image proxy"
msgstr ""
#: searx/templates/courgette/preferences.html:48
#: searx/templates/default/preferences.html:49
#: searx/templates/oscar/preferences.html:79
#: searx/templates/oscar/preferences.html:80
msgid "Enabled"
msgstr ""
#: searx/templates/courgette/preferences.html:49
#: searx/templates/default/preferences.html:50
#: searx/templates/oscar/preferences.html:80
#: searx/templates/oscar/preferences.html:81
msgid "Disabled"
msgstr ""
#: searx/templates/courgette/preferences.html:54
#: searx/templates/default/preferences.html:55
#: searx/templates/oscar/preferences.html:84
#: searx/templates/oscar/preferences.html:85
#: searx/templates/pix-art/preferences.html:30
msgid "Method"
msgstr "Metodo"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/default/preferences.html:64
#: searx/templates/oscar/preferences.html:93
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:144
#: searx/templates/oscar/preferences.html:150
msgid "SafeSearch"
msgstr ""
#: searx/templates/courgette/preferences.html:66
#: searx/templates/default/preferences.html:67
#: searx/templates/oscar/preferences.html:97
#: searx/templates/oscar/preferences.html:98
msgid "Strict"
msgstr ""
#: searx/templates/courgette/preferences.html:67
#: searx/templates/default/preferences.html:68
#: searx/templates/oscar/preferences.html:98
#: searx/templates/oscar/preferences.html:99
msgid "Moderate"
msgstr ""
#: searx/templates/courgette/preferences.html:68
#: searx/templates/default/preferences.html:69
#: searx/templates/oscar/preferences.html:99
#: searx/templates/oscar/preferences.html:100
msgid "None"
msgstr ""
#: searx/templates/courgette/preferences.html:73
#: searx/templates/default/preferences.html:74
#: searx/templates/oscar/preferences.html:103
#: searx/templates/oscar/preferences.html:104
#: searx/templates/pix-art/preferences.html:39
msgid "Themes"
msgstr "Grafica"
@ -252,6 +264,8 @@ msgstr "Motori di ricerca attualmente in uso"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/default/preferences.html:88
#: searx/templates/oscar/preferences.html:142
#: searx/templates/oscar/preferences.html:152
#: searx/templates/pix-art/preferences.html:53
msgid "Engine name"
msgstr "Nome del motore"
@ -266,6 +280,8 @@ msgstr "Categoria"
#: searx/templates/default/preferences.html:90
#: searx/templates/default/preferences.html:101
#: searx/templates/oscar/macros.html:67
#: searx/templates/oscar/preferences.html:141
#: searx/templates/oscar/preferences.html:153
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
msgid "Allow"
@ -283,7 +299,7 @@ msgstr "Blocca"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/default/preferences.html:110
#: searx/templates/oscar/preferences.html:180
#: searx/templates/oscar/preferences.html:235
#: searx/templates/pix-art/preferences.html:73
msgid ""
"These settings are stored in your cookies, this allows us not to store this "
@ -292,7 +308,7 @@ msgstr "Queste impostazioni sono salvate nei tuoi cookie, consentendoci di non c
#: searx/templates/courgette/preferences.html:124
#: searx/templates/default/preferences.html:112
#: searx/templates/oscar/preferences.html:182
#: searx/templates/oscar/preferences.html:237
#: searx/templates/pix-art/preferences.html:75
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
@ -301,20 +317,20 @@ msgstr "I cookie sono funzionali ad un servizio migliore. Non usiamo i cookie pe
#: searx/templates/courgette/preferences.html:127
#: searx/templates/default/preferences.html:115
#: searx/templates/oscar/preferences.html:185
#: searx/templates/oscar/preferences.html:240
#: searx/templates/pix-art/preferences.html:78
msgid "save"
msgstr "salva"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/default/preferences.html:116
#: searx/templates/oscar/preferences.html:187
#: searx/templates/oscar/preferences.html:242
msgid "Reset defaults"
msgstr ""
#: searx/templates/courgette/preferences.html:129
#: searx/templates/default/preferences.html:117
#: searx/templates/oscar/preferences.html:186
#: searx/templates/oscar/preferences.html:241
#: searx/templates/pix-art/preferences.html:79
msgid "back"
msgstr "indietro"
@ -424,51 +440,89 @@ msgid "Toggle navigation"
msgstr ""
#: searx/templates/oscar/preferences.html:17
#: searx/templates/oscar/preferences.html:24
#: searx/templates/oscar/preferences.html:25
msgid "General"
msgstr ""
#: searx/templates/oscar/preferences.html:18
#: searx/templates/oscar/preferences.html:125
#: searx/templates/oscar/preferences.html:126
msgid "Engines"
msgstr ""
#: searx/templates/oscar/preferences.html:19
#: searx/templates/oscar/preferences.html:159
#: searx/templates/oscar/preferences.html:187
msgid "Plugins"
msgstr ""
#: searx/templates/oscar/preferences.html:44
#: searx/templates/oscar/preferences.html:20
#: searx/templates/oscar/preferences.html:210
msgid "Cookies"
msgstr ""
#: searx/templates/oscar/preferences.html:45
msgid "What language do you prefer for search?"
msgstr ""
#: searx/templates/oscar/preferences.html:55
#: searx/templates/oscar/preferences.html:56
msgid "Change the language of the layout"
msgstr ""
#: searx/templates/oscar/preferences.html:65
#: searx/templates/oscar/preferences.html:66
msgid "Find stuff as you type"
msgstr ""
#: searx/templates/oscar/preferences.html:76
#: searx/templates/oscar/preferences.html:77
msgid "Proxying image results through searx"
msgstr ""
#: searx/templates/oscar/preferences.html:85
#: searx/templates/oscar/preferences.html:86
msgid ""
"Change how forms are submited, <a "
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr ""
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:95
msgid "Filter content"
msgstr ""
#: searx/templates/oscar/preferences.html:104
#: searx/templates/oscar/preferences.html:105
msgid "Change searx layout"
msgstr ""
#: searx/templates/oscar/preferences.html:143
#: searx/templates/oscar/preferences.html:151
msgid "Shortcut"
msgstr ""
#: searx/templates/oscar/preferences.html:145
#: searx/templates/oscar/preferences.html:149
msgid "Avg. time"
msgstr ""
#: searx/templates/oscar/preferences.html:146
#: searx/templates/oscar/preferences.html:148
msgid "Max time"
msgstr ""
#: searx/templates/oscar/preferences.html:213
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr ""
#: searx/templates/oscar/preferences.html:214
msgid "With that list, you can assess searx transparency."
msgstr ""
#: searx/templates/oscar/preferences.html:219
msgid "Cookie name"
msgstr ""
#: searx/templates/oscar/preferences.html:220
msgid "Value"
msgstr ""
#: searx/templates/oscar/results.html:7
msgid "Search results"
msgstr ""
@ -518,6 +572,14 @@ msgstr ""
msgid "Please enable JavaScript to use full functionality of this site."
msgstr ""
#: searx/templates/oscar/messages/no_cookies.html:3
msgid "Information!"
msgstr ""
#: searx/templates/oscar/messages/no_cookies.html:4
msgid "currently, there are no cookies defined."
msgstr ""
#: searx/templates/oscar/messages/no_data_available.html:4
msgid "There is currently no data available. "
msgstr ""

View File

@ -12,10 +12,10 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2015-04-26 18:57+0200\n"
"PO-Revision-Date: 2015-04-26 17:02+0000\n"
"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
"Language-Team: Japanese (http://www.transifex.com/projects/p/searx/language/ja/)\n"
"POT-Creation-Date: 2015-08-24 11:44+0200\n"
"PO-Revision-Date: 2015-09-03 07:37+0000\n"
"Last-Translator: pointhi\n"
"Language-Team: Japanese (http://www.transifex.com/asciimoo/searx/language/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -23,67 +23,67 @@ msgstr ""
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: searx/webapp.py:104
#: searx/webapp.py:114
msgid "files"
msgstr "ファイル"
#: searx/webapp.py:105
#: searx/webapp.py:115
msgid "general"
msgstr "一般的な"
#: searx/webapp.py:106
#: searx/webapp.py:116
msgid "music"
msgstr "音楽"
#: searx/webapp.py:107
#: searx/webapp.py:117
msgid "social media"
msgstr "社会的ネットワーク"
#: searx/webapp.py:108
#: searx/webapp.py:118
msgid "images"
msgstr "画像"
#: searx/webapp.py:109
#: searx/webapp.py:119
msgid "videos"
msgstr "動画"
#: searx/webapp.py:110
#: searx/webapp.py:120
msgid "it"
msgstr "情報技術"
#: searx/webapp.py:111
#: searx/webapp.py:121
msgid "news"
msgstr "お知らせ"
#: searx/webapp.py:112
#: searx/webapp.py:122
msgid "map"
msgstr "地図"
#: searx/webapp.py:396
#: searx/webapp.py:414
msgid "{minutes} minute(s) ago"
msgstr "{minutes}分前"
#: searx/webapp.py:398
#: searx/webapp.py:416
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours}時間と{minutes}分前"
#: searx/engines/__init__.py:182
#: searx/engines/__init__.py:185
msgid "Page loads (sec)"
msgstr ""
#: searx/engines/__init__.py:186
#: searx/engines/__init__.py:189
msgid "Number of results"
msgstr "通知の数"
#: searx/engines/__init__.py:190
#: searx/engines/__init__.py:193
msgid "Scores"
msgstr ""
#: searx/engines/__init__.py:194
#: searx/engines/__init__.py:197
msgid "Scores per result"
msgstr ""
#: searx/engines/__init__.py:198
#: searx/engines/__init__.py:201
msgid "Errors"
msgstr "エラー"
@ -98,11 +98,21 @@ msgstr ""
#: searx/plugins/search_on_category_select.py:19
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories."
"multiple categories. (JavaScript required)"
msgstr ""
#: searx/plugins/self_ip.py:19
msgid "Display your source IP address if the query expression is \"ip\""
#: searx/plugins/self_info.py:20
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr ""
#: searx/plugins/tracker_url_remover.py:26
msgid "Tracker URL remover"
msgstr ""
#: searx/plugins/tracker_url_remover.py:27
msgid "Remove trackers arguments from the returned URL"
msgstr ""
#: searx/templates/courgette/index.html:9
@ -131,93 +141,95 @@ msgstr "設定"
#: searx/templates/courgette/preferences.html:9
#: searx/templates/default/preferences.html:9
#: searx/templates/oscar/preferences.html:35
#: searx/templates/oscar/preferences.html:37
#: searx/templates/oscar/preferences.html:36
#: searx/templates/oscar/preferences.html:38
msgid "Default categories"
msgstr ""
#: searx/templates/courgette/preferences.html:13
#: searx/templates/default/preferences.html:14
#: searx/templates/oscar/preferences.html:43
#: searx/templates/oscar/preferences.html:44
#: searx/templates/pix-art/preferences.html:9
msgid "Search language"
msgstr "検索の言語"
#: searx/templates/courgette/preferences.html:16
#: searx/templates/default/preferences.html:17
#: searx/templates/oscar/preferences.html:47
#: searx/templates/oscar/preferences.html:48
#: searx/templates/pix-art/preferences.html:12
msgid "Automatic"
msgstr ""
#: searx/templates/courgette/preferences.html:24
#: searx/templates/default/preferences.html:25
#: searx/templates/oscar/preferences.html:54
#: searx/templates/oscar/preferences.html:55
#: searx/templates/pix-art/preferences.html:20
msgid "Interface language"
msgstr "界面の言語"
#: searx/templates/courgette/preferences.html:34
#: searx/templates/default/preferences.html:35
#: searx/templates/oscar/preferences.html:64
#: searx/templates/oscar/preferences.html:65
msgid "Autocomplete"
msgstr ""
#: searx/templates/courgette/preferences.html:45
#: searx/templates/default/preferences.html:46
#: searx/templates/oscar/preferences.html:75
#: searx/templates/oscar/preferences.html:76
msgid "Image proxy"
msgstr ""
#: searx/templates/courgette/preferences.html:48
#: searx/templates/default/preferences.html:49
#: searx/templates/oscar/preferences.html:79
#: searx/templates/oscar/preferences.html:80
msgid "Enabled"
msgstr ""
msgstr "活性化する"
#: searx/templates/courgette/preferences.html:49
#: searx/templates/default/preferences.html:50
#: searx/templates/oscar/preferences.html:80
#: searx/templates/oscar/preferences.html:81
msgid "Disabled"
msgstr ""
msgstr "使用不可能にする"
#: searx/templates/courgette/preferences.html:54
#: searx/templates/default/preferences.html:55
#: searx/templates/oscar/preferences.html:84
#: searx/templates/oscar/preferences.html:85
#: searx/templates/pix-art/preferences.html:30
msgid "Method"
msgstr ""
#: searx/templates/courgette/preferences.html:63
#: searx/templates/default/preferences.html:64
#: searx/templates/oscar/preferences.html:93
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:144
#: searx/templates/oscar/preferences.html:150
msgid "SafeSearch"
msgstr "安全な検索"
#: searx/templates/courgette/preferences.html:66
#: searx/templates/default/preferences.html:67
#: searx/templates/oscar/preferences.html:97
#: searx/templates/oscar/preferences.html:98
msgid "Strict"
msgstr "たくさん。"
#: searx/templates/courgette/preferences.html:67
#: searx/templates/default/preferences.html:68
#: searx/templates/oscar/preferences.html:98
#: searx/templates/oscar/preferences.html:99
msgid "Moderate"
msgstr "少し"
#: searx/templates/courgette/preferences.html:68
#: searx/templates/default/preferences.html:69
#: searx/templates/oscar/preferences.html:99
#: searx/templates/oscar/preferences.html:100
msgid "None"
msgstr "なし"
#: searx/templates/courgette/preferences.html:73
#: searx/templates/default/preferences.html:74
#: searx/templates/oscar/preferences.html:103
#: searx/templates/oscar/preferences.html:104
#: searx/templates/pix-art/preferences.html:39
msgid "Themes"
msgstr ""
msgstr "図様"
#: searx/templates/courgette/preferences.html:83
msgid "Color"
@ -255,6 +267,8 @@ msgstr ""
#: searx/templates/courgette/preferences.html:100
#: searx/templates/default/preferences.html:88
#: searx/templates/oscar/preferences.html:142
#: searx/templates/oscar/preferences.html:152
#: searx/templates/pix-art/preferences.html:53
msgid "Engine name"
msgstr ""
@ -269,6 +283,8 @@ msgstr "カテゴリー"
#: searx/templates/default/preferences.html:90
#: searx/templates/default/preferences.html:101
#: searx/templates/oscar/macros.html:67
#: searx/templates/oscar/preferences.html:141
#: searx/templates/oscar/preferences.html:153
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
msgid "Allow"
@ -282,11 +298,11 @@ msgstr "許可する"
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:65
msgid "Block"
msgstr ""
msgstr "封鎖する"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/default/preferences.html:110
#: searx/templates/oscar/preferences.html:180
#: searx/templates/oscar/preferences.html:235
#: searx/templates/pix-art/preferences.html:73
msgid ""
"These settings are stored in your cookies, this allows us not to store this "
@ -295,7 +311,7 @@ msgstr ""
#: searx/templates/courgette/preferences.html:124
#: searx/templates/default/preferences.html:112
#: searx/templates/oscar/preferences.html:182
#: searx/templates/oscar/preferences.html:237
#: searx/templates/pix-art/preferences.html:75
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
@ -304,20 +320,20 @@ msgstr ""
#: searx/templates/courgette/preferences.html:127
#: searx/templates/default/preferences.html:115
#: searx/templates/oscar/preferences.html:185
#: searx/templates/oscar/preferences.html:240
#: searx/templates/pix-art/preferences.html:78
msgid "save"
msgstr "保存"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/default/preferences.html:116
#: searx/templates/oscar/preferences.html:187
#: searx/templates/oscar/preferences.html:242
msgid "Reset defaults"
msgstr ""
#: searx/templates/courgette/preferences.html:129
#: searx/templates/default/preferences.html:117
#: searx/templates/oscar/preferences.html:186
#: searx/templates/oscar/preferences.html:241
#: searx/templates/pix-art/preferences.html:79
msgid "back"
msgstr "バック"
@ -427,51 +443,89 @@ msgid "Toggle navigation"
msgstr ""
#: searx/templates/oscar/preferences.html:17
#: searx/templates/oscar/preferences.html:24
#: searx/templates/oscar/preferences.html:25
msgid "General"
msgstr ""
#: searx/templates/oscar/preferences.html:18
#: searx/templates/oscar/preferences.html:125
#: searx/templates/oscar/preferences.html:126
msgid "Engines"
msgstr ""
#: searx/templates/oscar/preferences.html:19
#: searx/templates/oscar/preferences.html:159
#: searx/templates/oscar/preferences.html:187
msgid "Plugins"
msgstr ""
#: searx/templates/oscar/preferences.html:44
#: searx/templates/oscar/preferences.html:20
#: searx/templates/oscar/preferences.html:210
msgid "Cookies"
msgstr ""
#: searx/templates/oscar/preferences.html:45
msgid "What language do you prefer for search?"
msgstr ""
#: searx/templates/oscar/preferences.html:55
#: searx/templates/oscar/preferences.html:56
msgid "Change the language of the layout"
msgstr ""
#: searx/templates/oscar/preferences.html:65
#: searx/templates/oscar/preferences.html:66
msgid "Find stuff as you type"
msgstr ""
#: searx/templates/oscar/preferences.html:76
#: searx/templates/oscar/preferences.html:77
msgid "Proxying image results through searx"
msgstr ""
#: searx/templates/oscar/preferences.html:85
#: searx/templates/oscar/preferences.html:86
msgid ""
"Change how forms are submited, <a "
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr ""
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:95
msgid "Filter content"
msgstr ""
#: searx/templates/oscar/preferences.html:104
#: searx/templates/oscar/preferences.html:105
msgid "Change searx layout"
msgstr "レイアウトのsearxの変更"
#: searx/templates/oscar/preferences.html:143
#: searx/templates/oscar/preferences.html:151
msgid "Shortcut"
msgstr ""
#: searx/templates/oscar/preferences.html:145
#: searx/templates/oscar/preferences.html:149
msgid "Avg. time"
msgstr ""
#: searx/templates/oscar/preferences.html:146
#: searx/templates/oscar/preferences.html:148
msgid "Max time"
msgstr ""
#: searx/templates/oscar/preferences.html:213
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr ""
#: searx/templates/oscar/preferences.html:214
msgid "With that list, you can assess searx transparency."
msgstr ""
#: searx/templates/oscar/preferences.html:219
msgid "Cookie name"
msgstr ""
#: searx/templates/oscar/preferences.html:220
msgid "Value"
msgstr ""
#: searx/templates/oscar/results.html:7
msgid "Search results"
msgstr "検索結果"
@ -515,12 +569,20 @@ msgstr ""
#: searx/templates/oscar/messages/js_disabled.html:2
msgid "Warning!"
msgstr ""
msgstr "意見"
#: searx/templates/oscar/messages/js_disabled.html:3
msgid "Please enable JavaScript to use full functionality of this site."
msgstr ""
#: searx/templates/oscar/messages/no_cookies.html:3
msgid "Information!"
msgstr "異見"
#: searx/templates/oscar/messages/no_cookies.html:4
msgid "currently, there are no cookies defined."
msgstr ""
#: searx/templates/oscar/messages/no_data_available.html:4
msgid "There is currently no data available. "
msgstr ""
@ -537,7 +599,7 @@ msgstr ""
#: searx/templates/oscar/messages/save_settings_successfull.html:7
msgid "Well done!"
msgstr ""
msgstr "あっぱれ。"
#: searx/templates/oscar/messages/save_settings_successfull.html:8
msgid "Settings saved successfully."
@ -545,7 +607,7 @@ msgstr ""
#: searx/templates/oscar/messages/unknow_error.html:7
msgid "Oh snap!"
msgstr ""
msgstr "ちぇっ"
#: searx/templates/oscar/messages/unknow_error.html:8
msgid "Something went wrong."
@ -585,7 +647,7 @@ msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
msgid "Filesize"
msgstr ""
msgstr "ファイル・サイズ"
#: searx/templates/oscar/result_templates/torrent.html:9
msgid "Bytes"
@ -609,7 +671,7 @@ msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:15
msgid "Number of Files"
msgstr ""
msgstr "ファイル数"
#: searx/templates/oscar/result_templates/videos.html:7
msgid "show video"

View File

@ -9,10 +9,10 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2015-04-26 18:57+0200\n"
"PO-Revision-Date: 2015-04-27 07:45+0000\n"
"POT-Creation-Date: 2015-08-24 11:44+0200\n"
"PO-Revision-Date: 2015-08-24 14:41+0000\n"
"Last-Translator: Nathan Follens\n"
"Language-Team: Dutch (http://www.transifex.com/projects/p/searx/language/nl/)\n"
"Language-Team: Dutch (http://www.transifex.com/asciimoo/searx/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -20,67 +20,67 @@ msgstr ""
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: searx/webapp.py:104
#: searx/webapp.py:114
msgid "files"
msgstr "bestanden"
#: searx/webapp.py:105
#: searx/webapp.py:115
msgid "general"
msgstr "algemeen"
#: searx/webapp.py:106
#: searx/webapp.py:116
msgid "music"
msgstr "muziek"
#: searx/webapp.py:107
#: searx/webapp.py:117
msgid "social media"
msgstr "social media"
#: searx/webapp.py:108
#: searx/webapp.py:118
msgid "images"
msgstr "afbeeldingen"
#: searx/webapp.py:109
#: searx/webapp.py:119
msgid "videos"
msgstr "video's"
#: searx/webapp.py:110
#: searx/webapp.py:120
msgid "it"
msgstr "it"
#: searx/webapp.py:111
#: searx/webapp.py:121
msgid "news"
msgstr "nieuws"
#: searx/webapp.py:112
#: searx/webapp.py:122
msgid "map"
msgstr "kaart"
#: searx/webapp.py:396
#: searx/webapp.py:414
msgid "{minutes} minute(s) ago"
msgstr "{minutes} min geleden"
#: searx/webapp.py:398
#: searx/webapp.py:416
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} uur, {minutes} min geleden"
#: searx/engines/__init__.py:182
#: searx/engines/__init__.py:185
msgid "Page loads (sec)"
msgstr "Pagina laadt (sec)"
#: searx/engines/__init__.py:186
#: searx/engines/__init__.py:189
msgid "Number of results"
msgstr "Aantal zoekresultaten"
#: searx/engines/__init__.py:190
#: searx/engines/__init__.py:193
msgid "Scores"
msgstr "Scores"
#: searx/engines/__init__.py:194
#: searx/engines/__init__.py:197
msgid "Scores per result"
msgstr "Scores per zoekresultaat"
#: searx/engines/__init__.py:198
#: searx/engines/__init__.py:201
msgid "Errors"
msgstr "Fouten"
@ -95,12 +95,22 @@ msgstr "Zoeken bij selecteren van categorie"
#: searx/plugins/search_on_category_select.py:19
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories."
msgstr "Zoekopdracht onmiddellijk uitvoeren wanneer een categorie geselecteerd wordt. Zet dit uit om meerdere categorieën te selecteren."
"multiple categories. (JavaScript required)"
msgstr "Zoekopdracht onmiddellijk uitvoeren wanneer een categorie geselecteerd wordt. Zet dit uit om meerdere categorieën te selecteren. (JavaScript vereist)"
#: searx/plugins/self_ip.py:19
msgid "Display your source IP address if the query expression is \"ip\""
msgstr "Geef je IP-adres weer wanneer de zoekopdracht \"ip\" is"
#: searx/plugins/self_info.py:20
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr "Geeft je IP-adres weer als de zoekopdracht \"ip\" is en je gebruikersagent als de zoekopdracht \"user agent\" bevat."
#: searx/plugins/tracker_url_remover.py:26
msgid "Tracker URL remover"
msgstr "Tracker-URL verwijderaar"
#: searx/plugins/tracker_url_remover.py:27
msgid "Remove trackers arguments from the returned URL"
msgstr "Verwijdert trackerargumenten van de gekregen URL"
#: searx/templates/courgette/index.html:9
#: searx/templates/courgette/index.html:13
@ -128,90 +138,92 @@ msgstr "Voorkeuren"
#: searx/templates/courgette/preferences.html:9
#: searx/templates/default/preferences.html:9
#: searx/templates/oscar/preferences.html:35
#: searx/templates/oscar/preferences.html:37
#: searx/templates/oscar/preferences.html:36
#: searx/templates/oscar/preferences.html:38
msgid "Default categories"
msgstr "Standaardcategorieën"
#: searx/templates/courgette/preferences.html:13
#: searx/templates/default/preferences.html:14
#: searx/templates/oscar/preferences.html:43
#: searx/templates/oscar/preferences.html:44
#: searx/templates/pix-art/preferences.html:9
msgid "Search language"
msgstr "Zoektaal"
#: searx/templates/courgette/preferences.html:16
#: searx/templates/default/preferences.html:17
#: searx/templates/oscar/preferences.html:47
#: searx/templates/oscar/preferences.html:48
#: searx/templates/pix-art/preferences.html:12
msgid "Automatic"
msgstr "Automatisch"
#: searx/templates/courgette/preferences.html:24
#: searx/templates/default/preferences.html:25
#: searx/templates/oscar/preferences.html:54
#: searx/templates/oscar/preferences.html:55
#: searx/templates/pix-art/preferences.html:20
msgid "Interface language"
msgstr "Interfacetaal"
#: searx/templates/courgette/preferences.html:34
#: searx/templates/default/preferences.html:35
#: searx/templates/oscar/preferences.html:64
#: searx/templates/oscar/preferences.html:65
msgid "Autocomplete"
msgstr "Auto-aanvullen"
#: searx/templates/courgette/preferences.html:45
#: searx/templates/default/preferences.html:46
#: searx/templates/oscar/preferences.html:75
#: searx/templates/oscar/preferences.html:76
msgid "Image proxy"
msgstr "Afbeeldingen proxy"
#: searx/templates/courgette/preferences.html:48
#: searx/templates/default/preferences.html:49
#: searx/templates/oscar/preferences.html:79
#: searx/templates/oscar/preferences.html:80
msgid "Enabled"
msgstr "Ingeschakeld"
#: searx/templates/courgette/preferences.html:49
#: searx/templates/default/preferences.html:50
#: searx/templates/oscar/preferences.html:80
#: searx/templates/oscar/preferences.html:81
msgid "Disabled"
msgstr "Uitgeschakeld"
#: searx/templates/courgette/preferences.html:54
#: searx/templates/default/preferences.html:55
#: searx/templates/oscar/preferences.html:84
#: searx/templates/oscar/preferences.html:85
#: searx/templates/pix-art/preferences.html:30
msgid "Method"
msgstr "Methode"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/default/preferences.html:64
#: searx/templates/oscar/preferences.html:93
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:144
#: searx/templates/oscar/preferences.html:150
msgid "SafeSearch"
msgstr "SafeSearch"
#: searx/templates/courgette/preferences.html:66
#: searx/templates/default/preferences.html:67
#: searx/templates/oscar/preferences.html:97
#: searx/templates/oscar/preferences.html:98
msgid "Strict"
msgstr "Strikt"
#: searx/templates/courgette/preferences.html:67
#: searx/templates/default/preferences.html:68
#: searx/templates/oscar/preferences.html:98
#: searx/templates/oscar/preferences.html:99
msgid "Moderate"
msgstr "Gemiddeld"
#: searx/templates/courgette/preferences.html:68
#: searx/templates/default/preferences.html:69
#: searx/templates/oscar/preferences.html:99
#: searx/templates/oscar/preferences.html:100
msgid "None"
msgstr "Geen"
#: searx/templates/courgette/preferences.html:73
#: searx/templates/default/preferences.html:74
#: searx/templates/oscar/preferences.html:103
#: searx/templates/oscar/preferences.html:104
#: searx/templates/pix-art/preferences.html:39
msgid "Themes"
msgstr "Thema's"
@ -252,6 +264,8 @@ msgstr "Momenteel gebruikte zoekmachines"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/default/preferences.html:88
#: searx/templates/oscar/preferences.html:142
#: searx/templates/oscar/preferences.html:152
#: searx/templates/pix-art/preferences.html:53
msgid "Engine name"
msgstr "Naam zoekmachine"
@ -266,6 +280,8 @@ msgstr "Categorie"
#: searx/templates/default/preferences.html:90
#: searx/templates/default/preferences.html:101
#: searx/templates/oscar/macros.html:67
#: searx/templates/oscar/preferences.html:141
#: searx/templates/oscar/preferences.html:153
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
msgid "Allow"
@ -283,7 +299,7 @@ msgstr "Blokkeren"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/default/preferences.html:110
#: searx/templates/oscar/preferences.html:180
#: searx/templates/oscar/preferences.html:235
#: searx/templates/pix-art/preferences.html:73
msgid ""
"These settings are stored in your cookies, this allows us not to store this "
@ -292,7 +308,7 @@ msgstr "Deze instellingen worden bewaard in je cookies. Hierdoor hoeven wij niet
#: searx/templates/courgette/preferences.html:124
#: searx/templates/default/preferences.html:112
#: searx/templates/oscar/preferences.html:182
#: searx/templates/oscar/preferences.html:237
#: searx/templates/pix-art/preferences.html:75
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
@ -301,20 +317,20 @@ msgstr "Deze cookies zijn alleen voor je eigen gemak, we gebruiken deze cookies
#: searx/templates/courgette/preferences.html:127
#: searx/templates/default/preferences.html:115
#: searx/templates/oscar/preferences.html:185
#: searx/templates/oscar/preferences.html:240
#: searx/templates/pix-art/preferences.html:78
msgid "save"
msgstr "bewaren"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/default/preferences.html:116
#: searx/templates/oscar/preferences.html:187
#: searx/templates/oscar/preferences.html:242
msgid "Reset defaults"
msgstr "Standaardinstellingen herstellen"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/default/preferences.html:117
#: searx/templates/oscar/preferences.html:186
#: searx/templates/oscar/preferences.html:241
#: searx/templates/pix-art/preferences.html:79
msgid "back"
msgstr "terug"
@ -424,51 +440,89 @@ msgid "Toggle navigation"
msgstr "Omschakelen navigatie"
#: searx/templates/oscar/preferences.html:17
#: searx/templates/oscar/preferences.html:24
#: searx/templates/oscar/preferences.html:25
msgid "General"
msgstr "Algemeen"
#: searx/templates/oscar/preferences.html:18
#: searx/templates/oscar/preferences.html:125
#: searx/templates/oscar/preferences.html:126
msgid "Engines"
msgstr "Zoekmachines"
#: searx/templates/oscar/preferences.html:19
#: searx/templates/oscar/preferences.html:159
#: searx/templates/oscar/preferences.html:187
msgid "Plugins"
msgstr "Plugins"
#: searx/templates/oscar/preferences.html:44
#: searx/templates/oscar/preferences.html:20
#: searx/templates/oscar/preferences.html:210
msgid "Cookies"
msgstr "Cookies"
#: searx/templates/oscar/preferences.html:45
msgid "What language do you prefer for search?"
msgstr "Welke taal wil je gebruiken voor het zoeken?"
#: searx/templates/oscar/preferences.html:55
#: searx/templates/oscar/preferences.html:56
msgid "Change the language of the layout"
msgstr "Wijzig de taal van de layout"
#: searx/templates/oscar/preferences.html:65
#: searx/templates/oscar/preferences.html:66
msgid "Find stuff as you type"
msgstr "Zoek tijdens het typen"
#: searx/templates/oscar/preferences.html:76
#: searx/templates/oscar/preferences.html:77
msgid "Proxying image results through searx"
msgstr "Proxyen afbeeldingen resultaat via searx"
#: searx/templates/oscar/preferences.html:85
#: searx/templates/oscar/preferences.html:86
msgid ""
"Change how forms are submited, <a "
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr "Bepaal hoe de formulieren worden ingestuurd, <a href=\"http://nl.wikipedia.org/wiki/Hypertext_Transfer_Protocol#HTTP-requests\" rel=\"external\">lees meer over request methodes</a>"
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:95
msgid "Filter content"
msgstr "Filteren content"
#: searx/templates/oscar/preferences.html:104
#: searx/templates/oscar/preferences.html:105
msgid "Change searx layout"
msgstr "Wijzig searx layout"
#: searx/templates/oscar/preferences.html:143
#: searx/templates/oscar/preferences.html:151
msgid "Shortcut"
msgstr "Snelkoppeling"
#: searx/templates/oscar/preferences.html:145
#: searx/templates/oscar/preferences.html:149
msgid "Avg. time"
msgstr "Gem. duur"
#: searx/templates/oscar/preferences.html:146
#: searx/templates/oscar/preferences.html:148
msgid "Max time"
msgstr "Max. duur"
#: searx/templates/oscar/preferences.html:213
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "Dit is de lijst van cookies en hun waarden die searx op je computer opslaat."
#: searx/templates/oscar/preferences.html:214
msgid "With that list, you can assess searx transparency."
msgstr "Met deze lijst kan je de openheid van searx beoordelen."
#: searx/templates/oscar/preferences.html:219
msgid "Cookie name"
msgstr "Cookienaam"
#: searx/templates/oscar/preferences.html:220
msgid "Value"
msgstr "Waarde"
#: searx/templates/oscar/results.html:7
msgid "Search results"
msgstr "Zoekresultaten"
@ -518,6 +572,14 @@ msgstr "Waarschuwing!"
msgid "Please enable JavaScript to use full functionality of this site."
msgstr "Activeer JavaScript om alle functionaliteit van deze site te gebruiken."
#: searx/templates/oscar/messages/no_cookies.html:3
msgid "Information!"
msgstr "Informatie!"
#: searx/templates/oscar/messages/no_cookies.html:4
msgid "currently, there are no cookies defined."
msgstr "er zijn momenteel geen cookies gedefinieerd."
#: searx/templates/oscar/messages/no_data_available.html:4
msgid "There is currently no data available. "
msgstr "Er zijn momenteel geen gegevens beschikbaar."

View File

@ -8,10 +8,10 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2015-04-26 18:57+0200\n"
"PO-Revision-Date: 2015-05-02 22:23+0000\n"
"Last-Translator: adrian.fita <adrian.fita@gmail.com>\n"
"Language-Team: Romanian (http://www.transifex.com/projects/p/searx/language/ro/)\n"
"POT-Creation-Date: 2015-08-24 11:44+0200\n"
"PO-Revision-Date: 2015-08-24 09:45+0000\n"
"Last-Translator: pointhi\n"
"Language-Team: Romanian (http://www.transifex.com/asciimoo/searx/language/ro/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -19,67 +19,67 @@ msgstr ""
"Language: ro\n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
#: searx/webapp.py:104
#: searx/webapp.py:114
msgid "files"
msgstr "fișiere"
#: searx/webapp.py:105
#: searx/webapp.py:115
msgid "general"
msgstr "general"
#: searx/webapp.py:106
#: searx/webapp.py:116
msgid "music"
msgstr "muzică"
#: searx/webapp.py:107
#: searx/webapp.py:117
msgid "social media"
msgstr "rețele sociale"
#: searx/webapp.py:108
#: searx/webapp.py:118
msgid "images"
msgstr "imagini"
#: searx/webapp.py:109
#: searx/webapp.py:119
msgid "videos"
msgstr "videouri"
#: searx/webapp.py:110
#: searx/webapp.py:120
msgid "it"
msgstr "el(ea)"
#: searx/webapp.py:111
#: searx/webapp.py:121
msgid "news"
msgstr "știri"
#: searx/webapp.py:112
#: searx/webapp.py:122
msgid "map"
msgstr "hartă"
#: searx/webapp.py:396
#: searx/webapp.py:414
msgid "{minutes} minute(s) ago"
msgstr "{minutes} minut(e) în urmă"
#: searx/webapp.py:398
#: searx/webapp.py:416
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} oră(e), {minutes} minut(e) în urmă"
#: searx/engines/__init__.py:182
#: searx/engines/__init__.py:185
msgid "Page loads (sec)"
msgstr "Încărcarea paginilor (sec)"
#: searx/engines/__init__.py:186
#: searx/engines/__init__.py:189
msgid "Number of results"
msgstr "Numărul de rezultate"
#: searx/engines/__init__.py:190
#: searx/engines/__init__.py:193
msgid "Scores"
msgstr "Scoruri"
#: searx/engines/__init__.py:194
#: searx/engines/__init__.py:197
msgid "Scores per result"
msgstr "Scoruri per rezultat"
#: searx/engines/__init__.py:198
#: searx/engines/__init__.py:201
msgid "Errors"
msgstr "Erori"
@ -94,12 +94,22 @@ msgstr "Căutare în categoria selectată"
#: searx/plugins/search_on_category_select.py:19
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories."
msgstr "Realizează căutarea imediat dacă s-a selectat o categorie. Dezactivați pentru a selecta mai multe categorii."
"multiple categories. (JavaScript required)"
msgstr ""
#: searx/plugins/self_ip.py:19
msgid "Display your source IP address if the query expression is \"ip\""
msgstr "Afișează adresa voastră IP sursă dacă expresia interogării este „ip”"
#: searx/plugins/self_info.py:20
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr ""
#: searx/plugins/tracker_url_remover.py:26
msgid "Tracker URL remover"
msgstr ""
#: searx/plugins/tracker_url_remover.py:27
msgid "Remove trackers arguments from the returned URL"
msgstr ""
#: searx/templates/courgette/index.html:9
#: searx/templates/courgette/index.html:13
@ -127,90 +137,92 @@ msgstr "Preferințe"
#: searx/templates/courgette/preferences.html:9
#: searx/templates/default/preferences.html:9
#: searx/templates/oscar/preferences.html:35
#: searx/templates/oscar/preferences.html:37
#: searx/templates/oscar/preferences.html:36
#: searx/templates/oscar/preferences.html:38
msgid "Default categories"
msgstr "Categorii implicite"
#: searx/templates/courgette/preferences.html:13
#: searx/templates/default/preferences.html:14
#: searx/templates/oscar/preferences.html:43
#: searx/templates/oscar/preferences.html:44
#: searx/templates/pix-art/preferences.html:9
msgid "Search language"
msgstr "Limba de căutare"
#: searx/templates/courgette/preferences.html:16
#: searx/templates/default/preferences.html:17
#: searx/templates/oscar/preferences.html:47
#: searx/templates/oscar/preferences.html:48
#: searx/templates/pix-art/preferences.html:12
msgid "Automatic"
msgstr "Automat"
#: searx/templates/courgette/preferences.html:24
#: searx/templates/default/preferences.html:25
#: searx/templates/oscar/preferences.html:54
#: searx/templates/oscar/preferences.html:55
#: searx/templates/pix-art/preferences.html:20
msgid "Interface language"
msgstr "Limba interfeței"
#: searx/templates/courgette/preferences.html:34
#: searx/templates/default/preferences.html:35
#: searx/templates/oscar/preferences.html:64
#: searx/templates/oscar/preferences.html:65
msgid "Autocomplete"
msgstr "Completare automată"
#: searx/templates/courgette/preferences.html:45
#: searx/templates/default/preferences.html:46
#: searx/templates/oscar/preferences.html:75
#: searx/templates/oscar/preferences.html:76
msgid "Image proxy"
msgstr "Proxy de imagini"
#: searx/templates/courgette/preferences.html:48
#: searx/templates/default/preferences.html:49
#: searx/templates/oscar/preferences.html:79
#: searx/templates/oscar/preferences.html:80
msgid "Enabled"
msgstr "Activat"
#: searx/templates/courgette/preferences.html:49
#: searx/templates/default/preferences.html:50
#: searx/templates/oscar/preferences.html:80
#: searx/templates/oscar/preferences.html:81
msgid "Disabled"
msgstr "Dezactivat"
#: searx/templates/courgette/preferences.html:54
#: searx/templates/default/preferences.html:55
#: searx/templates/oscar/preferences.html:84
#: searx/templates/oscar/preferences.html:85
#: searx/templates/pix-art/preferences.html:30
msgid "Method"
msgstr "Metodă"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/default/preferences.html:64
#: searx/templates/oscar/preferences.html:93
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:144
#: searx/templates/oscar/preferences.html:150
msgid "SafeSearch"
msgstr "CăutareSigură"
#: searx/templates/courgette/preferences.html:66
#: searx/templates/default/preferences.html:67
#: searx/templates/oscar/preferences.html:97
#: searx/templates/oscar/preferences.html:98
msgid "Strict"
msgstr "Strict"
#: searx/templates/courgette/preferences.html:67
#: searx/templates/default/preferences.html:68
#: searx/templates/oscar/preferences.html:98
#: searx/templates/oscar/preferences.html:99
msgid "Moderate"
msgstr "Moderat"
#: searx/templates/courgette/preferences.html:68
#: searx/templates/default/preferences.html:69
#: searx/templates/oscar/preferences.html:99
#: searx/templates/oscar/preferences.html:100
msgid "None"
msgstr "Nimic"
#: searx/templates/courgette/preferences.html:73
#: searx/templates/default/preferences.html:74
#: searx/templates/oscar/preferences.html:103
#: searx/templates/oscar/preferences.html:104
#: searx/templates/pix-art/preferences.html:39
msgid "Themes"
msgstr "Teme"
@ -251,6 +263,8 @@ msgstr "Motoarele de căutare folosite curent"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/default/preferences.html:88
#: searx/templates/oscar/preferences.html:142
#: searx/templates/oscar/preferences.html:152
#: searx/templates/pix-art/preferences.html:53
msgid "Engine name"
msgstr "Numele motorului"
@ -265,6 +279,8 @@ msgstr "Categorie"
#: searx/templates/default/preferences.html:90
#: searx/templates/default/preferences.html:101
#: searx/templates/oscar/macros.html:67
#: searx/templates/oscar/preferences.html:141
#: searx/templates/oscar/preferences.html:153
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
msgid "Allow"
@ -282,7 +298,7 @@ msgstr "Blochează"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/default/preferences.html:110
#: searx/templates/oscar/preferences.html:180
#: searx/templates/oscar/preferences.html:235
#: searx/templates/pix-art/preferences.html:73
msgid ""
"These settings are stored in your cookies, this allows us not to store this "
@ -291,7 +307,7 @@ msgstr "Aceste setări sunt stocate în cookie-urile d-voastră, aceasta ne perm
#: searx/templates/courgette/preferences.html:124
#: searx/templates/default/preferences.html:112
#: searx/templates/oscar/preferences.html:182
#: searx/templates/oscar/preferences.html:237
#: searx/templates/pix-art/preferences.html:75
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
@ -300,20 +316,20 @@ msgstr "Aceste cookie-uri servesc doar pentru confortul d-voastră, noi nu stoc
#: searx/templates/courgette/preferences.html:127
#: searx/templates/default/preferences.html:115
#: searx/templates/oscar/preferences.html:185
#: searx/templates/oscar/preferences.html:240
#: searx/templates/pix-art/preferences.html:78
msgid "save"
msgstr "salvează"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/default/preferences.html:116
#: searx/templates/oscar/preferences.html:187
#: searx/templates/oscar/preferences.html:242
msgid "Reset defaults"
msgstr "Resetează valorile implicite"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/default/preferences.html:117
#: searx/templates/oscar/preferences.html:186
#: searx/templates/oscar/preferences.html:241
#: searx/templates/pix-art/preferences.html:79
msgid "back"
msgstr "înapoi"
@ -423,51 +439,89 @@ msgid "Toggle navigation"
msgstr "Comută navigarea"
#: searx/templates/oscar/preferences.html:17
#: searx/templates/oscar/preferences.html:24
#: searx/templates/oscar/preferences.html:25
msgid "General"
msgstr "General"
#: searx/templates/oscar/preferences.html:18
#: searx/templates/oscar/preferences.html:125
#: searx/templates/oscar/preferences.html:126
msgid "Engines"
msgstr "Motoare"
#: searx/templates/oscar/preferences.html:19
#: searx/templates/oscar/preferences.html:159
#: searx/templates/oscar/preferences.html:187
msgid "Plugins"
msgstr "Module"
#: searx/templates/oscar/preferences.html:44
#: searx/templates/oscar/preferences.html:20
#: searx/templates/oscar/preferences.html:210
msgid "Cookies"
msgstr ""
#: searx/templates/oscar/preferences.html:45
msgid "What language do you prefer for search?"
msgstr "Ce limbă preferați pentru căutare?"
#: searx/templates/oscar/preferences.html:55
#: searx/templates/oscar/preferences.html:56
msgid "Change the language of the layout"
msgstr "Schimbă limba aspectului"
#: searx/templates/oscar/preferences.html:65
#: searx/templates/oscar/preferences.html:66
msgid "Find stuff as you type"
msgstr "Găsește lucruri în timp ce tastezi"
#: searx/templates/oscar/preferences.html:76
#: searx/templates/oscar/preferences.html:77
msgid "Proxying image results through searx"
msgstr "Transferă rezultatele cu imagini prin searx"
#: searx/templates/oscar/preferences.html:85
#: searx/templates/oscar/preferences.html:86
msgid ""
"Change how forms are submited, <a "
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr "Modificați cum sunt trimise formularele, <a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">învățați mai multe despre metodele de transfer</a>"
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:95
msgid "Filter content"
msgstr "Filtrează conținutul"
#: searx/templates/oscar/preferences.html:104
#: searx/templates/oscar/preferences.html:105
msgid "Change searx layout"
msgstr "Schimbă aspectul lui searx"
#: searx/templates/oscar/preferences.html:143
#: searx/templates/oscar/preferences.html:151
msgid "Shortcut"
msgstr ""
#: searx/templates/oscar/preferences.html:145
#: searx/templates/oscar/preferences.html:149
msgid "Avg. time"
msgstr ""
#: searx/templates/oscar/preferences.html:146
#: searx/templates/oscar/preferences.html:148
msgid "Max time"
msgstr ""
#: searx/templates/oscar/preferences.html:213
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr ""
#: searx/templates/oscar/preferences.html:214
msgid "With that list, you can assess searx transparency."
msgstr ""
#: searx/templates/oscar/preferences.html:219
msgid "Cookie name"
msgstr ""
#: searx/templates/oscar/preferences.html:220
msgid "Value"
msgstr ""
#: searx/templates/oscar/results.html:7
msgid "Search results"
msgstr "Rezultatele căutării"
@ -517,6 +571,14 @@ msgstr "Avertizare!"
msgid "Please enable JavaScript to use full functionality of this site."
msgstr "Vă rog activați JavaScript pentru a utiliza funcționalitatea completă a acestui site."
#: searx/templates/oscar/messages/no_cookies.html:3
msgid "Information!"
msgstr ""
#: searx/templates/oscar/messages/no_cookies.html:4
msgid "currently, there are no cookies defined."
msgstr ""
#: searx/templates/oscar/messages/no_data_available.html:4
msgid "There is currently no data available. "
msgstr "Deocamdată nu există date disponibile."

View File

@ -9,10 +9,10 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2015-04-26 18:57+0200\n"
"PO-Revision-Date: 2015-04-26 17:02+0000\n"
"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/searx/language/ru/)\n"
"POT-Creation-Date: 2015-08-24 11:44+0200\n"
"PO-Revision-Date: 2015-08-24 09:45+0000\n"
"Last-Translator: pointhi\n"
"Language-Team: Russian (http://www.transifex.com/asciimoo/searx/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -20,67 +20,67 @@ msgstr ""
"Language: ru\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#: searx/webapp.py:104
#: searx/webapp.py:114
msgid "files"
msgstr "файлы"
#: searx/webapp.py:105
#: searx/webapp.py:115
msgid "general"
msgstr "общие"
#: searx/webapp.py:106
#: searx/webapp.py:116
msgid "music"
msgstr "музыка"
#: searx/webapp.py:107
#: searx/webapp.py:117
msgid "social media"
msgstr "соцсети"
#: searx/webapp.py:108
#: searx/webapp.py:118
msgid "images"
msgstr "картинки"
#: searx/webapp.py:109
#: searx/webapp.py:119
msgid "videos"
msgstr "видео"
#: searx/webapp.py:110
#: searx/webapp.py:120
msgid "it"
msgstr "IT"
#: searx/webapp.py:111
#: searx/webapp.py:121
msgid "news"
msgstr "новости"
#: searx/webapp.py:112
#: searx/webapp.py:122
msgid "map"
msgstr "карты"
#: searx/webapp.py:396
#: searx/webapp.py:414
msgid "{minutes} minute(s) ago"
msgstr "{minutes} минут назад"
#: searx/webapp.py:398
#: searx/webapp.py:416
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} час, {minutes} минут назад"
#: searx/engines/__init__.py:182
#: searx/engines/__init__.py:185
msgid "Page loads (sec)"
msgstr "Время загрузки (сек)"
#: searx/engines/__init__.py:186
#: searx/engines/__init__.py:189
msgid "Number of results"
msgstr "Число результатов"
#: searx/engines/__init__.py:190
#: searx/engines/__init__.py:193
msgid "Scores"
msgstr "Попаданий"
#: searx/engines/__init__.py:194
#: searx/engines/__init__.py:197
msgid "Scores per result"
msgstr "Попаданий за результат"
#: searx/engines/__init__.py:198
#: searx/engines/__init__.py:201
msgid "Errors"
msgstr "Ошибок"
@ -95,11 +95,21 @@ msgstr ""
#: searx/plugins/search_on_category_select.py:19
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories."
"multiple categories. (JavaScript required)"
msgstr ""
#: searx/plugins/self_ip.py:19
msgid "Display your source IP address if the query expression is \"ip\""
#: searx/plugins/self_info.py:20
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr ""
#: searx/plugins/tracker_url_remover.py:26
msgid "Tracker URL remover"
msgstr ""
#: searx/plugins/tracker_url_remover.py:27
msgid "Remove trackers arguments from the returned URL"
msgstr ""
#: searx/templates/courgette/index.html:9
@ -128,90 +138,92 @@ msgstr "Опции"
#: searx/templates/courgette/preferences.html:9
#: searx/templates/default/preferences.html:9
#: searx/templates/oscar/preferences.html:35
#: searx/templates/oscar/preferences.html:37
#: searx/templates/oscar/preferences.html:36
#: searx/templates/oscar/preferences.html:38
msgid "Default categories"
msgstr "Категории по-умолчанию"
#: searx/templates/courgette/preferences.html:13
#: searx/templates/default/preferences.html:14
#: searx/templates/oscar/preferences.html:43
#: searx/templates/oscar/preferences.html:44
#: searx/templates/pix-art/preferences.html:9
msgid "Search language"
msgstr "Язык поиска"
#: searx/templates/courgette/preferences.html:16
#: searx/templates/default/preferences.html:17
#: searx/templates/oscar/preferences.html:47
#: searx/templates/oscar/preferences.html:48
#: searx/templates/pix-art/preferences.html:12
msgid "Automatic"
msgstr "Выбирать автоматически"
#: searx/templates/courgette/preferences.html:24
#: searx/templates/default/preferences.html:25
#: searx/templates/oscar/preferences.html:54
#: searx/templates/oscar/preferences.html:55
#: searx/templates/pix-art/preferences.html:20
msgid "Interface language"
msgstr "Язык интерфейса"
#: searx/templates/courgette/preferences.html:34
#: searx/templates/default/preferences.html:35
#: searx/templates/oscar/preferences.html:64
#: searx/templates/oscar/preferences.html:65
msgid "Autocomplete"
msgstr "Авто-подсказки"
#: searx/templates/courgette/preferences.html:45
#: searx/templates/default/preferences.html:46
#: searx/templates/oscar/preferences.html:75
#: searx/templates/oscar/preferences.html:76
msgid "Image proxy"
msgstr "Прокси для картинок"
#: searx/templates/courgette/preferences.html:48
#: searx/templates/default/preferences.html:49
#: searx/templates/oscar/preferences.html:79
#: searx/templates/oscar/preferences.html:80
msgid "Enabled"
msgstr "Включен"
#: searx/templates/courgette/preferences.html:49
#: searx/templates/default/preferences.html:50
#: searx/templates/oscar/preferences.html:80
#: searx/templates/oscar/preferences.html:81
msgid "Disabled"
msgstr "Выключен"
#: searx/templates/courgette/preferences.html:54
#: searx/templates/default/preferences.html:55
#: searx/templates/oscar/preferences.html:84
#: searx/templates/oscar/preferences.html:85
#: searx/templates/pix-art/preferences.html:30
msgid "Method"
msgstr "Метод"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/default/preferences.html:64
#: searx/templates/oscar/preferences.html:93
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:144
#: searx/templates/oscar/preferences.html:150
msgid "SafeSearch"
msgstr "Безопасный поиск"
#: searx/templates/courgette/preferences.html:66
#: searx/templates/default/preferences.html:67
#: searx/templates/oscar/preferences.html:97
#: searx/templates/oscar/preferences.html:98
msgid "Strict"
msgstr "Строгий"
#: searx/templates/courgette/preferences.html:67
#: searx/templates/default/preferences.html:68
#: searx/templates/oscar/preferences.html:98
#: searx/templates/oscar/preferences.html:99
msgid "Moderate"
msgstr "Умеренный"
#: searx/templates/courgette/preferences.html:68
#: searx/templates/default/preferences.html:69
#: searx/templates/oscar/preferences.html:99
#: searx/templates/oscar/preferences.html:100
msgid "None"
msgstr "Выключен"
#: searx/templates/courgette/preferences.html:73
#: searx/templates/default/preferences.html:74
#: searx/templates/oscar/preferences.html:103
#: searx/templates/oscar/preferences.html:104
#: searx/templates/pix-art/preferences.html:39
msgid "Themes"
msgstr "Темы"
@ -252,6 +264,8 @@ msgstr "Используемые поисковые движки"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/default/preferences.html:88
#: searx/templates/oscar/preferences.html:142
#: searx/templates/oscar/preferences.html:152
#: searx/templates/pix-art/preferences.html:53
msgid "Engine name"
msgstr "Имя движка"
@ -266,6 +280,8 @@ msgstr "Категория"
#: searx/templates/default/preferences.html:90
#: searx/templates/default/preferences.html:101
#: searx/templates/oscar/macros.html:67
#: searx/templates/oscar/preferences.html:141
#: searx/templates/oscar/preferences.html:153
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
msgid "Allow"
@ -283,7 +299,7 @@ msgstr "Блокировать"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/default/preferences.html:110
#: searx/templates/oscar/preferences.html:180
#: searx/templates/oscar/preferences.html:235
#: searx/templates/pix-art/preferences.html:73
msgid ""
"These settings are stored in your cookies, this allows us not to store this "
@ -292,7 +308,7 @@ msgstr "Настройки хранятся в ваших cookies-файлах,
#: searx/templates/courgette/preferences.html:124
#: searx/templates/default/preferences.html:112
#: searx/templates/oscar/preferences.html:182
#: searx/templates/oscar/preferences.html:237
#: searx/templates/pix-art/preferences.html:75
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
@ -301,20 +317,20 @@ msgstr "Данные cookies применяются для вашего удоб
#: searx/templates/courgette/preferences.html:127
#: searx/templates/default/preferences.html:115
#: searx/templates/oscar/preferences.html:185
#: searx/templates/oscar/preferences.html:240
#: searx/templates/pix-art/preferences.html:78
msgid "save"
msgstr "сохранить"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/default/preferences.html:116
#: searx/templates/oscar/preferences.html:187
#: searx/templates/oscar/preferences.html:242
msgid "Reset defaults"
msgstr ""
#: searx/templates/courgette/preferences.html:129
#: searx/templates/default/preferences.html:117
#: searx/templates/oscar/preferences.html:186
#: searx/templates/oscar/preferences.html:241
#: searx/templates/pix-art/preferences.html:79
msgid "back"
msgstr "назад"
@ -424,51 +440,89 @@ msgid "Toggle navigation"
msgstr "Переключить навигацию"
#: searx/templates/oscar/preferences.html:17
#: searx/templates/oscar/preferences.html:24
#: searx/templates/oscar/preferences.html:25
msgid "General"
msgstr "Общие"
#: searx/templates/oscar/preferences.html:18
#: searx/templates/oscar/preferences.html:125
#: searx/templates/oscar/preferences.html:126
msgid "Engines"
msgstr "Движки"
#: searx/templates/oscar/preferences.html:19
#: searx/templates/oscar/preferences.html:159
#: searx/templates/oscar/preferences.html:187
msgid "Plugins"
msgstr ""
#: searx/templates/oscar/preferences.html:44
#: searx/templates/oscar/preferences.html:20
#: searx/templates/oscar/preferences.html:210
msgid "Cookies"
msgstr ""
#: searx/templates/oscar/preferences.html:45
msgid "What language do you prefer for search?"
msgstr "На каком языке вы предпочитаете искать?"
#: searx/templates/oscar/preferences.html:55
#: searx/templates/oscar/preferences.html:56
msgid "Change the language of the layout"
msgstr "Изменить язык сайта"
#: searx/templates/oscar/preferences.html:65
#: searx/templates/oscar/preferences.html:66
msgid "Find stuff as you type"
msgstr "Поисковые предложения при наборе"
#: searx/templates/oscar/preferences.html:76
#: searx/templates/oscar/preferences.html:77
msgid "Proxying image results through searx"
msgstr "Проксировать найденные изображения с помощью searx"
#: searx/templates/oscar/preferences.html:85
#: searx/templates/oscar/preferences.html:86
msgid ""
"Change how forms are submited, <a "
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr "Изменяет способ отправки запросов (<a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">подробней о методах запросов</a>)"
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:95
msgid "Filter content"
msgstr "Использовать ли фильтр контента"
#: searx/templates/oscar/preferences.html:104
#: searx/templates/oscar/preferences.html:105
msgid "Change searx layout"
msgstr "Изменить тему сайта"
#: searx/templates/oscar/preferences.html:143
#: searx/templates/oscar/preferences.html:151
msgid "Shortcut"
msgstr ""
#: searx/templates/oscar/preferences.html:145
#: searx/templates/oscar/preferences.html:149
msgid "Avg. time"
msgstr ""
#: searx/templates/oscar/preferences.html:146
#: searx/templates/oscar/preferences.html:148
msgid "Max time"
msgstr ""
#: searx/templates/oscar/preferences.html:213
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr ""
#: searx/templates/oscar/preferences.html:214
msgid "With that list, you can assess searx transparency."
msgstr ""
#: searx/templates/oscar/preferences.html:219
msgid "Cookie name"
msgstr ""
#: searx/templates/oscar/preferences.html:220
msgid "Value"
msgstr ""
#: searx/templates/oscar/results.html:7
msgid "Search results"
msgstr "Результаты поиска"
@ -518,6 +572,14 @@ msgstr "Внимание!"
msgid "Please enable JavaScript to use full functionality of this site."
msgstr "Пожалуйста включите JavaScript, чтобы использовать все функции сайта."
#: searx/templates/oscar/messages/no_cookies.html:3
msgid "Information!"
msgstr ""
#: searx/templates/oscar/messages/no_cookies.html:4
msgid "currently, there are no cookies defined."
msgstr ""
#: searx/templates/oscar/messages/no_data_available.html:4
msgid "There is currently no data available. "
msgstr "На данный момент данные недоступны."

View File

@ -9,10 +9,10 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2015-04-26 18:57+0200\n"
"PO-Revision-Date: 2015-04-28 17:33+0000\n"
"Last-Translator: Caner Başaran <basaran.caner@gmail.com>\n"
"Language-Team: Turkish (http://www.transifex.com/projects/p/searx/language/tr/)\n"
"POT-Creation-Date: 2015-08-24 11:44+0200\n"
"PO-Revision-Date: 2015-08-24 09:45+0000\n"
"Last-Translator: pointhi\n"
"Language-Team: Turkish (http://www.transifex.com/asciimoo/searx/language/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -20,67 +20,67 @@ msgstr ""
"Language: tr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: searx/webapp.py:104
#: searx/webapp.py:114
msgid "files"
msgstr "dosyalar"
#: searx/webapp.py:105
#: searx/webapp.py:115
msgid "general"
msgstr "genel"
#: searx/webapp.py:106
#: searx/webapp.py:116
msgid "music"
msgstr "müzik"
#: searx/webapp.py:107
#: searx/webapp.py:117
msgid "social media"
msgstr "sosyal medya"
#: searx/webapp.py:108
#: searx/webapp.py:118
msgid "images"
msgstr "görseller"
#: searx/webapp.py:109
#: searx/webapp.py:119
msgid "videos"
msgstr "videolar"
#: searx/webapp.py:110
#: searx/webapp.py:120
msgid "it"
msgstr "bilişim"
#: searx/webapp.py:111
#: searx/webapp.py:121
msgid "news"
msgstr "haberler"
#: searx/webapp.py:112
#: searx/webapp.py:122
msgid "map"
msgstr "harita"
#: searx/webapp.py:396
#: searx/webapp.py:414
msgid "{minutes} minute(s) ago"
msgstr "{minutes} dakika() önce"
#: searx/webapp.py:398
#: searx/webapp.py:416
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours} saat(), {minutes} dakika() önce"
#: searx/engines/__init__.py:182
#: searx/engines/__init__.py:185
msgid "Page loads (sec)"
msgstr "Yüklenen sayfa (sn)"
#: searx/engines/__init__.py:186
#: searx/engines/__init__.py:189
msgid "Number of results"
msgstr "Sonuç sayısı"
#: searx/engines/__init__.py:190
#: searx/engines/__init__.py:193
msgid "Scores"
msgstr ""
#: searx/engines/__init__.py:194
#: searx/engines/__init__.py:197
msgid "Scores per result"
msgstr ""
#: searx/engines/__init__.py:198
#: searx/engines/__init__.py:201
msgid "Errors"
msgstr "Hatalar"
@ -95,11 +95,21 @@ msgstr ""
#: searx/plugins/search_on_category_select.py:19
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories."
"multiple categories. (JavaScript required)"
msgstr ""
#: searx/plugins/self_ip.py:19
msgid "Display your source IP address if the query expression is \"ip\""
#: searx/plugins/self_info.py:20
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr ""
#: searx/plugins/tracker_url_remover.py:26
msgid "Tracker URL remover"
msgstr ""
#: searx/plugins/tracker_url_remover.py:27
msgid "Remove trackers arguments from the returned URL"
msgstr ""
#: searx/templates/courgette/index.html:9
@ -128,90 +138,92 @@ msgstr "Tercihler"
#: searx/templates/courgette/preferences.html:9
#: searx/templates/default/preferences.html:9
#: searx/templates/oscar/preferences.html:35
#: searx/templates/oscar/preferences.html:37
#: searx/templates/oscar/preferences.html:36
#: searx/templates/oscar/preferences.html:38
msgid "Default categories"
msgstr "Öntanımlı kategoriler"
#: searx/templates/courgette/preferences.html:13
#: searx/templates/default/preferences.html:14
#: searx/templates/oscar/preferences.html:43
#: searx/templates/oscar/preferences.html:44
#: searx/templates/pix-art/preferences.html:9
msgid "Search language"
msgstr "Arama dili"
#: searx/templates/courgette/preferences.html:16
#: searx/templates/default/preferences.html:17
#: searx/templates/oscar/preferences.html:47
#: searx/templates/oscar/preferences.html:48
#: searx/templates/pix-art/preferences.html:12
msgid "Automatic"
msgstr "Otomatik"
#: searx/templates/courgette/preferences.html:24
#: searx/templates/default/preferences.html:25
#: searx/templates/oscar/preferences.html:54
#: searx/templates/oscar/preferences.html:55
#: searx/templates/pix-art/preferences.html:20
msgid "Interface language"
msgstr "Arayüz dili"
#: searx/templates/courgette/preferences.html:34
#: searx/templates/default/preferences.html:35
#: searx/templates/oscar/preferences.html:64
#: searx/templates/oscar/preferences.html:65
msgid "Autocomplete"
msgstr "Otomatik tamamlama"
#: searx/templates/courgette/preferences.html:45
#: searx/templates/default/preferences.html:46
#: searx/templates/oscar/preferences.html:75
#: searx/templates/oscar/preferences.html:76
msgid "Image proxy"
msgstr "Görsel vekil sunucu"
#: searx/templates/courgette/preferences.html:48
#: searx/templates/default/preferences.html:49
#: searx/templates/oscar/preferences.html:79
#: searx/templates/oscar/preferences.html:80
msgid "Enabled"
msgstr "Etkin"
#: searx/templates/courgette/preferences.html:49
#: searx/templates/default/preferences.html:50
#: searx/templates/oscar/preferences.html:80
#: searx/templates/oscar/preferences.html:81
msgid "Disabled"
msgstr "Devre dışı"
#: searx/templates/courgette/preferences.html:54
#: searx/templates/default/preferences.html:55
#: searx/templates/oscar/preferences.html:84
#: searx/templates/oscar/preferences.html:85
#: searx/templates/pix-art/preferences.html:30
msgid "Method"
msgstr "Sorgu gönderim yöntemi"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/default/preferences.html:64
#: searx/templates/oscar/preferences.html:93
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:144
#: searx/templates/oscar/preferences.html:150
msgid "SafeSearch"
msgstr "Güvenli Arama"
#: searx/templates/courgette/preferences.html:66
#: searx/templates/default/preferences.html:67
#: searx/templates/oscar/preferences.html:97
#: searx/templates/oscar/preferences.html:98
msgid "Strict"
msgstr "Sıkı"
#: searx/templates/courgette/preferences.html:67
#: searx/templates/default/preferences.html:68
#: searx/templates/oscar/preferences.html:98
#: searx/templates/oscar/preferences.html:99
msgid "Moderate"
msgstr "Orta"
#: searx/templates/courgette/preferences.html:68
#: searx/templates/default/preferences.html:69
#: searx/templates/oscar/preferences.html:99
#: searx/templates/oscar/preferences.html:100
msgid "None"
msgstr "Yok"
#: searx/templates/courgette/preferences.html:73
#: searx/templates/default/preferences.html:74
#: searx/templates/oscar/preferences.html:103
#: searx/templates/oscar/preferences.html:104
#: searx/templates/pix-art/preferences.html:39
msgid "Themes"
msgstr "Temalar"
@ -252,6 +264,8 @@ msgstr "Şu anda kullanılan arama motorları"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/default/preferences.html:88
#: searx/templates/oscar/preferences.html:142
#: searx/templates/oscar/preferences.html:152
#: searx/templates/pix-art/preferences.html:53
msgid "Engine name"
msgstr "Motor adı"
@ -266,6 +280,8 @@ msgstr "Türü"
#: searx/templates/default/preferences.html:90
#: searx/templates/default/preferences.html:101
#: searx/templates/oscar/macros.html:67
#: searx/templates/oscar/preferences.html:141
#: searx/templates/oscar/preferences.html:153
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
msgid "Allow"
@ -283,7 +299,7 @@ msgstr "Engelle"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/default/preferences.html:110
#: searx/templates/oscar/preferences.html:180
#: searx/templates/oscar/preferences.html:235
#: searx/templates/pix-art/preferences.html:73
msgid ""
"These settings are stored in your cookies, this allows us not to store this "
@ -292,7 +308,7 @@ msgstr "Ayarlar çerezlerinizde saklanır. Verdiğiniz izinler, sizin hakkınız
#: searx/templates/courgette/preferences.html:124
#: searx/templates/default/preferences.html:112
#: searx/templates/oscar/preferences.html:182
#: searx/templates/oscar/preferences.html:237
#: searx/templates/pix-art/preferences.html:75
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
@ -301,20 +317,20 @@ msgstr "Bu çerezler size kolaylık sağlar. Sizi takip etmek için kullanılmaz
#: searx/templates/courgette/preferences.html:127
#: searx/templates/default/preferences.html:115
#: searx/templates/oscar/preferences.html:185
#: searx/templates/oscar/preferences.html:240
#: searx/templates/pix-art/preferences.html:78
msgid "save"
msgstr "kaydet"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/default/preferences.html:116
#: searx/templates/oscar/preferences.html:187
#: searx/templates/oscar/preferences.html:242
msgid "Reset defaults"
msgstr ""
msgstr "Varsayılanları sıfırla"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/default/preferences.html:117
#: searx/templates/oscar/preferences.html:186
#: searx/templates/oscar/preferences.html:241
#: searx/templates/pix-art/preferences.html:79
msgid "back"
msgstr "geri"
@ -424,51 +440,89 @@ msgid "Toggle navigation"
msgstr ""
#: searx/templates/oscar/preferences.html:17
#: searx/templates/oscar/preferences.html:24
#: searx/templates/oscar/preferences.html:25
msgid "General"
msgstr "Genel"
#: searx/templates/oscar/preferences.html:18
#: searx/templates/oscar/preferences.html:125
#: searx/templates/oscar/preferences.html:126
msgid "Engines"
msgstr "Motorlar"
#: searx/templates/oscar/preferences.html:19
#: searx/templates/oscar/preferences.html:159
#: searx/templates/oscar/preferences.html:187
msgid "Plugins"
msgstr "Eklentiler"
#: searx/templates/oscar/preferences.html:44
#: searx/templates/oscar/preferences.html:20
#: searx/templates/oscar/preferences.html:210
msgid "Cookies"
msgstr ""
#: searx/templates/oscar/preferences.html:45
msgid "What language do you prefer for search?"
msgstr "Tercih ettiğiniz arama sonuçları dili"
#: searx/templates/oscar/preferences.html:55
#: searx/templates/oscar/preferences.html:56
msgid "Change the language of the layout"
msgstr "Site dilini değiştir"
#: searx/templates/oscar/preferences.html:65
#: searx/templates/oscar/preferences.html:66
msgid "Find stuff as you type"
msgstr "Leb demeden leblebiyi anlasın"
#: searx/templates/oscar/preferences.html:76
#: searx/templates/oscar/preferences.html:77
msgid "Proxying image results through searx"
msgstr "Görsel arama sonuçlarını, searx vekil sunucusu üzerinden geçir"
#: searx/templates/oscar/preferences.html:85
#: searx/templates/oscar/preferences.html:86
msgid ""
"Change how forms are submited, <a "
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr "Aramaların nasıl gönderildiğini değiştir, <a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">istek yöntemleri hakkında daha fazla bilgi</a>"
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:95
msgid "Filter content"
msgstr "İçeriyi süz"
#: searx/templates/oscar/preferences.html:104
#: searx/templates/oscar/preferences.html:105
msgid "Change searx layout"
msgstr "searx yerleşim düzenini değiştir"
#: searx/templates/oscar/preferences.html:143
#: searx/templates/oscar/preferences.html:151
msgid "Shortcut"
msgstr ""
#: searx/templates/oscar/preferences.html:145
#: searx/templates/oscar/preferences.html:149
msgid "Avg. time"
msgstr ""
#: searx/templates/oscar/preferences.html:146
#: searx/templates/oscar/preferences.html:148
msgid "Max time"
msgstr ""
#: searx/templates/oscar/preferences.html:213
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr ""
#: searx/templates/oscar/preferences.html:214
msgid "With that list, you can assess searx transparency."
msgstr ""
#: searx/templates/oscar/preferences.html:219
msgid "Cookie name"
msgstr ""
#: searx/templates/oscar/preferences.html:220
msgid "Value"
msgstr ""
#: searx/templates/oscar/results.html:7
msgid "Search results"
msgstr "Arama sonuçları"
@ -518,6 +572,14 @@ msgstr "Uyarı!"
msgid "Please enable JavaScript to use full functionality of this site."
msgstr "Lütfen, bu sitenin tüm işlevlerini kullanmak için JavaScript'i etkinleştirin."
#: searx/templates/oscar/messages/no_cookies.html:3
msgid "Information!"
msgstr ""
#: searx/templates/oscar/messages/no_cookies.html:4
msgid "currently, there are no cookies defined."
msgstr ""
#: searx/templates/oscar/messages/no_data_available.html:4
msgid "There is currently no data available. "
msgstr "Şuan uygun veri yok."

Binary file not shown.

View File

@ -0,0 +1,682 @@
# Translations template for PROJECT.
# Copyright (C) 2015 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
#
# Translators:
# 文科, 2015
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2015-08-24 11:44+0200\n"
"PO-Revision-Date: 2015-08-29 07:35+0000\n"
"Last-Translator: 文科\n"
"Language-Team: Chinese (China) (http://www.transifex.com/asciimoo/searx/language/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 1.3\n"
"Language: zh_CN\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: searx/webapp.py:114
msgid "files"
msgstr "文件"
#: searx/webapp.py:115
msgid "general"
msgstr "一般"
#: searx/webapp.py:116
msgid "music"
msgstr "音乐"
#: searx/webapp.py:117
msgid "social media"
msgstr "社交媒体"
#: searx/webapp.py:118
msgid "images"
msgstr "图片"
#: searx/webapp.py:119
msgid "videos"
msgstr "视频"
#: searx/webapp.py:120
msgid "it"
msgstr "it"
#: searx/webapp.py:121
msgid "news"
msgstr "新闻"
#: searx/webapp.py:122
msgid "map"
msgstr "地图"
#: searx/webapp.py:414
msgid "{minutes} minute(s) ago"
msgstr "{minutes}分钟之前"
#: searx/webapp.py:416
msgid "{hours} hour(s), {minutes} minute(s) ago"
msgstr "{hours}小时{minutes}分钟之前"
#: searx/engines/__init__.py:185
msgid "Page loads (sec)"
msgstr "页面加载 (秒)"
#: searx/engines/__init__.py:189
msgid "Number of results"
msgstr "结果数"
#: searx/engines/__init__.py:193
msgid "Scores"
msgstr "得分"
#: searx/engines/__init__.py:197
msgid "Scores per result"
msgstr "每个结果等分"
#: searx/engines/__init__.py:201
msgid "Errors"
msgstr "错误"
#: searx/plugins/https_rewrite.py:29
msgid "Rewrite HTTP links to HTTPS if possible"
msgstr "如果可能的话重定向HTTP链接到HTTPS"
#: searx/plugins/search_on_category_select.py:18
msgid "Search on category select"
msgstr "搜索类别选择"
#: searx/plugins/search_on_category_select.py:19
msgid ""
"Perform search immediately if a category selected. Disable to select "
"multiple categories. (JavaScript required)"
msgstr "如果选中一个类别立即搜索。禁用选择多个类别功能。JavaScript 启用)"
#: searx/plugins/self_info.py:20
msgid ""
"Displays your IP if the query is \"ip\" and your user agent if the query "
"contains \"user agent\"."
msgstr "搜索“ip”显示你的ip和搜索内容包括“user agent”显示你的user agent。"
#: searx/plugins/tracker_url_remover.py:26
msgid "Tracker URL remover"
msgstr "移除跟踪链接"
#: searx/plugins/tracker_url_remover.py:27
msgid "Remove trackers arguments from the returned URL"
msgstr "从返回的链接中移除跟踪参数"
#: searx/templates/courgette/index.html:9
#: searx/templates/courgette/index.html:13
#: searx/templates/courgette/results.html:5
#: searx/templates/default/index.html:8 searx/templates/default/index.html:12
#: searx/templates/oscar/navbar.html:7 searx/templates/oscar/navbar.html:35
#: searx/templates/oscar/preferences.html:3
#: searx/templates/pix-art/index.html:8
msgid "preferences"
msgstr "首选项"
#: searx/templates/courgette/index.html:11
#: searx/templates/default/index.html:10 searx/templates/oscar/about.html:3
#: searx/templates/oscar/navbar.html:8 searx/templates/oscar/navbar.html:34
#: searx/templates/pix-art/index.html:7
msgid "about"
msgstr "关于"
#: searx/templates/courgette/preferences.html:5
#: searx/templates/default/preferences.html:5
#: searx/templates/oscar/preferences.html:12
#: searx/templates/pix-art/preferences.html:5
msgid "Preferences"
msgstr "首选项"
#: searx/templates/courgette/preferences.html:9
#: searx/templates/default/preferences.html:9
#: searx/templates/oscar/preferences.html:36
#: searx/templates/oscar/preferences.html:38
msgid "Default categories"
msgstr "默认类别"
#: searx/templates/courgette/preferences.html:13
#: searx/templates/default/preferences.html:14
#: searx/templates/oscar/preferences.html:44
#: searx/templates/pix-art/preferences.html:9
msgid "Search language"
msgstr "搜索语言"
#: searx/templates/courgette/preferences.html:16
#: searx/templates/default/preferences.html:17
#: searx/templates/oscar/preferences.html:48
#: searx/templates/pix-art/preferences.html:12
msgid "Automatic"
msgstr "自动"
#: searx/templates/courgette/preferences.html:24
#: searx/templates/default/preferences.html:25
#: searx/templates/oscar/preferences.html:55
#: searx/templates/pix-art/preferences.html:20
msgid "Interface language"
msgstr "界面语言"
#: searx/templates/courgette/preferences.html:34
#: searx/templates/default/preferences.html:35
#: searx/templates/oscar/preferences.html:65
msgid "Autocomplete"
msgstr "自动完成"
#: searx/templates/courgette/preferences.html:45
#: searx/templates/default/preferences.html:46
#: searx/templates/oscar/preferences.html:76
msgid "Image proxy"
msgstr "代理图片"
#: searx/templates/courgette/preferences.html:48
#: searx/templates/default/preferences.html:49
#: searx/templates/oscar/preferences.html:80
msgid "Enabled"
msgstr "启用"
#: searx/templates/courgette/preferences.html:49
#: searx/templates/default/preferences.html:50
#: searx/templates/oscar/preferences.html:81
msgid "Disabled"
msgstr "禁用"
#: searx/templates/courgette/preferences.html:54
#: searx/templates/default/preferences.html:55
#: searx/templates/oscar/preferences.html:85
#: searx/templates/pix-art/preferences.html:30
msgid "Method"
msgstr "方法"
#: searx/templates/courgette/preferences.html:63
#: searx/templates/default/preferences.html:64
#: searx/templates/oscar/preferences.html:94
#: searx/templates/oscar/preferences.html:144
#: searx/templates/oscar/preferences.html:150
msgid "SafeSearch"
msgstr "安全搜索"
#: searx/templates/courgette/preferences.html:66
#: searx/templates/default/preferences.html:67
#: searx/templates/oscar/preferences.html:98
msgid "Strict"
msgstr "严格模式"
#: searx/templates/courgette/preferences.html:67
#: searx/templates/default/preferences.html:68
#: searx/templates/oscar/preferences.html:99
msgid "Moderate"
msgstr "中等"
#: searx/templates/courgette/preferences.html:68
#: searx/templates/default/preferences.html:69
#: searx/templates/oscar/preferences.html:100
msgid "None"
msgstr "不过滤"
#: searx/templates/courgette/preferences.html:73
#: searx/templates/default/preferences.html:74
#: searx/templates/oscar/preferences.html:104
#: searx/templates/pix-art/preferences.html:39
msgid "Themes"
msgstr "主题"
#: searx/templates/courgette/preferences.html:83
msgid "Color"
msgstr "颜色"
#: searx/templates/courgette/preferences.html:86
msgid "Blue (default)"
msgstr "蓝色(默认)"
#: searx/templates/courgette/preferences.html:87
msgid "Violet"
msgstr "紫色"
#: searx/templates/courgette/preferences.html:88
msgid "Green"
msgstr "绿色"
#: searx/templates/courgette/preferences.html:89
msgid "Cyan"
msgstr "青色"
#: searx/templates/courgette/preferences.html:90
msgid "Orange"
msgstr "橙色"
#: searx/templates/courgette/preferences.html:91
msgid "Red"
msgstr "红色"
#: searx/templates/courgette/preferences.html:96
#: searx/templates/default/preferences.html:84
#: searx/templates/pix-art/preferences.html:49
msgid "Currently used search engines"
msgstr "目前使用的搜索引擎"
#: searx/templates/courgette/preferences.html:100
#: searx/templates/default/preferences.html:88
#: searx/templates/oscar/preferences.html:142
#: searx/templates/oscar/preferences.html:152
#: searx/templates/pix-art/preferences.html:53
msgid "Engine name"
msgstr "搜索引擎名字"
#: searx/templates/courgette/preferences.html:101
#: searx/templates/default/preferences.html:89
msgid "Category"
msgstr "类别"
#: searx/templates/courgette/preferences.html:102
#: searx/templates/courgette/preferences.html:113
#: searx/templates/default/preferences.html:90
#: searx/templates/default/preferences.html:101
#: searx/templates/oscar/macros.html:67
#: searx/templates/oscar/preferences.html:141
#: searx/templates/oscar/preferences.html:153
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:64
msgid "Allow"
msgstr "允许"
#: searx/templates/courgette/preferences.html:102
#: searx/templates/courgette/preferences.html:114
#: searx/templates/default/preferences.html:90
#: searx/templates/default/preferences.html:102
#: searx/templates/oscar/macros.html:66
#: searx/templates/pix-art/preferences.html:54
#: searx/templates/pix-art/preferences.html:65
msgid "Block"
msgstr "屏蔽"
#: searx/templates/courgette/preferences.html:122
#: searx/templates/default/preferences.html:110
#: searx/templates/oscar/preferences.html:235
#: searx/templates/pix-art/preferences.html:73
msgid ""
"These settings are stored in your cookies, this allows us not to store this "
"data about you."
msgstr "这些设置保存你的cookie这代表我们不能储存你的数据。"
#: searx/templates/courgette/preferences.html:124
#: searx/templates/default/preferences.html:112
#: searx/templates/oscar/preferences.html:237
#: searx/templates/pix-art/preferences.html:75
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
msgstr "这些cookie是为了让你更加方便我们不会使用这些cookie跟踪你。"
#: searx/templates/courgette/preferences.html:127
#: searx/templates/default/preferences.html:115
#: searx/templates/oscar/preferences.html:240
#: searx/templates/pix-art/preferences.html:78
msgid "save"
msgstr "保存"
#: searx/templates/courgette/preferences.html:128
#: searx/templates/default/preferences.html:116
#: searx/templates/oscar/preferences.html:242
msgid "Reset defaults"
msgstr "恢复默认"
#: searx/templates/courgette/preferences.html:129
#: searx/templates/default/preferences.html:117
#: searx/templates/oscar/preferences.html:241
#: searx/templates/pix-art/preferences.html:79
msgid "back"
msgstr "后"
#: searx/templates/courgette/results.html:12
#: searx/templates/default/results.html:13
#: searx/templates/oscar/results.html:110
msgid "Search URL"
msgstr "搜索链接"
#: searx/templates/courgette/results.html:16
#: searx/templates/default/results.html:17
#: searx/templates/oscar/results.html:115
msgid "Download results"
msgstr "下载结果"
#: searx/templates/courgette/results.html:34
#: searx/templates/default/results.html:35
msgid "Answers"
msgstr "回答"
#: searx/templates/courgette/results.html:42
#: searx/templates/default/results.html:43
#: searx/templates/oscar/results.html:90
msgid "Suggestions"
msgstr "搜索建议"
#: searx/templates/courgette/results.html:70
#: searx/templates/default/results.html:81
#: searx/templates/oscar/results.html:51 searx/templates/oscar/results.html:63
msgid "previous page"
msgstr "上一页"
#: searx/templates/courgette/results.html:81
#: searx/templates/default/results.html:92
#: searx/templates/oscar/results.html:44 searx/templates/oscar/results.html:71
msgid "next page"
msgstr "下一页"
#: searx/templates/courgette/search.html:3
#: searx/templates/default/search.html:3 searx/templates/oscar/search.html:4
#: searx/templates/oscar/search_full.html:9
#: searx/templates/pix-art/search.html:3
msgid "Search for..."
msgstr "搜索..."
#: searx/templates/courgette/stats.html:4 searx/templates/default/stats.html:4
#: searx/templates/oscar/stats.html:5 searx/templates/pix-art/stats.html:4
msgid "Engine stats"
msgstr "搜索引擎统计"
#: searx/templates/courgette/result_templates/images.html:4
#: searx/templates/default/result_templates/images.html:4
#: searx/templates/pix-art/result_templates/images.html:4
msgid "original context"
msgstr "原始上下文"
#: searx/templates/courgette/result_templates/torrent.html:7
#: searx/templates/default/result_templates/torrent.html:11
#: searx/templates/oscar/result_templates/torrent.html:6
msgid "Seeder"
msgstr ""
#: searx/templates/courgette/result_templates/torrent.html:7
#: searx/templates/default/result_templates/torrent.html:11
#: searx/templates/oscar/result_templates/torrent.html:6
msgid "Leecher"
msgstr ""
#: searx/templates/courgette/result_templates/torrent.html:9
#: searx/templates/default/result_templates/torrent.html:9
#: searx/templates/oscar/macros.html:21
msgid "magnet link"
msgstr "磁力链接"
#: searx/templates/courgette/result_templates/torrent.html:10
#: searx/templates/default/result_templates/torrent.html:10
#: searx/templates/oscar/macros.html:22
msgid "torrent file"
msgstr "种子文件"
#: searx/templates/default/categories.html:8
msgid "Click on the magnifier to perform search"
msgstr "点击放大镜执行搜索"
#: searx/templates/default/result_templates/code.html:3
#: searx/templates/default/result_templates/default.html:3
#: searx/templates/default/result_templates/map.html:9
#: searx/templates/oscar/macros.html:20
msgid "cached"
msgstr "缓存"
#: searx/templates/oscar/base.html:78
msgid "Powered by"
msgstr "Powered by"
#: searx/templates/oscar/base.html:78
msgid "a privacy-respecting, hackable metasearch engine"
msgstr "一个尊重隐私,可再开发的元搜索引擎"
#: searx/templates/oscar/navbar.html:9 searx/templates/oscar/navbar.html:33
msgid "home"
msgstr "主页"
#: searx/templates/oscar/navbar.html:14 searx/templates/oscar/navbar.html:24
msgid "Toggle navigation"
msgstr "切换导航"
#: searx/templates/oscar/preferences.html:17
#: searx/templates/oscar/preferences.html:25
msgid "General"
msgstr "常规"
#: searx/templates/oscar/preferences.html:18
#: searx/templates/oscar/preferences.html:126
msgid "Engines"
msgstr "搜索引擎"
#: searx/templates/oscar/preferences.html:19
#: searx/templates/oscar/preferences.html:187
msgid "Plugins"
msgstr "插件"
#: searx/templates/oscar/preferences.html:20
#: searx/templates/oscar/preferences.html:210
msgid "Cookies"
msgstr "Cookie"
#: searx/templates/oscar/preferences.html:45
msgid "What language do you prefer for search?"
msgstr "你更喜欢搜索什么语言?"
#: searx/templates/oscar/preferences.html:56
msgid "Change the language of the layout"
msgstr "改变界面语言"
#: searx/templates/oscar/preferences.html:66
msgid "Find stuff as you type"
msgstr "找到你的搜索的东西"
#: searx/templates/oscar/preferences.html:77
msgid "Proxying image results through searx"
msgstr "通过searx代理图片"
#: searx/templates/oscar/preferences.html:86
msgid ""
"Change how forms are submited, <a "
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr "更改请求方法,<a href=\"http://zh.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">关于请求方法了解更多</a>"
#: searx/templates/oscar/preferences.html:95
msgid "Filter content"
msgstr "过滤内容"
#: searx/templates/oscar/preferences.html:105
msgid "Change searx layout"
msgstr "改变searx布局"
#: searx/templates/oscar/preferences.html:143
#: searx/templates/oscar/preferences.html:151
msgid "Shortcut"
msgstr "快捷键"
#: searx/templates/oscar/preferences.html:145
#: searx/templates/oscar/preferences.html:149
msgid "Avg. time"
msgstr "平均时间"
#: searx/templates/oscar/preferences.html:146
#: searx/templates/oscar/preferences.html:148
msgid "Max time"
msgstr "最大时间"
#: searx/templates/oscar/preferences.html:213
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
msgstr "这是searx保存在你的电脑上的cookie列表。"
#: searx/templates/oscar/preferences.html:214
msgid "With that list, you can assess searx transparency."
msgstr "有了这个列表你可以评价searx透明度。"
#: searx/templates/oscar/preferences.html:219
msgid "Cookie name"
msgstr "cookie名称"
#: searx/templates/oscar/preferences.html:220
msgid "Value"
msgstr "值"
#: searx/templates/oscar/results.html:7
msgid "Search results"
msgstr "搜索结果"
#: searx/templates/oscar/results.html:105
msgid "Links"
msgstr "链接"
#: searx/templates/oscar/search.html:6
#: searx/templates/oscar/search_full.html:11
msgid "Start search"
msgstr "开始搜索"
#: searx/templates/oscar/search_full.html:15
msgid "Show search filters"
msgstr "显示搜索过滤器"
#: searx/templates/oscar/search_full.html:15
msgid "Hide search filters"
msgstr "隐藏搜索过滤器"
#: searx/templates/oscar/stats.html:2
msgid "stats"
msgstr "统计"
#: searx/templates/oscar/messages/first_time.html:4
#: searx/templates/oscar/messages/no_results.html:5
#: searx/templates/oscar/messages/save_settings_successfull.html:5
#: searx/templates/oscar/messages/unknow_error.html:5
msgid "Close"
msgstr "关闭"
#: searx/templates/oscar/messages/first_time.html:6
#: searx/templates/oscar/messages/no_data_available.html:3
msgid "Heads up!"
msgstr "小心!"
#: searx/templates/oscar/messages/first_time.html:7
msgid "It look like you are using searx first time."
msgstr "看起来你是第一次使用searx。"
#: searx/templates/oscar/messages/js_disabled.html:2
msgid "Warning!"
msgstr "警告!"
#: searx/templates/oscar/messages/js_disabled.html:3
msgid "Please enable JavaScript to use full functionality of this site."
msgstr "请启用JavaScript来使用本网站全部功能。"
#: searx/templates/oscar/messages/no_cookies.html:3
msgid "Information!"
msgstr "信息!"
#: searx/templates/oscar/messages/no_cookies.html:4
msgid "currently, there are no cookies defined."
msgstr "目前还未保存cookie。"
#: searx/templates/oscar/messages/no_data_available.html:4
msgid "There is currently no data available. "
msgstr "目前没有数据可用。"
#: searx/templates/oscar/messages/no_results.html:7
msgid "Sorry!"
msgstr "抱歉!"
#: searx/templates/oscar/messages/no_results.html:8
msgid ""
"we didn't find any results. Please use another query or search in more "
"categories."
msgstr "我们没有找到任何结果。请换用其他词语或在更多类别中搜索。"
#: searx/templates/oscar/messages/save_settings_successfull.html:7
msgid "Well done!"
msgstr "做得好!"
#: searx/templates/oscar/messages/save_settings_successfull.html:8
msgid "Settings saved successfully."
msgstr "设置保存成功。"
#: searx/templates/oscar/messages/unknow_error.html:7
msgid "Oh snap!"
msgstr "哦,糟糕!"
#: searx/templates/oscar/messages/unknow_error.html:8
msgid "Something went wrong."
msgstr "出了些问题。"
#: searx/templates/oscar/result_templates/default.html:7
msgid "show media"
msgstr "显示媒体"
#: searx/templates/oscar/result_templates/default.html:7
msgid "hide media"
msgstr "隐藏媒体"
#: searx/templates/oscar/result_templates/images.html:23
msgid "Get image"
msgstr "获取图片"
#: searx/templates/oscar/result_templates/images.html:24
msgid "View source"
msgstr "查看来源"
#: searx/templates/oscar/result_templates/map.html:7
msgid "show map"
msgstr "显示地图"
#: searx/templates/oscar/result_templates/map.html:7
msgid "hide map"
msgstr "隐藏地图"
#: searx/templates/oscar/result_templates/map.html:11
msgid "show details"
msgstr "显示详细信息"
#: searx/templates/oscar/result_templates/map.html:11
msgid "hide details"
msgstr "隐藏详细信息"
#: searx/templates/oscar/result_templates/torrent.html:7
msgid "Filesize"
msgstr "文件大小"
#: searx/templates/oscar/result_templates/torrent.html:9
msgid "Bytes"
msgstr "B"
#: searx/templates/oscar/result_templates/torrent.html:10
msgid "kiB"
msgstr "KB"
#: searx/templates/oscar/result_templates/torrent.html:11
msgid "MiB"
msgstr "MB"
#: searx/templates/oscar/result_templates/torrent.html:12
msgid "GiB"
msgstr "GB"
#: searx/templates/oscar/result_templates/torrent.html:13
msgid "TiB"
msgstr "TB"
#: searx/templates/oscar/result_templates/torrent.html:15
msgid "Number of Files"
msgstr "文件数"
#: searx/templates/oscar/result_templates/videos.html:7
msgid "show video"
msgstr "显示视频"
#: searx/templates/oscar/result_templates/videos.html:7
msgid "hide video"
msgstr "隐藏视频"
#: searx/templates/pix-art/results.html:28
msgid "Load more..."
msgstr "载入更多..."

View File

@ -1,11 +1,9 @@
# import htmlentitydefs
import locale
import dateutil.parser
import cStringIO
import csv
import os
import re
from babel.dates import format_date
from codecs import getincrementalencoder
from HTMLParser import HTMLParser
from random import choice
@ -21,11 +19,15 @@ ua_versions = ('33.0',
'34.0',
'35.0',
'36.0',
'37.0')
'37.0',
'38.0',
'39.0',
'40.0')
ua_os = ('Windows NT 6.3; WOW64',
'X11; Linux x86_64',
'X11; Linux x86')
ua = "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}"
blocked_tags = ('script',
@ -40,7 +42,7 @@ def gen_useragent():
def searx_useragent():
return 'searx/{searx_version} {suffix}'.format(
searx_version=VERSION_STRING,
suffix=settings['server'].get('useragent_suffix', ''))
suffix=settings['outgoing'].get('useragent_suffix', ''))
def highlight_content(content, query):
@ -194,23 +196,16 @@ def get_result_templates(base_path):
return result_templates
def format_date_by_locale(date_string, locale_string):
def format_date_by_locale(date, locale_string):
# strftime works only on dates after 1900
parsed_date = dateutil.parser.parse(date_string)
if parsed_date.year <= 1900:
return parsed_date.isoformat().split('T')[0]
orig_locale = locale.getlocale()[0]
try:
locale.setlocale(locale.LC_ALL, locale_string)
except:
logger.warning('cannot set locale: {0}'.format(locale_string))
formatted_date = parsed_date.strftime(locale.nl_langinfo(locale.D_FMT))
try:
locale.setlocale(locale.LC_ALL, orig_locale)
except:
logger.warning('cannot set original locale: {0}'.format(orig_locale))
return formatted_date
if date.year <= 1900:
return date.isoformat().split('T')[0]
if locale_string == 'all':
locale_string = settings['ui']['default_locale'] or 'en_US'
return format_date(date, locale=locale_string)
def dict_subset(d, properties):
@ -221,9 +216,10 @@ def dict_subset(d, properties):
return result
def prettify_url(url):
if len(url) > 74:
return u'{0}[...]{1}'.format(url[:35], url[-35:])
def prettify_url(url, max_length=74):
if len(url) > max_length:
chunk_len = max_length / 2 + 1
return u'{0}[...]{1}'.format(url[:chunk_len], url[-chunk_len:])
else:
return url

View File

@ -18,7 +18,7 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
# version of searx
VERSION_MAJOR = 0
VERSION_MINOR = 7
VERSION_MINOR = 8
VERSION_BUILD = 0
VERSION_STRING = "{0}.{1}.{2}".format(VERSION_MAJOR,

View File

@ -42,7 +42,7 @@ except:
from datetime import datetime, timedelta
from urllib import urlencode
from urlparse import urlparse
from urlparse import urlparse, urljoin
from werkzeug.contrib.fixers import ProxyFix
from flask import (
Flask, request, render_template, url_for, Response, make_response,
@ -77,11 +77,11 @@ except ImportError:
static_path, templates_path, themes =\
get_themes(settings['themes_path']
if settings.get('themes_path')
get_themes(settings['ui']['themes_path']
if settings['ui']['themes_path']
else searx_dir)
default_theme = settings['server'].get('default_theme', 'default')
default_theme = settings['ui']['default_theme']
static_files = get_static_files(searx_dir)
@ -121,15 +121,15 @@ _category_names = (gettext('files'),
gettext('news'),
gettext('map'))
outgoing_proxies = settings.get('outgoing_proxies', None)
outgoing_proxies = settings['outgoing'].get('proxies', None)
@babel.localeselector
def get_locale():
locale = request.accept_languages.best_match(settings['locales'].keys())
if settings['server'].get('default_locale'):
locale = settings['server']['default_locale']
if settings['ui'].get('default_locale'):
locale = settings['ui']['default_locale']
if request.cookies.get('locale', '') in settings['locales']:
locale = request.cookies.get('locale', '')
@ -263,7 +263,7 @@ def image_proxify(url):
def render(template_name, override_theme=None, **kwargs):
blocked_engines = get_blocked_engines(engines, request.cookies)
autocomplete = request.cookies.get('autocomplete')
autocomplete = request.cookies.get('autocomplete', settings['search']['autocomplete'])
if autocomplete not in autocomplete_backends:
autocomplete = None
@ -312,7 +312,7 @@ def render(template_name, override_theme=None, **kwargs):
kwargs['method'] = request.cookies.get('method', 'POST')
kwargs['safesearch'] = request.cookies.get('safesearch', '1')
kwargs['safesearch'] = request.cookies.get('safesearch', str(settings['search']['safe_search']))
# override url_for function in templates
kwargs['url_for'] = url_for_theme
@ -383,7 +383,7 @@ def index():
plugins.call('post_search', request, locals())
for result in search.results:
for result in search.result_container.get_ordered_results():
plugins.call('on_result', request, locals())
if not search.paging and engines[result['engine']].paging:
@ -411,7 +411,7 @@ def index():
minutes = int((timedifference.seconds / 60) % 60)
hours = int(timedifference.seconds / 60 / 60)
if hours == 0:
result['publishedDate'] = gettext(u'{minutes} minute(s) ago').format(minutes=minutes) # noqa
result['publishedDate'] = gettext(u'{minutes} minute(s) ago').format(minutes=minutes)
else:
result['publishedDate'] = gettext(u'{hours} hour(s), {minutes} minute(s) ago').format(hours=hours, minutes=minutes) # noqa
else:
@ -419,14 +419,13 @@ def index():
if search.request_data.get('format') == 'json':
return Response(json.dumps({'query': search.query,
'results': search.results}),
'results': search.result_container.get_ordered_results()}),
mimetype='application/json')
elif search.request_data.get('format') == 'csv':
csv = UnicodeWriter(cStringIO.StringIO())
keys = ('title', 'url', 'content', 'host', 'engine', 'score')
if search.results:
csv.writerow(keys)
for row in search.results:
for row in search.result_container.get_ordered_results():
row['host'] = row['parsed_url'].netloc
csv.writerow([row.get(key, '') for key in keys])
csv.stream.seek(0)
@ -437,24 +436,24 @@ def index():
elif search.request_data.get('format') == 'rss':
response_rss = render(
'opensearch_response_rss.xml',
results=search.results,
results=search.result_container.get_ordered_results(),
q=search.request_data['q'],
number_of_results=len(search.results),
number_of_results=search.result_container.results_length(),
base_url=get_base_url()
)
return Response(response_rss, mimetype='text/xml')
return render(
'results.html',
results=search.results,
results=search.result_container.get_ordered_results(),
q=search.request_data['q'],
selected_categories=search.categories,
paging=search.paging,
pageno=search.pageno,
base_url=get_base_url(),
suggestions=search.suggestions,
answers=search.answers,
infoboxes=search.infoboxes,
suggestions=search.result_container.suggestions,
answers=search.result_container.answers,
infoboxes=search.result_container.infoboxes,
theme=get_current_theme_name(),
favicons=global_favicons[themes.index(get_current_theme_name())]
)
@ -491,7 +490,7 @@ def autocompleter():
return '', 400
# run autocompleter
completer = autocomplete_backends.get(request.cookies.get('autocomplete'))
completer = autocomplete_backends.get(request.cookies.get('autocomplete', settings['search']['autocomplete']))
# parse searx specific autocompleter results like !bang
raw_results = searx_bang(query)
@ -532,7 +531,7 @@ def preferences():
blocked_engines = []
resp = make_response(redirect(url_for('index')))
resp = make_response(redirect(urljoin(settings['server']['base_url'], url_for('index'))))
if request.method == 'GET':
blocked_engines = get_blocked_engines(engines, request.cookies)
@ -542,7 +541,7 @@ def preferences():
locale = None
autocomplete = ''
method = 'POST'
safesearch = '1'
safesearch = settings['search']['safe_search']
for pd_name, pd in request.form.items():
if pd_name.startswith('category_'):
category = pd_name[9:]
@ -624,7 +623,7 @@ def preferences():
resp.set_cookie('method', method, max_age=cookie_max_age)
resp.set_cookie('safesearch', safesearch, max_age=cookie_max_age)
resp.set_cookie('safesearch', str(safesearch), max_age=cookie_max_age)
resp.set_cookie('image_proxy', image_proxy, max_age=cookie_max_age)
@ -640,12 +639,12 @@ def preferences():
stats[e.name] = {'time': None,
'warn_timeout': False,
'warn_time': False}
if e.timeout > settings['server']['request_timeout']:
if e.timeout > settings['outgoing']['request_timeout']:
stats[e.name]['warn_timeout'] = True
for engine_stat in get_engines_stats()[0][1]:
stats[engine_stat.get('name')]['time'] = round(engine_stat.get('avg'), 3)
if engine_stat.get('avg') > settings['server']['request_timeout']:
if engine_stat.get('avg') > settings['outgoing']['request_timeout']:
stats[engine_stat.get('name')]['warn_time'] = True
# end of stats
@ -683,7 +682,7 @@ def image_proxy():
resp = requests.get(url,
stream=True,
timeout=settings['server'].get('request_timeout', 2),
timeout=settings['outgoing']['request_timeout'],
headers=headers,
proxies=outgoing_proxies)
@ -767,7 +766,7 @@ def favicon():
@app.route('/clear_cookies')
def clear_cookies():
resp = make_response(redirect(url_for('index')))
resp = make_response(redirect(urljoin(settings['server']['base_url'], url_for('index'))))
for cookie_name in request.cookies:
resp.delete_cookie(cookie_name)
return resp
@ -775,9 +774,10 @@ def clear_cookies():
def run():
app.run(
debug=settings['server']['debug'],
use_debugger=settings['server']['debug'],
port=settings['server']['port']
debug=settings['general']['debug'],
use_debugger=settings['general']['debug'],
port=settings['server']['port'],
host=settings['server']['bind_address']
)