on master help sign in
Merge remote-tracking branch 'origin/master'
commitac8759cd3ff99024864fd04d7c4bef5c3a00b971 authorKang-min Liu <gugod@gugod.org> dateSat 14 Nov 2015, 00:05 (11 years ago) parentc7c6c35e98aef6
73 files changed+2781−1335
.travis.yml+6 AUTHORS.rst+4 CHANGELOG.rst+46 README.rst+1−1 searx/__init__.py+1−1 searx/autocomplete.py+1−1 searx/engines/__init__.py+1−1 searx/engines/bing.py+1−1 searx/engines/bing_images.py+1−1 searx/engines/gigablast.py+6−2 searx/engines/google.py+9−4 searx/engines/piratebay.py+1−1 searx/engines/searchcode_code.py+5 searx/engines/searchcode_doc.py+5 searx/engines/startpage.py+46−7 searx/engines/twitter.py+6−2 searx/engines/wikidata.py+26−8 searx/engines/yandex.py+62 searx/engines/youtube.py−93 searx/plugins/self_info.py+4−4 searx/poolrequests.py+10−8 searx/results.py+239 searx/search.py+26−258 searx/settings.yml+27−12 searx/settings_robot.yml+17−5 searx/static/themes/oscar/css/oscar.min.css+88−1 searx/static/themes/oscar/less/oscar/results.less+5 searx/templates/courgette/opensearch.xml+1 searx/templates/default/opensearch.xml+1 searx/templates/oscar/macros.html+5−1 searx/templates/oscar/opensearch.xml+1 searx/templates/pix-art/preferences.html+2−2 searx/tests/engines/test_bing.py+4−4 searx/tests/engines/test_bing_images.py+5−5 searx/tests/engines/test_duckduckgo.py+4−3 searx/tests/engines/test_piratebay.py+3−3 searx/tests/engines/test_startpage.py+3−3 searx/tests/engines/test_youtube.py−204 searx/tests/test_engines.py−1 searx/tests/test_plugins.py+17−11 searx/tests/test_results.py+41 searx/tests/test_search.py+4−19 searx/tests/test_utils.py+10 searx/tests/test_webapp.py+7−1 searx/translations/de/LC_MESSAGES/messages.mo searx/translations/de/LC_MESSAGES/messages.po+116−54 searx/translations/en/LC_MESSAGES/messages.mo searx/translations/es/LC_MESSAGES/messages.mo searx/translations/es/LC_MESSAGES/messages.po+122−58 searx/translations/fr/LC_MESSAGES/messages.mo searx/translations/fr/LC_MESSAGES/messages.po+116−54 searx/translations/he/LC_MESSAGES/messages.mo searx/translations/he/LC_MESSAGES/messages.po+118−56 searx/translations/hu/LC_MESSAGES/messages.mo searx/translations/hu/LC_MESSAGES/messages.po+116−54 searx/translations/it/LC_MESSAGES/messages.mo searx/translations/it/LC_MESSAGES/messages.po+115−53 searx/translations/ja/LC_MESSAGES/messages.mo searx/translations/ja/LC_MESSAGES/messages.po+124−62 searx/translations/nl/LC_MESSAGES/messages.mo searx/translations/nl/LC_MESSAGES/messages.po+116−54 searx/translations/pt/LC_MESSAGES/messages.mo searx/translations/ro/LC_MESSAGES/messages.mo searx/translations/ro/LC_MESSAGES/messages.po+117−55 searx/translations/ru/LC_MESSAGES/messages.mo searx/translations/ru/LC_MESSAGES/messages.po+115−53 searx/translations/tr/LC_MESSAGES/messages.mo searx/translations/tr/LC_MESSAGES/messages.po+116−54 searx/translations/zh_CN/LC_MESSAGES/messages.mo searx/translations/zh_CN/LC_MESSAGES/messages.po+682 searx/utils.py+20−24 searx/version.py+1−1 searx/webapp.py+35−35
.travis.yml+6
@@ -1,3 +1,9 @@
1+sudo: false
2+cache:
3+ - pip
4+ - npm
5+ - directories:
6+ - $HOME/.cache/pip
17language: python
28python:
39 - "2.7"
AUTHORS.rst+4
@@ -34,3 +34,7 @@ generally made searx better:
3434- @opi
3535- @dimqua
3636- Giorgos Logiotatidis
37+- Luc Didry
38+- Niklas Haas
39+- @underr
40+- Emmanuel Benazera
CHANGELOG.rst+46
@@ -1,3 +1,49 @@
1+0.8.0 2015.09.08
2+================
3+
4+- New engines
5+
6+ - Blekko (image)
7+ - Gigablast (general)
8+ - Spotify (music)
9+ - Swisscows (general, images)
10+ - Qwant (general, images, news, social media)
11+- Plugin system
12+- New plugins
13+
14+ - HTTPS rewrite
15+ - Search on cagetory select
16+ - User information
17+ - Tracker url part remover
18+- Multiple outgoing IP and HTTP/HTTPS proxy support
19+- New autocompleter: startpage
20+- New theme: pix-art
21+- Settings file structure change
22+- Fabfile, docker deployment
23+- Optional safesearch result filter
24+- Force HTTPS in engines if possible
25+- Disabled HTTP referrer on outgoing links
26+- Display cookie information
27+- Prettier search URLs
28+- Right-to-left text handling in themes
29+- Translation updates (New locales: Chinese, Hebrew, Portuguese, Romanian)
30+
31+
32+New dependencies
33+~~~~~~~~~~~~~~~~
34+
35+- pyopenssl
36+- ndg-httpsclient
37+- pyasn1
38+- pyasn1-modules
39+- certifi
40+
41+
42+News
43+~~~~
44+
45+@dalf joined the maintainer "team"
46+
1470.7.0 2015.02.03
248================
349
README.rst+1−1
@@ -96,7 +96,7 @@ remember 'untested code is broken code'.
9696Runs robot (Selenium) tests, you must have ``firefox`` installed because
9797this functional tests actually run the browser and perform operations on
9898it. Also searx is executed with
99−`settings\_robot <https://github.com/asciimoo/searx/blob/master/searx/settings_robot.py>`__.
99+`settings\_robot <https://github.com/asciimoo/searx/blob/master/searx/settings_robot.yml>`__.
100100
101101``make flake8``
102102'''''''''''''''
searx/__init__.py+1−1
@@ -40,7 +40,7 @@ else:
4040with open(settings_path) as settings_yaml:
4141 settings = load(settings_yaml)
4242
43−if settings.get('server', {}).get('debug'):
43+if settings.get('general', {}).get('debug'):
4444 logging.basicConfig(level=logging.DEBUG)
4545else:
4646 logging.basicConfig(level=logging.WARNING)
searx/autocomplete.py+1−1
@@ -29,7 +29,7 @@ from searx.poolrequests import get as http_get
2929
3030def get(*args, **kwargs):
3131 if 'timeout' not in kwargs:
32− kwargs['timeout'] = settings['server']['request_timeout']
32+ kwargs['timeout'] = settings['outgoing']['request_timeout']
3333
3434 return http_get(*args, **kwargs)
3535
searx/engines/__init__.py+1−1
@@ -75,7 +75,7 @@ def load_engine(engine_data):
7575 engine.safesearch = False
7676
7777 if not hasattr(engine, 'timeout'):
78− engine.timeout = settings['server']['request_timeout']
78+ engine.timeout = settings['outgoing']['request_timeout']
7979
8080 if not hasattr(engine, 'shortcut'):
8181 engine.shortcut = ''
searx/engines/bing.py+1−1
@@ -52,7 +52,7 @@ def request(query, params):
5252def response(resp):
5353 results = []
5454
55− dom = html.fromstring(resp.content)
55+ dom = html.fromstring(resp.text)
5656
5757 # parse results
5858 for result in dom.xpath('//div[@class="sa_cc"]'):
searx/engines/bing_images.py+1−1
@@ -63,7 +63,7 @@ def request(query, params):
6363def response(resp):
6464 results = []
6565
66− dom = html.fromstring(resp.content)
66+ dom = html.fromstring(resp.text)
6767
6868 # init regex for yaml-parsing
6969 p = re.compile('({|,)([a-z]+):(")')
searx/engines/gigablast.py+6−2
@@ -13,6 +13,8 @@
1313from urllib import urlencode
1414from cgi import escape
1515from lxml import etree
16+from random import randint
17+from time import time
1618
1719# engine dependent config
1820categories = ['general']
@@ -21,7 +23,7 @@ number_of_results = 5
2123
2224# search-url, invalid HTTPS certificate
2325base_url = 'http://gigablast.com/'
24−search_string = 'search?{query}&n={number_of_results}&s={offset}&xml=1&qh=0'
26+search_string = 'search?{query}&n={number_of_results}&s={offset}&xml=1&qh=0&uxid={uxid}&rand={rand}'
2527
2628# specific xpath variables
2729results_xpath = '//response//result'
@@ -37,7 +39,9 @@ def request(query, params):
3739 search_path = search_string.format(
3840 query=urlencode({'q': query}),
3941 offset=offset,
40− number_of_results=number_of_results)
42+ number_of_results=number_of_results,
43+ uxid=randint(10000, 10000000),
44+ rand=int(time()))
4145
4246 params['url'] = base_url + search_path
4347
searx/engines/google.py+9−4
@@ -9,11 +9,15 @@
99# @parse url, title, content, suggestion
1010
1111import re
12+from cgi import escape
1213from urllib import urlencode
1314from urlparse import urlparse, parse_qsl
14−from lxml import html
15+from lxml import html, etree
1516from searx.poolrequests import get
1617from searx.engines.xpath import extract_text, extract_url
18+from searx.search import logger
19+
20+logger = logger.getChild('google engine')
1721
1822
1923# engine dependent config
@@ -167,7 +171,7 @@ def parse_url(url_string, google_hostname):
167171def extract_text_from_dom(result, xpath):
168172 r = result.xpath(xpath)
169173 if len(r) > 0:
170− return extract_text(r[0])
174+ return escape(extract_text(r[0]))
171175 return None
172176
173177
@@ -224,8 +228,8 @@ def response(resp):
224228
225229 # parse results
226230 for result in dom.xpath(results_xpath):
227− title = extract_text(result.xpath(title_xpath)[0])
228231 try:
232+ title = extract_text(result.xpath(title_xpath)[0])
229233 url = parse_url(extract_url(result.xpath(url_xpath), google_url), google_hostname)
230234 parsed_url = urlparse(url, google_hostname)
231235
@@ -268,12 +272,13 @@ def response(resp):
268272 'content': content
269273 })
270274 except:
275+ logger.debug('result parse error in:\n%s', etree.tostring(result, pretty_print=True))
271276 continue
272277
273278 # parse suggestion
274279 for suggestion in dom.xpath(suggestion_xpath):
275280 # append suggestion
276− results.append({'suggestion': extract_text(suggestion)})
281+ results.append({'suggestion': escape(extract_text(suggestion))})
277282
278283 # return results
279284 return results
searx/engines/piratebay.py+1−1
@@ -20,7 +20,7 @@ categories = ['videos', 'music', 'files']
2020paging = True
2121
2222# search-url
23−url = 'https://thepiratebay.am/'
23+url = 'https://thepiratebay.se/'
2424search_url = url + 'search/{search_term}/{pageno}/99/{search_type}'
2525
2626# piratebay specific type-definitions
searx/engines/searchcode_code.py+5
@@ -34,6 +34,11 @@ def request(query, params):
3434 params['url'] = search_url.format(query=urlencode({'q': query}),
3535 pageno=params['pageno']-1)
3636
37+ # Disable SSL verification
38+ # error: (60) SSL certificate problem: unable to get local issuer
39+ # certificate
40+ params['verify'] = False
41+
3742 return params
3843
3944
searx/engines/searchcode_doc.py+5
@@ -27,6 +27,11 @@ def request(query, params):
2727 params['url'] = search_url.format(query=urlencode({'q': query}),
2828 pageno=params['pageno']-1)
2929
30+ # Disable SSL verification
31+ # error: (60) SSL certificate problem: unable to get local issuer
32+ # certificate
33+ params['verify'] = False
34+
3035 return params
3136
3237
searx/engines/startpage.py+46−7
@@ -12,6 +12,8 @@
1212
1313from lxml import html
1414from cgi import escape
15+from dateutil import parser
16+from datetime import datetime, timedelta
1517import re
1618from searx.engines.xpath import extract_text
1719
@@ -66,20 +68,57 @@ def response(resp):
6668 url = link.attrib.get('href')
6769
6870 # block google-ad url's
69− if re.match("^http(s|)://www.google.[a-z]+/aclk.*$", url):
71+ if re.match("^http(s|)://(www\.)?google\.[a-z]+/aclk.*$", url):
72+ continue
73+
74+ # block startpage search url's
75+ if re.match("^http(s|)://(www\.)?startpage\.com/do/search\?.*$", url):
76+ continue
77+
78+ # block ixquick search url's
79+ if re.match("^http(s|)://(www\.)?ixquick\.com/do/search\?.*$", url):
7080 continue
7181
7282 title = escape(extract_text(link))
7383
74− if result.xpath('./p[@class="desc"]'):
75− content = escape(extract_text(result.xpath('./p[@class="desc"]')))
84+ if result.xpath('./p[@class="desc clk"]'):
85+ content = escape(extract_text(result.xpath('./p[@class="desc clk"]')))
7686 else:
7787 content = ''
7888
79− # append result
80− results.append({'url': url,
81− 'title': title,
82− 'content': content})
89+ published_date = None
90+
91+ # check if search result starts with something like: "2 Sep 2014 ... "
92+ if re.match("^([1-9]|[1-2][0-9]|3[0-1]) [A-Z][a-z]{2} [0-9]{4} \.\.\. ", content):
93+ date_pos = content.find('...')+4
94+ date_string = content[0:date_pos-5]
95+ published_date = parser.parse(date_string, dayfirst=True)
96+
97+ # fix content string
98+ content = content[date_pos:]
99+
100+ # check if search result starts with something like: "5 days ago ... "
101+ elif re.match("^[0-9]+ days? ago \.\.\. ", content):
102+ date_pos = content.find('...')+4
103+ date_string = content[0:date_pos-5]
104+
105+ # calculate datetime
106+ published_date = datetime.now() - timedelta(days=int(re.match(r'\d+', date_string).group()))
107+
108+ # fix content string
109+ content = content[date_pos:]
110+
111+ if published_date:
112+ # append result
113+ results.append({'url': url,
114+ 'title': title,
115+ 'content': content,
116+ 'publishedDate': published_date})
117+ else:
118+ # append result
119+ results.append({'url': url,
120+ 'title': title,
121+ 'content': content})
83122
84123 # return results
85124 return results
searx/engines/twitter.py+6−2
@@ -55,10 +55,14 @@ def response(resp):
5555
5656 # parse results
5757 for tweet in dom.xpath(results_xpath):
58− link = tweet.xpath(link_xpath)[0]
58+ try:
59+ link = tweet.xpath(link_xpath)[0]
60+ content = extract_text(tweet.xpath(content_xpath)[0])
61+ except Exception:
62+ continue
63+
5964 url = urljoin(base_url, link.attrib.get('href'))
6065 title = extract_text(tweet.xpath(title_xpath))
61− content = extract_text(tweet.xpath(content_xpath)[0])
6266
6367 pubdate = tweet.xpath(timestamp_xpath)
6468 if len(pubdate) > 0:
searx/engines/wikidata.py+26−8
@@ -1,8 +1,15 @@
11import json
2−from urllib import urlencode
2+
3+from searx import logger
34from searx.poolrequests import get
45from searx.utils import format_date_by_locale
56
7+from datetime import datetime
8+from dateutil.parser import parse as dateutil_parse
9+from urllib import urlencode
10+
11+
12+logger = logger.getChild('wikidata')
613result_count = 1
714wikidata_host = 'https://www.wikidata.org'
815wikidata_api = wikidata_host + '/w/api.php'
@@ -164,14 +171,12 @@ def getDetail(jsonresponse, wikidata_id, language, locale):
164171 if postal_code is not None:
165172 attributes.append({'label': 'Postal code(s)', 'value': postal_code})
166173
167− date_of_birth = get_time(claims, 'P569', None)
174+ date_of_birth = get_time(claims, 'P569', locale, None)
168175 if date_of_birth is not None:
169− date_of_birth = format_date_by_locale(date_of_birth[8:], locale)
170176 attributes.append({'label': 'Date of birth', 'value': date_of_birth})
171177
172− date_of_death = get_time(claims, 'P570', None)
178+ date_of_death = get_time(claims, 'P570', locale, None)
173179 if date_of_death is not None:
174− date_of_death = format_date_by_locale(date_of_death[8:], locale)
175180 attributes.append({'label': 'Date of death', 'value': date_of_death})
176181
177182 if len(attributes) == 0 and len(urls) == 2 and len(description) == 0:
@@ -229,7 +234,7 @@ def get_string(claims, propertyName, defaultValue=None):
229234 return result[0]
230235
231236
232−def get_time(claims, propertyName, defaultValue=None):
237+def get_time(claims, propertyName, locale, defaultValue=None):
233238 propValue = claims.get(propertyName, {})
234239 if len(propValue) == 0:
235240 return defaultValue
@@ -244,9 +249,22 @@ def get_time(claims, propertyName, defaultValue=None):
244249 result.append(value.get('time', ''))
245250
246251 if len(result) == 0:
247− return defaultValue
252+ date_string = defaultValue
248253 else:
249− return ', '.join(result)
254+ date_string = ', '.join(result)
255+
256+ try:
257+ parsed_date = datetime.strptime(date_string, "+%Y-%m-%dT%H:%M:%SZ")
258+ except:
259+ if date_string.startswith('-'):
260+ return date_string.split('T')[0]
261+ try:
262+ parsed_date = dateutil_parse(date_string, fuzzy=False, default=False)
263+ except:
264+ logger.debug('could not parse date %s', date_string)
265+ return date_string.split('T')[0]
266+
267+ return format_date_by_locale(parsed_date, locale)
250268
251269
252270def get_geolink(claims, propertyName, defaultValue=''):
searx/engines/yandex.pynew file+62
@@ -0,0 +1,62 @@
1+"""
2+ Yahoo (Web)
3+
4+ @website https://yandex.ru/
5+ @provide-api ?
6+ @using-api no
7+ @results HTML (using search portal)
8+ @stable no (HTML can change)
9+ @parse url, title, content
10+"""
11+
12+from urllib import urlencode
13+from lxml import html
14+from searx.search import logger
15+
16+logger = logger.getChild('yandex engine')
17+
18+# engine dependent config
19+categories = ['general']
20+paging = True
21+language_support = True # TODO
22+
23+default_tld = 'com'
24+language_map = {'ru': 'ru',
25+ 'ua': 'uk',
26+ 'tr': 'com.tr'}
27+
28+# search-url
29+base_url = 'https://yandex.{tld}/'
30+search_url = 'search/?{query}&p={page}'
31+
32+results_xpath = '//div[@class="serp-item serp-item_plain_yes clearfix i-bem"]'
33+url_xpath = './/h2/a/@href'
34+title_xpath = './/h2/a//text()'
35+content_xpath = './/div[@class="serp-item__text"]//text()'
36+
37+
38+def request(query, params):
39+ lang = params['language'].split('_')[0]
40+ host = base_url.format(tld=language_map.get(lang) or default_tld)
41+ params['url'] = host + search_url.format(page=params['pageno']-1,
42+ query=urlencode({'text': query}))
43+ return params
44+
45+
46+# get response from search-request
47+def response(resp):
48+ dom = html.fromstring(resp.text)
49+ results = []
50+
51+ for result in dom.xpath(results_xpath):
52+ try:
53+ res = {'url': result.xpath(url_xpath)[0],
54+ 'title': ''.join(result.xpath(title_xpath)),
55+ 'content': ''.join(result.xpath(content_xpath))}
56+ except:
57+ logger.exception('yandex parse crash')
58+ continue
59+
60+ results.append(res)
61+
62+ return results
searx/engines/youtube.pydeleted−93
@@ -1,93 +0,0 @@
1−# Youtube (Videos)
2−#
3−# @website https://www.youtube.com/
4−# @provide-api yes (http://gdata-samples-youtube-search-py.appspot.com/)
5−#
6−# @using-api yes
7−# @results JSON
8−# @stable yes
9−# @parse url, title, content, publishedDate, thumbnail, embedded
10−
11−from json import loads
12−from urllib import urlencode
13−from dateutil import parser
14−
15−# engine dependent config
16−categories = ['videos', 'music']
17−paging = True
18−language_support = True
19−
20−# search-url
21−base_url = 'https://gdata.youtube.com/feeds/api/videos'
22−search_url = base_url + '?alt=json&{query}&start-index={index}&max-results=5'
23−
24−embedded_url = '<iframe width="540" height="304" ' +\
25− 'data-src="//www.youtube-nocookie.com/embed/{videoid}" ' +\
26− 'frameborder="0" allowfullscreen></iframe>'
27−
28−
29−# do search-request
30−def request(query, params):
31− index = (params['pageno'] - 1) * 5 + 1
32−
33− params['url'] = search_url.format(query=urlencode({'q': query}),
34− index=index)
35−
36− # add language tag if specified
37− if params['language'] != 'all':
38− params['url'] += '&lr=' + params['language'].split('_')[0]
39−
40− return params
41−
42−
43−# get response from search-request
44−def response(resp):
45− results = []
46−
47− search_results = loads(resp.text)
48−
49− # return empty array if there are no results
50− if 'feed' not in search_results:
51− return []
52−
53− feed = search_results['feed']
54−
55− # parse results
56− for result in feed['entry']:
57− url = [x['href'] for x in result['link'] if x['type'] == 'text/html']
58−
59− if not url:
60− continue
61−
62− # remove tracking
63− url = url[0].replace('feature=youtube_gdata', '')
64− if url.endswith('&'):
65− url = url[:-1]
66−
67− videoid = url[32:]
68−
69− title = result['title']['$t']
70− content = ''
71− thumbnail = ''
72−
73− pubdate = result['published']['$t']
74− publishedDate = parser.parse(pubdate)
75−
76− if 'media$thumbnail' in result['media$group']:
77− thumbnail = result['media$group']['media$thumbnail'][0]['url']
78−
79− content = result['content']['$t']
80−
81− embedded = embedded_url.format(videoid=videoid)
82−
83− # append result
84− results.append({'url': url,
85− 'title': title,
86− 'content': content,
87− 'template': 'videos.html',
88− 'publishedDate': publishedDate,
89− 'embedded': embedded,
90− 'thumbnail': thumbnail})
91−
92− # return results
93− return results
searx/plugins/self_info.py+4−4
@@ -35,10 +35,10 @@ def post_search(request, ctx):
3535 ip = x_forwarded_for[0]
3636 else:
3737 ip = request.remote_addr
38− ctx['search'].answers.clear()
39− ctx['search'].answers.add(ip)
38+ ctx['search'].result_container.answers.clear()
39+ ctx['search'].result_container.answers.add(ip)
4040 elif p.match(ctx['search'].query):
4141 ua = request.user_agent
42− ctx['search'].answers.clear()
43− ctx['search'].answers.add(ua)
42+ ctx['search'].result_container.answers.clear()
43+ ctx['search'].result_container.answers.add(ua)
4444 return True
searx/poolrequests.py+10−8
@@ -1,5 +1,7 @@
11import requests
2+
23from itertools import cycle
4+from threading import RLock
35from searx import settings
46
57
@@ -39,11 +41,11 @@ class HTTPAdapterWithConnParams(requests.adapters.HTTPAdapter):
3941 block=self._pool_block, **self._conn_params)
4042
4143
42−if settings.get('source_ips'):
44+if settings['outgoing'].get('source_ips'):
4345 http_adapters = cycle(HTTPAdapterWithConnParams(pool_connections=100, source_address=(source_ip, 0))
44− for source_ip in settings['source_ips'])
46+ for source_ip in settings['outgoing']['source_ips'])
4547 https_adapters = cycle(HTTPAdapterWithConnParams(pool_connections=100, source_address=(source_ip, 0))
46− for source_ip in settings['source_ips'])
48+ for source_ip in settings['outgoing']['source_ips'])
4749else:
4850 http_adapters = cycle((HTTPAdapterWithConnParams(pool_connections=100), ))
4951 https_adapters = cycle((HTTPAdapterWithConnParams(pool_connections=100), ))
@@ -55,9 +57,10 @@ class SessionSinglePool(requests.Session):
5557 super(SessionSinglePool, self).__init__()
5658
5759 # reuse the same adapters
58− self.adapters.clear()
59− self.mount('https://', next(https_adapters))
60− self.mount('http://', next(http_adapters))
60+ with RLock():
61+ self.adapters.clear()
62+ self.mount('https://', next(https_adapters))
63+ self.mount('http://', next(http_adapters))
6164
6265 def close(self):
6366 """Call super, but clear adapters since there are managed globaly"""
@@ -67,9 +70,8 @@ class SessionSinglePool(requests.Session):
6770
6871def request(method, url, **kwargs):
6972 """same as requests/requests/api.py request(...) except it use SessionSinglePool and force proxies"""
70− global settings
7173 session = SessionSinglePool()
72− kwargs['proxies'] = settings.get('outgoing_proxies', None)
74+ kwargs['proxies'] = settings['outgoing'].get('proxies', None)
7375 response = session.request(method=method, url=url, **kwargs)
7476 session.close()
7577 return response
searx/results.pynew file+239
@@ -0,0 +1,239 @@
1+import re
2+from collections import defaultdict
3+from operator import itemgetter
4+from threading import RLock
5+from urlparse import urlparse, unquote
6+from searx.engines import engines
7+
8+CONTENT_LEN_IGNORED_CHARS_REGEX = re.compile('[,;:!?\./\\\\ ()-_]', re.M | re.U)
9+WHITESPACE_REGEX = re.compile('( |\t|\n)+', re.M | re.U)
10+
11+
12+# return the meaningful length of the content for a result
13+def result_content_len(content):
14+ if isinstance(content, basestring):
15+ return len(CONTENT_LEN_IGNORED_CHARS_REGEX.sub('', content))
16+ else:
17+ return 0
18+
19+
20+def compare_urls(url_a, url_b):
21+ if url_a.netloc != url_b.netloc or url_a.query != url_b.query:
22+ return False
23+
24+ # remove / from the end of the url if required
25+ path_a = url_a.path[:-1]\
26+ if url_a.path.endswith('/')\
27+ else url_a.path
28+ path_b = url_b.path[:-1]\
29+ if url_b.path.endswith('/')\
30+ else url_b.path
31+
32+ return unquote(path_a) == unquote(path_b)
33+
34+
35+def merge_two_infoboxes(infobox1, infobox2):
36+ if 'urls' in infobox2:
37+ urls1 = infobox1.get('urls', None)
38+ if urls1 is None:
39+ urls1 = []
40+ infobox1.set('urls', urls1)
41+
42+ urlSet = set()
43+ for url in infobox1.get('urls', []):
44+ urlSet.add(url.get('url', None))
45+
46+ for url in infobox2.get('urls', []):
47+ if url.get('url', None) not in urlSet:
48+ urls1.append(url)
49+
50+ if 'attributes' in infobox2:
51+ attributes1 = infobox1.get('attributes', None)
52+ if attributes1 is None:
53+ attributes1 = []
54+ infobox1.set('attributes', attributes1)
55+
56+ attributeSet = set()
57+ for attribute in infobox1.get('attributes', []):
58+ if attribute.get('label', None) not in attributeSet:
59+ attributeSet.add(attribute.get('label', None))
60+
61+ for attribute in infobox2.get('attributes', []):
62+ attributes1.append(attribute)
63+
64+ if 'content' in infobox2:
65+ content1 = infobox1.get('content', None)
66+ content2 = infobox2.get('content', '')
67+ if content1 is not None:
68+ if result_content_len(content2) > result_content_len(content1):
69+ infobox1['content'] = content2
70+ else:
71+ infobox1.set('content', content2)
72+
73+
74+def result_score(result):
75+ weight = 1.0
76+
77+ for result_engine in result['engines']:
78+ if hasattr(engines[result_engine], 'weight'):
79+ weight *= float(engines[result_engine].weight)
80+
81+ occurences = len(result['positions'])
82+
83+ return sum((occurences * weight) / position for position in result['positions'])
84+
85+
86+class ResultContainer(object):
87+ """docstring for ResultContainer"""
88+ def __init__(self):
89+ super(ResultContainer, self).__init__()
90+ self.results = defaultdict(list)
91+ self._merged_results = []
92+ self.infoboxes = []
93+ self._infobox_ids = {}
94+ self.suggestions = set()
95+ self.answers = set()
96+
97+ def extend(self, engine_name, results):
98+ for result in list(results):
99+ if 'suggestion' in result:
100+ self.suggestions.add(result['suggestion'])
101+ results.remove(result)
102+ elif 'answer' in result:
103+ self.answers.add(result['answer'])
104+ results.remove(result)
105+ elif 'infobox' in result:
106+ self._merge_infobox(result)
107+ results.remove(result)
108+
109+ with RLock():
110+ engines[engine_name].stats['search_count'] += 1
111+ engines[engine_name].stats['result_count'] += len(results)
112+
113+ if not results:
114+ return
115+
116+ self.results[engine_name].extend(results)
117+
118+ for i, result in enumerate(results):
119+ position = i + 1
120+ self._merge_result(result, position)
121+
122+ def _merge_infobox(self, infobox):
123+ add_infobox = True
124+ infobox_id = infobox.get('id', None)
125+ if infobox_id is not None:
126+ existingIndex = self._infobox_ids.get(infobox_id, None)
127+ if existingIndex is not None:
128+ merge_two_infoboxes(self.infoboxes[existingIndex], infobox)
129+ add_infobox = False
130+
131+ if add_infobox:
132+ self.infoboxes.append(infobox)
133+ self._infobox_ids[infobox_id] = len(self.infoboxes) - 1
134+
135+ def _merge_result(self, result, position):
136+ result['parsed_url'] = urlparse(result['url'])
137+
138+ # if the result has no scheme, use http as default
139+ if not result['parsed_url'].scheme:
140+ result['parsed_url'] = result['parsed_url']._replace(scheme="http")
141+
142+ result['host'] = result['parsed_url'].netloc
143+
144+ if result['host'].startswith('www.'):
145+ result['host'] = result['host'].replace('www.', '', 1)
146+
147+ result['engines'] = [result['engine']]
148+
149+ # strip multiple spaces and cariage returns from content
150+ if result.get('content'):
151+ result['content'] = WHITESPACE_REGEX.sub(' ', result['content'])
152+
153+ # check for duplicates
154+ duplicated = False
155+ for merged_result in self._merged_results:
156+ if compare_urls(result['parsed_url'], merged_result['parsed_url'])\
157+ and result.get('template') == merged_result.get('template'):
158+ duplicated = merged_result
159+ break
160+
161+ # merge duplicates together
162+ if duplicated:
163+ # using content with more text
164+ if result_content_len(result.get('content', '')) >\
165+ result_content_len(duplicated.get('content', '')):
166+ duplicated['content'] = result['content']
167+
168+ # add the new position
169+ duplicated['positions'].append(position)
170+
171+ # add engine to list of result-engines
172+ duplicated['engines'].append(result['engine'])
173+
174+ # using https if possible
175+ if duplicated['parsed_url'].scheme != 'https' and result['parsed_url'].scheme == 'https':
176+ duplicated['url'] = result['parsed_url'].geturl()
177+ duplicated['parsed_url'] = result['parsed_url']
178+
179+ # if there is no duplicate found, append result
180+ else:
181+ result['positions'] = [position]
182+ with RLock():
183+ self._merged_results.append(result)
184+
185+ def get_ordered_results(self):
186+ for result in self._merged_results:
187+ score = result_score(result)
188+ result['score'] = score
189+ with RLock():
190+ for result_engine in result['engines']:
191+ engines[result_engine].stats['score_count'] += score
192+
193+ results = sorted(self._merged_results, key=itemgetter('score'), reverse=True)
194+
195+ # pass 2 : group results by category and template
196+ gresults = []
197+ categoryPositions = {}
198+
199+ for i, res in enumerate(results):
200+ # FIXME : handle more than one category per engine
201+ category = engines[res['engine']].categories[0] + ':' + ''\
202+ if 'template' not in res\
203+ else res['template']
204+
205+ current = None if category not in categoryPositions\
206+ else categoryPositions[category]
207+
208+ # group with previous results using the same category
209+ # if the group can accept more result and is not too far
210+ # from the current position
211+ if current is not None and (current['count'] > 0)\
212+ and (len(gresults) - current['index'] < 20):
213+ # group with the previous results using
214+ # the same category with this one
215+ index = current['index']
216+ gresults.insert(index, res)
217+
218+ # update every index after the current one
219+ # (including the current one)
220+ for k in categoryPositions:
221+ v = categoryPositions[k]['index']
222+ if v >= index:
223+ categoryPositions[k]['index'] = v + 1
224+
225+ # update this category
226+ current['count'] -= 1
227+
228+ else:
229+ # same category
230+ gresults.append(res)
231+
232+ # update categoryIndex
233+ categoryPositions[category] = {'index': len(gresults), 'count': 8}
234+
235+ # return gresults
236+ return gresults
237+
238+ def results_length(self):
239+ return len(self._merged_results)
searx/search.py+26−258
@@ -16,19 +16,16 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
1616'''
1717
1818import threading
19−import re
2019import searx.poolrequests as requests_lib
21−from itertools import izip_longest, chain
22−from operator import itemgetter
23−from Queue import Queue
2420from time import time
25−from urlparse import urlparse, unquote
21+from searx import settings
2622from searx.engines import (
2723 categories, engines
2824)
2925from searx.languages import language_codes
3026from searx.utils import gen_useragent, get_blocked_engines
3127from searx.query import Query
28+from searx.results import ResultContainer
3229from searx import logger
3330
3431logger = logger.getChild('search')
@@ -41,7 +38,8 @@ def search_request_wrapper(fn, url, engine_name, **kwargs):
4138 return fn(url, **kwargs)
4239 except:
4340 # increase errors stats
44− engines[engine_name].stats['errors'] += 1
41+ with threading.RLock():
42+ engines[engine_name].stats['errors'] += 1
4543
4644 # print engine name and specific error message
4745 logger.exception('engine crash: {0}'.format(engine_name))
@@ -83,7 +81,7 @@ def default_request_params():
8381
8482
8583# create a callback wrapper for the search engine results
86−def make_callback(engine_name, results_queue, callback, params):
84+def make_callback(engine_name, callback, params, result_container):
8785
8886 # creating a callback wrapper for the search engine results
8987 def process_callback(response, **kwargs):
@@ -95,12 +93,17 @@ def make_callback(engine_name, results_queue, callback, params):
9593
9694 response.search_params = params
9795
98− timeout_overhead = 0.2 # seconds
9996 search_duration = time() - params['started']
97+ # update stats with current page-load-time
98+ with threading.RLock():
99+ engines[engine_name].stats['page_load_time'] += search_duration
100+
101+ timeout_overhead = 0.2 # seconds
100102 timeout_limit = engines[engine_name].timeout + timeout_overhead
103+
101104 if search_duration > timeout_limit:
102− engines[engine_name].stats['page_load_time'] += timeout_limit
103− engines[engine_name].stats['errors'] += 1
105+ with threading.RLock():
106+ engines[engine_name].stats['errors'] += 1
104107 return
105108
106109 # callback
@@ -110,207 +113,11 @@ def make_callback(engine_name, results_queue, callback, params):
110113 for result in search_results:
111114 result['engine'] = engine_name
112115
113− results_queue.put_nowait((engine_name, search_results))
114−
115− # update stats with current page-load-time
116− engines[engine_name].stats['page_load_time'] += search_duration
116+ result_container.extend(engine_name, search_results)
117117
118118 return process_callback
119119
120120
121−# return the meaningful length of the content for a result
122−def content_result_len(content):
123− if isinstance(content, basestring):
124− content = re.sub('[,;:!?\./\\\\ ()-_]', '', content)
125− return len(content)
126− else:
127− return 0
128−
129−
130−# score results and remove duplications
131−def score_results(results):
132− # calculate scoring parameters
133− flat_res = filter(
134− None, chain.from_iterable(izip_longest(*results.values())))
135− flat_len = len(flat_res)
136− engines_len = len(results)
137−
138− results = []
139−
140− # pass 1: deduplication + scoring
141− for i, res in enumerate(flat_res):
142−
143− res['parsed_url'] = urlparse(res['url'])
144−
145− res['host'] = res['parsed_url'].netloc
146−
147− if res['host'].startswith('www.'):
148− res['host'] = res['host'].replace('www.', '', 1)
149−
150− res['engines'] = [res['engine']]
151−
152− weight = 1.0
153−
154− # strip multiple spaces and cariage returns from content
155− if res.get('content'):
156− res['content'] = re.sub(' +', ' ',
157− res['content'].strip().replace('\n', ''))
158−
159− # get weight of this engine if possible
160− if hasattr(engines[res['engine']], 'weight'):
161− weight = float(engines[res['engine']].weight)
162−
163− # calculate score for that engine
164− score = int((flat_len - i) / engines_len) * weight + 1
165−
166− # check for duplicates
167− duplicated = False
168− for new_res in results:
169− # remove / from the end of the url if required
170− p1 = res['parsed_url'].path[:-1]\
171− if res['parsed_url'].path.endswith('/')\
172− else res['parsed_url'].path
173− p2 = new_res['parsed_url'].path[:-1]\
174− if new_res['parsed_url'].path.endswith('/')\
175− else new_res['parsed_url'].path
176−
177− # check if that result is a duplicate
178− if res['host'] == new_res['host'] and\
179− unquote(p1) == unquote(p2) and\
180− res['parsed_url'].query == new_res['parsed_url'].query and\
181− res.get('template') == new_res.get('template'):
182− duplicated = new_res
183− break
184−
185− # merge duplicates together
186− if duplicated:
187− # using content with more text
188− if content_result_len(res.get('content', '')) >\
189− content_result_len(duplicated.get('content', '')):
190− duplicated['content'] = res['content']
191−
192− # increase result-score
193− duplicated['score'] += score
194−
195− # add engine to list of result-engines
196− duplicated['engines'].append(res['engine'])
197−
198− # using https if possible
199− if duplicated['parsed_url'].scheme == 'https':
200− continue
201− elif res['parsed_url'].scheme == 'https':
202− duplicated['url'] = res['parsed_url'].geturl()
203− duplicated['parsed_url'] = res['parsed_url']
204−
205− # if there is no duplicate found, append result
206− else:
207− res['score'] = score
208− results.append(res)
209−
210− results = sorted(results, key=itemgetter('score'), reverse=True)
211−
212− # pass 2 : group results by category and template
213− gresults = []
214− categoryPositions = {}
215−
216− for i, res in enumerate(results):
217− # FIXME : handle more than one category per engine
218− category = engines[res['engine']].categories[0] + ':' + ''\
219− if 'template' not in res\
220− else res['template']
221−
222− current = None if category not in categoryPositions\
223− else categoryPositions[category]
224−
225− # group with previous results using the same category
226− # if the group can accept more result and is not too far
227− # from the current position
228− if current is not None and (current['count'] > 0)\
229− and (len(gresults) - current['index'] < 20):
230− # group with the previous results using
231− # the same category with this one
232− index = current['index']
233− gresults.insert(index, res)
234−
235− # update every index after the current one
236− # (including the current one)
237− for k in categoryPositions:
238− v = categoryPositions[k]['index']
239− if v >= index:
240− categoryPositions[k]['index'] = v + 1
241−
242− # update this category
243− current['count'] -= 1
244−
245− else:
246− # same category
247− gresults.append(res)
248−
249− # update categoryIndex
250− categoryPositions[category] = {'index': len(gresults), 'count': 8}
251−
252− # return gresults
253− return gresults
254−
255−
256−def merge_two_infoboxes(infobox1, infobox2):
257− if 'urls' in infobox2:
258− urls1 = infobox1.get('urls', None)
259− if urls1 is None:
260− urls1 = []
261− infobox1.set('urls', urls1)
262−
263− urlSet = set()
264− for url in infobox1.get('urls', []):
265− urlSet.add(url.get('url', None))
266−
267− for url in infobox2.get('urls', []):
268− if url.get('url', None) not in urlSet:
269− urls1.append(url)
270−
271− if 'attributes' in infobox2:
272− attributes1 = infobox1.get('attributes', None)
273− if attributes1 is None:
274− attributes1 = []
275− infobox1.set('attributes', attributes1)
276−
277− attributeSet = set()
278− for attribute in infobox1.get('attributes', []):
279− if attribute.get('label', None) not in attributeSet:
280− attributeSet.add(attribute.get('label', None))
281−
282− for attribute in infobox2.get('attributes', []):
283− attributes1.append(attribute)
284−
285− if 'content' in infobox2:
286− content1 = infobox1.get('content', None)
287− content2 = infobox2.get('content', '')
288− if content1 is not None:
289− if content_result_len(content2) > content_result_len(content1):
290− infobox1['content'] = content2
291− else:
292− infobox1.set('content', content2)
293−
294−
295−def merge_infoboxes(infoboxes):
296− results = []
297− infoboxes_id = {}
298− for infobox in infoboxes:
299− add_infobox = True
300− infobox_id = infobox.get('id', None)
301− if infobox_id is not None:
302− existingIndex = infoboxes_id.get(infobox_id, None)
303− if existingIndex is not None:
304− merge_two_infoboxes(results[existingIndex], infobox)
305− add_infobox = False
306−
307− if add_infobox:
308− results.append(infobox)
309− infoboxes_id[infobox_id] = len(results) - 1
310−
311− return results
312−
313−
314121class Search(object):
315122
316123 """Search information container"""
@@ -328,10 +135,7 @@ class Search(object):
328135 # set blocked engines
329136 self.blocked_engines = get_blocked_engines(engines, request.cookies)
330137
331− self.results = []
332− self.suggestions = set()
333− self.answers = set()
334− self.infoboxes = []
138+ self.result_container = ResultContainer()
335139 self.request_data = {}
336140
337141 # set specific language if set
@@ -386,11 +190,11 @@ class Search(object):
386190 load_default_categories = True
387191 for pd_name, pd in self.request_data.items():
388192 if pd_name == 'categories':
389− self.categories.extend(categ.strip() for categ in pd.split(',') if categ in categories)
193+ self.categories.extend(categ for categ in map(unicode.strip, pd.split(',')) if categ in categories)
390194 elif pd_name == 'engines':
391195 pd_engines = [{'category': engines[engine].categories[0],
392196 'name': engine}
393− for engine in map(str.strip, pd.split(',')) if engine in engines]
197+ for engine in map(unicode.strip, pd.split(',')) if engine in engines]
394198 if pd_engines:
395199 self.engines.extend(pd_engines)
396200 load_default_categories = False
@@ -409,6 +213,9 @@ class Search(object):
409213 self.categories.remove(category)
410214
411215 if not load_default_categories:
216+ if not self.categories:
217+ self.categories = list(set(engine['category']
218+ for engine in self.engines))
412219 return
413220
414221 # if no category is specified for this search,
@@ -440,8 +247,6 @@ class Search(object):
440247
441248 # init vars
442249 requests = []
443− results_queue = Queue()
444− results = {}
445250
446251 # increase number of searches
447252 number_of_searches += 1
@@ -473,16 +278,16 @@ class Search(object):
473278 request_params['started'] = time()
474279 request_params['pageno'] = self.pageno
475280
476− if hasattr(engine, 'language'):
281+ if hasattr(engine, 'language') and engine.language:
477282 request_params['language'] = engine.language
478283 else:
479284 request_params['language'] = self.lang
480285
481286 try:
482287 # 0 = None, 1 = Moderate, 2 = Strict
483− request_params['safesearch'] = int(request.cookies.get('safesearch', 1))
484− except ValueError:
485− request_params['safesearch'] = 1
288+ request_params['safesearch'] = int(request.cookies.get('safesearch'))
289+ except Exception:
290+ request_params['safesearch'] = settings['search']['safe_search']
486291
487292 # update request parameters dependent on
488293 # search-engine (contained in engines folder)
@@ -495,9 +300,9 @@ class Search(object):
495300 # create a callback wrapper for the search engine results
496301 callback = make_callback(
497302 selected_engine['name'],
498− results_queue,
499303 engine.response,
500− request_params)
304+ request_params,
305+ self.result_container)
501306
502307 # create dictionary which contain all
503308 # informations about the request
@@ -530,42 +335,5 @@ class Search(object):
530335 # send all search-request
531336 threaded_requests(requests)
532337
533− while not results_queue.empty():
534− engine_name, engine_results = results_queue.get_nowait()
535−
536− # TODO type checks
537− [self.suggestions.add(x['suggestion'])
538− for x in list(engine_results)
539− if 'suggestion' in x
540− and engine_results.remove(x) is None]
541−
542− [self.answers.add(x['answer'])
543− for x in list(engine_results)
544− if 'answer' in x
545− and engine_results.remove(x) is None]
546−
547− self.infoboxes.extend(x for x in list(engine_results)
548− if 'infobox' in x
549− and engine_results.remove(x) is None)
550−
551− results[engine_name] = engine_results
552−
553− # update engine-specific stats
554− for engine_name, engine_results in results.items():
555− engines[engine_name].stats['search_count'] += 1
556− engines[engine_name].stats['result_count'] += len(engine_results)
557−
558− # score results and remove duplications
559− self.results = score_results(results)
560−
561− # merge infoboxes according to their ids
562− self.infoboxes = merge_infoboxes(self.infoboxes)
563−
564− # update engine stats, using calculated score
565− for result in self.results:
566− for res_engine in result['engines']:
567− engines[result['engine']]\
568− .stats['score_count'] += result['score']
569−
570338 # return results, suggestions, answers and infoboxes
571339 return self
searx/settings.yml+27−12
@@ -1,27 +1,36 @@
1+general:
2+ debug : False # Debug mode, only for development
3+
4+search:
5+ safe_search : 0 # Filter results. 0: None, 1: Moderate, 2: Strict
6+ autocomplete : "" # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "startpage", "wikipedia" - leave blank to turn it off by default
7+
18server:
29 port : 8888
10+ bind_address : "127.0.0.1" # address to listen on
311 secret_key : "ultrasecretkey" # change this!
4− debug : False # Debug mode, only for development
5− request_timeout : 2.0 # seconds
612 base_url : False # Set custom base_url. Possible values: False or "https://your.custom.host/location/"
13+ image_proxy : False # Proxying image results through searx
14+
15+ui:
716 themes_path : "" # Custom ui themes path - leave it blank if you didn't change
817 default_theme : oscar # ui theme
9− useragent_suffix : "" # suffix of searx_useragent, could contain informations like an email address to the administrator
10− image_proxy : False # Proxying image results through searx
1118 default_locale : "" # Default interface locale - leave blank to detect from browser information or use codes from the 'locales' config section
1219
20+outgoing: # communication with search engines
21+ request_timeout : 2.0 # seconds
22+ useragent_suffix : "" # suffix of searx_useragent, could contain informations like an email address to the administrator
1323# uncomment below section if you want to use a proxy
1424# see http://docs.python-requests.org/en/latest/user/advanced/#proxies
1525# SOCKS proxies are not supported : see https://github.com/kennethreitz/requests/pull/478
16−#outgoing_proxies :
17−# http : http://127.0.0.1:8080
18−# https: http://127.0.0.1:8080
19−
26+# proxies :
27+# http : http://127.0.0.1:8080
28+# https: http://127.0.0.1:8080
2029# uncomment below section only if you have more than one network interface
2130# which can be the source of outgoing search requests
22−#source_ips:
23−# - 1.1.1.1
24−# - 1.1.1.2
31+# source_ips:
32+# - 1.1.1.1
33+# - 1.1.1.2
2534
2635engines:
2736 - name : wikipedia
@@ -265,6 +274,11 @@ engines:
265274 engine : yahoo
266275 shortcut : yh
267276
277+ - name : yandex
278+ engine : yandex
279+ shortcut : yn
280+ disabled : True
281+
268282 - name : yahoo news
269283 engine : yahoo_news
270284 shortcut : yhn
@@ -310,6 +324,7 @@ locales:
310324 nl : Nederlands
311325 ja : 日本語 (Japanese)
312326 tr : Türkçe
313− pt: Português
327+ pt : Português
314328 ru : Russian
315329 ro : Romanian
330+ zh : 中文 (Chinese)
searx/settings_robot.yml+17−5
@@ -1,13 +1,25 @@
1+general:
2+ debug : False
3+
4+search:
5+ safe_search : 0
6+ autocomplete : 0
7+
18server:
29 port : 11111
10+ bind_address : 127.0.0.1
311 secret_key : "ultrasecretkey" # change this!
4− debug : False
5− request_timeout : 3.0 # seconds
6− base_url: False
12+ base_url : False
13+ image_proxy : False
14+
15+ui:
716 themes_path : ""
817 default_theme : default
9− https_rewrite : True
10− image_proxy : False
18+ default_locale : ""
19+
20+outgoing:
21+ request_timeout : 1.0 # seconds
22+ useragent_suffix : ""
1123
1224engines:
1325 - name : general_dummy
searx/static/themes/oscar/css/oscar.min.css+88−1
@@ -1 +1,88 @@
1−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}
1+html{position:relative;min-height:100%}
2+body{margin-bottom:80px}
3+.footer{position:absolute;bottom:0;width:100%;height:60px}
4+input[type=checkbox]:checked+.label_hide_if_checked,input[type=checkbox]:checked+.label_hide_if_not_checked+.label_hide_if_checked{display:none}
5+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}
6+.result_header{margin-bottom:5px;margin-top:20px}.result_header .favicon{margin-bottom:-3px}
7+.result_header a{vertical-align:bottom}.result_header a .highlight{font-weight:bold}
8+.result-content{margin-top:5px;word-wrap:break-word}.result-content .highlight{font-weight:bold}
9+.result-default{clear:both}
10+.result-images{float:left !important}
11+.img-thumbnail{margin:5px;max-height:128px;min-height:128px}
12+.result-videos{clear:both}
13+.result-torrents{clear:both}
14+.result-map{clear:both}
15+.result-code{clear:both}
16+.suggestion_item{margin:2px 5px}
17+.result_download{margin-right:5px}
18+#pagination{margin-top:30px;padding-bottom:50px}
19+.label-default{color:#aaa;background:#fff}
20+.infobox .infobox_part{margin-bottom:20px;word-wrap:break-word}
21+.infobox .infobox_part:last-child{margin-bottom:0}
22+.search_categories{margin:10px 0;text-transform:capitalize}
23+.cursor-text{cursor:text !important}
24+.cursor-pointer{cursor:pointer !important}
25+.highlight .hll{background-color:#ffc}
26+.highlight{background:#f8f8f8}
27+.highlight .c{color:#408080;font-style:italic}
28+.highlight .err{border:1px solid #f00}
29+.highlight .k{color:#008000;font-weight:bold}
30+.highlight .o{color:#666}
31+.highlight .cm{color:#408080;font-style:italic}
32+.highlight .cp{color:#bc7a00}
33+.highlight .c1{color:#408080;font-style:italic}
34+.highlight .cs{color:#408080;font-style:italic}
35+.highlight .gd{color:#a00000}
36+.highlight .ge{font-style:italic}
37+.highlight .gr{color:#f00}
38+.highlight .gh{color:#000080;font-weight:bold}
39+.highlight .gi{color:#00a000}
40+.highlight .go{color:#888}
41+.highlight .gp{color:#000080;font-weight:bold}
42+.highlight .gs{font-weight:bold}
43+.highlight .gu{color:#800080;font-weight:bold}
44+.highlight .gt{color:#04d}
45+.highlight .kc{color:#008000;font-weight:bold}
46+.highlight .kd{color:#008000;font-weight:bold}
47+.highlight .kn{color:#008000;font-weight:bold}
48+.highlight .kp{color:#008000}
49+.highlight .kr{color:#008000;font-weight:bold}
50+.highlight .kt{color:#b00040}
51+.highlight .m{color:#666}
52+.highlight .s{color:#ba2121}
53+.highlight .na{color:#7d9029}
54+.highlight .nb{color:#008000}
55+.highlight .nc{color:#00f;font-weight:bold}
56+.highlight .no{color:#800}
57+.highlight .nd{color:#a2f}
58+.highlight .ni{color:#999;font-weight:bold}
59+.highlight .ne{color:#d2413a;font-weight:bold}
60+.highlight .nf{color:#00f}
61+.highlight .nl{color:#a0a000}
62+.highlight .nn{color:#00f;font-weight:bold}
63+.highlight .nt{color:#008000;font-weight:bold}
64+.highlight .nv{color:#19177c}
65+.highlight .ow{color:#a2f;font-weight:bold}
66+.highlight .w{color:#bbb}
67+.highlight .mf{color:#666}
68+.highlight .mh{color:#666}
69+.highlight .mi{color:#666}
70+.highlight .mo{color:#666}
71+.highlight .sb{color:#ba2121}
72+.highlight .sc{color:#ba2121}
73+.highlight .sd{color:#ba2121;font-style:italic}
74+.highlight .s2{color:#ba2121}
75+.highlight .se{color:#b62;font-weight:bold}
76+.highlight .sh{color:#ba2121}
77+.highlight .si{color:#b68;font-weight:bold}
78+.highlight .sx{color:#008000}
79+.highlight .sr{color:#b68}
80+.highlight .s1{color:#ba2121}
81+.highlight .ss{color:#19177c}
82+.highlight .bp{color:#008000}
83+.highlight .vc{color:#19177c}
84+.highlight .vg{color:#19177c}
85+.highlight .vi{color:#19177c}
86+.highlight .il{color:#666}
87+.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;}
88+.highlight .lineno::-moz-selection{background:transparent;}
searx/static/themes/oscar/less/oscar/results.less+5
@@ -76,3 +76,8 @@
7676 margin-top: 30px;
7777 padding-bottom: 50px;
7878}
79+
80+.label-default {
81+ color: #AAA;
82+ background: #FFF;
83+}
searx/templates/courgette/opensearch.xml+1
@@ -3,6 +3,7 @@
33 <ShortName>searx</ShortName>
44 <Description>Search searx</Description>
55 <InputEncoding>UTF-8</InputEncoding>
6+ <Image>{{ host }}{{ url_for('static', filename='img/favicon.png') | replace("/", "", 1) }}</Image>
67 <LongName>searx metasearch</LongName>
78 {% if opensearch_method == 'get' %}
89 <Url type="text/html" method="get" template="{{ host }}search?q={searchTerms}"/>
searx/templates/default/opensearch.xml+1
@@ -3,6 +3,7 @@
33 <ShortName>searx</ShortName>
44 <Description>Search searx</Description>
55 <InputEncoding>UTF-8</InputEncoding>
6+ <Image>{{ host }}{{ url_for('static', filename='img/favicon.png') | replace("/", "", 1) }}</Image>
67 <LongName>searx metasearch</LongName>
78 {% if opensearch_method == 'get' %}
89 <Url type="text/html" method="get" template="{{ host }}search?q={searchTerms}"/>
searx/templates/oscar/macros.html+5−1
@@ -25,7 +25,11 @@
2525<!-- Draw result footer -->
2626{% macro result_footer(result) -%}
2727 <div class="clearfix"></div>
28− <span class="label label-default pull-right">{{ result.engine }}</span>
28+ <div class="pull-right">
29+ {% for engine in result.engines %}
30+ <span class="label label-default">{{ engine }}</span>
31+ {% endfor %}
32+</div>
2933 <p class="text-muted">{{ result.pretty_url }}</p>
3034{%- endmacro %}
3135
searx/templates/oscar/opensearch.xml+1
@@ -3,6 +3,7 @@
33 <ShortName>searx</ShortName>
44 <Description>Search searx</Description>
55 <InputEncoding>UTF-8</InputEncoding>
6+ <Image>{{ host }}{{ url_for('static', filename='img/favicon.png') | replace("/", "", 1) }}</Image>
67 <LongName>searx metasearch</LongName>
78 {% if opensearch_method == 'get' %}
89 <Url type="text/html" method="get" template="{{ host }}search?q={searchTerms}"/>
searx/templates/pix-art/preferences.html+2−2
@@ -53,8 +53,8 @@
5353 <th>{{ _('Engine name') }}</th>
5454 <th>{{ _('Allow') }} / {{ _('Block') }}</th>
5555 </tr>
56− {% for (categ,search_engines) in categs %}
57− {% for search_engine in search_engines %}
56+ {% for categ in all_categories %}
57+ {% for search_engine in engines_by_category[categ] %}
5858
5959 {% if not search_engine.private %}
6060 <tr>
searx/tests/engines/test_bing.py+4−4
@@ -29,10 +29,10 @@ class TestBingEngine(SearxTestCase):
2929 self.assertRaises(AttributeError, bing.response, '')
3030 self.assertRaises(AttributeError, bing.response, '[]')
3131
32− response = mock.Mock(content='<html></html>')
32+ response = mock.Mock(text='<html></html>')
3333 self.assertEqual(bing.response(response), [])
3434
35− response = mock.Mock(content='<html></html>')
35+ response = mock.Mock(text='<html></html>')
3636 self.assertEqual(bing.response(response), [])
3737
3838 html = """
@@ -54,7 +54,7 @@ class TestBingEngine(SearxTestCase):
5454 </div>
5555 </div>
5656 """
57− response = mock.Mock(content=html)
57+ response = mock.Mock(text=html)
5858 results = bing.response(response)
5959 self.assertEqual(type(results), list)
6060 self.assertEqual(len(results), 1)
@@ -81,7 +81,7 @@ class TestBingEngine(SearxTestCase):
8181 </div>
8282 </li>
8383 """
84− response = mock.Mock(content=html)
84+ response = mock.Mock(text=html)
8585 results = bing.response(response)
8686 self.assertEqual(type(results), list)
8787 self.assertEqual(len(results), 1)
searx/tests/engines/test_bing_images.py+5−5
@@ -31,10 +31,10 @@ class TestBingImagesEngine(SearxTestCase):
3131 self.assertRaises(AttributeError, bing_images.response, '')
3232 self.assertRaises(AttributeError, bing_images.response, '[]')
3333
34− response = mock.Mock(content='<html></html>')
34+ response = mock.Mock(text='<html></html>')
3535 self.assertEqual(bing_images.response(response), [])
3636
37− response = mock.Mock(content='<html></html>')
37+ response = mock.Mock(text='<html></html>')
3838 self.assertEqual(bing_images.response(response), [])
3939
4040 html = """
@@ -52,7 +52,7 @@ oh:&quot;238&quot;,tft:&quot;0&quot;,oi:&quot;http://www.image.url/Images/Test%2
5252 </div>
5353 """
5454 html = html.replace('\r\n', '').replace('\n', '').replace('\r', '')
55− response = mock.Mock(content=html)
55+ response = mock.Mock(text=html)
5656 results = bing_images.response(response)
5757 self.assertEqual(type(results), list)
5858 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
7575 style="height:144px;" width="178" height="144"/>
7676 </a>
7777 """
78− response = mock.Mock(content=html)
78+ response = mock.Mock(text=html)
7979 results = bing_images.response(response)
8080 self.assertEqual(type(results), list)
8181 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
263263 </div>
264264 """
265265 html = html.replace('\r\n', '').replace('\n', '').replace('\r', '')
266− response = mock.Mock(content=html)
266+ response = mock.Mock(text=html)
267267 results = bing_images.response(response)
268268 self.assertEqual(type(results), list)
269269 self.assertEqual(len(results), 10)
searx/tests/engines/test_duckduckgo.py+4−3
@@ -1,3 +1,4 @@
1+# -*- coding: utf-8 -*-
12from collections import defaultdict
23import mock
34from searx.engines import duckduckgo
@@ -30,7 +31,7 @@ class TestDuckduckgoEngine(SearxTestCase):
3031 response = mock.Mock(text='<html></html>')
3132 self.assertEqual(duckduckgo.response(response), [])
3233
33− html = """
34+ html = u"""
3435 <div class="results_links results_links_deep web-result">
3536 <div class="icon_fav" style="display: block;">
3637 <a rel="nofollow" href="https://www.test.com/">
@@ -39,7 +40,7 @@ class TestDuckduckgoEngine(SearxTestCase):
3940 </a>
4041 </div>
4142 <div class="links_main links_deep"> <!-- This is the visible part -->
42− <a rel="nofollow" class="large" href="http://this.should.be.the.link/">
43+ <a rel="nofollow" class="large" href="http://this.should.be.the.link/ű">
4344 This <b>is</b> <b>the</b> title
4445 </a>
4546 <div class="snippet"><b>This</b> should be the content.</div>
@@ -54,7 +55,7 @@ class TestDuckduckgoEngine(SearxTestCase):
5455 self.assertEqual(type(results), list)
5556 self.assertEqual(len(results), 1)
5657 self.assertEqual(results[0]['title'], 'This is the title')
57− self.assertEqual(results[0]['url'], 'http://this.should.be.the.link/')
58+ self.assertEqual(results[0]['url'], u'http://this.should.be.the.link/ű')
5859 self.assertEqual(results[0]['content'], 'This should be the content.')
5960
6061 html = """
searx/tests/engines/test_piratebay.py+3−3
@@ -15,7 +15,7 @@ class TestPiratebayEngine(SearxTestCase):
1515 params = piratebay.request(query, dicto)
1616 self.assertIn('url', params)
1717 self.assertIn(query, params['url'])
18− self.assertIn('piratebay.am', params['url'])
18+ self.assertIn('piratebay.se', params['url'])
1919 self.assertIn('0', params['url'])
2020
2121 dicto['category'] = 'music'
@@ -99,7 +99,7 @@ class TestPiratebayEngine(SearxTestCase):
9999 self.assertEqual(type(results), list)
100100 self.assertEqual(len(results), 2)
101101 self.assertEqual(results[0]['title'], 'This is the title')
102− self.assertEqual(results[0]['url'], 'https://thepiratebay.am/this.is.the.link')
102+ self.assertEqual(results[0]['url'], 'https://thepiratebay.se/this.is.the.link')
103103 self.assertEqual(results[0]['content'], 'This is the content and should be OK')
104104 self.assertEqual(results[0]['seed'], 13)
105105 self.assertEqual(results[0]['leech'], 334)
@@ -149,7 +149,7 @@ class TestPiratebayEngine(SearxTestCase):
149149 self.assertEqual(type(results), list)
150150 self.assertEqual(len(results), 1)
151151 self.assertEqual(results[0]['title'], 'This is the title')
152− self.assertEqual(results[0]['url'], 'https://thepiratebay.am/this.is.the.link')
152+ self.assertEqual(results[0]['url'], 'https://thepiratebay.se/this.is.the.link')
153153 self.assertEqual(results[0]['content'], 'This is the content and should be OK')
154154 self.assertEqual(results[0]['seed'], 0)
155155 self.assertEqual(results[0]['leech'], 0)
searx/tests/engines/test_startpage.py+3−3
@@ -42,7 +42,7 @@ class TestStartpageEngine(SearxTestCase):
4242 </a>
4343 <span id='title_stars_2' name='title_stars_2'> </span>
4444 </h3>
45− <p class='desc'>
45+ <p class='desc clk'>
4646 This should be the content.
4747 </p>
4848 <p>
@@ -78,7 +78,7 @@ class TestStartpageEngine(SearxTestCase):
7878 </a>
7979 <span id='title_stars_2' name='title_stars_2'> </span>
8080 </h3>
81− <p class='desc'>
81+ <p class='desc clk'>
8282 This should be the content.
8383 </p>
8484 <p>
@@ -101,7 +101,7 @@ class TestStartpageEngine(SearxTestCase):
101101 <h3>
102102 <span id='title_stars_2' name='title_stars_2'> </span>
103103 </h3>
104− <p class='desc'>
104+ <p class='desc clk'>
105105 This should be the content.
106106 </p>
107107 <p>
searx/tests/engines/test_youtube.pydeleted−204
@@ -1,204 +0,0 @@
1−from collections import defaultdict
2−import mock
3−from searx.engines import youtube
4−from searx.testing import SearxTestCase
5−
6−
7−class TestYoutubeEngine(SearxTestCase):
8−
9− def test_request(self):
10− query = 'test_query'
11− dicto = defaultdict(dict)
12− dicto['pageno'] = 0
13− dicto['language'] = 'fr_FR'
14− params = youtube.request(query, dicto)
15− self.assertTrue('url' in params)
16− self.assertTrue(query in params['url'])
17− self.assertTrue('youtube.com' in params['url'])
18− self.assertTrue('fr' in params['url'])
19−
20− dicto['language'] = 'all'
21− params = youtube.request(query, dicto)
22− self.assertFalse('fr' in params['url'])
23−
24− def test_response(self):
25− self.assertRaises(AttributeError, youtube.response, None)
26− self.assertRaises(AttributeError, youtube.response, [])
27− self.assertRaises(AttributeError, youtube.response, '')
28− self.assertRaises(AttributeError, youtube.response, '[]')
29−
30− response = mock.Mock(text='{}')
31− self.assertEqual(youtube.response(response), [])
32−
33− response = mock.Mock(text='{"data": []}')
34− self.assertEqual(youtube.response(response), [])
35−
36− json = """
37− {"feed":{"entry":[{
38− "id":{"$t":"http://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM"},
39− "published":{"$t":"2015-01-23T21:25:00.000Z"},
40− "updated":{"$t":"2015-01-26T14:38:15.000Z"},
41− "title":{"$t":"Title",
42− "type":"text"},"content":{"$t":"Description","type":"text"},
43− "link":[{"rel":"alternate","type":"text/html",
44− "href":"https://www.youtube.com/watch?v=DIVZCPfAOeM&feature=youtube_gdata"},
45− {"rel":"http://gdata.youtube.com/schemas/2007#video.related",
46− "type":"application/atom+xml",
47− "href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM/related"},
48− {"rel":"http://gdata.youtube.com/schemas/2007#mobile","type":"text/html",
49− "href":"https://m.youtube.com/details?v=DIVZCPfAOeM"},
50− {"rel":"self","type":"application/atom+xml",
51− "href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM"}],
52− "author":[{"name":{"$t":"Cauet"},
53− "uri":{"$t":"https://gdata.youtube.com/feeds/api/users/cauetofficiel"} }],
54− "gd$comments":{"gd$feedLink":{"rel":"http://gdata.youtube.com/schemas/2007#comments",
55− "href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM/comments",
56− "countHint":8} },
57− "media$group":{"media$category":[{"$t":"Comedy","label":"Comedy",
58− "scheme":"http://gdata.youtube.com/schemas/2007/categories.cat"}],
59− "media$content":[{"url":"https://www.youtube.com/v/DIVZCPfAOeM?version=3&f=videos&app=youtube_gdata",
60− "type":"application/x-shockwave-flash","medium":"video",
61− "isDefault":"true","expression":"full","duration":354,"yt$format":5},
62− {"url":"rtsp://r1---sn-cg07luel.c.youtube.com/CiILENy73wIaGQnjOcD3CFmFDBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
63− "type":"video/3gpp","medium":"video","expression":"full","duration":354,
64− "yt$format":1},
65− {"url":"rtsp://r1---sn-cg07luel.c.youtube.com/CiILENy73wIaGQnjOcD3CFmFDBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
66− "type":"video/3gpp","medium":"video","expression":"full","duration":354,"yt$format":6}],
67− "media$description":{"$t":"Desc","type":"plain"},
68− "media$keywords":{},
69− "media$player":[{"url":"https://www.youtube.com/watch?v=DIVZCPfAOeM&feature=youtube_gdata_player"}],
70− "media$thumbnail":[{"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/0.jpg",
71− "height":360,"width":480,"time":"00:02:57"},
72− {"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/1.jpg","height":90,"width":120,"time":"00:01:28.500"},
73− {"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/2.jpg","height":90,"width":120,"time":"00:02:57"},
74− {"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/3.jpg","height":90,"width":120,"time":"00:04:25.500"}],
75− "media$title":{"$t":"Title","type":"plain"},
76− "yt$duration":{"seconds":"354"} },
77− "gd$rating":{"average":4.932159,"max":5,"min":1,"numRaters":1533,
78− "rel":"http://schemas.google.com/g/2005#overall"},
79− "yt$statistics":{"favoriteCount":"0","viewCount":"92464"} }
80− ]
81− }
82− }
83− """
84− response = mock.Mock(text=json)
85− results = youtube.response(response)
86− self.assertEqual(type(results), list)
87− self.assertEqual(len(results), 1)
88− self.assertEqual(results[0]['title'], 'Title')
89− self.assertEqual(results[0]['url'], 'https://www.youtube.com/watch?v=DIVZCPfAOeM')
90− self.assertEqual(results[0]['content'], 'Description')
91− self.assertEqual(results[0]['thumbnail'], 'https://i.ytimg.com/vi/DIVZCPfAOeM/0.jpg')
92− self.assertTrue('DIVZCPfAOeM' in results[0]['embedded'])
93−
94− json = """
95− {"feed":{"entry":[{
96− "id":{"$t":"http://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM"},
97− "published":{"$t":"2015-01-23T21:25:00.000Z"},
98− "updated":{"$t":"2015-01-26T14:38:15.000Z"},
99− "title":{"$t":"Title",
100− "type":"text"},"content":{"$t":"Description","type":"text"},
101− "link":[{"rel":"http://gdata.youtube.com/schemas/2007#video.related",
102− "type":"application/atom+xml",
103− "href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM/related"},
104− {"rel":"self","type":"application/atom+xml",
105− "href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM"}],
106− "author":[{"name":{"$t":"Cauet"},
107− "uri":{"$t":"https://gdata.youtube.com/feeds/api/users/cauetofficiel"} }],
108− "gd$comments":{"gd$feedLink":{"rel":"http://gdata.youtube.com/schemas/2007#comments",
109− "href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM/comments",
110− "countHint":8} },
111− "media$group":{"media$category":[{"$t":"Comedy","label":"Comedy",
112− "scheme":"http://gdata.youtube.com/schemas/2007/categories.cat"}],
113− "media$content":[{"url":"https://www.youtube.com/v/DIVZCPfAOeM?version=3&f=videos&app=youtube_gdata",
114− "type":"application/x-shockwave-flash","medium":"video",
115− "isDefault":"true","expression":"full","duration":354,"yt$format":5},
116− {"url":"rtsp://r1---sn-cg07luel.c.youtube.com/CiILENy73wIaGQnjOcD3CFmFDBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
117− "type":"video/3gpp","medium":"video","expression":"full","duration":354,
118− "yt$format":1},
119− {"url":"rtsp://r1---sn-cg07luel.c.youtube.com/CiILENy73wIaGQnjOcD3CFmFDBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
120− "type":"video/3gpp","medium":"video","expression":"full","duration":354,"yt$format":6}],
121− "media$description":{"$t":"Desc","type":"plain"},
122− "media$keywords":{},
123− "media$player":[{"url":"https://www.youtube.com/watch?v=DIVZCPfAOeM&feature=youtube_gdata_player"}],
124− "media$thumbnail":[{"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/0.jpg",
125− "height":360,"width":480,"time":"00:02:57"},
126− {"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/1.jpg","height":90,"width":120,"time":"00:01:28.500"},
127− {"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/2.jpg","height":90,"width":120,"time":"00:02:57"},
128− {"url":"https://i.ytimg.com/vi/DIVZCPfAOeM/3.jpg","height":90,"width":120,"time":"00:04:25.500"}],
129− "media$title":{"$t":"Title","type":"plain"},
130− "yt$duration":{"seconds":"354"} },
131− "gd$rating":{"average":4.932159,"max":5,"min":1,"numRaters":1533,
132− "rel":"http://schemas.google.com/g/2005#overall"},
133− "yt$statistics":{"favoriteCount":"0","viewCount":"92464"} }
134− ]
135− }
136− }
137− """
138− response = mock.Mock(text=json)
139− results = youtube.response(response)
140− self.assertEqual(type(results), list)
141− self.assertEqual(len(results), 0)
142−
143− json = """
144− {"feed":{"entry":[{
145− "id":{"$t":"http://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM"},
146− "published":{"$t":"2015-01-23T21:25:00.000Z"},
147− "updated":{"$t":"2015-01-26T14:38:15.000Z"},
148− "title":{"$t":"Title",
149− "type":"text"},"content":{"$t":"Description","type":"text"},
150− "link":[{"rel":"alternate","type":"text/html",
151− "href":"https://www.youtube.com/watch?v=DIVZCPfAOeM"},
152− {"rel":"http://gdata.youtube.com/schemas/2007#video.related",
153− "type":"application/atom+xml",
154− "href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM/related"},
155− {"rel":"http://gdata.youtube.com/schemas/2007#mobile","type":"text/html",
156− "href":"https://m.youtube.com/details?v=DIVZCPfAOeM"},
157− {"rel":"self","type":"application/atom+xml",
158− "href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM"}],
159− "author":[{"name":{"$t":"Cauet"},
160− "uri":{"$t":"https://gdata.youtube.com/feeds/api/users/cauetofficiel"} }],
161− "gd$comments":{"gd$feedLink":{"rel":"http://gdata.youtube.com/schemas/2007#comments",
162− "href":"https://gdata.youtube.com/feeds/api/videos/DIVZCPfAOeM/comments",
163− "countHint":8} },
164− "media$group":{"media$category":[{"$t":"Comedy","label":"Comedy",
165− "scheme":"http://gdata.youtube.com/schemas/2007/categories.cat"}],
166− "media$content":[{"url":"https://www.youtube.com/v/DIVZCPfAOeM?version=3&f=videos&app=youtube_gdata",
167− "type":"application/x-shockwave-flash","medium":"video",
168− "isDefault":"true","expression":"full","duration":354,"yt$format":5},
169− {"url":"rtsp://r1---sn-cg07luel.c.youtube.com/CiILENy73wIaGQnjOcD3CFmFDBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
170− "type":"video/3gpp","medium":"video","expression":"full","duration":354,
171− "yt$format":1},
172− {"url":"rtsp://r1---sn-cg07luel.c.youtube.com/CiILENy73wIaGQnjOcD3CFmFDBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
173− "type":"video/3gpp","medium":"video","expression":"full","duration":354,"yt$format":6}],
174− "media$description":{"$t":"Desc","type":"plain"},
175− "media$keywords":{},
176− "media$player":[{"url":"https://www.youtube.com/watch?v=DIVZCPfAOeM&feature=youtube_gdata_player"}],
177− "media$title":{"$t":"Title","type":"plain"},
178− "yt$duration":{"seconds":"354"} },
179− "gd$rating":{"average":4.932159,"max":5,"min":1,"numRaters":1533,
180− "rel":"http://schemas.google.com/g/2005#overall"},
181− "yt$statistics":{"favoriteCount":"0","viewCount":"92464"} }
182− ]
183− }
184− }
185− """
186− response = mock.Mock(text=json)
187− results = youtube.response(response)
188− self.assertEqual(type(results), list)
189− self.assertEqual(len(results), 1)
190− self.assertEqual(results[0]['title'], 'Title')
191− self.assertEqual(results[0]['url'], 'https://www.youtube.com/watch?v=DIVZCPfAOeM')
192− self.assertEqual(results[0]['content'], 'Description')
193− self.assertEqual(results[0]['thumbnail'], '')
194− self.assertTrue('DIVZCPfAOeM' in results[0]['embedded'])
195−
196− json = """
197− {"toto":{"entry":[]
198− }
199− }
200− """
201− response = mock.Mock(text=json)
202− results = youtube.response(response)
203− self.assertEqual(type(results), list)
204− self.assertEqual(len(results), 0)
searx/tests/test_engines.py−1
@@ -40,7 +40,6 @@ from searx.tests.engines.test_www1x import * # noqa
4040from searx.tests.engines.test_www500px import * # noqa
4141from searx.tests.engines.test_yacy import * # noqa
4242from searx.tests.engines.test_yahoo import * # noqa
43−from searx.tests.engines.test_youtube import * # noqa
4443from searx.tests.engines.test_youtube_api import * # noqa
4544from searx.tests.engines.test_youtube_noapi import * # noqa
4645from searx.tests.engines.test_yahoo_news import * # noqa
searx/tests/test_plugins.py+17−11
@@ -5,6 +5,12 @@ from searx import plugins
55from mock import Mock
66
77
8+def get_search_mock(query, **kwargs):
9+ return {'search': Mock(query=query,
10+ result_container=Mock(answers=set()),
11+ **kwargs)}
12+
13+
814class PluginStoreTest(SearxTestCase):
915
1016 def test_PluginStore_init(self):
@@ -46,23 +52,23 @@ class SelfIPTest(SearxTestCase):
4652 request = Mock(user_plugins=store.plugins,
4753 remote_addr='127.0.0.1')
4854 request.headers.getlist.return_value = []
49− ctx = {'search': Mock(answers=set(),
50− query='ip')}
55+ ctx = get_search_mock(query='ip')
5156 store.call('post_search', request, ctx)
52− self.assertTrue('127.0.0.1' in ctx['search'].answers)
57+ self.assertTrue('127.0.0.1' in ctx['search'].result_container.answers)
5358
5459 # User agent test
5560 request = Mock(user_plugins=store.plugins,
5661 user_agent='Mock')
5762 request.headers.getlist.return_value = []
58− ctx = {'search': Mock(answers=set(),
59− query='user-agent')}
63+
64+ ctx = get_search_mock(query='user-agent')
6065 store.call('post_search', request, ctx)
61− self.assertTrue('Mock' in ctx['search'].answers)
62− ctx = {'search': Mock(answers=set(),
63− query='user agent')}
66+ self.assertTrue('Mock' in ctx['search'].result_container.answers)
67+
68+ ctx = get_search_mock(query='user-agent')
6469 store.call('post_search', request, ctx)
65− self.assertTrue('Mock' in ctx['search'].answers)
66− ctx = {'search': Mock(answers=set(),
67− query='What is my User-Agent?')}
70+ self.assertTrue('Mock' in ctx['search'].result_container.answers)
71+
72+ ctx = get_search_mock(query='What is my User-Agent?')
6873 store.call('post_search', request, ctx)
74+ self.assertTrue('Mock' in ctx['search'].result_container.answers)
searx/tests/test_results.pynew file+41
@@ -0,0 +1,41 @@
1+# -*- coding: utf-8 -*-
2+
3+from searx.results import ResultContainer
4+from searx.testing import SearxTestCase
5+
6+
7+def fake_result(url='https://aa.bb/cc?dd=ee#ff',
8+ title='aaa',
9+ content='bbb',
10+ engine='wikipedia', **kwargs):
11+ result = {'url': url,
12+ 'title': title,
13+ 'content': content,
14+ 'engine': engine}
15+ result.update(kwargs)
16+ return result
17+
18+
19+# TODO
20+class ResultContainerTestCase(SearxTestCase):
21+
22+ def test_empty(self):
23+ c = ResultContainer()
24+ self.assertEqual(c.get_ordered_results(), [])
25+
26+ def test_one_result(self):
27+ c = ResultContainer()
28+ c.extend('wikipedia', [fake_result()])
29+ self.assertEqual(c.results_length(), 1)
30+
31+ def test_one_suggestion(self):
32+ c = ResultContainer()
33+ c.extend('wikipedia', [fake_result(suggestion=True)])
34+ self.assertEqual(len(c.suggestions), 1)
35+ self.assertEqual(c.results_length(), 0)
36+
37+ def test_result_merge(self):
38+ c = ResultContainer()
39+ c.extend('wikipedia', [fake_result()])
40+ c.extend('wikidata', [fake_result(), fake_result(url='https://example.com/')])
41+ self.assertEqual(c.results_length(), 2)
searx/tests/test_search.py+4−19
@@ -1,25 +1,10 @@
11# -*- coding: utf-8 -*-
22
3−from searx.search import score_results
43from searx.testing import SearxTestCase
54
65
7−def fake_result(url='https://aa.bb/cc?dd=ee#ff',
8− title='aaa',
9− content='bbb',
10− engine='wikipedia'):
11− return {'url': url,
12− 'title': title,
13− 'content': content,
14− 'engine': engine}
6+# TODO
7+class SearchTestCase(SearxTestCase):
158
16−
17−class ScoreResultsTestCase(SearxTestCase):
18−
19− def test_empty(self):
20− self.assertEqual(score_results(dict()), [])
21−
22− def test_urlparse(self):
23− results = score_results(dict(a=[fake_result(url='https://aa.bb/cc?dd=ee#ff')]))
24− parsed_url = results[0]['parsed_url']
25− self.assertEqual(parsed_url.query, 'dd=ee')
9+ def test_(self):
10+ pass
searx/tests/test_utils.py+10
@@ -1,3 +1,4 @@
1+# -*- coding: utf-8 -*-
12import mock
23from searx.testing import SearxTestCase
34from searx import utils
@@ -51,6 +52,15 @@ class TestUtils(SearxTestCase):
5152 self.assertIsNotNone(utils.html_to_text(html))
5253 self.assertEqual(utils.html_to_text(html), "Test text")
5354
55+ def test_prettify_url(self):
56+ data = (('https://searx.me/', 'https://searx.me/'),
57+ (u'https://searx.me/ű', u'https://searx.me/ű'),
58+ ('https://searx.me/' + (100 * 'a'), 'https://searx.me/[...]aaaaaaaaaaaaaaaaa'),
59+ (u'https://searx.me/' + (100 * u'ű'), u'https://searx.me/[...]űűűűűűűűűűűűűűűűű'))
60+
61+ for test_url, expected in data:
62+ self.assertEqual(utils.prettify_url(test_url, max_length=32), expected)
63+
5464
5565class TestHTMLTextExtractor(SearxTestCase):
5666
searx/tests/test_webapp.py+7−1
@@ -1,6 +1,7 @@
11# -*- coding: utf-8 -*-
22
33import json
4+from mock import Mock
45from urlparse import ParseResult
56from searx import webapp
67from searx.testing import SearxTestCase
@@ -33,7 +34,12 @@ class ViewsTestCase(SearxTestCase):
3334 ]
3435
3536 def search_mock(search_self, *args):
36− search_self.results = self.test_results
37+ search_self.result_container = Mock(get_ordered_results=lambda: self.test_results,
38+ answers=set(),
39+ suggestions=set(),
40+ infoboxes=[],
41+ results=self.test_results,
42+ results_length=lambda: len(self.test_results))
3743
3844 webapp.Search.search = search_mock
3945
searx/translations/de/LC_MESSAGES/messages.mo

Binary file not shown.

searx/translations/de/LC_MESSAGES/messages.po+116−54
@@ -14,10 +14,10 @@ msgid ""
1414msgstr ""
1515"Project-Id-Version: searx\n"
1616"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
17−"POT-Creation-Date: 2015-04-26 18:57+0200\n"
18−"PO-Revision-Date: 2015-04-26 19:24+0000\n"
17+"POT-Creation-Date: 2015-08-24 11:44+0200\n"
18+"PO-Revision-Date: 2015-08-24 10:00+0000\n"
1919"Last-Translator: pointhi\n"
20−"Language-Team: German (http://www.transifex.com/projects/p/searx/language/de/)\n"
20+"Language-Team: German (http://www.transifex.com/asciimoo/searx/language/de/)\n"
2121"MIME-Version: 1.0\n"
2222"Content-Type: text/plain; charset=UTF-8\n"
2323"Content-Transfer-Encoding: 8bit\n"
@@ -25,67 +25,67 @@ msgstr ""
2525"Language: de\n"
2626"Plural-Forms: nplurals=2; plural=(n != 1);\n"
2727
28−#: searx/webapp.py:104
28+#: searx/webapp.py:114
2929msgid "files"
3030msgstr "Dateien"
3131
32−#: searx/webapp.py:105
32+#: searx/webapp.py:115
3333msgid "general"
3434msgstr "Allgemein"
3535
36−#: searx/webapp.py:106
36+#: searx/webapp.py:116
3737msgid "music"
3838msgstr "Musik"
3939
40−#: searx/webapp.py:107
40+#: searx/webapp.py:117
4141msgid "social media"
4242msgstr "Soziale Medien"
4343
44−#: searx/webapp.py:108
44+#: searx/webapp.py:118
4545msgid "images"
4646msgstr "Bilder"
4747
48−#: searx/webapp.py:109
48+#: searx/webapp.py:119
4949msgid "videos"
5050msgstr "Videos"
5151
52−#: searx/webapp.py:110
52+#: searx/webapp.py:120
5353msgid "it"
5454msgstr "IT"
5555
56−#: searx/webapp.py:111
56+#: searx/webapp.py:121
5757msgid "news"
5858msgstr "Neuigkeiten"
5959
60−#: searx/webapp.py:112
60+#: searx/webapp.py:122
6161msgid "map"
6262msgstr "Karte"
6363
64−#: searx/webapp.py:396
64+#: searx/webapp.py:414
6565msgid "{minutes} minute(s) ago"
6666msgstr "vor {minutes} Minute(n)"
6767
68−#: searx/webapp.py:398
68+#: searx/webapp.py:416
6969msgid "{hours} hour(s), {minutes} minute(s) ago"
7070msgstr "vor {hours} Stunde(n), {minutes} Minute(n)"
7171
72−#: searx/engines/__init__.py:182
72+#: searx/engines/__init__.py:185
7373msgid "Page loads (sec)"
7474msgstr "Ladezeit (sek)"
7575
76−#: searx/engines/__init__.py:186
76+#: searx/engines/__init__.py:189
7777msgid "Number of results"
7878msgstr "Trefferanzahl"
7979
80−#: searx/engines/__init__.py:190
80+#: searx/engines/__init__.py:193
8181msgid "Scores"
8282msgstr "Punkte"
8383
84−#: searx/engines/__init__.py:194
84+#: searx/engines/__init__.py:197
8585msgid "Scores per result"
8686msgstr "Punkte pro Treffer"
8787
88−#: searx/engines/__init__.py:198
88+#: searx/engines/__init__.py:201
8989msgid "Errors"
9090msgstr "Fehler"
9191
@@ -100,12 +100,22 @@ msgstr "Starte Suche wenn Kategorie angeklickt wird"
100100#: searx/plugins/search_on_category_select.py:19
101101msgid ""
102102"Perform search immediately if a category selected. Disable to select "
103−"multiple categories."
104−msgstr "Startet eine Suche sofort, wenn eine Kategorie angeklickt wird. Deaktiviere dieses Plugin um mehrere Kategorien anzuwählen."
103+"multiple categories. (JavaScript required)"
104+msgstr "Starte die Suche sofort wenn eine Kategorie ausgewählt wird. Es ist nicht mehr möglich mehrere Kategorien auszuwählen. (JavaScript benötigt)"
105105
106−#: searx/plugins/self_ip.py:19
107−msgid "Display your source IP address if the query expression is \"ip\""
108−msgstr "Zeigt deine IP-Adresse an wenn die Suchanfrage \"ip\" lautet"
106+#: searx/plugins/self_info.py:20
107+msgid ""
108+"Displays your IP if the query is \"ip\" and your user agent if the query "
109+"contains \"user agent\"."
110+msgstr "Zeigt deine IP-Adresse wenn die Suche \"ip\" lautet, und deinen User-Agent wenn deine Suche \"user agent\" beinhaltet."
111+
112+#: searx/plugins/tracker_url_remover.py:26
113+msgid "Tracker URL remover"
114+msgstr "Tracker-URL entferner"
115+
116+#: searx/plugins/tracker_url_remover.py:27
117+msgid "Remove trackers arguments from the returned URL"
118+msgstr "Entferne Tracker Argumente von den URLs"
109119
110120#: searx/templates/courgette/index.html:9
111121#: searx/templates/courgette/index.html:13
@@ -133,90 +143,92 @@ msgstr "Einstellungen"
133143
134144#: searx/templates/courgette/preferences.html:9
135145#: searx/templates/default/preferences.html:9
136−#: searx/templates/oscar/preferences.html:35
137−#: searx/templates/oscar/preferences.html:37
146+#: searx/templates/oscar/preferences.html:36
147+#: searx/templates/oscar/preferences.html:38
138148msgid "Default categories"
139149msgstr "Standardkategorien"
140150
141151#: searx/templates/courgette/preferences.html:13
142152#: searx/templates/default/preferences.html:14
143−#: searx/templates/oscar/preferences.html:43
153+#: searx/templates/oscar/preferences.html:44
144154#: searx/templates/pix-art/preferences.html:9
145155msgid "Search language"
146156msgstr "Suchsprache"
147157
148158#: searx/templates/courgette/preferences.html:16
149159#: searx/templates/default/preferences.html:17
150−#: searx/templates/oscar/preferences.html:47
160+#: searx/templates/oscar/preferences.html:48
151161#: searx/templates/pix-art/preferences.html:12
152162msgid "Automatic"
153163msgstr "Automatisch"
154164
155165#: searx/templates/courgette/preferences.html:24
156166#: searx/templates/default/preferences.html:25
157−#: searx/templates/oscar/preferences.html:54
167+#: searx/templates/oscar/preferences.html:55
158168#: searx/templates/pix-art/preferences.html:20
159169msgid "Interface language"
160170msgstr "Oberflächensprache"
161171
162172#: searx/templates/courgette/preferences.html:34
163173#: searx/templates/default/preferences.html:35
164−#: searx/templates/oscar/preferences.html:64
174+#: searx/templates/oscar/preferences.html:65
165175msgid "Autocomplete"
166176msgstr "Autovervollständigung"
167177
168178#: searx/templates/courgette/preferences.html:45
169179#: searx/templates/default/preferences.html:46
170−#: searx/templates/oscar/preferences.html:75
180+#: searx/templates/oscar/preferences.html:76
171181msgid "Image proxy"
172182msgstr "Bilder Proxy"
173183
174184#: searx/templates/courgette/preferences.html:48
175185#: searx/templates/default/preferences.html:49
176−#: searx/templates/oscar/preferences.html:79
186+#: searx/templates/oscar/preferences.html:80
177187msgid "Enabled"
178188msgstr "Aktiviert"
179189
180190#: searx/templates/courgette/preferences.html:49
181191#: searx/templates/default/preferences.html:50
182−#: searx/templates/oscar/preferences.html:80
192+#: searx/templates/oscar/preferences.html:81
183193msgid "Disabled"
184194msgstr "Deaktiviert"
185195
186196#: searx/templates/courgette/preferences.html:54
187197#: searx/templates/default/preferences.html:55
188−#: searx/templates/oscar/preferences.html:84
198+#: searx/templates/oscar/preferences.html:85
189199#: searx/templates/pix-art/preferences.html:30
190200msgid "Method"
191201msgstr "Methode"
192202
193203#: searx/templates/courgette/preferences.html:63
194204#: searx/templates/default/preferences.html:64
195−#: searx/templates/oscar/preferences.html:93
205+#: searx/templates/oscar/preferences.html:94
206+#: searx/templates/oscar/preferences.html:144
207+#: searx/templates/oscar/preferences.html:150
196208msgid "SafeSearch"
197209msgstr "Sichere Suche (SafeSearch)"
198210
199211#: searx/templates/courgette/preferences.html:66
200212#: searx/templates/default/preferences.html:67
201−#: searx/templates/oscar/preferences.html:97
213+#: searx/templates/oscar/preferences.html:98
202214msgid "Strict"
203215msgstr "Streng"
204216
205217#: searx/templates/courgette/preferences.html:67
206218#: searx/templates/default/preferences.html:68
207−#: searx/templates/oscar/preferences.html:98
219+#: searx/templates/oscar/preferences.html:99
208220msgid "Moderate"
209221msgstr "Moderat"
210222
211223#: searx/templates/courgette/preferences.html:68
212224#: searx/templates/default/preferences.html:69
213−#: searx/templates/oscar/preferences.html:99
225+#: searx/templates/oscar/preferences.html:100
214226msgid "None"
215227msgstr "Keine"
216228
217229#: searx/templates/courgette/preferences.html:73
218230#: searx/templates/default/preferences.html:74
219−#: searx/templates/oscar/preferences.html:103
231+#: searx/templates/oscar/preferences.html:104
220232#: searx/templates/pix-art/preferences.html:39
221233msgid "Themes"
222234msgstr "Designs"
@@ -257,6 +269,8 @@ msgstr "Aktuell benutzte Suchmaschinen"
257269
258270#: searx/templates/courgette/preferences.html:100
259271#: searx/templates/default/preferences.html:88
272+#: searx/templates/oscar/preferences.html:142
273+#: searx/templates/oscar/preferences.html:152
260274#: searx/templates/pix-art/preferences.html:53
261275msgid "Engine name"
262276msgstr "Suchmaschinenname"
@@ -271,6 +285,8 @@ msgstr "Kategorie"
271285#: searx/templates/default/preferences.html:90
272286#: searx/templates/default/preferences.html:101
273287#: searx/templates/oscar/macros.html:67
288+#: searx/templates/oscar/preferences.html:141
289+#: searx/templates/oscar/preferences.html:153
274290#: searx/templates/pix-art/preferences.html:54
275291#: searx/templates/pix-art/preferences.html:64
276292msgid "Allow"
@@ -288,7 +304,7 @@ msgstr "Blockieren"
288304
289305#: searx/templates/courgette/preferences.html:122
290306#: searx/templates/default/preferences.html:110
291−#: searx/templates/oscar/preferences.html:180
307+#: searx/templates/oscar/preferences.html:235
292308#: searx/templates/pix-art/preferences.html:73
293309msgid ""
294310"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
297313
298314#: searx/templates/courgette/preferences.html:124
299315#: searx/templates/default/preferences.html:112
300−#: searx/templates/oscar/preferences.html:182
316+#: searx/templates/oscar/preferences.html:237
301317#: searx/templates/pix-art/preferences.html:75
302318msgid ""
303319"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
306322
307323#: searx/templates/courgette/preferences.html:127
308324#: searx/templates/default/preferences.html:115
309−#: searx/templates/oscar/preferences.html:185
325+#: searx/templates/oscar/preferences.html:240
310326#: searx/templates/pix-art/preferences.html:78
311327msgid "save"
312328msgstr "Speichern"
313329
314330#: searx/templates/courgette/preferences.html:128
315331#: searx/templates/default/preferences.html:116
316−#: searx/templates/oscar/preferences.html:187
332+#: searx/templates/oscar/preferences.html:242
317333msgid "Reset defaults"
318334msgstr "Zurücksetzen"
319335
320336#: searx/templates/courgette/preferences.html:129
321337#: searx/templates/default/preferences.html:117
322−#: searx/templates/oscar/preferences.html:186
338+#: searx/templates/oscar/preferences.html:241
323339#: searx/templates/pix-art/preferences.html:79
324340msgid "back"
325341msgstr "Zurück"
@@ -429,51 +445,89 @@ msgid "Toggle navigation"
429445msgstr "Navigation umschalten"
430446
431447#: searx/templates/oscar/preferences.html:17
432−#: searx/templates/oscar/preferences.html:24
448+#: searx/templates/oscar/preferences.html:25
433449msgid "General"
434450msgstr "Allgemein"
435451
436452#: searx/templates/oscar/preferences.html:18
437−#: searx/templates/oscar/preferences.html:125
453+#: searx/templates/oscar/preferences.html:126
438454msgid "Engines"
439455msgstr "Suchmaschinen"
440456
441457#: searx/templates/oscar/preferences.html:19
442−#: searx/templates/oscar/preferences.html:159
458+#: searx/templates/oscar/preferences.html:187
443459msgid "Plugins"
444460msgstr "Erweiterungen"
445461
446−#: searx/templates/oscar/preferences.html:44
462+#: searx/templates/oscar/preferences.html:20
463+#: searx/templates/oscar/preferences.html:210
464+msgid "Cookies"
465+msgstr "Cookies"
466+
467+#: searx/templates/oscar/preferences.html:45
447468msgid "What language do you prefer for search?"
448469msgstr "welche Sprache bevorzugst du für die Suche?"
449470
450−#: searx/templates/oscar/preferences.html:55
471+#: searx/templates/oscar/preferences.html:56
451472msgid "Change the language of the layout"
452473msgstr "ändere die Sprache des Layouts"
453474
454−#: searx/templates/oscar/preferences.html:65
475+#: searx/templates/oscar/preferences.html:66
455476msgid "Find stuff as you type"
456477msgstr "zeige Vorschläge während der Eingabe an"
457478
458−#: searx/templates/oscar/preferences.html:76
479+#: searx/templates/oscar/preferences.html:77
459480msgid "Proxying image results through searx"
460481msgstr "tunnel Bilder durch searx"
461482
462−#: searx/templates/oscar/preferences.html:85
483+#: searx/templates/oscar/preferences.html:86
463484msgid ""
464485"Change how forms are submited, <a "
465486"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
466487" rel=\"external\">learn more about request methods</a>"
467488msgstr "ändere wie Formulare übertragen werden, <a href=\"https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol#HTTP-Anfragemethoden\" rel=\"external\">lerne mehr über Anfragemethoden</a>"
468489
469−#: searx/templates/oscar/preferences.html:94
490+#: searx/templates/oscar/preferences.html:95
470491msgid "Filter content"
471492msgstr "Inhalte filtern"
472493
473−#: searx/templates/oscar/preferences.html:104
494+#: searx/templates/oscar/preferences.html:105
474495msgid "Change searx layout"
475496msgstr "ändere das Aussehen von searx"
476497
498+#: searx/templates/oscar/preferences.html:143
499+#: searx/templates/oscar/preferences.html:151
500+msgid "Shortcut"
501+msgstr "Abkürzung"
502+
503+#: searx/templates/oscar/preferences.html:145
504+#: searx/templates/oscar/preferences.html:149
505+msgid "Avg. time"
506+msgstr "mittlere Zeit"
507+
508+#: searx/templates/oscar/preferences.html:146
509+#: searx/templates/oscar/preferences.html:148
510+msgid "Max time"
511+msgstr "max. Zeit"
512+
513+#: searx/templates/oscar/preferences.html:213
514+msgid ""
515+"This is the list of cookies and their values searx is storing on your "
516+"computer."
517+msgstr "Diese Liste zeigt alle Daten welche searx auf deinem Computer speichert."
518+
519+#: searx/templates/oscar/preferences.html:214
520+msgid "With that list, you can assess searx transparency."
521+msgstr "Mit dieser Liste können Sie die Transparenz von searx bewerten"
522+
523+#: searx/templates/oscar/preferences.html:219
524+msgid "Cookie name"
525+msgstr "Cookie Name"
526+
527+#: searx/templates/oscar/preferences.html:220
528+msgid "Value"
529+msgstr "Wert"
530+
477531#: searx/templates/oscar/results.html:7
478532msgid "Search results"
479533msgstr "Suchergebnisse"
@@ -523,6 +577,14 @@ msgstr "Warnung!"
523577msgid "Please enable JavaScript to use full functionality of this site."
524578msgstr "Bitte aktiviere JavaScript, um alle Funktionen dieser Seite zu nutzen. "
525579
580+#: searx/templates/oscar/messages/no_cookies.html:3
581+msgid "Information!"
582+msgstr "Information!"
583+
584+#: searx/templates/oscar/messages/no_cookies.html:4
585+msgid "currently, there are no cookies defined."
586+msgstr "derzeit sind keine Cookies gesetzt."
587+
526588#: searx/templates/oscar/messages/no_data_available.html:4
527589msgid "There is currently no data available. "
528590msgstr "Es sind derzeit keine Daten vorhanden."
searx/translations/en/LC_MESSAGES/messages.mo

Binary file not shown.

searx/translations/es/LC_MESSAGES/messages.mo

Binary file not shown.

searx/translations/es/LC_MESSAGES/messages.po+122−58
@@ -3,16 +3,18 @@
33# This file is distributed under the same license as the PROJECT project.
44#
55# Translators:
6+# Adam Tauber <asciimoo@gmail.com>, 2015
67# Alejandro León Aznar, 2014
78# Alejandro León Aznar, 2014-2015
9+# Oscar Carrero <holaoscar@protonmail.ch>, 2015
810msgid ""
911msgstr ""
1012"Project-Id-Version: searx\n"
1113"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
12−"POT-Creation-Date: 2015-04-26 18:57+0200\n"
13−"PO-Revision-Date: 2015-04-27 23:48+0000\n"
14−"Last-Translator: Alejandro León Aznar\n"
15−"Language-Team: Spanish (http://www.transifex.com/projects/p/searx/language/es/)\n"
14+"POT-Creation-Date: 2015-08-24 11:44+0200\n"
15+"PO-Revision-Date: 2015-09-05 20:46+0000\n"
16+"Last-Translator: Oscar Carrero <holaoscar@protonmail.ch>\n"
17+"Language-Team: Spanish (http://www.transifex.com/asciimoo/searx/language/es/)\n"
1618"MIME-Version: 1.0\n"
1719"Content-Type: text/plain; charset=UTF-8\n"
1820"Content-Transfer-Encoding: 8bit\n"
@@ -20,67 +22,67 @@ msgstr ""
2022"Language: es\n"
2123"Plural-Forms: nplurals=2; plural=(n != 1);\n"
2224
23−#: searx/webapp.py:104
25+#: searx/webapp.py:114
2426msgid "files"
2527msgstr "Archivos"
2628
27−#: searx/webapp.py:105
29+#: searx/webapp.py:115
2830msgid "general"
2931msgstr "General"
3032
31−#: searx/webapp.py:106
33+#: searx/webapp.py:116
3234msgid "music"
3335msgstr "Música"
3436
35−#: searx/webapp.py:107
37+#: searx/webapp.py:117
3638msgid "social media"
3739msgstr "Medios sociales"
3840
39−#: searx/webapp.py:108
41+#: searx/webapp.py:118
4042msgid "images"
4143msgstr "Imágenes"
4244
43−#: searx/webapp.py:109
45+#: searx/webapp.py:119
4446msgid "videos"
4547msgstr "Vídeos"
4648
47−#: searx/webapp.py:110
49+#: searx/webapp.py:120
4850msgid "it"
4951msgstr "TIC"
5052
51−#: searx/webapp.py:111
53+#: searx/webapp.py:121
5254msgid "news"
5355msgstr "noticias"
5456
55−#: searx/webapp.py:112
57+#: searx/webapp.py:122
5658msgid "map"
5759msgstr "mapa"
5860
59−#: searx/webapp.py:396
61+#: searx/webapp.py:414
6062msgid "{minutes} minute(s) ago"
6163msgstr "hace {minutes} minuto(s)"
6264
63−#: searx/webapp.py:398
65+#: searx/webapp.py:416
6466msgid "{hours} hour(s), {minutes} minute(s) ago"
6567msgstr "hace {hours} hora(s) y {minutes} minuto(s)"
6668
67−#: searx/engines/__init__.py:182
69+#: searx/engines/__init__.py:185
6870msgid "Page loads (sec)"
6971msgstr "Tiempo de carga (segundos)"
7072
71−#: searx/engines/__init__.py:186
73+#: searx/engines/__init__.py:189
7274msgid "Number of results"
7375msgstr "Número de resultados"
7476
75−#: searx/engines/__init__.py:190
77+#: searx/engines/__init__.py:193
7678msgid "Scores"
7779msgstr "Puntuaciones"
7880
79−#: searx/engines/__init__.py:194
81+#: searx/engines/__init__.py:197
8082msgid "Scores per result"
8183msgstr "Puntuaciones por resultado"
8284
83−#: searx/engines/__init__.py:198
85+#: searx/engines/__init__.py:201
8486msgid "Errors"
8587msgstr "Errores"
8688
@@ -95,12 +97,22 @@ msgstr "Buscar en la categoría seleccionada"
9597#: searx/plugins/search_on_category_select.py:19
9698msgid ""
9799"Perform search immediately if a category selected. Disable to select "
98−"multiple categories."
99−msgstr "Realizar la búsqueda inmediatamente si se ha seleccionado una categoría. Desactivar la selección simultánea de varias categorías."
100+"multiple categories. (JavaScript required)"
101+msgstr "Realizar una búsqueda inmediatamente si se ha seleccionado una categoría. Desactivar para seleccionar varias categorías. (Se requiere JavaScript)"
100102
101−#: searx/plugins/self_ip.py:19
102−msgid "Display your source IP address if the query expression is \"ip\""
103−msgstr "Mostrar tu dirección IP si el término de búsqueda es «ip»"
103+#: searx/plugins/self_info.py:20
104+msgid ""
105+"Displays your IP if the query is \"ip\" and your user agent if the query "
106+"contains \"user agent\"."
107+msgstr "Muestra tu dirección IP si la consulta es \"ip\" y tu Agente de Usuario si la consulta contiene \"agente de usuario\"."
108+
109+#: searx/plugins/tracker_url_remover.py:26
110+msgid "Tracker URL remover"
111+msgstr "Eliminador de URL rastreadora"
112+
113+#: searx/plugins/tracker_url_remover.py:27
114+msgid "Remove trackers arguments from the returned URL"
115+msgstr "Eliminar los argumentos de los rastreadores en la URL devuelta"
104116
105117#: searx/templates/courgette/index.html:9
106118#: searx/templates/courgette/index.html:13
@@ -128,90 +140,92 @@ msgstr "Preferencias"
128140
129141#: searx/templates/courgette/preferences.html:9
130142#: searx/templates/default/preferences.html:9
131−#: searx/templates/oscar/preferences.html:35
132−#: searx/templates/oscar/preferences.html:37
143+#: searx/templates/oscar/preferences.html:36
144+#: searx/templates/oscar/preferences.html:38
133145msgid "Default categories"
134146msgstr "Categorías predeterminadas"
135147
136148#: searx/templates/courgette/preferences.html:13
137149#: searx/templates/default/preferences.html:14
138−#: searx/templates/oscar/preferences.html:43
150+#: searx/templates/oscar/preferences.html:44
139151#: searx/templates/pix-art/preferences.html:9
140152msgid "Search language"
141153msgstr "Buscar idioma"
142154
143155#: searx/templates/courgette/preferences.html:16
144156#: searx/templates/default/preferences.html:17
145−#: searx/templates/oscar/preferences.html:47
157+#: searx/templates/oscar/preferences.html:48
146158#: searx/templates/pix-art/preferences.html:12
147159msgid "Automatic"
148160msgstr "Automático"
149161
150162#: searx/templates/courgette/preferences.html:24
151163#: searx/templates/default/preferences.html:25
152−#: searx/templates/oscar/preferences.html:54
164+#: searx/templates/oscar/preferences.html:55
153165#: searx/templates/pix-art/preferences.html:20
154166msgid "Interface language"
155167msgstr "Idioma de la interfaz"
156168
157169#: searx/templates/courgette/preferences.html:34
158170#: searx/templates/default/preferences.html:35
159−#: searx/templates/oscar/preferences.html:64
171+#: searx/templates/oscar/preferences.html:65
160172msgid "Autocomplete"
161173msgstr "Autocompletar"
162174
163175#: searx/templates/courgette/preferences.html:45
164176#: searx/templates/default/preferences.html:46
165−#: searx/templates/oscar/preferences.html:75
177+#: searx/templates/oscar/preferences.html:76
166178msgid "Image proxy"
167179msgstr "Imagen proxy"
168180
169181#: searx/templates/courgette/preferences.html:48
170182#: searx/templates/default/preferences.html:49
171−#: searx/templates/oscar/preferences.html:79
183+#: searx/templates/oscar/preferences.html:80
172184msgid "Enabled"
173185msgstr "Activado"
174186
175187#: searx/templates/courgette/preferences.html:49
176188#: searx/templates/default/preferences.html:50
177−#: searx/templates/oscar/preferences.html:80
189+#: searx/templates/oscar/preferences.html:81
178190msgid "Disabled"
179191msgstr "Desactivado"
180192
181193#: searx/templates/courgette/preferences.html:54
182194#: searx/templates/default/preferences.html:55
183−#: searx/templates/oscar/preferences.html:84
195+#: searx/templates/oscar/preferences.html:85
184196#: searx/templates/pix-art/preferences.html:30
185197msgid "Method"
186198msgstr "Método"
187199
188200#: searx/templates/courgette/preferences.html:63
189201#: searx/templates/default/preferences.html:64
190−#: searx/templates/oscar/preferences.html:93
202+#: searx/templates/oscar/preferences.html:94
203+#: searx/templates/oscar/preferences.html:144
204+#: searx/templates/oscar/preferences.html:150
191205msgid "SafeSearch"
192206msgstr "Búsqueda segura"
193207
194208#: searx/templates/courgette/preferences.html:66
195209#: searx/templates/default/preferences.html:67
196−#: searx/templates/oscar/preferences.html:97
210+#: searx/templates/oscar/preferences.html:98
197211msgid "Strict"
198212msgstr "Riguroso"
199213
200214#: searx/templates/courgette/preferences.html:67
201215#: searx/templates/default/preferences.html:68
202−#: searx/templates/oscar/preferences.html:98
216+#: searx/templates/oscar/preferences.html:99
203217msgid "Moderate"
204218msgstr "Moderado"
205219
206220#: searx/templates/courgette/preferences.html:68
207221#: searx/templates/default/preferences.html:69
208−#: searx/templates/oscar/preferences.html:99
222+#: searx/templates/oscar/preferences.html:100
209223msgid "None"
210224msgstr "Ninguno"
211225
212226#: searx/templates/courgette/preferences.html:73
213227#: searx/templates/default/preferences.html:74
214−#: searx/templates/oscar/preferences.html:103
228+#: searx/templates/oscar/preferences.html:104
215229#: searx/templates/pix-art/preferences.html:39
216230msgid "Themes"
217231msgstr "Temas"
@@ -252,6 +266,8 @@ msgstr "Motores de búsqueda actualmente en uso"
252266
253267#: searx/templates/courgette/preferences.html:100
254268#: searx/templates/default/preferences.html:88
269+#: searx/templates/oscar/preferences.html:142
270+#: searx/templates/oscar/preferences.html:152
255271#: searx/templates/pix-art/preferences.html:53
256272msgid "Engine name"
257273msgstr "Nombre del motor de búsqueda"
@@ -266,6 +282,8 @@ msgstr "Categoría"
266282#: searx/templates/default/preferences.html:90
267283#: searx/templates/default/preferences.html:101
268284#: searx/templates/oscar/macros.html:67
285+#: searx/templates/oscar/preferences.html:141
286+#: searx/templates/oscar/preferences.html:153
269287#: searx/templates/pix-art/preferences.html:54
270288#: searx/templates/pix-art/preferences.html:64
271289msgid "Allow"
@@ -283,7 +301,7 @@ msgstr "Bloquear"
283301
284302#: searx/templates/courgette/preferences.html:122
285303#: searx/templates/default/preferences.html:110
286−#: searx/templates/oscar/preferences.html:180
304+#: searx/templates/oscar/preferences.html:235
287305#: searx/templates/pix-art/preferences.html:73
288306msgid ""
289307"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
292310
293311#: searx/templates/courgette/preferences.html:124
294312#: searx/templates/default/preferences.html:112
295−#: searx/templates/oscar/preferences.html:182
313+#: searx/templates/oscar/preferences.html:237
296314#: searx/templates/pix-art/preferences.html:75
297315msgid ""
298316"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
301319
302320#: searx/templates/courgette/preferences.html:127
303321#: searx/templates/default/preferences.html:115
304−#: searx/templates/oscar/preferences.html:185
322+#: searx/templates/oscar/preferences.html:240
305323#: searx/templates/pix-art/preferences.html:78
306324msgid "save"
307325msgstr "Guardar"
308326
309327#: searx/templates/courgette/preferences.html:128
310328#: searx/templates/default/preferences.html:116
311−#: searx/templates/oscar/preferences.html:187
329+#: searx/templates/oscar/preferences.html:242
312330msgid "Reset defaults"
313331msgstr "Restablecer configuración por defecto"
314332
315333#: searx/templates/courgette/preferences.html:129
316334#: searx/templates/default/preferences.html:117
317−#: searx/templates/oscar/preferences.html:186
335+#: searx/templates/oscar/preferences.html:241
318336#: searx/templates/pix-art/preferences.html:79
319337msgid "back"
320338msgstr "Atrás"
@@ -323,7 +341,7 @@ msgstr "Atrás"
323341#: searx/templates/default/results.html:13
324342#: searx/templates/oscar/results.html:110
325343msgid "Search URL"
326−msgstr "Buscar URL"
344+msgstr "URL de la búsqueda"
327345
328346#: searx/templates/courgette/results.html:16
329347#: searx/templates/default/results.html:17
@@ -413,7 +431,7 @@ msgstr "Creado por"
413431
414432#: searx/templates/oscar/base.html:78
415433msgid "a privacy-respecting, hackable metasearch engine"
416−msgstr "un metabuscador hackeable que respeta la privacidad"
434+msgstr "un metabuscador hackable que respeta la privacidad"
417435
418436#: searx/templates/oscar/navbar.html:9 searx/templates/oscar/navbar.html:33
419437msgid "home"
@@ -424,51 +442,89 @@ msgid "Toggle navigation"
424442msgstr "Cambiar navegación"
425443
426444#: searx/templates/oscar/preferences.html:17
427−#: searx/templates/oscar/preferences.html:24
445+#: searx/templates/oscar/preferences.html:25
428446msgid "General"
429447msgstr "General"
430448
431449#: searx/templates/oscar/preferences.html:18
432−#: searx/templates/oscar/preferences.html:125
450+#: searx/templates/oscar/preferences.html:126
433451msgid "Engines"
434452msgstr "Motores"
435453
436454#: searx/templates/oscar/preferences.html:19
437−#: searx/templates/oscar/preferences.html:159
455+#: searx/templates/oscar/preferences.html:187
438456msgid "Plugins"
439457msgstr "Plugins"
440458
441−#: searx/templates/oscar/preferences.html:44
459+#: searx/templates/oscar/preferences.html:20
460+#: searx/templates/oscar/preferences.html:210
461+msgid "Cookies"
462+msgstr "Cookies"
463+
464+#: searx/templates/oscar/preferences.html:45
442465msgid "What language do you prefer for search?"
443466msgstr "¿Qué idioma prefieres para la búsqueda?"
444467
445−#: searx/templates/oscar/preferences.html:55
468+#: searx/templates/oscar/preferences.html:56
446469msgid "Change the language of the layout"
447470msgstr "Cambiar idioma de la interfaz"
448471
449−#: searx/templates/oscar/preferences.html:65
472+#: searx/templates/oscar/preferences.html:66
450473msgid "Find stuff as you type"
451474msgstr "Buscar mientras escribes"
452475
453−#: searx/templates/oscar/preferences.html:76
476+#: searx/templates/oscar/preferences.html:77
454477msgid "Proxying image results through searx"
455478msgstr "Filtrando resultados de imágenes en searx"
456479
457−#: searx/templates/oscar/preferences.html:85
480+#: searx/templates/oscar/preferences.html:86
458481msgid ""
459482"Change how forms are submited, <a "
460483"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
461484" rel=\"external\">learn more about request methods</a>"
462485msgstr "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>"
463486
464−#: searx/templates/oscar/preferences.html:94
487+#: searx/templates/oscar/preferences.html:95
465488msgid "Filter content"
466489msgstr "Filtro de contenido"
467490
468−#: searx/templates/oscar/preferences.html:104
491+#: searx/templates/oscar/preferences.html:105
469492msgid "Change searx layout"
470493msgstr "Cambiar aspecto de searx"
471494
495+#: searx/templates/oscar/preferences.html:143
496+#: searx/templates/oscar/preferences.html:151
497+msgid "Shortcut"
498+msgstr "Atajo"
499+
500+#: searx/templates/oscar/preferences.html:145
501+#: searx/templates/oscar/preferences.html:149
502+msgid "Avg. time"
503+msgstr "Tiempo promedio"
504+
505+#: searx/templates/oscar/preferences.html:146
506+#: searx/templates/oscar/preferences.html:148
507+msgid "Max time"
508+msgstr "Tiempo máximo"
509+
510+#: searx/templates/oscar/preferences.html:213
511+msgid ""
512+"This is the list of cookies and their values searx is storing on your "
513+"computer."
514+msgstr "Esta es la lista de cookies y sus valores que searx está almacenando en tu ordenador."
515+
516+#: searx/templates/oscar/preferences.html:214
517+msgid "With that list, you can assess searx transparency."
518+msgstr "Con esa lista puedes valorar la transparencia de searx."
519+
520+#: searx/templates/oscar/preferences.html:219
521+msgid "Cookie name"
522+msgstr "Nombre de la cookie"
523+
524+#: searx/templates/oscar/preferences.html:220
525+msgid "Value"
526+msgstr "Valor"
527+
472528#: searx/templates/oscar/results.html:7
473529msgid "Search results"
474530msgstr "Buscar"
@@ -516,7 +572,15 @@ msgstr "¡Cuidado!"
516572
517573#: searx/templates/oscar/messages/js_disabled.html:3
518574msgid "Please enable JavaScript to use full functionality of this site."
519−msgstr "Por favor, activa JavaScript para poder usar esta página al 100%."
575+msgstr "Por favor, activa JavaScript para poder usar esta página al 100%%."
576+
577+#: searx/templates/oscar/messages/no_cookies.html:3
578+msgid "Information!"
579+msgstr "¡Información!"
580+
581+#: searx/templates/oscar/messages/no_cookies.html:4
582+msgid "currently, there are no cookies defined."
583+msgstr "No existen cookies definidas actualmente."
520584
521585#: searx/templates/oscar/messages/no_data_available.html:4
522586msgid "There is currently no data available. "
searx/translations/fr/LC_MESSAGES/messages.mo

Binary file not shown.

searx/translations/fr/LC_MESSAGES/messages.po+116−54
@@ -13,10 +13,10 @@ msgid ""
1313msgstr ""
1414"Project-Id-Version: searx\n"
1515"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
16−"POT-Creation-Date: 2015-04-26 18:57+0200\n"
17−"PO-Revision-Date: 2015-05-14 00:01+0000\n"
16+"POT-Creation-Date: 2015-08-24 11:44+0200\n"
17+"PO-Revision-Date: 2015-08-24 15:35+0000\n"
1818"Last-Translator: Cqoicebordel <david.barouh@wanadoo.fr>\n"
19−"Language-Team: French (http://www.transifex.com/projects/p/searx/language/fr/)\n"
19+"Language-Team: French (http://www.transifex.com/asciimoo/searx/language/fr/)\n"
2020"MIME-Version: 1.0\n"
2121"Content-Type: text/plain; charset=UTF-8\n"
2222"Content-Transfer-Encoding: 8bit\n"
@@ -24,67 +24,67 @@ msgstr ""
2424"Language: fr\n"
2525"Plural-Forms: nplurals=2; plural=(n > 1);\n"
2626
27−#: searx/webapp.py:104
27+#: searx/webapp.py:114
2828msgid "files"
2929msgstr "fichiers"
3030
31−#: searx/webapp.py:105
31+#: searx/webapp.py:115
3232msgid "general"
3333msgstr "général"
3434
35−#: searx/webapp.py:106
35+#: searx/webapp.py:116
3636msgid "music"
3737msgstr "musique"
3838
39−#: searx/webapp.py:107
39+#: searx/webapp.py:117
4040msgid "social media"
4141msgstr "réseaux sociaux"
4242
43−#: searx/webapp.py:108
43+#: searx/webapp.py:118
4444msgid "images"
4545msgstr "images"
4646
47−#: searx/webapp.py:109
47+#: searx/webapp.py:119
4848msgid "videos"
4949msgstr "vidéos"
5050
51−#: searx/webapp.py:110
51+#: searx/webapp.py:120
5252msgid "it"
5353msgstr "informatique"
5454
55−#: searx/webapp.py:111
55+#: searx/webapp.py:121
5656msgid "news"
5757msgstr "actus"
5858
59−#: searx/webapp.py:112
59+#: searx/webapp.py:122
6060msgid "map"
6161msgstr "carte"
6262
63−#: searx/webapp.py:396
63+#: searx/webapp.py:414
6464msgid "{minutes} minute(s) ago"
6565msgstr "il y a {minutes} minute(s)"
6666
67−#: searx/webapp.py:398
67+#: searx/webapp.py:416
6868msgid "{hours} hour(s), {minutes} minute(s) ago"
6969msgstr "il y a {hours} heure(s), {minutes} minute(s)"
7070
71−#: searx/engines/__init__.py:182
71+#: searx/engines/__init__.py:185
7272msgid "Page loads (sec)"
7373msgstr "Chargement de la page (sec)"
7474
75−#: searx/engines/__init__.py:186
75+#: searx/engines/__init__.py:189
7676msgid "Number of results"
7777msgstr "Nombre de résultats"
7878
79−#: searx/engines/__init__.py:190
79+#: searx/engines/__init__.py:193
8080msgid "Scores"
8181msgstr "Score"
8282
83−#: searx/engines/__init__.py:194
83+#: searx/engines/__init__.py:197
8484msgid "Scores per result"
8585msgstr "Score par résultat"
8686
87−#: searx/engines/__init__.py:198
87+#: searx/engines/__init__.py:201
8888msgid "Errors"
8989msgstr "Erreurs"
9090
@@ -99,12 +99,22 @@ msgstr "Lancer la recherche lors du choix d'une catégorie"
9999#: searx/plugins/search_on_category_select.py:19
100100msgid ""
101101"Perform search immediately if a category selected. Disable to select "
102−"multiple categories."
103−msgstr "Exécute la recherche immédiatement si une catégorie est sélectionnée. Désactiver pour sélectionner plusieurs catégories."
102+"multiple categories. (JavaScript required)"
103+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)."
104104
105−#: searx/plugins/self_ip.py:19
106−msgid "Display your source IP address if the query expression is \"ip\""
107−msgstr "Afficher votre adresse IP si la requête contient \"ip\"."
105+#: searx/plugins/self_info.py:20
106+msgid ""
107+"Displays your IP if the query is \"ip\" and your user agent if the query "
108+"contains \"user agent\"."
109+msgstr "Affiche votre adresse IP si la requête est \"ip\", et affiche votre user-agent si la requete contient \"user agent\"."
110+
111+#: searx/plugins/tracker_url_remover.py:26
112+msgid "Tracker URL remover"
113+msgstr "Nettoyeur d'URL de suivis"
114+
115+#: searx/plugins/tracker_url_remover.py:27
116+msgid "Remove trackers arguments from the returned URL"
117+msgstr "Retire les arguments utilisés pour vous pister des URL retournées"
108118
109119#: searx/templates/courgette/index.html:9
110120#: searx/templates/courgette/index.html:13
@@ -132,90 +142,92 @@ msgstr "Préférences"
132142
133143#: searx/templates/courgette/preferences.html:9
134144#: searx/templates/default/preferences.html:9
135−#: searx/templates/oscar/preferences.html:35
136−#: searx/templates/oscar/preferences.html:37
145+#: searx/templates/oscar/preferences.html:36
146+#: searx/templates/oscar/preferences.html:38
137147msgid "Default categories"
138148msgstr "Catégories par défaut"
139149
140150#: searx/templates/courgette/preferences.html:13
141151#: searx/templates/default/preferences.html:14
142−#: searx/templates/oscar/preferences.html:43
152+#: searx/templates/oscar/preferences.html:44
143153#: searx/templates/pix-art/preferences.html:9
144154msgid "Search language"
145155msgstr "Langue de recherche"
146156
147157#: searx/templates/courgette/preferences.html:16
148158#: searx/templates/default/preferences.html:17
149−#: searx/templates/oscar/preferences.html:47
159+#: searx/templates/oscar/preferences.html:48
150160#: searx/templates/pix-art/preferences.html:12
151161msgid "Automatic"
152162msgstr "Automatique"
153163
154164#: searx/templates/courgette/preferences.html:24
155165#: searx/templates/default/preferences.html:25
156−#: searx/templates/oscar/preferences.html:54
166+#: searx/templates/oscar/preferences.html:55
157167#: searx/templates/pix-art/preferences.html:20
158168msgid "Interface language"
159169msgstr "Langue de l'interface"
160170
161171#: searx/templates/courgette/preferences.html:34
162172#: searx/templates/default/preferences.html:35
163−#: searx/templates/oscar/preferences.html:64
173+#: searx/templates/oscar/preferences.html:65
164174msgid "Autocomplete"
165175msgstr "Complétion automatique"
166176
167177#: searx/templates/courgette/preferences.html:45
168178#: searx/templates/default/preferences.html:46
169−#: searx/templates/oscar/preferences.html:75
179+#: searx/templates/oscar/preferences.html:76
170180msgid "Image proxy"
171181msgstr "Proxy d'images"
172182
173183#: searx/templates/courgette/preferences.html:48
174184#: searx/templates/default/preferences.html:49
175−#: searx/templates/oscar/preferences.html:79
185+#: searx/templates/oscar/preferences.html:80
176186msgid "Enabled"
177187msgstr "Activé"
178188
179189#: searx/templates/courgette/preferences.html:49
180190#: searx/templates/default/preferences.html:50
181−#: searx/templates/oscar/preferences.html:80
191+#: searx/templates/oscar/preferences.html:81
182192msgid "Disabled"
183193msgstr "Désactivé"
184194
185195#: searx/templates/courgette/preferences.html:54
186196#: searx/templates/default/preferences.html:55
187−#: searx/templates/oscar/preferences.html:84
197+#: searx/templates/oscar/preferences.html:85
188198#: searx/templates/pix-art/preferences.html:30
189199msgid "Method"
190200msgstr "Méthode"
191201
192202#: searx/templates/courgette/preferences.html:63
193203#: searx/templates/default/preferences.html:64
194−#: searx/templates/oscar/preferences.html:93
204+#: searx/templates/oscar/preferences.html:94
205+#: searx/templates/oscar/preferences.html:144
206+#: searx/templates/oscar/preferences.html:150
195207msgid "SafeSearch"
196208msgstr "Recherche sécurisée"
197209
198210#: searx/templates/courgette/preferences.html:66
199211#: searx/templates/default/preferences.html:67
200−#: searx/templates/oscar/preferences.html:97
212+#: searx/templates/oscar/preferences.html:98
201213msgid "Strict"
202214msgstr "Stricte"
203215
204216#: searx/templates/courgette/preferences.html:67
205217#: searx/templates/default/preferences.html:68
206−#: searx/templates/oscar/preferences.html:98
218+#: searx/templates/oscar/preferences.html:99
207219msgid "Moderate"
208220msgstr "Moyen"
209221
210222#: searx/templates/courgette/preferences.html:68
211223#: searx/templates/default/preferences.html:69
212−#: searx/templates/oscar/preferences.html:99
224+#: searx/templates/oscar/preferences.html:100
213225msgid "None"
214226msgstr "Pas du tout"
215227
216228#: searx/templates/courgette/preferences.html:73
217229#: searx/templates/default/preferences.html:74
218−#: searx/templates/oscar/preferences.html:103
230+#: searx/templates/oscar/preferences.html:104
219231#: searx/templates/pix-art/preferences.html:39
220232msgid "Themes"
221233msgstr "Thème"
@@ -256,6 +268,8 @@ msgstr "Moteurs de recherche actuellement utilisés"
256268
257269#: searx/templates/courgette/preferences.html:100
258270#: searx/templates/default/preferences.html:88
271+#: searx/templates/oscar/preferences.html:142
272+#: searx/templates/oscar/preferences.html:152
259273#: searx/templates/pix-art/preferences.html:53
260274msgid "Engine name"
261275msgstr "Nom du moteur"
@@ -270,6 +284,8 @@ msgstr "Catégorie"
270284#: searx/templates/default/preferences.html:90
271285#: searx/templates/default/preferences.html:101
272286#: searx/templates/oscar/macros.html:67
287+#: searx/templates/oscar/preferences.html:141
288+#: searx/templates/oscar/preferences.html:153
273289#: searx/templates/pix-art/preferences.html:54
274290#: searx/templates/pix-art/preferences.html:64
275291msgid "Allow"
@@ -287,7 +303,7 @@ msgstr "Bloquer"
287303
288304#: searx/templates/courgette/preferences.html:122
289305#: searx/templates/default/preferences.html:110
290−#: searx/templates/oscar/preferences.html:180
306+#: searx/templates/oscar/preferences.html:235
291307#: searx/templates/pix-art/preferences.html:73
292308msgid ""
293309"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
296312
297313#: searx/templates/courgette/preferences.html:124
298314#: searx/templates/default/preferences.html:112
299−#: searx/templates/oscar/preferences.html:182
315+#: searx/templates/oscar/preferences.html:237
300316#: searx/templates/pix-art/preferences.html:75
301317msgid ""
302318"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
305321
306322#: searx/templates/courgette/preferences.html:127
307323#: searx/templates/default/preferences.html:115
308−#: searx/templates/oscar/preferences.html:185
324+#: searx/templates/oscar/preferences.html:240
309325#: searx/templates/pix-art/preferences.html:78
310326msgid "save"
311327msgstr "enregistrer"
312328
313329#: searx/templates/courgette/preferences.html:128
314330#: searx/templates/default/preferences.html:116
315−#: searx/templates/oscar/preferences.html:187
331+#: searx/templates/oscar/preferences.html:242
316332msgid "Reset defaults"
317333msgstr "Remettre les valeurs par défaut"
318334
319335#: searx/templates/courgette/preferences.html:129
320336#: searx/templates/default/preferences.html:117
321−#: searx/templates/oscar/preferences.html:186
337+#: searx/templates/oscar/preferences.html:241
322338#: searx/templates/pix-art/preferences.html:79
323339msgid "back"
324340msgstr "retour"
@@ -428,51 +444,89 @@ msgid "Toggle navigation"
428444msgstr "Afficher/Masquer la navigation"
429445
430446#: searx/templates/oscar/preferences.html:17
431−#: searx/templates/oscar/preferences.html:24
447+#: searx/templates/oscar/preferences.html:25
432448msgid "General"
433449msgstr "Général"
434450
435451#: searx/templates/oscar/preferences.html:18
436−#: searx/templates/oscar/preferences.html:125
452+#: searx/templates/oscar/preferences.html:126
437453msgid "Engines"
438454msgstr "Moteurs"
439455
440456#: searx/templates/oscar/preferences.html:19
441−#: searx/templates/oscar/preferences.html:159
457+#: searx/templates/oscar/preferences.html:187
442458msgid "Plugins"
443459msgstr "Plugins"
444460
445−#: searx/templates/oscar/preferences.html:44
461+#: searx/templates/oscar/preferences.html:20
462+#: searx/templates/oscar/preferences.html:210
463+msgid "Cookies"
464+msgstr "Cookies"
465+
466+#: searx/templates/oscar/preferences.html:45
446467msgid "What language do you prefer for search?"
447468msgstr "Dans quelle langue préférez-vous effectuer la recherche ?"
448469
449−#: searx/templates/oscar/preferences.html:55
470+#: searx/templates/oscar/preferences.html:56
450471msgid "Change the language of the layout"
451472msgstr "Changer la langue d'affichage"
452473
453−#: searx/templates/oscar/preferences.html:65
474+#: searx/templates/oscar/preferences.html:66
454475msgid "Find stuff as you type"
455476msgstr "Chercher au fil de la saisie"
456477
457−#: searx/templates/oscar/preferences.html:76
478+#: searx/templates/oscar/preferences.html:77
458479msgid "Proxying image results through searx"
459480msgstr "Proxifier les images de résultats à travers searx"
460481
461−#: searx/templates/oscar/preferences.html:85
482+#: searx/templates/oscar/preferences.html:86
462483msgid ""
463484"Change how forms are submited, <a "
464485"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
465486" rel=\"external\">learn more about request methods</a>"
466487msgstr "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>"
467488
468−#: searx/templates/oscar/preferences.html:94
489+#: searx/templates/oscar/preferences.html:95
469490msgid "Filter content"
470491msgstr "Filtrer le contenu"
471492
472−#: searx/templates/oscar/preferences.html:104
493+#: searx/templates/oscar/preferences.html:105
473494msgid "Change searx layout"
474495msgstr "Modifier l'affichage de searx"
475496
497+#: searx/templates/oscar/preferences.html:143
498+#: searx/templates/oscar/preferences.html:151
499+msgid "Shortcut"
500+msgstr "Raccourcis"
501+
502+#: searx/templates/oscar/preferences.html:145
503+#: searx/templates/oscar/preferences.html:149
504+msgid "Avg. time"
505+msgstr "Temps moy."
506+
507+#: searx/templates/oscar/preferences.html:146
508+#: searx/templates/oscar/preferences.html:148
509+msgid "Max time"
510+msgstr "Temps max"
511+
512+#: searx/templates/oscar/preferences.html:213
513+msgid ""
514+"This is the list of cookies and their values searx is storing on your "
515+"computer."
516+msgstr "C'est une liste de cookies et de leurs valeurs que searx enregistre sur votre ordinateur."
517+
518+#: searx/templates/oscar/preferences.html:214
519+msgid "With that list, you can assess searx transparency."
520+msgstr "Avec cette liste, vous pouvez juger de la transparence de searx."
521+
522+#: searx/templates/oscar/preferences.html:219
523+msgid "Cookie name"
524+msgstr "Nom du cookie"
525+
526+#: searx/templates/oscar/preferences.html:220
527+msgid "Value"
528+msgstr "Valeur"
529+
476530#: searx/templates/oscar/results.html:7
477531msgid "Search results"
478532msgstr "Résultats de recherche"
@@ -522,6 +576,14 @@ msgstr "Attention !"
522576msgid "Please enable JavaScript to use full functionality of this site."
523577msgstr "Merci d'activer JavaScript pour utiliser toutes les fonctionnalités de ce site."
524578
579+#: searx/templates/oscar/messages/no_cookies.html:3
580+msgid "Information!"
581+msgstr "Information !"
582+
583+#: searx/templates/oscar/messages/no_cookies.html:4
584+msgid "currently, there are no cookies defined."
585+msgstr "il n'y a pas de cookies définit pour le moment."
586+
525587#: searx/templates/oscar/messages/no_data_available.html:4
526588msgid "There is currently no data available. "
527589msgstr "Aucune donnée disponible pour l'instant. "
searx/translations/he/LC_MESSAGES/messages.mo

Binary file not shown.

searx/translations/he/LC_MESSAGES/messages.po+118−56
@@ -12,10 +12,10 @@ msgid ""
1212msgstr ""
1313"Project-Id-Version: searx\n"
1414"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
15−"POT-Creation-Date: 2015-04-26 18:57+0200\n"
16−"PO-Revision-Date: 2015-04-27 06:42+0000\n"
15+"POT-Creation-Date: 2015-08-24 11:44+0200\n"
16+"PO-Revision-Date: 2015-08-24 11:19+0000\n"
1717"Last-Translator: GenghisKhan <genghiskhan@gmx.ca>\n"
18−"Language-Team: Hebrew (http://www.transifex.com/projects/p/searx/language/he/)\n"
18+"Language-Team: Hebrew (http://www.transifex.com/asciimoo/searx/language/he/)\n"
1919"MIME-Version: 1.0\n"
2020"Content-Type: text/plain; charset=UTF-8\n"
2121"Content-Transfer-Encoding: 8bit\n"
@@ -23,67 +23,67 @@ msgstr ""
2323"Language: he\n"
2424"Plural-Forms: nplurals=2; plural=(n != 1);\n"
2525
26−#: searx/webapp.py:104
26+#: searx/webapp.py:114
2727msgid "files"
2828msgstr "קבצים"
2929
30−#: searx/webapp.py:105
30+#: searx/webapp.py:115
3131msgid "general"
3232msgstr "כללי"
3333
34−#: searx/webapp.py:106
34+#: searx/webapp.py:116
3535msgid "music"
3636msgstr "מוזיקה"
3737
38−#: searx/webapp.py:107
38+#: searx/webapp.py:117
3939msgid "social media"
4040msgstr "מדיה חברתית"
4141
42−#: searx/webapp.py:108
42+#: searx/webapp.py:118
4343msgid "images"
4444msgstr "תמונות"
4545
46−#: searx/webapp.py:109
46+#: searx/webapp.py:119
4747msgid "videos"
4848msgstr "סרטונים"
4949
50−#: searx/webapp.py:110
50+#: searx/webapp.py:120
5151msgid "it"
5252msgstr "IT"
5353
54−#: searx/webapp.py:111
54+#: searx/webapp.py:121
5555msgid "news"
5656msgstr "חדשות"
5757
58−#: searx/webapp.py:112
58+#: searx/webapp.py:122
5959msgid "map"
6060msgstr "מפה"
6161
62−#: searx/webapp.py:396
62+#: searx/webapp.py:414
6363msgid "{minutes} minute(s) ago"
6464msgstr "לפני {minutes} דקות"
6565
66−#: searx/webapp.py:398
66+#: searx/webapp.py:416
6767msgid "{hours} hour(s), {minutes} minute(s) ago"
6868msgstr "לפני {hours} שעות, {minutes} דקות"
6969
70−#: searx/engines/__init__.py:182
70+#: searx/engines/__init__.py:185
7171msgid "Page loads (sec)"
7272msgstr "עומס עמוד (שניות)"
7373
74−#: searx/engines/__init__.py:186
74+#: searx/engines/__init__.py:189
7575msgid "Number of results"
7676msgstr "מספר תוצאות"
7777
78−#: searx/engines/__init__.py:190
78+#: searx/engines/__init__.py:193
7979msgid "Scores"
8080msgstr "דירוג"
8181
82−#: searx/engines/__init__.py:194
82+#: searx/engines/__init__.py:197
8383msgid "Scores per result"
8484msgstr "דירוג לכל תוצאה"
8585
86−#: searx/engines/__init__.py:198
86+#: searx/engines/__init__.py:201
8787msgid "Errors"
8888msgstr "שגיאות"
8989
@@ -98,12 +98,22 @@ msgstr "חפש בעת בחירת קטגוריה"
9898#: searx/plugins/search_on_category_select.py:19
9999msgid ""
100100"Perform search immediately if a category selected. Disable to select "
101−"multiple categories."
102−msgstr "בצע חיפוש מיד לאחר שקטגוריה נבחרת. נטרל כדי לבחור מספר קטגוריות."
101+"multiple categories. (JavaScript required)"
102+msgstr "בצע חיפוש לאלתר כאשר קטגוריה נבחרת. נטרל כדי לבחור קטגוריות מרובות. (מצריך JavaScript)"
103103
104−#: searx/plugins/self_ip.py:19
105−msgid "Display your source IP address if the query expression is \"ip\""
106−msgstr "הצג מקור כתובת IP כאשר מילת שאילתא היא \"ip\""
104+#: searx/plugins/self_info.py:20
105+msgid ""
106+"Displays your IP if the query is \"ip\" and your user agent if the query "
107+"contains \"user agent\"."
108+msgstr "מציגה כתובת IP המשוייכת לך אם השאילתא היא \"ip\" וגם סוכן משתמש אם שאילתא מכילה \"user agent\"."
109+
110+#: searx/plugins/tracker_url_remover.py:26
111+msgid "Tracker URL remover"
112+msgstr "מסיר URL גשש"
113+
114+#: searx/plugins/tracker_url_remover.py:27
115+msgid "Remove trackers arguments from the returned URL"
116+msgstr "הסר ארגומנטים מאתרים מתוך URL מוחזר"
107117
108118#: searx/templates/courgette/index.html:9
109119#: searx/templates/courgette/index.html:13
@@ -131,90 +141,92 @@ msgstr "העדפות"
131141
132142#: searx/templates/courgette/preferences.html:9
133143#: searx/templates/default/preferences.html:9
134−#: searx/templates/oscar/preferences.html:35
135−#: searx/templates/oscar/preferences.html:37
144+#: searx/templates/oscar/preferences.html:36
145+#: searx/templates/oscar/preferences.html:38
136146msgid "Default categories"
137147msgstr "קטגוריות ברירת מחדל"
138148
139149#: searx/templates/courgette/preferences.html:13
140150#: searx/templates/default/preferences.html:14
141−#: searx/templates/oscar/preferences.html:43
151+#: searx/templates/oscar/preferences.html:44
142152#: searx/templates/pix-art/preferences.html:9
143153msgid "Search language"
144154msgstr "שפת חיפוש"
145155
146156#: searx/templates/courgette/preferences.html:16
147157#: searx/templates/default/preferences.html:17
148−#: searx/templates/oscar/preferences.html:47
158+#: searx/templates/oscar/preferences.html:48
149159#: searx/templates/pix-art/preferences.html:12
150160msgid "Automatic"
151161msgstr "אוטומטי"
152162
153163#: searx/templates/courgette/preferences.html:24
154164#: searx/templates/default/preferences.html:25
155−#: searx/templates/oscar/preferences.html:54
165+#: searx/templates/oscar/preferences.html:55
156166#: searx/templates/pix-art/preferences.html:20
157167msgid "Interface language"
158168msgstr "שפת ממשק"
159169
160170#: searx/templates/courgette/preferences.html:34
161171#: searx/templates/default/preferences.html:35
162−#: searx/templates/oscar/preferences.html:64
172+#: searx/templates/oscar/preferences.html:65
163173msgid "Autocomplete"
164174msgstr "השלמה אוטומטית"
165175
166176#: searx/templates/courgette/preferences.html:45
167177#: searx/templates/default/preferences.html:46
168−#: searx/templates/oscar/preferences.html:75
178+#: searx/templates/oscar/preferences.html:76
169179msgid "Image proxy"
170180msgstr "proxy תמונה"
171181
172182#: searx/templates/courgette/preferences.html:48
173183#: searx/templates/default/preferences.html:49
174−#: searx/templates/oscar/preferences.html:79
184+#: searx/templates/oscar/preferences.html:80
175185msgid "Enabled"
176186msgstr "מאופשר"
177187
178188#: searx/templates/courgette/preferences.html:49
179189#: searx/templates/default/preferences.html:50
180−#: searx/templates/oscar/preferences.html:80
190+#: searx/templates/oscar/preferences.html:81
181191msgid "Disabled"
182192msgstr "מנוטרל"
183193
184194#: searx/templates/courgette/preferences.html:54
185195#: searx/templates/default/preferences.html:55
186−#: searx/templates/oscar/preferences.html:84
196+#: searx/templates/oscar/preferences.html:85
187197#: searx/templates/pix-art/preferences.html:30
188198msgid "Method"
189199msgstr "שיטה"
190200
191201#: searx/templates/courgette/preferences.html:63
192202#: searx/templates/default/preferences.html:64
193−#: searx/templates/oscar/preferences.html:93
203+#: searx/templates/oscar/preferences.html:94
204+#: searx/templates/oscar/preferences.html:144
205+#: searx/templates/oscar/preferences.html:150
194206msgid "SafeSearch"
195207msgstr "חיפוש בטוח"
196208
197209#: searx/templates/courgette/preferences.html:66
198210#: searx/templates/default/preferences.html:67
199−#: searx/templates/oscar/preferences.html:97
211+#: searx/templates/oscar/preferences.html:98
200212msgid "Strict"
201213msgstr "מחמיר"
202214
203215#: searx/templates/courgette/preferences.html:67
204216#: searx/templates/default/preferences.html:68
205−#: searx/templates/oscar/preferences.html:98
217+#: searx/templates/oscar/preferences.html:99
206218msgid "Moderate"
207219msgstr "מתון"
208220
209221#: searx/templates/courgette/preferences.html:68
210222#: searx/templates/default/preferences.html:69
211−#: searx/templates/oscar/preferences.html:99
223+#: searx/templates/oscar/preferences.html:100
212224msgid "None"
213225msgstr "בלי"
214226
215227#: searx/templates/courgette/preferences.html:73
216228#: searx/templates/default/preferences.html:74
217−#: searx/templates/oscar/preferences.html:103
229+#: searx/templates/oscar/preferences.html:104
218230#: searx/templates/pix-art/preferences.html:39
219231msgid "Themes"
220232msgstr "מוטיבים"
@@ -251,10 +263,12 @@ msgstr "אדום"
251263#: searx/templates/default/preferences.html:84
252264#: searx/templates/pix-art/preferences.html:49
253265msgid "Currently used search engines"
254−msgstr "מנועי חיפוש שבשימוש עתה"
266+msgstr "מנועי חיפוש בשימוש עתה"
255267
256268#: searx/templates/courgette/preferences.html:100
257269#: searx/templates/default/preferences.html:88
270+#: searx/templates/oscar/preferences.html:142
271+#: searx/templates/oscar/preferences.html:152
258272#: searx/templates/pix-art/preferences.html:53
259273msgid "Engine name"
260274msgstr "שם מנוע"
@@ -269,6 +283,8 @@ msgstr "קטגוריה"
269283#: searx/templates/default/preferences.html:90
270284#: searx/templates/default/preferences.html:101
271285#: searx/templates/oscar/macros.html:67
286+#: searx/templates/oscar/preferences.html:141
287+#: searx/templates/oscar/preferences.html:153
272288#: searx/templates/pix-art/preferences.html:54
273289#: searx/templates/pix-art/preferences.html:64
274290msgid "Allow"
@@ -286,7 +302,7 @@ msgstr "חסום"
286302
287303#: searx/templates/courgette/preferences.html:122
288304#: searx/templates/default/preferences.html:110
289−#: searx/templates/oscar/preferences.html:180
305+#: searx/templates/oscar/preferences.html:235
290306#: searx/templates/pix-art/preferences.html:73
291307msgid ""
292308"These settings are stored in your cookies, this allows us not to store this "
@@ -295,7 +311,7 @@ msgstr "הגדרות אלו מאוחסנות בתוך העוגיות שלך, א
295311
296312#: searx/templates/courgette/preferences.html:124
297313#: searx/templates/default/preferences.html:112
298−#: searx/templates/oscar/preferences.html:182
314+#: searx/templates/oscar/preferences.html:237
299315#: searx/templates/pix-art/preferences.html:75
300316msgid ""
301317"These cookies serve your sole convenience, we don't use these cookies to "
@@ -304,20 +320,20 @@ msgstr "עוגיות אלו משרתות את נוחותך הבלעדית, אנ
304320
305321#: searx/templates/courgette/preferences.html:127
306322#: searx/templates/default/preferences.html:115
307−#: searx/templates/oscar/preferences.html:185
323+#: searx/templates/oscar/preferences.html:240
308324#: searx/templates/pix-art/preferences.html:78
309325msgid "save"
310326msgstr "שמור"
311327
312328#: searx/templates/courgette/preferences.html:128
313329#: searx/templates/default/preferences.html:116
314−#: searx/templates/oscar/preferences.html:187
330+#: searx/templates/oscar/preferences.html:242
315331msgid "Reset defaults"
316332msgstr "אפס ברירות מחדל"
317333
318334#: searx/templates/courgette/preferences.html:129
319335#: searx/templates/default/preferences.html:117
320−#: searx/templates/oscar/preferences.html:186
336+#: searx/templates/oscar/preferences.html:241
321337#: searx/templates/pix-art/preferences.html:79
322338msgid "back"
323339msgstr "חזור"
@@ -412,7 +428,7 @@ msgstr "מוטמן"
412428
413429#: searx/templates/oscar/base.html:78
414430msgid "Powered by"
415−msgstr "ממונע באמצעות"
431+msgstr "מופעל באמצעות"
416432
417433#: searx/templates/oscar/base.html:78
418434msgid "a privacy-respecting, hackable metasearch engine"
@@ -427,51 +443,89 @@ msgid "Toggle navigation"
427443msgstr "Toggle ניווט"
428444
429445#: searx/templates/oscar/preferences.html:17
430−#: searx/templates/oscar/preferences.html:24
446+#: searx/templates/oscar/preferences.html:25
431447msgid "General"
432448msgstr "כללי"
433449
434450#: searx/templates/oscar/preferences.html:18
435−#: searx/templates/oscar/preferences.html:125
451+#: searx/templates/oscar/preferences.html:126
436452msgid "Engines"
437453msgstr "מנועים"
438454
439455#: searx/templates/oscar/preferences.html:19
440−#: searx/templates/oscar/preferences.html:159
456+#: searx/templates/oscar/preferences.html:187
441457msgid "Plugins"
442458msgstr "תוספים"
443459
444−#: searx/templates/oscar/preferences.html:44
460+#: searx/templates/oscar/preferences.html:20
461+#: searx/templates/oscar/preferences.html:210
462+msgid "Cookies"
463+msgstr "עוגיות"
464+
465+#: searx/templates/oscar/preferences.html:45
445466msgid "What language do you prefer for search?"
446467msgstr "איזו שפה אתם מעדיפים לצורך חיפוש?"
447468
448−#: searx/templates/oscar/preferences.html:55
469+#: searx/templates/oscar/preferences.html:56
449470msgid "Change the language of the layout"
450471msgstr "שינוי שפת הממשק"
451472
452−#: searx/templates/oscar/preferences.html:65
473+#: searx/templates/oscar/preferences.html:66
453474msgid "Find stuff as you type"
454475msgstr "מציאת דברים בזמן הקלדה"
455476
456−#: searx/templates/oscar/preferences.html:76
477+#: searx/templates/oscar/preferences.html:77
457478msgid "Proxying image results through searx"
458479msgstr "Proxying תוצאות תמונה מבעד searx"
459480
460−#: searx/templates/oscar/preferences.html:85
481+#: searx/templates/oscar/preferences.html:86
461482msgid ""
462483"Change how forms are submited, <a "
463484"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
464485" rel=\"external\">learn more about request methods</a>"
465486msgstr "שינוי האופן בו טפסים נשלחים, <a href=\"http://he.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">למדו עוד אודות שיטות בקשה (request methods)</a>"
466487
467−#: searx/templates/oscar/preferences.html:94
488+#: searx/templates/oscar/preferences.html:95
468489msgid "Filter content"
469490msgstr "סנן תוכן"
470491
471−#: searx/templates/oscar/preferences.html:104
492+#: searx/templates/oscar/preferences.html:105
472493msgid "Change searx layout"
473494msgstr "שינוי ממשק searx"
474495
496+#: searx/templates/oscar/preferences.html:143
497+#: searx/templates/oscar/preferences.html:151
498+msgid "Shortcut"
499+msgstr "קיצור דרך"
500+
501+#: searx/templates/oscar/preferences.html:145
502+#: searx/templates/oscar/preferences.html:149
503+msgid "Avg. time"
504+msgstr "זמן ממוצע"
505+
506+#: searx/templates/oscar/preferences.html:146
507+#: searx/templates/oscar/preferences.html:148
508+msgid "Max time"
509+msgstr "זמן מירבי"
510+
511+#: searx/templates/oscar/preferences.html:213
512+msgid ""
513+"This is the list of cookies and their values searx is storing on your "
514+"computer."
515+msgstr "זוהי רשימה של עוגיות וערכיהן אשר searx מאחסנת על המחשב שלך."
516+
517+#: searx/templates/oscar/preferences.html:214
518+msgid "With that list, you can assess searx transparency."
519+msgstr "בעזרת רשימה זו, באפשרותך לגשת אל searx transparency."
520+
521+#: searx/templates/oscar/preferences.html:219
522+msgid "Cookie name"
523+msgstr "שם עוגייה"
524+
525+#: searx/templates/oscar/preferences.html:220
526+msgid "Value"
527+msgstr "ערך"
528+
475529#: searx/templates/oscar/results.html:7
476530msgid "Search results"
477531msgstr "תוצאות חיפוש"
@@ -521,6 +575,14 @@ msgstr "אזהרה!"
521575msgid "Please enable JavaScript to use full functionality of this site."
522576msgstr "אנא אפשרו JavaScript כדי לנצל תפקודיות מלאה של אתר זה."
523577
578+#: searx/templates/oscar/messages/no_cookies.html:3
579+msgid "Information!"
580+msgstr "מידע!"
581+
582+#: searx/templates/oscar/messages/no_cookies.html:4
583+msgid "currently, there are no cookies defined."
584+msgstr "ברגע זה, אין עוגיות מוגדרות."
585+
524586#: searx/templates/oscar/messages/no_data_available.html:4
525587msgid "There is currently no data available. "
526588msgstr "אין כעת מידע זמין. "
searx/translations/hu/LC_MESSAGES/messages.mo

Binary file not shown.

searx/translations/hu/LC_MESSAGES/messages.po+116−54
@@ -9,10 +9,10 @@ msgid ""
99msgstr ""
1010"Project-Id-Version: searx\n"
1111"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
12−"POT-Creation-Date: 2015-04-26 18:57+0200\n"
13−"PO-Revision-Date: 2015-04-26 17:13+0000\n"
12+"POT-Creation-Date: 2015-08-24 11:44+0200\n"
13+"PO-Revision-Date: 2015-08-25 16:29+0000\n"
1414"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
15−"Language-Team: Hungarian (http://www.transifex.com/projects/p/searx/language/hu/)\n"
15+"Language-Team: Hungarian (http://www.transifex.com/asciimoo/searx/language/hu/)\n"
1616"MIME-Version: 1.0\n"
1717"Content-Type: text/plain; charset=UTF-8\n"
1818"Content-Transfer-Encoding: 8bit\n"
@@ -20,67 +20,67 @@ msgstr ""
2020"Language: hu\n"
2121"Plural-Forms: nplurals=2; plural=(n != 1);\n"
2222
23−#: searx/webapp.py:104
23+#: searx/webapp.py:114
2424msgid "files"
2525msgstr "fájlok"
2626
27−#: searx/webapp.py:105
27+#: searx/webapp.py:115
2828msgid "general"
2929msgstr "általános"
3030
31−#: searx/webapp.py:106
31+#: searx/webapp.py:116
3232msgid "music"
3333msgstr "zene"
3434
35−#: searx/webapp.py:107
35+#: searx/webapp.py:117
3636msgid "social media"
3737msgstr "közösségi média"
3838
39−#: searx/webapp.py:108
39+#: searx/webapp.py:118
4040msgid "images"
4141msgstr "képek"
4242
43−#: searx/webapp.py:109
43+#: searx/webapp.py:119
4444msgid "videos"
4545msgstr "videók"
4646
47−#: searx/webapp.py:110
47+#: searx/webapp.py:120
4848msgid "it"
4949msgstr "it"
5050
51−#: searx/webapp.py:111
51+#: searx/webapp.py:121
5252msgid "news"
5353msgstr "hírek"
5454
55−#: searx/webapp.py:112
55+#: searx/webapp.py:122
5656msgid "map"
5757msgstr "térkép"
5858
59−#: searx/webapp.py:396
59+#: searx/webapp.py:414
6060msgid "{minutes} minute(s) ago"
6161msgstr "{minutes} perce"
6262
63−#: searx/webapp.py:398
63+#: searx/webapp.py:416
6464msgid "{hours} hour(s), {minutes} minute(s) ago"
6565msgstr "{hours} óra, {minutes} perce"
6666
67−#: searx/engines/__init__.py:182
67+#: searx/engines/__init__.py:185
6868msgid "Page loads (sec)"
6969msgstr "Válaszidők (sec)"
7070
71−#: searx/engines/__init__.py:186
71+#: searx/engines/__init__.py:189
7272msgid "Number of results"
7373msgstr "Találatok száma"
7474
75−#: searx/engines/__init__.py:190
75+#: searx/engines/__init__.py:193
7676msgid "Scores"
7777msgstr "Pontszámok"
7878
79−#: searx/engines/__init__.py:194
79+#: searx/engines/__init__.py:197
8080msgid "Scores per result"
8181msgstr "Pontszámok találatonként"
8282
83−#: searx/engines/__init__.py:198
83+#: searx/engines/__init__.py:201
8484msgid "Errors"
8585msgstr "Hibák"
8686
@@ -95,12 +95,22 @@ msgstr "Azonnal keresés kategória választással"
9595#: searx/plugins/search_on_category_select.py:19
9696msgid ""
9797"Perform search immediately if a category selected. Disable to select "
98−"multiple categories."
99−msgstr "Keresés megkezdése kategória kiválasztáskor. Több kategória kiválasztásához deaktiválás szükséges"
98+"multiple categories. (JavaScript required)"
99+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)"
100100
101−#: searx/plugins/self_ip.py:19
102−msgid "Display your source IP address if the query expression is \"ip\""
103−msgstr "Saját IP cím megjelenítése az \"ip\" kulcsszóra keresve"
101+#: searx/plugins/self_info.py:20
102+msgid ""
103+"Displays your IP if the query is \"ip\" and your user agent if the query "
104+"contains \"user agent\"."
105+msgstr "Saját IP cím, user agent megjelenítés az \"ip\", \"user agent\" szavakra keresve."
106+
107+#: searx/plugins/tracker_url_remover.py:26
108+msgid "Tracker URL remover"
109+msgstr "Tracker URL eltávolítás"
110+
111+#: searx/plugins/tracker_url_remover.py:27
112+msgid "Remove trackers arguments from the returned URL"
113+msgstr "Felhasználó követéshez használt találati URL paraméterek eltávolítása"
104114
105115#: searx/templates/courgette/index.html:9
106116#: searx/templates/courgette/index.html:13
@@ -128,90 +138,92 @@ msgstr "Beállítások"
128138
129139#: searx/templates/courgette/preferences.html:9
130140#: searx/templates/default/preferences.html:9
131−#: searx/templates/oscar/preferences.html:35
132−#: searx/templates/oscar/preferences.html:37
141+#: searx/templates/oscar/preferences.html:36
142+#: searx/templates/oscar/preferences.html:38
133143msgid "Default categories"
134144msgstr "Alapértelmezett kategóriák"
135145
136146#: searx/templates/courgette/preferences.html:13
137147#: searx/templates/default/preferences.html:14
138−#: searx/templates/oscar/preferences.html:43
148+#: searx/templates/oscar/preferences.html:44
139149#: searx/templates/pix-art/preferences.html:9
140150msgid "Search language"
141151msgstr "Keresés nyelve"
142152
143153#: searx/templates/courgette/preferences.html:16
144154#: searx/templates/default/preferences.html:17
145−#: searx/templates/oscar/preferences.html:47
155+#: searx/templates/oscar/preferences.html:48
146156#: searx/templates/pix-art/preferences.html:12
147157msgid "Automatic"
148158msgstr "Automatikus"
149159
150160#: searx/templates/courgette/preferences.html:24
151161#: searx/templates/default/preferences.html:25
152−#: searx/templates/oscar/preferences.html:54
162+#: searx/templates/oscar/preferences.html:55
153163#: searx/templates/pix-art/preferences.html:20
154164msgid "Interface language"
155165msgstr "Felület nyelve"
156166
157167#: searx/templates/courgette/preferences.html:34
158168#: searx/templates/default/preferences.html:35
159−#: searx/templates/oscar/preferences.html:64
169+#: searx/templates/oscar/preferences.html:65
160170msgid "Autocomplete"
161171msgstr "Automatikus kiegészítés"
162172
163173#: searx/templates/courgette/preferences.html:45
164174#: searx/templates/default/preferences.html:46
165−#: searx/templates/oscar/preferences.html:75
175+#: searx/templates/oscar/preferences.html:76
166176msgid "Image proxy"
167177msgstr "Kép proxy"
168178
169179#: searx/templates/courgette/preferences.html:48
170180#: searx/templates/default/preferences.html:49
171−#: searx/templates/oscar/preferences.html:79
181+#: searx/templates/oscar/preferences.html:80
172182msgid "Enabled"
173183msgstr "Engedélyez"
174184
175185#: searx/templates/courgette/preferences.html:49
176186#: searx/templates/default/preferences.html:50
177−#: searx/templates/oscar/preferences.html:80
187+#: searx/templates/oscar/preferences.html:81
178188msgid "Disabled"
179189msgstr "Inaktivál"
180190
181191#: searx/templates/courgette/preferences.html:54
182192#: searx/templates/default/preferences.html:55
183−#: searx/templates/oscar/preferences.html:84
193+#: searx/templates/oscar/preferences.html:85
184194#: searx/templates/pix-art/preferences.html:30
185195msgid "Method"
186196msgstr "Method"
187197
188198#: searx/templates/courgette/preferences.html:63
189199#: searx/templates/default/preferences.html:64
190−#: searx/templates/oscar/preferences.html:93
200+#: searx/templates/oscar/preferences.html:94
201+#: searx/templates/oscar/preferences.html:144
202+#: searx/templates/oscar/preferences.html:150
191203msgid "SafeSearch"
192204msgstr "Felnőtt tartalom szűrés"
193205
194206#: searx/templates/courgette/preferences.html:66
195207#: searx/templates/default/preferences.html:67
196−#: searx/templates/oscar/preferences.html:97
208+#: searx/templates/oscar/preferences.html:98
197209msgid "Strict"
198210msgstr "Erős"
199211
200212#: searx/templates/courgette/preferences.html:67
201213#: searx/templates/default/preferences.html:68
202−#: searx/templates/oscar/preferences.html:98
214+#: searx/templates/oscar/preferences.html:99
203215msgid "Moderate"
204216msgstr "Enyhe"
205217
206218#: searx/templates/courgette/preferences.html:68
207219#: searx/templates/default/preferences.html:69
208−#: searx/templates/oscar/preferences.html:99
220+#: searx/templates/oscar/preferences.html:100
209221msgid "None"
210222msgstr "Nincs"
211223
212224#: searx/templates/courgette/preferences.html:73
213225#: searx/templates/default/preferences.html:74
214−#: searx/templates/oscar/preferences.html:103
226+#: searx/templates/oscar/preferences.html:104
215227#: searx/templates/pix-art/preferences.html:39
216228msgid "Themes"
217229msgstr "Megjelenés"
@@ -252,6 +264,8 @@ msgstr "Jelenleg használt keresők"
252264
253265#: searx/templates/courgette/preferences.html:100
254266#: searx/templates/default/preferences.html:88
267+#: searx/templates/oscar/preferences.html:142
268+#: searx/templates/oscar/preferences.html:152
255269#: searx/templates/pix-art/preferences.html:53
256270msgid "Engine name"
257271msgstr "Kereső neve"
@@ -266,6 +280,8 @@ msgstr "Kategória"
266280#: searx/templates/default/preferences.html:90
267281#: searx/templates/default/preferences.html:101
268282#: searx/templates/oscar/macros.html:67
283+#: searx/templates/oscar/preferences.html:141
284+#: searx/templates/oscar/preferences.html:153
269285#: searx/templates/pix-art/preferences.html:54
270286#: searx/templates/pix-art/preferences.html:64
271287msgid "Allow"
@@ -283,7 +299,7 @@ msgstr "Tiltás"
283299
284300#: searx/templates/courgette/preferences.html:122
285301#: searx/templates/default/preferences.html:110
286−#: searx/templates/oscar/preferences.html:180
302+#: searx/templates/oscar/preferences.html:235
287303#: searx/templates/pix-art/preferences.html:73
288304msgid ""
289305"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."
292308
293309#: searx/templates/courgette/preferences.html:124
294310#: searx/templates/default/preferences.html:112
295−#: searx/templates/oscar/preferences.html:182
311+#: searx/templates/oscar/preferences.html:237
296312#: searx/templates/pix-art/preferences.html:75
297313msgid ""
298314"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
301317
302318#: searx/templates/courgette/preferences.html:127
303319#: searx/templates/default/preferences.html:115
304−#: searx/templates/oscar/preferences.html:185
320+#: searx/templates/oscar/preferences.html:240
305321#: searx/templates/pix-art/preferences.html:78
306322msgid "save"
307323msgstr "mentés"
308324
309325#: searx/templates/courgette/preferences.html:128
310326#: searx/templates/default/preferences.html:116
311−#: searx/templates/oscar/preferences.html:187
327+#: searx/templates/oscar/preferences.html:242
312328msgid "Reset defaults"
313329msgstr "Alapbeállítások visszaállítása"
314330
315331#: searx/templates/courgette/preferences.html:129
316332#: searx/templates/default/preferences.html:117
317−#: searx/templates/oscar/preferences.html:186
333+#: searx/templates/oscar/preferences.html:241
318334#: searx/templates/pix-art/preferences.html:79
319335msgid "back"
320336msgstr "vissza"
@@ -424,51 +440,89 @@ msgid "Toggle navigation"
424440msgstr "Navigáció megjelenítés"
425441
426442#: searx/templates/oscar/preferences.html:17
427−#: searx/templates/oscar/preferences.html:24
443+#: searx/templates/oscar/preferences.html:25
428444msgid "General"
429445msgstr "Általános"
430446
431447#: searx/templates/oscar/preferences.html:18
432−#: searx/templates/oscar/preferences.html:125
448+#: searx/templates/oscar/preferences.html:126
433449msgid "Engines"
434450msgstr "Kereső motorok"
435451
436452#: searx/templates/oscar/preferences.html:19
437−#: searx/templates/oscar/preferences.html:159
453+#: searx/templates/oscar/preferences.html:187
438454msgid "Plugins"
439455msgstr "Pluginek"
440456
441−#: searx/templates/oscar/preferences.html:44
457+#: searx/templates/oscar/preferences.html:20
458+#: searx/templates/oscar/preferences.html:210
459+msgid "Cookies"
460+msgstr "Sütik"
461+
462+#: searx/templates/oscar/preferences.html:45
442463msgid "What language do you prefer for search?"
443464msgstr "Preferált keresési nyelv"
444465
445−#: searx/templates/oscar/preferences.html:55
466+#: searx/templates/oscar/preferences.html:56
446467msgid "Change the language of the layout"
447468msgstr "Felület nyelve"
448469
449−#: searx/templates/oscar/preferences.html:65
470+#: searx/templates/oscar/preferences.html:66
450471msgid "Find stuff as you type"
451472msgstr "Autómatikus kereső kifejezés kiegészítés"
452473
453−#: searx/templates/oscar/preferences.html:76
474+#: searx/templates/oscar/preferences.html:77
454475msgid "Proxying image results through searx"
455476msgstr "Kép találatok betöltése searx-ön keresztül"
456477
457−#: searx/templates/oscar/preferences.html:85
478+#: searx/templates/oscar/preferences.html:86
458479msgid ""
459480"Change how forms are submited, <a "
460481"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
461482" rel=\"external\">learn more about request methods</a>"
462483msgstr "Keresés metódusa (<a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">bővebben</a>)"
463484
464−#: searx/templates/oscar/preferences.html:94
485+#: searx/templates/oscar/preferences.html:95
465486msgid "Filter content"
466487msgstr "Tartalom szűrés"
467488
468−#: searx/templates/oscar/preferences.html:104
489+#: searx/templates/oscar/preferences.html:105
469490msgid "Change searx layout"
470491msgstr "Megjelenés"
471492
493+#: searx/templates/oscar/preferences.html:143
494+#: searx/templates/oscar/preferences.html:151
495+msgid "Shortcut"
496+msgstr "Rövidítés"
497+
498+#: searx/templates/oscar/preferences.html:145
499+#: searx/templates/oscar/preferences.html:149
500+msgid "Avg. time"
501+msgstr "Átlag idő"
502+
503+#: searx/templates/oscar/preferences.html:146
504+#: searx/templates/oscar/preferences.html:148
505+msgid "Max time"
506+msgstr "Maximális idő"
507+
508+#: searx/templates/oscar/preferences.html:213
509+msgid ""
510+"This is the list of cookies and their values searx is storing on your "
511+"computer."
512+msgstr "Searx által használt sütik listája."
513+
514+#: searx/templates/oscar/preferences.html:214
515+msgid "With that list, you can assess searx transparency."
516+msgstr "Ez a lista a kereső transzparenciáját hivatott megmutatni."
517+
518+#: searx/templates/oscar/preferences.html:219
519+msgid "Cookie name"
520+msgstr "Süti név"
521+
522+#: searx/templates/oscar/preferences.html:220
523+msgid "Value"
524+msgstr "Érték"
525+
472526#: searx/templates/oscar/results.html:7
473527msgid "Search results"
474528msgstr "Keresési eredmények"
@@ -518,6 +572,14 @@ msgstr "Figyelem!"
518572msgid "Please enable JavaScript to use full functionality of this site."
519573msgstr "Engedélyezze a javascript-et a teljes funkcionalitás használathoz"
520574
575+#: searx/templates/oscar/messages/no_cookies.html:3
576+msgid "Information!"
577+msgstr "Figyelem!"
578+
579+#: searx/templates/oscar/messages/no_cookies.html:4
580+msgid "currently, there are no cookies defined."
581+msgstr "jelenleg nincs süti definiálva"
582+
521583#: searx/templates/oscar/messages/no_data_available.html:4
522584msgid "There is currently no data available. "
523585msgstr "Nincs megjeleníthető adat."
searx/translations/it/LC_MESSAGES/messages.mo

Binary file not shown.

searx/translations/it/LC_MESSAGES/messages.po+115−53
@@ -9,10 +9,10 @@ msgid ""
99msgstr ""
1010"Project-Id-Version: searx\n"
1111"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
12−"POT-Creation-Date: 2015-04-26 18:57+0200\n"
13−"PO-Revision-Date: 2015-04-26 17:02+0000\n"
14−"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
15−"Language-Team: Italian (http://www.transifex.com/projects/p/searx/language/it/)\n"
12+"POT-Creation-Date: 2015-08-24 11:44+0200\n"
13+"PO-Revision-Date: 2015-08-24 09:45+0000\n"
14+"Last-Translator: pointhi\n"
15+"Language-Team: Italian (http://www.transifex.com/asciimoo/searx/language/it/)\n"
1616"MIME-Version: 1.0\n"
1717"Content-Type: text/plain; charset=UTF-8\n"
1818"Content-Transfer-Encoding: 8bit\n"
@@ -20,67 +20,67 @@ msgstr ""
2020"Language: it\n"
2121"Plural-Forms: nplurals=2; plural=(n != 1);\n"
2222
23−#: searx/webapp.py:104
23+#: searx/webapp.py:114
2424msgid "files"
2525msgstr "documenti"
2626
27−#: searx/webapp.py:105
27+#: searx/webapp.py:115
2828msgid "general"
2929msgstr "generale"
3030
31−#: searx/webapp.py:106
31+#: searx/webapp.py:116
3232msgid "music"
3333msgstr "musica"
3434
35−#: searx/webapp.py:107
35+#: searx/webapp.py:117
3636msgid "social media"
3737msgstr "social media"
3838
39−#: searx/webapp.py:108
39+#: searx/webapp.py:118
4040msgid "images"
4141msgstr "immagini"
4242
43−#: searx/webapp.py:109
43+#: searx/webapp.py:119
4444msgid "videos"
4545msgstr "video"
4646
47−#: searx/webapp.py:110
47+#: searx/webapp.py:120
4848msgid "it"
4949msgstr "it"
5050
51−#: searx/webapp.py:111
51+#: searx/webapp.py:121
5252msgid "news"
5353msgstr "notizie"
5454
55−#: searx/webapp.py:112
55+#: searx/webapp.py:122
5656msgid "map"
5757msgstr "mappe"
5858
59−#: searx/webapp.py:396
59+#: searx/webapp.py:414
6060msgid "{minutes} minute(s) ago"
6161msgstr "di {minutes} minuti fa"
6262
63−#: searx/webapp.py:398
63+#: searx/webapp.py:416
6464msgid "{hours} hour(s), {minutes} minute(s) ago"
6565msgstr "di {ore} h e {minutes} minuti fa"
6666
67−#: searx/engines/__init__.py:182
67+#: searx/engines/__init__.py:185
6868msgid "Page loads (sec)"
6969msgstr " Caricamento della pagina (secondi)"
7070
71−#: searx/engines/__init__.py:186
71+#: searx/engines/__init__.py:189
7272msgid "Number of results"
7373msgstr "Risultati ottenuti"
7474
75−#: searx/engines/__init__.py:190
75+#: searx/engines/__init__.py:193
7676msgid "Scores"
7777msgstr "Punteggio"
7878
79−#: searx/engines/__init__.py:194
79+#: searx/engines/__init__.py:197
8080msgid "Scores per result"
8181msgstr "Punteggio per risultato"
8282
83−#: searx/engines/__init__.py:198
83+#: searx/engines/__init__.py:201
8484msgid "Errors"
8585msgstr "Errori"
8686
@@ -95,11 +95,21 @@ msgstr ""
9595#: searx/plugins/search_on_category_select.py:19
9696msgid ""
9797"Perform search immediately if a category selected. Disable to select "
98−"multiple categories."
98+"multiple categories. (JavaScript required)"
9999msgstr ""
100100
101−#: searx/plugins/self_ip.py:19
102−msgid "Display your source IP address if the query expression is \"ip\""
101+#: searx/plugins/self_info.py:20
102+msgid ""
103+"Displays your IP if the query is \"ip\" and your user agent if the query "
104+"contains \"user agent\"."
105+msgstr ""
106+
107+#: searx/plugins/tracker_url_remover.py:26
108+msgid "Tracker URL remover"
109+msgstr ""
110+
111+#: searx/plugins/tracker_url_remover.py:27
112+msgid "Remove trackers arguments from the returned URL"
103113msgstr ""
104114
105115#: searx/templates/courgette/index.html:9
@@ -128,90 +138,92 @@ msgstr "Preferenze"
128138
129139#: searx/templates/courgette/preferences.html:9
130140#: searx/templates/default/preferences.html:9
131−#: searx/templates/oscar/preferences.html:35
132−#: searx/templates/oscar/preferences.html:37
141+#: searx/templates/oscar/preferences.html:36
142+#: searx/templates/oscar/preferences.html:38
133143msgid "Default categories"
134144msgstr "Categorie predefinite"
135145
136146#: searx/templates/courgette/preferences.html:13
137147#: searx/templates/default/preferences.html:14
138−#: searx/templates/oscar/preferences.html:43
148+#: searx/templates/oscar/preferences.html:44
139149#: searx/templates/pix-art/preferences.html:9
140150msgid "Search language"
141151msgstr "Lingua di ricerca"
142152
143153#: searx/templates/courgette/preferences.html:16
144154#: searx/templates/default/preferences.html:17
145−#: searx/templates/oscar/preferences.html:47
155+#: searx/templates/oscar/preferences.html:48
146156#: searx/templates/pix-art/preferences.html:12
147157msgid "Automatic"
148158msgstr "Automatico"
149159
150160#: searx/templates/courgette/preferences.html:24
151161#: searx/templates/default/preferences.html:25
152−#: searx/templates/oscar/preferences.html:54
162+#: searx/templates/oscar/preferences.html:55
153163#: searx/templates/pix-art/preferences.html:20
154164msgid "Interface language"
155165msgstr "Linguaggio dell'interfaccia"
156166
157167#: searx/templates/courgette/preferences.html:34
158168#: searx/templates/default/preferences.html:35
159−#: searx/templates/oscar/preferences.html:64
169+#: searx/templates/oscar/preferences.html:65
160170msgid "Autocomplete"
161171msgstr "Completamento automatico"
162172
163173#: searx/templates/courgette/preferences.html:45
164174#: searx/templates/default/preferences.html:46
165−#: searx/templates/oscar/preferences.html:75
175+#: searx/templates/oscar/preferences.html:76
166176msgid "Image proxy"
167177msgstr ""
168178
169179#: searx/templates/courgette/preferences.html:48
170180#: searx/templates/default/preferences.html:49
171−#: searx/templates/oscar/preferences.html:79
181+#: searx/templates/oscar/preferences.html:80
172182msgid "Enabled"
173183msgstr ""
174184
175185#: searx/templates/courgette/preferences.html:49
176186#: searx/templates/default/preferences.html:50
177−#: searx/templates/oscar/preferences.html:80
187+#: searx/templates/oscar/preferences.html:81
178188msgid "Disabled"
179189msgstr ""
180190
181191#: searx/templates/courgette/preferences.html:54
182192#: searx/templates/default/preferences.html:55
183−#: searx/templates/oscar/preferences.html:84
193+#: searx/templates/oscar/preferences.html:85
184194#: searx/templates/pix-art/preferences.html:30
185195msgid "Method"
186196msgstr "Metodo"
187197
188198#: searx/templates/courgette/preferences.html:63
189199#: searx/templates/default/preferences.html:64
190−#: searx/templates/oscar/preferences.html:93
200+#: searx/templates/oscar/preferences.html:94
201+#: searx/templates/oscar/preferences.html:144
202+#: searx/templates/oscar/preferences.html:150
191203msgid "SafeSearch"
192204msgstr ""
193205
194206#: searx/templates/courgette/preferences.html:66
195207#: searx/templates/default/preferences.html:67
196−#: searx/templates/oscar/preferences.html:97
208+#: searx/templates/oscar/preferences.html:98
197209msgid "Strict"
198210msgstr ""
199211
200212#: searx/templates/courgette/preferences.html:67
201213#: searx/templates/default/preferences.html:68
202−#: searx/templates/oscar/preferences.html:98
214+#: searx/templates/oscar/preferences.html:99
203215msgid "Moderate"
204216msgstr ""
205217
206218#: searx/templates/courgette/preferences.html:68
207219#: searx/templates/default/preferences.html:69
208−#: searx/templates/oscar/preferences.html:99
220+#: searx/templates/oscar/preferences.html:100
209221msgid "None"
210222msgstr ""
211223
212224#: searx/templates/courgette/preferences.html:73
213225#: searx/templates/default/preferences.html:74
214−#: searx/templates/oscar/preferences.html:103
226+#: searx/templates/oscar/preferences.html:104
215227#: searx/templates/pix-art/preferences.html:39
216228msgid "Themes"
217229msgstr "Grafica"
@@ -252,6 +264,8 @@ msgstr "Motori di ricerca attualmente in uso"
252264
253265#: searx/templates/courgette/preferences.html:100
254266#: searx/templates/default/preferences.html:88
267+#: searx/templates/oscar/preferences.html:142
268+#: searx/templates/oscar/preferences.html:152
255269#: searx/templates/pix-art/preferences.html:53
256270msgid "Engine name"
257271msgstr "Nome del motore"
@@ -266,6 +280,8 @@ msgstr "Categoria"
266280#: searx/templates/default/preferences.html:90
267281#: searx/templates/default/preferences.html:101
268282#: searx/templates/oscar/macros.html:67
283+#: searx/templates/oscar/preferences.html:141
284+#: searx/templates/oscar/preferences.html:153
269285#: searx/templates/pix-art/preferences.html:54
270286#: searx/templates/pix-art/preferences.html:64
271287msgid "Allow"
@@ -283,7 +299,7 @@ msgstr "Blocca"
283299
284300#: searx/templates/courgette/preferences.html:122
285301#: searx/templates/default/preferences.html:110
286−#: searx/templates/oscar/preferences.html:180
302+#: searx/templates/oscar/preferences.html:235
287303#: searx/templates/pix-art/preferences.html:73
288304msgid ""
289305"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
292308
293309#: searx/templates/courgette/preferences.html:124
294310#: searx/templates/default/preferences.html:112
295−#: searx/templates/oscar/preferences.html:182
311+#: searx/templates/oscar/preferences.html:237
296312#: searx/templates/pix-art/preferences.html:75
297313msgid ""
298314"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
301317
302318#: searx/templates/courgette/preferences.html:127
303319#: searx/templates/default/preferences.html:115
304−#: searx/templates/oscar/preferences.html:185
320+#: searx/templates/oscar/preferences.html:240
305321#: searx/templates/pix-art/preferences.html:78
306322msgid "save"
307323msgstr "salva"
308324
309325#: searx/templates/courgette/preferences.html:128
310326#: searx/templates/default/preferences.html:116
311−#: searx/templates/oscar/preferences.html:187
327+#: searx/templates/oscar/preferences.html:242
312328msgid "Reset defaults"
313329msgstr ""
314330
315331#: searx/templates/courgette/preferences.html:129
316332#: searx/templates/default/preferences.html:117
317−#: searx/templates/oscar/preferences.html:186
333+#: searx/templates/oscar/preferences.html:241
318334#: searx/templates/pix-art/preferences.html:79
319335msgid "back"
320336msgstr "indietro"
@@ -424,51 +440,89 @@ msgid "Toggle navigation"
424440msgstr ""
425441
426442#: searx/templates/oscar/preferences.html:17
427−#: searx/templates/oscar/preferences.html:24
443+#: searx/templates/oscar/preferences.html:25
428444msgid "General"
429445msgstr ""
430446
431447#: searx/templates/oscar/preferences.html:18
432−#: searx/templates/oscar/preferences.html:125
448+#: searx/templates/oscar/preferences.html:126
433449msgid "Engines"
434450msgstr ""
435451
436452#: searx/templates/oscar/preferences.html:19
437−#: searx/templates/oscar/preferences.html:159
453+#: searx/templates/oscar/preferences.html:187
438454msgid "Plugins"
439455msgstr ""
440456
441−#: searx/templates/oscar/preferences.html:44
457+#: searx/templates/oscar/preferences.html:20
458+#: searx/templates/oscar/preferences.html:210
459+msgid "Cookies"
460+msgstr ""
461+
462+#: searx/templates/oscar/preferences.html:45
442463msgid "What language do you prefer for search?"
443464msgstr ""
444465
445−#: searx/templates/oscar/preferences.html:55
466+#: searx/templates/oscar/preferences.html:56
446467msgid "Change the language of the layout"
447468msgstr ""
448469
449−#: searx/templates/oscar/preferences.html:65
470+#: searx/templates/oscar/preferences.html:66
450471msgid "Find stuff as you type"
451472msgstr ""
452473
453−#: searx/templates/oscar/preferences.html:76
474+#: searx/templates/oscar/preferences.html:77
454475msgid "Proxying image results through searx"
455476msgstr ""
456477
457−#: searx/templates/oscar/preferences.html:85
478+#: searx/templates/oscar/preferences.html:86
458479msgid ""
459480"Change how forms are submited, <a "
460481"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
461482" rel=\"external\">learn more about request methods</a>"
462483msgstr ""
463484
464−#: searx/templates/oscar/preferences.html:94
485+#: searx/templates/oscar/preferences.html:95
465486msgid "Filter content"
466487msgstr ""
467488
468−#: searx/templates/oscar/preferences.html:104
489+#: searx/templates/oscar/preferences.html:105
469490msgid "Change searx layout"
470491msgstr ""
471492
493+#: searx/templates/oscar/preferences.html:143
494+#: searx/templates/oscar/preferences.html:151
495+msgid "Shortcut"
496+msgstr ""
497+
498+#: searx/templates/oscar/preferences.html:145
499+#: searx/templates/oscar/preferences.html:149
500+msgid "Avg. time"
501+msgstr ""
502+
503+#: searx/templates/oscar/preferences.html:146
504+#: searx/templates/oscar/preferences.html:148
505+msgid "Max time"
506+msgstr ""
507+
508+#: searx/templates/oscar/preferences.html:213
509+msgid ""
510+"This is the list of cookies and their values searx is storing on your "
511+"computer."
512+msgstr ""
513+
514+#: searx/templates/oscar/preferences.html:214
515+msgid "With that list, you can assess searx transparency."
516+msgstr ""
517+
518+#: searx/templates/oscar/preferences.html:219
519+msgid "Cookie name"
520+msgstr ""
521+
522+#: searx/templates/oscar/preferences.html:220
523+msgid "Value"
524+msgstr ""
525+
472526#: searx/templates/oscar/results.html:7
473527msgid "Search results"
474528msgstr ""
@@ -518,6 +572,14 @@ msgstr ""
518572msgid "Please enable JavaScript to use full functionality of this site."
519573msgstr ""
520574
575+#: searx/templates/oscar/messages/no_cookies.html:3
576+msgid "Information!"
577+msgstr ""
578+
579+#: searx/templates/oscar/messages/no_cookies.html:4
580+msgid "currently, there are no cookies defined."
581+msgstr ""
582+
521583#: searx/templates/oscar/messages/no_data_available.html:4
522584msgid "There is currently no data available. "
523585msgstr ""
searx/translations/ja/LC_MESSAGES/messages.mo

Binary file not shown.

searx/translations/ja/LC_MESSAGES/messages.po+124−62
@@ -12,10 +12,10 @@ msgid ""
1212msgstr ""
1313"Project-Id-Version: searx\n"
1414"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
15−"POT-Creation-Date: 2015-04-26 18:57+0200\n"
16−"PO-Revision-Date: 2015-04-26 17:02+0000\n"
17−"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
18−"Language-Team: Japanese (http://www.transifex.com/projects/p/searx/language/ja/)\n"
15+"POT-Creation-Date: 2015-08-24 11:44+0200\n"
16+"PO-Revision-Date: 2015-09-03 07:37+0000\n"
17+"Last-Translator: pointhi\n"
18+"Language-Team: Japanese (http://www.transifex.com/asciimoo/searx/language/ja/)\n"
1919"MIME-Version: 1.0\n"
2020"Content-Type: text/plain; charset=UTF-8\n"
2121"Content-Transfer-Encoding: 8bit\n"
@@ -23,67 +23,67 @@ msgstr ""
2323"Language: ja\n"
2424"Plural-Forms: nplurals=1; plural=0;\n"
2525
26−#: searx/webapp.py:104
26+#: searx/webapp.py:114
2727msgid "files"
2828msgstr "ファイル"
2929
30−#: searx/webapp.py:105
30+#: searx/webapp.py:115
3131msgid "general"
3232msgstr "一般的な"
3333
34−#: searx/webapp.py:106
34+#: searx/webapp.py:116
3535msgid "music"
3636msgstr "音楽"
3737
38−#: searx/webapp.py:107
38+#: searx/webapp.py:117
3939msgid "social media"
4040msgstr "社会的ネットワーク"
4141
42−#: searx/webapp.py:108
42+#: searx/webapp.py:118
4343msgid "images"
4444msgstr "画像"
4545
46−#: searx/webapp.py:109
46+#: searx/webapp.py:119
4747msgid "videos"
4848msgstr "動画"
4949
50−#: searx/webapp.py:110
50+#: searx/webapp.py:120
5151msgid "it"
5252msgstr "情報技術"
5353
54−#: searx/webapp.py:111
54+#: searx/webapp.py:121
5555msgid "news"
5656msgstr "お知らせ"
5757
58−#: searx/webapp.py:112
58+#: searx/webapp.py:122
5959msgid "map"
6060msgstr "地図"
6161
62−#: searx/webapp.py:396
62+#: searx/webapp.py:414
6363msgid "{minutes} minute(s) ago"
6464msgstr "{minutes}分前"
6565
66−#: searx/webapp.py:398
66+#: searx/webapp.py:416
6767msgid "{hours} hour(s), {minutes} minute(s) ago"
6868msgstr "{hours}時間と{minutes}分前"
6969
70−#: searx/engines/__init__.py:182
70+#: searx/engines/__init__.py:185
7171msgid "Page loads (sec)"
7272msgstr ""
7373
74−#: searx/engines/__init__.py:186
74+#: searx/engines/__init__.py:189
7575msgid "Number of results"
7676msgstr "通知の数"
7777
78−#: searx/engines/__init__.py:190
78+#: searx/engines/__init__.py:193
7979msgid "Scores"
8080msgstr ""
8181
82−#: searx/engines/__init__.py:194
82+#: searx/engines/__init__.py:197
8383msgid "Scores per result"
8484msgstr ""
8585
86−#: searx/engines/__init__.py:198
86+#: searx/engines/__init__.py:201
8787msgid "Errors"
8888msgstr "エラー"
8989
@@ -98,11 +98,21 @@ msgstr ""
9898#: searx/plugins/search_on_category_select.py:19
9999msgid ""
100100"Perform search immediately if a category selected. Disable to select "
101−"multiple categories."
101+"multiple categories. (JavaScript required)"
102102msgstr ""
103103
104−#: searx/plugins/self_ip.py:19
105−msgid "Display your source IP address if the query expression is \"ip\""
104+#: searx/plugins/self_info.py:20
105+msgid ""
106+"Displays your IP if the query is \"ip\" and your user agent if the query "
107+"contains \"user agent\"."
108+msgstr ""
109+
110+#: searx/plugins/tracker_url_remover.py:26
111+msgid "Tracker URL remover"
112+msgstr ""
113+
114+#: searx/plugins/tracker_url_remover.py:27
115+msgid "Remove trackers arguments from the returned URL"
106116msgstr ""
107117
108118#: searx/templates/courgette/index.html:9
@@ -131,93 +141,95 @@ msgstr "設定"
131141
132142#: searx/templates/courgette/preferences.html:9
133143#: searx/templates/default/preferences.html:9
134−#: searx/templates/oscar/preferences.html:35
135−#: searx/templates/oscar/preferences.html:37
144+#: searx/templates/oscar/preferences.html:36
145+#: searx/templates/oscar/preferences.html:38
136146msgid "Default categories"
137147msgstr ""
138148
139149#: searx/templates/courgette/preferences.html:13
140150#: searx/templates/default/preferences.html:14
141−#: searx/templates/oscar/preferences.html:43
151+#: searx/templates/oscar/preferences.html:44
142152#: searx/templates/pix-art/preferences.html:9
143153msgid "Search language"
144154msgstr "検索の言語"
145155
146156#: searx/templates/courgette/preferences.html:16
147157#: searx/templates/default/preferences.html:17
148−#: searx/templates/oscar/preferences.html:47
158+#: searx/templates/oscar/preferences.html:48
149159#: searx/templates/pix-art/preferences.html:12
150160msgid "Automatic"
151161msgstr ""
152162
153163#: searx/templates/courgette/preferences.html:24
154164#: searx/templates/default/preferences.html:25
155−#: searx/templates/oscar/preferences.html:54
165+#: searx/templates/oscar/preferences.html:55
156166#: searx/templates/pix-art/preferences.html:20
157167msgid "Interface language"
158168msgstr "界面の言語"
159169
160170#: searx/templates/courgette/preferences.html:34
161171#: searx/templates/default/preferences.html:35
162−#: searx/templates/oscar/preferences.html:64
172+#: searx/templates/oscar/preferences.html:65
163173msgid "Autocomplete"
164174msgstr ""
165175
166176#: searx/templates/courgette/preferences.html:45
167177#: searx/templates/default/preferences.html:46
168−#: searx/templates/oscar/preferences.html:75
178+#: searx/templates/oscar/preferences.html:76
169179msgid "Image proxy"
170180msgstr ""
171181
172182#: searx/templates/courgette/preferences.html:48
173183#: searx/templates/default/preferences.html:49
174−#: searx/templates/oscar/preferences.html:79
184+#: searx/templates/oscar/preferences.html:80
175185msgid "Enabled"
176−msgstr ""
186+msgstr "活性化する"
177187
178188#: searx/templates/courgette/preferences.html:49
179189#: searx/templates/default/preferences.html:50
180−#: searx/templates/oscar/preferences.html:80
190+#: searx/templates/oscar/preferences.html:81
181191msgid "Disabled"
182−msgstr ""
192+msgstr "使用不可能にする"
183193
184194#: searx/templates/courgette/preferences.html:54
185195#: searx/templates/default/preferences.html:55
186−#: searx/templates/oscar/preferences.html:84
196+#: searx/templates/oscar/preferences.html:85
187197#: searx/templates/pix-art/preferences.html:30
188198msgid "Method"
189199msgstr ""
190200
191201#: searx/templates/courgette/preferences.html:63
192202#: searx/templates/default/preferences.html:64
193−#: searx/templates/oscar/preferences.html:93
203+#: searx/templates/oscar/preferences.html:94
204+#: searx/templates/oscar/preferences.html:144
205+#: searx/templates/oscar/preferences.html:150
194206msgid "SafeSearch"
195207msgstr "安全な検索"
196208
197209#: searx/templates/courgette/preferences.html:66
198210#: searx/templates/default/preferences.html:67
199−#: searx/templates/oscar/preferences.html:97
211+#: searx/templates/oscar/preferences.html:98
200212msgid "Strict"
201213msgstr "たくさん。"
202214
203215#: searx/templates/courgette/preferences.html:67
204216#: searx/templates/default/preferences.html:68
205−#: searx/templates/oscar/preferences.html:98
217+#: searx/templates/oscar/preferences.html:99
206218msgid "Moderate"
207219msgstr "少し"
208220
209221#: searx/templates/courgette/preferences.html:68
210222#: searx/templates/default/preferences.html:69
211−#: searx/templates/oscar/preferences.html:99
223+#: searx/templates/oscar/preferences.html:100
212224msgid "None"
213225msgstr "なし"
214226
215227#: searx/templates/courgette/preferences.html:73
216228#: searx/templates/default/preferences.html:74
217−#: searx/templates/oscar/preferences.html:103
229+#: searx/templates/oscar/preferences.html:104
218230#: searx/templates/pix-art/preferences.html:39
219231msgid "Themes"
220−msgstr ""
232+msgstr "図様"
221233
222234#: searx/templates/courgette/preferences.html:83
223235msgid "Color"
@@ -255,6 +267,8 @@ msgstr ""
255267
256268#: searx/templates/courgette/preferences.html:100
257269#: searx/templates/default/preferences.html:88
270+#: searx/templates/oscar/preferences.html:142
271+#: searx/templates/oscar/preferences.html:152
258272#: searx/templates/pix-art/preferences.html:53
259273msgid "Engine name"
260274msgstr ""
@@ -269,6 +283,8 @@ msgstr "カテゴリー"
269283#: searx/templates/default/preferences.html:90
270284#: searx/templates/default/preferences.html:101
271285#: searx/templates/oscar/macros.html:67
286+#: searx/templates/oscar/preferences.html:141
287+#: searx/templates/oscar/preferences.html:153
272288#: searx/templates/pix-art/preferences.html:54
273289#: searx/templates/pix-art/preferences.html:64
274290msgid "Allow"
@@ -282,11 +298,11 @@ msgstr "許可する"
282298#: searx/templates/pix-art/preferences.html:54
283299#: searx/templates/pix-art/preferences.html:65
284300msgid "Block"
285−msgstr ""
301+msgstr "封鎖する"
286302
287303#: searx/templates/courgette/preferences.html:122
288304#: searx/templates/default/preferences.html:110
289−#: searx/templates/oscar/preferences.html:180
305+#: searx/templates/oscar/preferences.html:235
290306#: searx/templates/pix-art/preferences.html:73
291307msgid ""
292308"These settings are stored in your cookies, this allows us not to store this "
@@ -295,7 +311,7 @@ msgstr ""
295311
296312#: searx/templates/courgette/preferences.html:124
297313#: searx/templates/default/preferences.html:112
298−#: searx/templates/oscar/preferences.html:182
314+#: searx/templates/oscar/preferences.html:237
299315#: searx/templates/pix-art/preferences.html:75
300316msgid ""
301317"These cookies serve your sole convenience, we don't use these cookies to "
@@ -304,20 +320,20 @@ msgstr ""
304320
305321#: searx/templates/courgette/preferences.html:127
306322#: searx/templates/default/preferences.html:115
307−#: searx/templates/oscar/preferences.html:185
323+#: searx/templates/oscar/preferences.html:240
308324#: searx/templates/pix-art/preferences.html:78
309325msgid "save"
310326msgstr "保存"
311327
312328#: searx/templates/courgette/preferences.html:128
313329#: searx/templates/default/preferences.html:116
314−#: searx/templates/oscar/preferences.html:187
330+#: searx/templates/oscar/preferences.html:242
315331msgid "Reset defaults"
316332msgstr ""
317333
318334#: searx/templates/courgette/preferences.html:129
319335#: searx/templates/default/preferences.html:117
320−#: searx/templates/oscar/preferences.html:186
336+#: searx/templates/oscar/preferences.html:241
321337#: searx/templates/pix-art/preferences.html:79
322338msgid "back"
323339msgstr "バック"
@@ -427,51 +443,89 @@ msgid "Toggle navigation"
427443msgstr ""
428444
429445#: searx/templates/oscar/preferences.html:17
430−#: searx/templates/oscar/preferences.html:24
446+#: searx/templates/oscar/preferences.html:25
431447msgid "General"
432448msgstr ""
433449
434450#: searx/templates/oscar/preferences.html:18
435−#: searx/templates/oscar/preferences.html:125
451+#: searx/templates/oscar/preferences.html:126
436452msgid "Engines"
437453msgstr ""
438454
439455#: searx/templates/oscar/preferences.html:19
440−#: searx/templates/oscar/preferences.html:159
456+#: searx/templates/oscar/preferences.html:187
441457msgid "Plugins"
442458msgstr ""
443459
444−#: searx/templates/oscar/preferences.html:44
460+#: searx/templates/oscar/preferences.html:20
461+#: searx/templates/oscar/preferences.html:210
462+msgid "Cookies"
463+msgstr ""
464+
465+#: searx/templates/oscar/preferences.html:45
445466msgid "What language do you prefer for search?"
446467msgstr ""
447468
448−#: searx/templates/oscar/preferences.html:55
469+#: searx/templates/oscar/preferences.html:56
449470msgid "Change the language of the layout"
450471msgstr ""
451472
452−#: searx/templates/oscar/preferences.html:65
473+#: searx/templates/oscar/preferences.html:66
453474msgid "Find stuff as you type"
454475msgstr ""
455476
456−#: searx/templates/oscar/preferences.html:76
477+#: searx/templates/oscar/preferences.html:77
457478msgid "Proxying image results through searx"
458479msgstr ""
459480
460−#: searx/templates/oscar/preferences.html:85
481+#: searx/templates/oscar/preferences.html:86
461482msgid ""
462483"Change how forms are submited, <a "
463484"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
464485" rel=\"external\">learn more about request methods</a>"
465486msgstr ""
466487
467−#: searx/templates/oscar/preferences.html:94
488+#: searx/templates/oscar/preferences.html:95
468489msgid "Filter content"
469490msgstr ""
470491
471−#: searx/templates/oscar/preferences.html:104
492+#: searx/templates/oscar/preferences.html:105
472493msgid "Change searx layout"
473494msgstr "レイアウトのsearxの変更"
474495
496+#: searx/templates/oscar/preferences.html:143
497+#: searx/templates/oscar/preferences.html:151
498+msgid "Shortcut"
499+msgstr ""
500+
501+#: searx/templates/oscar/preferences.html:145
502+#: searx/templates/oscar/preferences.html:149
503+msgid "Avg. time"
504+msgstr ""
505+
506+#: searx/templates/oscar/preferences.html:146
507+#: searx/templates/oscar/preferences.html:148
508+msgid "Max time"
509+msgstr ""
510+
511+#: searx/templates/oscar/preferences.html:213
512+msgid ""
513+"This is the list of cookies and their values searx is storing on your "
514+"computer."
515+msgstr ""
516+
517+#: searx/templates/oscar/preferences.html:214
518+msgid "With that list, you can assess searx transparency."
519+msgstr ""
520+
521+#: searx/templates/oscar/preferences.html:219
522+msgid "Cookie name"
523+msgstr ""
524+
525+#: searx/templates/oscar/preferences.html:220
526+msgid "Value"
527+msgstr ""
528+
475529#: searx/templates/oscar/results.html:7
476530msgid "Search results"
477531msgstr "検索結果"
@@ -515,12 +569,20 @@ msgstr ""
515569
516570#: searx/templates/oscar/messages/js_disabled.html:2
517571msgid "Warning!"
518−msgstr ""
572+msgstr "意見"
519573
520574#: searx/templates/oscar/messages/js_disabled.html:3
521575msgid "Please enable JavaScript to use full functionality of this site."
522576msgstr ""
523577
578+#: searx/templates/oscar/messages/no_cookies.html:3
579+msgid "Information!"
580+msgstr "異見"
581+
582+#: searx/templates/oscar/messages/no_cookies.html:4
583+msgid "currently, there are no cookies defined."
584+msgstr ""
585+
524586#: searx/templates/oscar/messages/no_data_available.html:4
525587msgid "There is currently no data available. "
526588msgstr ""
@@ -537,7 +599,7 @@ msgstr ""
537599
538600#: searx/templates/oscar/messages/save_settings_successfull.html:7
539601msgid "Well done!"
540−msgstr ""
602+msgstr "あっぱれ。"
541603
542604#: searx/templates/oscar/messages/save_settings_successfull.html:8
543605msgid "Settings saved successfully."
@@ -545,7 +607,7 @@ msgstr ""
545607
546608#: searx/templates/oscar/messages/unknow_error.html:7
547609msgid "Oh snap!"
548−msgstr ""
610+msgstr "ちぇっ"
549611
550612#: searx/templates/oscar/messages/unknow_error.html:8
551613msgid "Something went wrong."
@@ -585,7 +647,7 @@ msgstr ""
585647
586648#: searx/templates/oscar/result_templates/torrent.html:7
587649msgid "Filesize"
588−msgstr ""
650+msgstr "ファイル・サイズ"
589651
590652#: searx/templates/oscar/result_templates/torrent.html:9
591653msgid "Bytes"
@@ -609,7 +671,7 @@ msgstr ""
609671
610672#: searx/templates/oscar/result_templates/torrent.html:15
611673msgid "Number of Files"
612−msgstr ""
674+msgstr "ファイル数"
613675
614676#: searx/templates/oscar/result_templates/videos.html:7
615677msgid "show video"
searx/translations/nl/LC_MESSAGES/messages.mo

Binary file not shown.

searx/translations/nl/LC_MESSAGES/messages.po+116−54
@@ -9,10 +9,10 @@ msgid ""
99msgstr ""
1010"Project-Id-Version: searx\n"
1111"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
12−"POT-Creation-Date: 2015-04-26 18:57+0200\n"
13−"PO-Revision-Date: 2015-04-27 07:45+0000\n"
12+"POT-Creation-Date: 2015-08-24 11:44+0200\n"
13+"PO-Revision-Date: 2015-08-24 14:41+0000\n"
1414"Last-Translator: Nathan Follens\n"
15−"Language-Team: Dutch (http://www.transifex.com/projects/p/searx/language/nl/)\n"
15+"Language-Team: Dutch (http://www.transifex.com/asciimoo/searx/language/nl/)\n"
1616"MIME-Version: 1.0\n"
1717"Content-Type: text/plain; charset=UTF-8\n"
1818"Content-Transfer-Encoding: 8bit\n"
@@ -20,67 +20,67 @@ msgstr ""
2020"Language: nl\n"
2121"Plural-Forms: nplurals=2; plural=(n != 1);\n"
2222
23−#: searx/webapp.py:104
23+#: searx/webapp.py:114
2424msgid "files"
2525msgstr "bestanden"
2626
27−#: searx/webapp.py:105
27+#: searx/webapp.py:115
2828msgid "general"
2929msgstr "algemeen"
3030
31−#: searx/webapp.py:106
31+#: searx/webapp.py:116
3232msgid "music"
3333msgstr "muziek"
3434
35−#: searx/webapp.py:107
35+#: searx/webapp.py:117
3636msgid "social media"
3737msgstr "social media"
3838
39−#: searx/webapp.py:108
39+#: searx/webapp.py:118
4040msgid "images"
4141msgstr "afbeeldingen"
4242
43−#: searx/webapp.py:109
43+#: searx/webapp.py:119
4444msgid "videos"
4545msgstr "video's"
4646
47−#: searx/webapp.py:110
47+#: searx/webapp.py:120
4848msgid "it"
4949msgstr "it"
5050
51−#: searx/webapp.py:111
51+#: searx/webapp.py:121
5252msgid "news"
5353msgstr "nieuws"
5454
55−#: searx/webapp.py:112
55+#: searx/webapp.py:122
5656msgid "map"
5757msgstr "kaart"
5858
59−#: searx/webapp.py:396
59+#: searx/webapp.py:414
6060msgid "{minutes} minute(s) ago"
6161msgstr "{minutes} min geleden"
6262
63−#: searx/webapp.py:398
63+#: searx/webapp.py:416
6464msgid "{hours} hour(s), {minutes} minute(s) ago"
6565msgstr "{hours} uur, {minutes} min geleden"
6666
67−#: searx/engines/__init__.py:182
67+#: searx/engines/__init__.py:185
6868msgid "Page loads (sec)"
6969msgstr "Pagina laadt (sec)"
7070
71−#: searx/engines/__init__.py:186
71+#: searx/engines/__init__.py:189
7272msgid "Number of results"
7373msgstr "Aantal zoekresultaten"
7474
75−#: searx/engines/__init__.py:190
75+#: searx/engines/__init__.py:193
7676msgid "Scores"
7777msgstr "Scores"
7878
79−#: searx/engines/__init__.py:194
79+#: searx/engines/__init__.py:197
8080msgid "Scores per result"
8181msgstr "Scores per zoekresultaat"
8282
83−#: searx/engines/__init__.py:198
83+#: searx/engines/__init__.py:201
8484msgid "Errors"
8585msgstr "Fouten"
8686
@@ -95,12 +95,22 @@ msgstr "Zoeken bij selecteren van categorie"
9595#: searx/plugins/search_on_category_select.py:19
9696msgid ""
9797"Perform search immediately if a category selected. Disable to select "
98−"multiple categories."
99−msgstr "Zoekopdracht onmiddellijk uitvoeren wanneer een categorie geselecteerd wordt. Zet dit uit om meerdere categorieën te selecteren."
98+"multiple categories. (JavaScript required)"
99+msgstr "Zoekopdracht onmiddellijk uitvoeren wanneer een categorie geselecteerd wordt. Zet dit uit om meerdere categorieën te selecteren. (JavaScript vereist)"
100100
101−#: searx/plugins/self_ip.py:19
102−msgid "Display your source IP address if the query expression is \"ip\""
103−msgstr "Geef je IP-adres weer wanneer de zoekopdracht \"ip\" is"
101+#: searx/plugins/self_info.py:20
102+msgid ""
103+"Displays your IP if the query is \"ip\" and your user agent if the query "
104+"contains \"user agent\"."
105+msgstr "Geeft je IP-adres weer als de zoekopdracht \"ip\" is en je gebruikersagent als de zoekopdracht \"user agent\" bevat."
106+
107+#: searx/plugins/tracker_url_remover.py:26
108+msgid "Tracker URL remover"
109+msgstr "Tracker-URL verwijderaar"
110+
111+#: searx/plugins/tracker_url_remover.py:27
112+msgid "Remove trackers arguments from the returned URL"
113+msgstr "Verwijdert trackerargumenten van de gekregen URL"
104114
105115#: searx/templates/courgette/index.html:9
106116#: searx/templates/courgette/index.html:13
@@ -128,90 +138,92 @@ msgstr "Voorkeuren"
128138
129139#: searx/templates/courgette/preferences.html:9
130140#: searx/templates/default/preferences.html:9
131−#: searx/templates/oscar/preferences.html:35
132−#: searx/templates/oscar/preferences.html:37
141+#: searx/templates/oscar/preferences.html:36
142+#: searx/templates/oscar/preferences.html:38
133143msgid "Default categories"
134144msgstr "Standaardcategorieën"
135145
136146#: searx/templates/courgette/preferences.html:13
137147#: searx/templates/default/preferences.html:14
138−#: searx/templates/oscar/preferences.html:43
148+#: searx/templates/oscar/preferences.html:44
139149#: searx/templates/pix-art/preferences.html:9
140150msgid "Search language"
141151msgstr "Zoektaal"
142152
143153#: searx/templates/courgette/preferences.html:16
144154#: searx/templates/default/preferences.html:17
145−#: searx/templates/oscar/preferences.html:47
155+#: searx/templates/oscar/preferences.html:48
146156#: searx/templates/pix-art/preferences.html:12
147157msgid "Automatic"
148158msgstr "Automatisch"
149159
150160#: searx/templates/courgette/preferences.html:24
151161#: searx/templates/default/preferences.html:25
152−#: searx/templates/oscar/preferences.html:54
162+#: searx/templates/oscar/preferences.html:55
153163#: searx/templates/pix-art/preferences.html:20
154164msgid "Interface language"
155165msgstr "Interfacetaal"
156166
157167#: searx/templates/courgette/preferences.html:34
158168#: searx/templates/default/preferences.html:35
159−#: searx/templates/oscar/preferences.html:64
169+#: searx/templates/oscar/preferences.html:65
160170msgid "Autocomplete"
161171msgstr "Auto-aanvullen"
162172
163173#: searx/templates/courgette/preferences.html:45
164174#: searx/templates/default/preferences.html:46
165−#: searx/templates/oscar/preferences.html:75
175+#: searx/templates/oscar/preferences.html:76
166176msgid "Image proxy"
167177msgstr "Afbeeldingen proxy"
168178
169179#: searx/templates/courgette/preferences.html:48
170180#: searx/templates/default/preferences.html:49
171−#: searx/templates/oscar/preferences.html:79
181+#: searx/templates/oscar/preferences.html:80
172182msgid "Enabled"
173183msgstr "Ingeschakeld"
174184
175185#: searx/templates/courgette/preferences.html:49
176186#: searx/templates/default/preferences.html:50
177−#: searx/templates/oscar/preferences.html:80
187+#: searx/templates/oscar/preferences.html:81
178188msgid "Disabled"
179189msgstr "Uitgeschakeld"
180190
181191#: searx/templates/courgette/preferences.html:54
182192#: searx/templates/default/preferences.html:55
183−#: searx/templates/oscar/preferences.html:84
193+#: searx/templates/oscar/preferences.html:85
184194#: searx/templates/pix-art/preferences.html:30
185195msgid "Method"
186196msgstr "Methode"
187197
188198#: searx/templates/courgette/preferences.html:63
189199#: searx/templates/default/preferences.html:64
190−#: searx/templates/oscar/preferences.html:93
200+#: searx/templates/oscar/preferences.html:94
201+#: searx/templates/oscar/preferences.html:144
202+#: searx/templates/oscar/preferences.html:150
191203msgid "SafeSearch"
192204msgstr "SafeSearch"
193205
194206#: searx/templates/courgette/preferences.html:66
195207#: searx/templates/default/preferences.html:67
196−#: searx/templates/oscar/preferences.html:97
208+#: searx/templates/oscar/preferences.html:98
197209msgid "Strict"
198210msgstr "Strikt"
199211
200212#: searx/templates/courgette/preferences.html:67
201213#: searx/templates/default/preferences.html:68
202−#: searx/templates/oscar/preferences.html:98
214+#: searx/templates/oscar/preferences.html:99
203215msgid "Moderate"
204216msgstr "Gemiddeld"
205217
206218#: searx/templates/courgette/preferences.html:68
207219#: searx/templates/default/preferences.html:69
208−#: searx/templates/oscar/preferences.html:99
220+#: searx/templates/oscar/preferences.html:100
209221msgid "None"
210222msgstr "Geen"
211223
212224#: searx/templates/courgette/preferences.html:73
213225#: searx/templates/default/preferences.html:74
214−#: searx/templates/oscar/preferences.html:103
226+#: searx/templates/oscar/preferences.html:104
215227#: searx/templates/pix-art/preferences.html:39
216228msgid "Themes"
217229msgstr "Thema's"
@@ -252,6 +264,8 @@ msgstr "Momenteel gebruikte zoekmachines"
252264
253265#: searx/templates/courgette/preferences.html:100
254266#: searx/templates/default/preferences.html:88
267+#: searx/templates/oscar/preferences.html:142
268+#: searx/templates/oscar/preferences.html:152
255269#: searx/templates/pix-art/preferences.html:53
256270msgid "Engine name"
257271msgstr "Naam zoekmachine"
@@ -266,6 +280,8 @@ msgstr "Categorie"
266280#: searx/templates/default/preferences.html:90
267281#: searx/templates/default/preferences.html:101
268282#: searx/templates/oscar/macros.html:67
283+#: searx/templates/oscar/preferences.html:141
284+#: searx/templates/oscar/preferences.html:153
269285#: searx/templates/pix-art/preferences.html:54
270286#: searx/templates/pix-art/preferences.html:64
271287msgid "Allow"
@@ -283,7 +299,7 @@ msgstr "Blokkeren"
283299
284300#: searx/templates/courgette/preferences.html:122
285301#: searx/templates/default/preferences.html:110
286−#: searx/templates/oscar/preferences.html:180
302+#: searx/templates/oscar/preferences.html:235
287303#: searx/templates/pix-art/preferences.html:73
288304msgid ""
289305"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
292308
293309#: searx/templates/courgette/preferences.html:124
294310#: searx/templates/default/preferences.html:112
295−#: searx/templates/oscar/preferences.html:182
311+#: searx/templates/oscar/preferences.html:237
296312#: searx/templates/pix-art/preferences.html:75
297313msgid ""
298314"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
301317
302318#: searx/templates/courgette/preferences.html:127
303319#: searx/templates/default/preferences.html:115
304−#: searx/templates/oscar/preferences.html:185
320+#: searx/templates/oscar/preferences.html:240
305321#: searx/templates/pix-art/preferences.html:78
306322msgid "save"
307323msgstr "bewaren"
308324
309325#: searx/templates/courgette/preferences.html:128
310326#: searx/templates/default/preferences.html:116
311−#: searx/templates/oscar/preferences.html:187
327+#: searx/templates/oscar/preferences.html:242
312328msgid "Reset defaults"
313329msgstr "Standaardinstellingen herstellen"
314330
315331#: searx/templates/courgette/preferences.html:129
316332#: searx/templates/default/preferences.html:117
317−#: searx/templates/oscar/preferences.html:186
333+#: searx/templates/oscar/preferences.html:241
318334#: searx/templates/pix-art/preferences.html:79
319335msgid "back"
320336msgstr "terug"
@@ -424,51 +440,89 @@ msgid "Toggle navigation"
424440msgstr "Omschakelen navigatie"
425441
426442#: searx/templates/oscar/preferences.html:17
427−#: searx/templates/oscar/preferences.html:24
443+#: searx/templates/oscar/preferences.html:25
428444msgid "General"
429445msgstr "Algemeen"
430446
431447#: searx/templates/oscar/preferences.html:18
432−#: searx/templates/oscar/preferences.html:125
448+#: searx/templates/oscar/preferences.html:126
433449msgid "Engines"
434450msgstr "Zoekmachines"
435451
436452#: searx/templates/oscar/preferences.html:19
437−#: searx/templates/oscar/preferences.html:159
453+#: searx/templates/oscar/preferences.html:187
438454msgid "Plugins"
439455msgstr "Plugins"
440456
441−#: searx/templates/oscar/preferences.html:44
457+#: searx/templates/oscar/preferences.html:20
458+#: searx/templates/oscar/preferences.html:210
459+msgid "Cookies"
460+msgstr "Cookies"
461+
462+#: searx/templates/oscar/preferences.html:45
442463msgid "What language do you prefer for search?"
443464msgstr "Welke taal wil je gebruiken voor het zoeken?"
444465
445−#: searx/templates/oscar/preferences.html:55
466+#: searx/templates/oscar/preferences.html:56
446467msgid "Change the language of the layout"
447468msgstr "Wijzig de taal van de layout"
448469
449−#: searx/templates/oscar/preferences.html:65
470+#: searx/templates/oscar/preferences.html:66
450471msgid "Find stuff as you type"
451472msgstr "Zoek tijdens het typen"
452473
453−#: searx/templates/oscar/preferences.html:76
474+#: searx/templates/oscar/preferences.html:77
454475msgid "Proxying image results through searx"
455476msgstr "Proxyen afbeeldingen resultaat via searx"
456477
457−#: searx/templates/oscar/preferences.html:85
478+#: searx/templates/oscar/preferences.html:86
458479msgid ""
459480"Change how forms are submited, <a "
460481"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
461482" rel=\"external\">learn more about request methods</a>"
462483msgstr "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>"
463484
464−#: searx/templates/oscar/preferences.html:94
485+#: searx/templates/oscar/preferences.html:95
465486msgid "Filter content"
466487msgstr "Filteren content"
467488
468−#: searx/templates/oscar/preferences.html:104
489+#: searx/templates/oscar/preferences.html:105
469490msgid "Change searx layout"
470491msgstr "Wijzig searx layout"
471492
493+#: searx/templates/oscar/preferences.html:143
494+#: searx/templates/oscar/preferences.html:151
495+msgid "Shortcut"
496+msgstr "Snelkoppeling"
497+
498+#: searx/templates/oscar/preferences.html:145
499+#: searx/templates/oscar/preferences.html:149
500+msgid "Avg. time"
501+msgstr "Gem. duur"
502+
503+#: searx/templates/oscar/preferences.html:146
504+#: searx/templates/oscar/preferences.html:148
505+msgid "Max time"
506+msgstr "Max. duur"
507+
508+#: searx/templates/oscar/preferences.html:213
509+msgid ""
510+"This is the list of cookies and their values searx is storing on your "
511+"computer."
512+msgstr "Dit is de lijst van cookies en hun waarden die searx op je computer opslaat."
513+
514+#: searx/templates/oscar/preferences.html:214
515+msgid "With that list, you can assess searx transparency."
516+msgstr "Met deze lijst kan je de openheid van searx beoordelen."
517+
518+#: searx/templates/oscar/preferences.html:219
519+msgid "Cookie name"
520+msgstr "Cookienaam"
521+
522+#: searx/templates/oscar/preferences.html:220
523+msgid "Value"
524+msgstr "Waarde"
525+
472526#: searx/templates/oscar/results.html:7
473527msgid "Search results"
474528msgstr "Zoekresultaten"
@@ -518,6 +572,14 @@ msgstr "Waarschuwing!"
518572msgid "Please enable JavaScript to use full functionality of this site."
519573msgstr "Activeer JavaScript om alle functionaliteit van deze site te gebruiken."
520574
575+#: searx/templates/oscar/messages/no_cookies.html:3
576+msgid "Information!"
577+msgstr "Informatie!"
578+
579+#: searx/templates/oscar/messages/no_cookies.html:4
580+msgid "currently, there are no cookies defined."
581+msgstr "er zijn momenteel geen cookies gedefinieerd."
582+
521583#: searx/templates/oscar/messages/no_data_available.html:4
522584msgid "There is currently no data available. "
523585msgstr "Er zijn momenteel geen gegevens beschikbaar."
searx/translations/pt/LC_MESSAGES/messages.mo

Binary file not shown.

searx/translations/ro/LC_MESSAGES/messages.mo

Binary file not shown.

searx/translations/ro/LC_MESSAGES/messages.po+117−55
@@ -8,10 +8,10 @@ msgid ""
88msgstr ""
99"Project-Id-Version: searx\n"
1010"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
11−"POT-Creation-Date: 2015-04-26 18:57+0200\n"
12−"PO-Revision-Date: 2015-05-02 22:23+0000\n"
13−"Last-Translator: adrian.fita <adrian.fita@gmail.com>\n"
14−"Language-Team: Romanian (http://www.transifex.com/projects/p/searx/language/ro/)\n"
11+"POT-Creation-Date: 2015-08-24 11:44+0200\n"
12+"PO-Revision-Date: 2015-08-24 09:45+0000\n"
13+"Last-Translator: pointhi\n"
14+"Language-Team: Romanian (http://www.transifex.com/asciimoo/searx/language/ro/)\n"
1515"MIME-Version: 1.0\n"
1616"Content-Type: text/plain; charset=UTF-8\n"
1717"Content-Transfer-Encoding: 8bit\n"
@@ -19,67 +19,67 @@ msgstr ""
1919"Language: ro\n"
2020"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
2121
22−#: searx/webapp.py:104
22+#: searx/webapp.py:114
2323msgid "files"
2424msgstr "fișiere"
2525
26−#: searx/webapp.py:105
26+#: searx/webapp.py:115
2727msgid "general"
2828msgstr "general"
2929
30−#: searx/webapp.py:106
30+#: searx/webapp.py:116
3131msgid "music"
3232msgstr "muzică"
3333
34−#: searx/webapp.py:107
34+#: searx/webapp.py:117
3535msgid "social media"
3636msgstr "rețele sociale"
3737
38−#: searx/webapp.py:108
38+#: searx/webapp.py:118
3939msgid "images"
4040msgstr "imagini"
4141
42−#: searx/webapp.py:109
42+#: searx/webapp.py:119
4343msgid "videos"
4444msgstr "videouri"
4545
46−#: searx/webapp.py:110
46+#: searx/webapp.py:120
4747msgid "it"
4848msgstr "el(ea)"
4949
50−#: searx/webapp.py:111
50+#: searx/webapp.py:121
5151msgid "news"
5252msgstr "știri"
5353
54−#: searx/webapp.py:112
54+#: searx/webapp.py:122
5555msgid "map"
5656msgstr "hartă"
5757
58−#: searx/webapp.py:396
58+#: searx/webapp.py:414
5959msgid "{minutes} minute(s) ago"
6060msgstr "{minutes} minut(e) în urmă"
6161
62−#: searx/webapp.py:398
62+#: searx/webapp.py:416
6363msgid "{hours} hour(s), {minutes} minute(s) ago"
6464msgstr "{hours} oră(e), {minutes} minut(e) în urmă"
6565
66−#: searx/engines/__init__.py:182
66+#: searx/engines/__init__.py:185
6767msgid "Page loads (sec)"
6868msgstr "Încărcarea paginilor (sec)"
6969
70−#: searx/engines/__init__.py:186
70+#: searx/engines/__init__.py:189
7171msgid "Number of results"
7272msgstr "Numărul de rezultate"
7373
74−#: searx/engines/__init__.py:190
74+#: searx/engines/__init__.py:193
7575msgid "Scores"
7676msgstr "Scoruri"
7777
78−#: searx/engines/__init__.py:194
78+#: searx/engines/__init__.py:197
7979msgid "Scores per result"
8080msgstr "Scoruri per rezultat"
8181
82−#: searx/engines/__init__.py:198
82+#: searx/engines/__init__.py:201
8383msgid "Errors"
8484msgstr "Erori"
8585
@@ -94,12 +94,22 @@ msgstr "Căutare în categoria selectată"
9494#: searx/plugins/search_on_category_select.py:19
9595msgid ""
9696"Perform search immediately if a category selected. Disable to select "
97−"multiple categories."
98−msgstr "Realizează căutarea imediat dacă s-a selectat o categorie. Dezactivați pentru a selecta mai multe categorii."
97+"multiple categories. (JavaScript required)"
98+msgstr ""
99+
100+#: searx/plugins/self_info.py:20
101+msgid ""
102+"Displays your IP if the query is \"ip\" and your user agent if the query "
103+"contains \"user agent\"."
104+msgstr ""
99105
100−#: searx/plugins/self_ip.py:19
101−msgid "Display your source IP address if the query expression is \"ip\""
102−msgstr "Afișează adresa voastră IP sursă dacă expresia interogării este „ip”"
106+#: searx/plugins/tracker_url_remover.py:26
107+msgid "Tracker URL remover"
108+msgstr ""
109+
110+#: searx/plugins/tracker_url_remover.py:27
111+msgid "Remove trackers arguments from the returned URL"
112+msgstr ""
103113
104114#: searx/templates/courgette/index.html:9
105115#: searx/templates/courgette/index.html:13
@@ -127,90 +137,92 @@ msgstr "Preferințe"
127137
128138#: searx/templates/courgette/preferences.html:9
129139#: searx/templates/default/preferences.html:9
130−#: searx/templates/oscar/preferences.html:35
131−#: searx/templates/oscar/preferences.html:37
140+#: searx/templates/oscar/preferences.html:36
141+#: searx/templates/oscar/preferences.html:38
132142msgid "Default categories"
133143msgstr "Categorii implicite"
134144
135145#: searx/templates/courgette/preferences.html:13
136146#: searx/templates/default/preferences.html:14
137−#: searx/templates/oscar/preferences.html:43
147+#: searx/templates/oscar/preferences.html:44
138148#: searx/templates/pix-art/preferences.html:9
139149msgid "Search language"
140150msgstr "Limba de căutare"
141151
142152#: searx/templates/courgette/preferences.html:16
143153#: searx/templates/default/preferences.html:17
144−#: searx/templates/oscar/preferences.html:47
154+#: searx/templates/oscar/preferences.html:48
145155#: searx/templates/pix-art/preferences.html:12
146156msgid "Automatic"
147157msgstr "Automat"
148158
149159#: searx/templates/courgette/preferences.html:24
150160#: searx/templates/default/preferences.html:25
151−#: searx/templates/oscar/preferences.html:54
161+#: searx/templates/oscar/preferences.html:55
152162#: searx/templates/pix-art/preferences.html:20
153163msgid "Interface language"
154164msgstr "Limba interfeței"
155165
156166#: searx/templates/courgette/preferences.html:34
157167#: searx/templates/default/preferences.html:35
158−#: searx/templates/oscar/preferences.html:64
168+#: searx/templates/oscar/preferences.html:65
159169msgid "Autocomplete"
160170msgstr "Completare automată"
161171
162172#: searx/templates/courgette/preferences.html:45
163173#: searx/templates/default/preferences.html:46
164−#: searx/templates/oscar/preferences.html:75
174+#: searx/templates/oscar/preferences.html:76
165175msgid "Image proxy"
166176msgstr "Proxy de imagini"
167177
168178#: searx/templates/courgette/preferences.html:48
169179#: searx/templates/default/preferences.html:49
170−#: searx/templates/oscar/preferences.html:79
180+#: searx/templates/oscar/preferences.html:80
171181msgid "Enabled"
172182msgstr "Activat"
173183
174184#: searx/templates/courgette/preferences.html:49
175185#: searx/templates/default/preferences.html:50
176−#: searx/templates/oscar/preferences.html:80
186+#: searx/templates/oscar/preferences.html:81
177187msgid "Disabled"
178188msgstr "Dezactivat"
179189
180190#: searx/templates/courgette/preferences.html:54
181191#: searx/templates/default/preferences.html:55
182−#: searx/templates/oscar/preferences.html:84
192+#: searx/templates/oscar/preferences.html:85
183193#: searx/templates/pix-art/preferences.html:30
184194msgid "Method"
185195msgstr "Metodă"
186196
187197#: searx/templates/courgette/preferences.html:63
188198#: searx/templates/default/preferences.html:64
189−#: searx/templates/oscar/preferences.html:93
199+#: searx/templates/oscar/preferences.html:94
200+#: searx/templates/oscar/preferences.html:144
201+#: searx/templates/oscar/preferences.html:150
190202msgid "SafeSearch"
191203msgstr "CăutareSigură"
192204
193205#: searx/templates/courgette/preferences.html:66
194206#: searx/templates/default/preferences.html:67
195−#: searx/templates/oscar/preferences.html:97
207+#: searx/templates/oscar/preferences.html:98
196208msgid "Strict"
197209msgstr "Strict"
198210
199211#: searx/templates/courgette/preferences.html:67
200212#: searx/templates/default/preferences.html:68
201−#: searx/templates/oscar/preferences.html:98
213+#: searx/templates/oscar/preferences.html:99
202214msgid "Moderate"
203215msgstr "Moderat"
204216
205217#: searx/templates/courgette/preferences.html:68
206218#: searx/templates/default/preferences.html:69
207−#: searx/templates/oscar/preferences.html:99
219+#: searx/templates/oscar/preferences.html:100
208220msgid "None"
209221msgstr "Nimic"
210222
211223#: searx/templates/courgette/preferences.html:73
212224#: searx/templates/default/preferences.html:74
213−#: searx/templates/oscar/preferences.html:103
225+#: searx/templates/oscar/preferences.html:104
214226#: searx/templates/pix-art/preferences.html:39
215227msgid "Themes"
216228msgstr "Teme"
@@ -251,6 +263,8 @@ msgstr "Motoarele de căutare folosite curent"
251263
252264#: searx/templates/courgette/preferences.html:100
253265#: searx/templates/default/preferences.html:88
266+#: searx/templates/oscar/preferences.html:142
267+#: searx/templates/oscar/preferences.html:152
254268#: searx/templates/pix-art/preferences.html:53
255269msgid "Engine name"
256270msgstr "Numele motorului"
@@ -265,6 +279,8 @@ msgstr "Categorie"
265279#: searx/templates/default/preferences.html:90
266280#: searx/templates/default/preferences.html:101
267281#: searx/templates/oscar/macros.html:67
282+#: searx/templates/oscar/preferences.html:141
283+#: searx/templates/oscar/preferences.html:153
268284#: searx/templates/pix-art/preferences.html:54
269285#: searx/templates/pix-art/preferences.html:64
270286msgid "Allow"
@@ -282,7 +298,7 @@ msgstr "Blochează"
282298
283299#: searx/templates/courgette/preferences.html:122
284300#: searx/templates/default/preferences.html:110
285−#: searx/templates/oscar/preferences.html:180
301+#: searx/templates/oscar/preferences.html:235
286302#: searx/templates/pix-art/preferences.html:73
287303msgid ""
288304"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
291307
292308#: searx/templates/courgette/preferences.html:124
293309#: searx/templates/default/preferences.html:112
294−#: searx/templates/oscar/preferences.html:182
310+#: searx/templates/oscar/preferences.html:237
295311#: searx/templates/pix-art/preferences.html:75
296312msgid ""
297313"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
300316
301317#: searx/templates/courgette/preferences.html:127
302318#: searx/templates/default/preferences.html:115
303−#: searx/templates/oscar/preferences.html:185
319+#: searx/templates/oscar/preferences.html:240
304320#: searx/templates/pix-art/preferences.html:78
305321msgid "save"
306322msgstr "salvează"
307323
308324#: searx/templates/courgette/preferences.html:128
309325#: searx/templates/default/preferences.html:116
310−#: searx/templates/oscar/preferences.html:187
326+#: searx/templates/oscar/preferences.html:242
311327msgid "Reset defaults"
312328msgstr "Resetează valorile implicite"
313329
314330#: searx/templates/courgette/preferences.html:129
315331#: searx/templates/default/preferences.html:117
316−#: searx/templates/oscar/preferences.html:186
332+#: searx/templates/oscar/preferences.html:241
317333#: searx/templates/pix-art/preferences.html:79
318334msgid "back"
319335msgstr "înapoi"
@@ -423,51 +439,89 @@ msgid "Toggle navigation"
423439msgstr "Comută navigarea"
424440
425441#: searx/templates/oscar/preferences.html:17
426−#: searx/templates/oscar/preferences.html:24
442+#: searx/templates/oscar/preferences.html:25
427443msgid "General"
428444msgstr "General"
429445
430446#: searx/templates/oscar/preferences.html:18
431−#: searx/templates/oscar/preferences.html:125
447+#: searx/templates/oscar/preferences.html:126
432448msgid "Engines"
433449msgstr "Motoare"
434450
435451#: searx/templates/oscar/preferences.html:19
436−#: searx/templates/oscar/preferences.html:159
452+#: searx/templates/oscar/preferences.html:187
437453msgid "Plugins"
438454msgstr "Module"
439455
440−#: searx/templates/oscar/preferences.html:44
456+#: searx/templates/oscar/preferences.html:20
457+#: searx/templates/oscar/preferences.html:210
458+msgid "Cookies"
459+msgstr ""
460+
461+#: searx/templates/oscar/preferences.html:45
441462msgid "What language do you prefer for search?"
442463msgstr "Ce limbă preferați pentru căutare?"
443464
444−#: searx/templates/oscar/preferences.html:55
465+#: searx/templates/oscar/preferences.html:56
445466msgid "Change the language of the layout"
446467msgstr "Schimbă limba aspectului"
447468
448−#: searx/templates/oscar/preferences.html:65
469+#: searx/templates/oscar/preferences.html:66
449470msgid "Find stuff as you type"
450471msgstr "Găsește lucruri în timp ce tastezi"
451472
452−#: searx/templates/oscar/preferences.html:76
473+#: searx/templates/oscar/preferences.html:77
453474msgid "Proxying image results through searx"
454475msgstr "Transferă rezultatele cu imagini prin searx"
455476
456−#: searx/templates/oscar/preferences.html:85
477+#: searx/templates/oscar/preferences.html:86
457478msgid ""
458479"Change how forms are submited, <a "
459480"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
460481" rel=\"external\">learn more about request methods</a>"
461482msgstr "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>"
462483
463−#: searx/templates/oscar/preferences.html:94
484+#: searx/templates/oscar/preferences.html:95
464485msgid "Filter content"
465486msgstr "Filtrează conținutul"
466487
467−#: searx/templates/oscar/preferences.html:104
488+#: searx/templates/oscar/preferences.html:105
468489msgid "Change searx layout"
469490msgstr "Schimbă aspectul lui searx"
470491
492+#: searx/templates/oscar/preferences.html:143
493+#: searx/templates/oscar/preferences.html:151
494+msgid "Shortcut"
495+msgstr ""
496+
497+#: searx/templates/oscar/preferences.html:145
498+#: searx/templates/oscar/preferences.html:149
499+msgid "Avg. time"
500+msgstr ""
501+
502+#: searx/templates/oscar/preferences.html:146
503+#: searx/templates/oscar/preferences.html:148
504+msgid "Max time"
505+msgstr ""
506+
507+#: searx/templates/oscar/preferences.html:213
508+msgid ""
509+"This is the list of cookies and their values searx is storing on your "
510+"computer."
511+msgstr ""
512+
513+#: searx/templates/oscar/preferences.html:214
514+msgid "With that list, you can assess searx transparency."
515+msgstr ""
516+
517+#: searx/templates/oscar/preferences.html:219
518+msgid "Cookie name"
519+msgstr ""
520+
521+#: searx/templates/oscar/preferences.html:220
522+msgid "Value"
523+msgstr ""
524+
471525#: searx/templates/oscar/results.html:7
472526msgid "Search results"
473527msgstr "Rezultatele căutării"
@@ -517,6 +571,14 @@ msgstr "Avertizare!"
517571msgid "Please enable JavaScript to use full functionality of this site."
518572msgstr "Vă rog activați JavaScript pentru a utiliza funcționalitatea completă a acestui site."
519573
574+#: searx/templates/oscar/messages/no_cookies.html:3
575+msgid "Information!"
576+msgstr ""
577+
578+#: searx/templates/oscar/messages/no_cookies.html:4
579+msgid "currently, there are no cookies defined."
580+msgstr ""
581+
520582#: searx/templates/oscar/messages/no_data_available.html:4
521583msgid "There is currently no data available. "
522584msgstr "Deocamdată nu există date disponibile."
searx/translations/ru/LC_MESSAGES/messages.mo

Binary file not shown.

searx/translations/ru/LC_MESSAGES/messages.po+115−53
@@ -9,10 +9,10 @@ msgid ""
99msgstr ""
1010"Project-Id-Version: searx\n"
1111"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
12−"POT-Creation-Date: 2015-04-26 18:57+0200\n"
13−"PO-Revision-Date: 2015-04-26 17:02+0000\n"
14−"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
15−"Language-Team: Russian (http://www.transifex.com/projects/p/searx/language/ru/)\n"
12+"POT-Creation-Date: 2015-08-24 11:44+0200\n"
13+"PO-Revision-Date: 2015-08-24 09:45+0000\n"
14+"Last-Translator: pointhi\n"
15+"Language-Team: Russian (http://www.transifex.com/asciimoo/searx/language/ru/)\n"
1616"MIME-Version: 1.0\n"
1717"Content-Type: text/plain; charset=UTF-8\n"
1818"Content-Transfer-Encoding: 8bit\n"
@@ -20,67 +20,67 @@ msgstr ""
2020"Language: ru\n"
2121"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"
2222
23−#: searx/webapp.py:104
23+#: searx/webapp.py:114
2424msgid "files"
2525msgstr "файлы"
2626
27−#: searx/webapp.py:105
27+#: searx/webapp.py:115
2828msgid "general"
2929msgstr "общие"
3030
31−#: searx/webapp.py:106
31+#: searx/webapp.py:116
3232msgid "music"
3333msgstr "музыка"
3434
35−#: searx/webapp.py:107
35+#: searx/webapp.py:117
3636msgid "social media"
3737msgstr "соцсети"
3838
39−#: searx/webapp.py:108
39+#: searx/webapp.py:118
4040msgid "images"
4141msgstr "картинки"
4242
43−#: searx/webapp.py:109
43+#: searx/webapp.py:119
4444msgid "videos"
4545msgstr "видео"
4646
47−#: searx/webapp.py:110
47+#: searx/webapp.py:120
4848msgid "it"
4949msgstr "IT"
5050
51−#: searx/webapp.py:111
51+#: searx/webapp.py:121
5252msgid "news"
5353msgstr "новости"
5454
55−#: searx/webapp.py:112
55+#: searx/webapp.py:122
5656msgid "map"
5757msgstr "карты"
5858
59−#: searx/webapp.py:396
59+#: searx/webapp.py:414
6060msgid "{minutes} minute(s) ago"
6161msgstr "{minutes} минут назад"
6262
63−#: searx/webapp.py:398
63+#: searx/webapp.py:416
6464msgid "{hours} hour(s), {minutes} minute(s) ago"
6565msgstr "{hours} час, {minutes} минут назад"
6666
67−#: searx/engines/__init__.py:182
67+#: searx/engines/__init__.py:185
6868msgid "Page loads (sec)"
6969msgstr "Время загрузки (сек)"
7070
71−#: searx/engines/__init__.py:186
71+#: searx/engines/__init__.py:189
7272msgid "Number of results"
7373msgstr "Число результатов"
7474
75−#: searx/engines/__init__.py:190
75+#: searx/engines/__init__.py:193
7676msgid "Scores"
7777msgstr "Попаданий"
7878
79−#: searx/engines/__init__.py:194
79+#: searx/engines/__init__.py:197
8080msgid "Scores per result"
8181msgstr "Попаданий за результат"
8282
83−#: searx/engines/__init__.py:198
83+#: searx/engines/__init__.py:201
8484msgid "Errors"
8585msgstr "Ошибок"
8686
@@ -95,11 +95,21 @@ msgstr ""
9595#: searx/plugins/search_on_category_select.py:19
9696msgid ""
9797"Perform search immediately if a category selected. Disable to select "
98−"multiple categories."
98+"multiple categories. (JavaScript required)"
9999msgstr ""
100100
101−#: searx/plugins/self_ip.py:19
102−msgid "Display your source IP address if the query expression is \"ip\""
101+#: searx/plugins/self_info.py:20
102+msgid ""
103+"Displays your IP if the query is \"ip\" and your user agent if the query "
104+"contains \"user agent\"."
105+msgstr ""
106+
107+#: searx/plugins/tracker_url_remover.py:26
108+msgid "Tracker URL remover"
109+msgstr ""
110+
111+#: searx/plugins/tracker_url_remover.py:27
112+msgid "Remove trackers arguments from the returned URL"
103113msgstr ""
104114
105115#: searx/templates/courgette/index.html:9
@@ -128,90 +138,92 @@ msgstr "Опции"
128138
129139#: searx/templates/courgette/preferences.html:9
130140#: searx/templates/default/preferences.html:9
131−#: searx/templates/oscar/preferences.html:35
132−#: searx/templates/oscar/preferences.html:37
141+#: searx/templates/oscar/preferences.html:36
142+#: searx/templates/oscar/preferences.html:38
133143msgid "Default categories"
134144msgstr "Категории по-умолчанию"
135145
136146#: searx/templates/courgette/preferences.html:13
137147#: searx/templates/default/preferences.html:14
138−#: searx/templates/oscar/preferences.html:43
148+#: searx/templates/oscar/preferences.html:44
139149#: searx/templates/pix-art/preferences.html:9
140150msgid "Search language"
141151msgstr "Язык поиска"
142152
143153#: searx/templates/courgette/preferences.html:16
144154#: searx/templates/default/preferences.html:17
145−#: searx/templates/oscar/preferences.html:47
155+#: searx/templates/oscar/preferences.html:48
146156#: searx/templates/pix-art/preferences.html:12
147157msgid "Automatic"
148158msgstr "Выбирать автоматически"
149159
150160#: searx/templates/courgette/preferences.html:24
151161#: searx/templates/default/preferences.html:25
152−#: searx/templates/oscar/preferences.html:54
162+#: searx/templates/oscar/preferences.html:55
153163#: searx/templates/pix-art/preferences.html:20
154164msgid "Interface language"
155165msgstr "Язык интерфейса"
156166
157167#: searx/templates/courgette/preferences.html:34
158168#: searx/templates/default/preferences.html:35
159−#: searx/templates/oscar/preferences.html:64
169+#: searx/templates/oscar/preferences.html:65
160170msgid "Autocomplete"
161171msgstr "Авто-подсказки"
162172
163173#: searx/templates/courgette/preferences.html:45
164174#: searx/templates/default/preferences.html:46
165−#: searx/templates/oscar/preferences.html:75
175+#: searx/templates/oscar/preferences.html:76
166176msgid "Image proxy"
167177msgstr "Прокси для картинок"
168178
169179#: searx/templates/courgette/preferences.html:48
170180#: searx/templates/default/preferences.html:49
171−#: searx/templates/oscar/preferences.html:79
181+#: searx/templates/oscar/preferences.html:80
172182msgid "Enabled"
173183msgstr "Включен"
174184
175185#: searx/templates/courgette/preferences.html:49
176186#: searx/templates/default/preferences.html:50
177−#: searx/templates/oscar/preferences.html:80
187+#: searx/templates/oscar/preferences.html:81
178188msgid "Disabled"
179189msgstr "Выключен"
180190
181191#: searx/templates/courgette/preferences.html:54
182192#: searx/templates/default/preferences.html:55
183−#: searx/templates/oscar/preferences.html:84
193+#: searx/templates/oscar/preferences.html:85
184194#: searx/templates/pix-art/preferences.html:30
185195msgid "Method"
186196msgstr "Метод"
187197
188198#: searx/templates/courgette/preferences.html:63
189199#: searx/templates/default/preferences.html:64
190−#: searx/templates/oscar/preferences.html:93
200+#: searx/templates/oscar/preferences.html:94
201+#: searx/templates/oscar/preferences.html:144
202+#: searx/templates/oscar/preferences.html:150
191203msgid "SafeSearch"
192204msgstr "Безопасный поиск"
193205
194206#: searx/templates/courgette/preferences.html:66
195207#: searx/templates/default/preferences.html:67
196−#: searx/templates/oscar/preferences.html:97
208+#: searx/templates/oscar/preferences.html:98
197209msgid "Strict"
198210msgstr "Строгий"
199211
200212#: searx/templates/courgette/preferences.html:67
201213#: searx/templates/default/preferences.html:68
202−#: searx/templates/oscar/preferences.html:98
214+#: searx/templates/oscar/preferences.html:99
203215msgid "Moderate"
204216msgstr "Умеренный"
205217
206218#: searx/templates/courgette/preferences.html:68
207219#: searx/templates/default/preferences.html:69
208−#: searx/templates/oscar/preferences.html:99
220+#: searx/templates/oscar/preferences.html:100
209221msgid "None"
210222msgstr "Выключен"
211223
212224#: searx/templates/courgette/preferences.html:73
213225#: searx/templates/default/preferences.html:74
214−#: searx/templates/oscar/preferences.html:103
226+#: searx/templates/oscar/preferences.html:104
215227#: searx/templates/pix-art/preferences.html:39
216228msgid "Themes"
217229msgstr "Темы"
@@ -252,6 +264,8 @@ msgstr "Используемые поисковые движки"
252264
253265#: searx/templates/courgette/preferences.html:100
254266#: searx/templates/default/preferences.html:88
267+#: searx/templates/oscar/preferences.html:142
268+#: searx/templates/oscar/preferences.html:152
255269#: searx/templates/pix-art/preferences.html:53
256270msgid "Engine name"
257271msgstr "Имя движка"
@@ -266,6 +280,8 @@ msgstr "Категория"
266280#: searx/templates/default/preferences.html:90
267281#: searx/templates/default/preferences.html:101
268282#: searx/templates/oscar/macros.html:67
283+#: searx/templates/oscar/preferences.html:141
284+#: searx/templates/oscar/preferences.html:153
269285#: searx/templates/pix-art/preferences.html:54
270286#: searx/templates/pix-art/preferences.html:64
271287msgid "Allow"
@@ -283,7 +299,7 @@ msgstr "Блокировать"
283299
284300#: searx/templates/courgette/preferences.html:122
285301#: searx/templates/default/preferences.html:110
286−#: searx/templates/oscar/preferences.html:180
302+#: searx/templates/oscar/preferences.html:235
287303#: searx/templates/pix-art/preferences.html:73
288304msgid ""
289305"These settings are stored in your cookies, this allows us not to store this "
@@ -292,7 +308,7 @@ msgstr "Настройки хранятся в ваших cookies-файлах,
292308
293309#: searx/templates/courgette/preferences.html:124
294310#: searx/templates/default/preferences.html:112
295−#: searx/templates/oscar/preferences.html:182
311+#: searx/templates/oscar/preferences.html:237
296312#: searx/templates/pix-art/preferences.html:75
297313msgid ""
298314"These cookies serve your sole convenience, we don't use these cookies to "
@@ -301,20 +317,20 @@ msgstr "Данные cookies применяются для вашего удоб
301317
302318#: searx/templates/courgette/preferences.html:127
303319#: searx/templates/default/preferences.html:115
304−#: searx/templates/oscar/preferences.html:185
320+#: searx/templates/oscar/preferences.html:240
305321#: searx/templates/pix-art/preferences.html:78
306322msgid "save"
307323msgstr "сохранить"
308324
309325#: searx/templates/courgette/preferences.html:128
310326#: searx/templates/default/preferences.html:116
311−#: searx/templates/oscar/preferences.html:187
327+#: searx/templates/oscar/preferences.html:242
312328msgid "Reset defaults"
313329msgstr ""
314330
315331#: searx/templates/courgette/preferences.html:129
316332#: searx/templates/default/preferences.html:117
317−#: searx/templates/oscar/preferences.html:186
333+#: searx/templates/oscar/preferences.html:241
318334#: searx/templates/pix-art/preferences.html:79
319335msgid "back"
320336msgstr "назад"
@@ -424,51 +440,89 @@ msgid "Toggle navigation"
424440msgstr "Переключить навигацию"
425441
426442#: searx/templates/oscar/preferences.html:17
427−#: searx/templates/oscar/preferences.html:24
443+#: searx/templates/oscar/preferences.html:25
428444msgid "General"
429445msgstr "Общие"
430446
431447#: searx/templates/oscar/preferences.html:18
432−#: searx/templates/oscar/preferences.html:125
448+#: searx/templates/oscar/preferences.html:126
433449msgid "Engines"
434450msgstr "Движки"
435451
436452#: searx/templates/oscar/preferences.html:19
437−#: searx/templates/oscar/preferences.html:159
453+#: searx/templates/oscar/preferences.html:187
438454msgid "Plugins"
439455msgstr ""
440456
441−#: searx/templates/oscar/preferences.html:44
457+#: searx/templates/oscar/preferences.html:20
458+#: searx/templates/oscar/preferences.html:210
459+msgid "Cookies"
460+msgstr ""
461+
462+#: searx/templates/oscar/preferences.html:45
442463msgid "What language do you prefer for search?"
443464msgstr "На каком языке вы предпочитаете искать?"
444465
445−#: searx/templates/oscar/preferences.html:55
466+#: searx/templates/oscar/preferences.html:56
446467msgid "Change the language of the layout"
447468msgstr "Изменить язык сайта"
448469
449−#: searx/templates/oscar/preferences.html:65
470+#: searx/templates/oscar/preferences.html:66
450471msgid "Find stuff as you type"
451472msgstr "Поисковые предложения при наборе"
452473
453−#: searx/templates/oscar/preferences.html:76
474+#: searx/templates/oscar/preferences.html:77
454475msgid "Proxying image results through searx"
455476msgstr "Проксировать найденные изображения с помощью searx"
456477
457−#: searx/templates/oscar/preferences.html:85
478+#: searx/templates/oscar/preferences.html:86
458479msgid ""
459480"Change how forms are submited, <a "
460481"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
461482" rel=\"external\">learn more about request methods</a>"
462483msgstr "Изменяет способ отправки запросов (<a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">подробней о методах запросов</a>)"
463484
464−#: searx/templates/oscar/preferences.html:94
485+#: searx/templates/oscar/preferences.html:95
465486msgid "Filter content"
466487msgstr "Использовать ли фильтр контента"
467488
468−#: searx/templates/oscar/preferences.html:104
489+#: searx/templates/oscar/preferences.html:105
469490msgid "Change searx layout"
470491msgstr "Изменить тему сайта"
471492
493+#: searx/templates/oscar/preferences.html:143
494+#: searx/templates/oscar/preferences.html:151
495+msgid "Shortcut"
496+msgstr ""
497+
498+#: searx/templates/oscar/preferences.html:145
499+#: searx/templates/oscar/preferences.html:149
500+msgid "Avg. time"
501+msgstr ""
502+
503+#: searx/templates/oscar/preferences.html:146
504+#: searx/templates/oscar/preferences.html:148
505+msgid "Max time"
506+msgstr ""
507+
508+#: searx/templates/oscar/preferences.html:213
509+msgid ""
510+"This is the list of cookies and their values searx is storing on your "
511+"computer."
512+msgstr ""
513+
514+#: searx/templates/oscar/preferences.html:214
515+msgid "With that list, you can assess searx transparency."
516+msgstr ""
517+
518+#: searx/templates/oscar/preferences.html:219
519+msgid "Cookie name"
520+msgstr ""
521+
522+#: searx/templates/oscar/preferences.html:220
523+msgid "Value"
524+msgstr ""
525+
472526#: searx/templates/oscar/results.html:7
473527msgid "Search results"
474528msgstr "Результаты поиска"
@@ -518,6 +572,14 @@ msgstr "Внимание!"
518572msgid "Please enable JavaScript to use full functionality of this site."
519573msgstr "Пожалуйста включите JavaScript, чтобы использовать все функции сайта."
520574
575+#: searx/templates/oscar/messages/no_cookies.html:3
576+msgid "Information!"
577+msgstr ""
578+
579+#: searx/templates/oscar/messages/no_cookies.html:4
580+msgid "currently, there are no cookies defined."
581+msgstr ""
582+
521583#: searx/templates/oscar/messages/no_data_available.html:4
522584msgid "There is currently no data available. "
523585msgstr "На данный момент данные недоступны."
searx/translations/tr/LC_MESSAGES/messages.mo

Binary file not shown.

searx/translations/tr/LC_MESSAGES/messages.po+116−54
@@ -9,10 +9,10 @@ msgid ""
99msgstr ""
1010"Project-Id-Version: searx\n"
1111"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
12−"POT-Creation-Date: 2015-04-26 18:57+0200\n"
13−"PO-Revision-Date: 2015-04-28 17:33+0000\n"
14−"Last-Translator: Caner Başaran <basaran.caner@gmail.com>\n"
15−"Language-Team: Turkish (http://www.transifex.com/projects/p/searx/language/tr/)\n"
12+"POT-Creation-Date: 2015-08-24 11:44+0200\n"
13+"PO-Revision-Date: 2015-08-24 09:45+0000\n"
14+"Last-Translator: pointhi\n"
15+"Language-Team: Turkish (http://www.transifex.com/asciimoo/searx/language/tr/)\n"
1616"MIME-Version: 1.0\n"
1717"Content-Type: text/plain; charset=UTF-8\n"
1818"Content-Transfer-Encoding: 8bit\n"
@@ -20,67 +20,67 @@ msgstr ""
2020"Language: tr\n"
2121"Plural-Forms: nplurals=2; plural=(n > 1);\n"
2222
23−#: searx/webapp.py:104
23+#: searx/webapp.py:114
2424msgid "files"
2525msgstr "dosyalar"
2626
27−#: searx/webapp.py:105
27+#: searx/webapp.py:115
2828msgid "general"
2929msgstr "genel"
3030
31−#: searx/webapp.py:106
31+#: searx/webapp.py:116
3232msgid "music"
3333msgstr "müzik"
3434
35−#: searx/webapp.py:107
35+#: searx/webapp.py:117
3636msgid "social media"
3737msgstr "sosyal medya"
3838
39−#: searx/webapp.py:108
39+#: searx/webapp.py:118
4040msgid "images"
4141msgstr "görseller"
4242
43−#: searx/webapp.py:109
43+#: searx/webapp.py:119
4444msgid "videos"
4545msgstr "videolar"
4646
47−#: searx/webapp.py:110
47+#: searx/webapp.py:120
4848msgid "it"
4949msgstr "bilişim"
5050
51−#: searx/webapp.py:111
51+#: searx/webapp.py:121
5252msgid "news"
5353msgstr "haberler"
5454
55−#: searx/webapp.py:112
55+#: searx/webapp.py:122
5656msgid "map"
5757msgstr "harita"
5858
59−#: searx/webapp.py:396
59+#: searx/webapp.py:414
6060msgid "{minutes} minute(s) ago"
6161msgstr "{minutes} dakika() önce"
6262
63−#: searx/webapp.py:398
63+#: searx/webapp.py:416
6464msgid "{hours} hour(s), {minutes} minute(s) ago"
6565msgstr "{hours} saat(), {minutes} dakika() önce"
6666
67−#: searx/engines/__init__.py:182
67+#: searx/engines/__init__.py:185
6868msgid "Page loads (sec)"
6969msgstr "Yüklenen sayfa (sn)"
7070
71−#: searx/engines/__init__.py:186
71+#: searx/engines/__init__.py:189
7272msgid "Number of results"
7373msgstr "Sonuç sayısı"
7474
75−#: searx/engines/__init__.py:190
75+#: searx/engines/__init__.py:193
7676msgid "Scores"
7777msgstr ""
7878
79−#: searx/engines/__init__.py:194
79+#: searx/engines/__init__.py:197
8080msgid "Scores per result"
8181msgstr ""
8282
83−#: searx/engines/__init__.py:198
83+#: searx/engines/__init__.py:201
8484msgid "Errors"
8585msgstr "Hatalar"
8686
@@ -95,11 +95,21 @@ msgstr ""
9595#: searx/plugins/search_on_category_select.py:19
9696msgid ""
9797"Perform search immediately if a category selected. Disable to select "
98−"multiple categories."
98+"multiple categories. (JavaScript required)"
9999msgstr ""
100100
101−#: searx/plugins/self_ip.py:19
102−msgid "Display your source IP address if the query expression is \"ip\""
101+#: searx/plugins/self_info.py:20
102+msgid ""
103+"Displays your IP if the query is \"ip\" and your user agent if the query "
104+"contains \"user agent\"."
105+msgstr ""
106+
107+#: searx/plugins/tracker_url_remover.py:26
108+msgid "Tracker URL remover"
109+msgstr ""
110+
111+#: searx/plugins/tracker_url_remover.py:27
112+msgid "Remove trackers arguments from the returned URL"
103113msgstr ""
104114
105115#: searx/templates/courgette/index.html:9
@@ -128,90 +138,92 @@ msgstr "Tercihler"
128138
129139#: searx/templates/courgette/preferences.html:9
130140#: searx/templates/default/preferences.html:9
131−#: searx/templates/oscar/preferences.html:35
132−#: searx/templates/oscar/preferences.html:37
141+#: searx/templates/oscar/preferences.html:36
142+#: searx/templates/oscar/preferences.html:38
133143msgid "Default categories"
134144msgstr "Öntanımlı kategoriler"
135145
136146#: searx/templates/courgette/preferences.html:13
137147#: searx/templates/default/preferences.html:14
138−#: searx/templates/oscar/preferences.html:43
148+#: searx/templates/oscar/preferences.html:44
139149#: searx/templates/pix-art/preferences.html:9
140150msgid "Search language"
141151msgstr "Arama dili"
142152
143153#: searx/templates/courgette/preferences.html:16
144154#: searx/templates/default/preferences.html:17
145−#: searx/templates/oscar/preferences.html:47
155+#: searx/templates/oscar/preferences.html:48
146156#: searx/templates/pix-art/preferences.html:12
147157msgid "Automatic"
148158msgstr "Otomatik"
149159
150160#: searx/templates/courgette/preferences.html:24
151161#: searx/templates/default/preferences.html:25
152−#: searx/templates/oscar/preferences.html:54
162+#: searx/templates/oscar/preferences.html:55
153163#: searx/templates/pix-art/preferences.html:20
154164msgid "Interface language"
155165msgstr "Arayüz dili"
156166
157167#: searx/templates/courgette/preferences.html:34
158168#: searx/templates/default/preferences.html:35
159−#: searx/templates/oscar/preferences.html:64
169+#: searx/templates/oscar/preferences.html:65
160170msgid "Autocomplete"
161171msgstr "Otomatik tamamlama"
162172
163173#: searx/templates/courgette/preferences.html:45
164174#: searx/templates/default/preferences.html:46
165−#: searx/templates/oscar/preferences.html:75
175+#: searx/templates/oscar/preferences.html:76
166176msgid "Image proxy"
167177msgstr "Görsel vekil sunucu"
168178
169179#: searx/templates/courgette/preferences.html:48
170180#: searx/templates/default/preferences.html:49
171−#: searx/templates/oscar/preferences.html:79
181+#: searx/templates/oscar/preferences.html:80
172182msgid "Enabled"
173183msgstr "Etkin"
174184
175185#: searx/templates/courgette/preferences.html:49
176186#: searx/templates/default/preferences.html:50
177−#: searx/templates/oscar/preferences.html:80
187+#: searx/templates/oscar/preferences.html:81
178188msgid "Disabled"
179189msgstr "Devre dışı"
180190
181191#: searx/templates/courgette/preferences.html:54
182192#: searx/templates/default/preferences.html:55
183−#: searx/templates/oscar/preferences.html:84
193+#: searx/templates/oscar/preferences.html:85
184194#: searx/templates/pix-art/preferences.html:30
185195msgid "Method"
186196msgstr "Sorgu gönderim yöntemi"
187197
188198#: searx/templates/courgette/preferences.html:63
189199#: searx/templates/default/preferences.html:64
190−#: searx/templates/oscar/preferences.html:93
200+#: searx/templates/oscar/preferences.html:94
201+#: searx/templates/oscar/preferences.html:144
202+#: searx/templates/oscar/preferences.html:150
191203msgid "SafeSearch"
192204msgstr "Güvenli Arama"
193205
194206#: searx/templates/courgette/preferences.html:66
195207#: searx/templates/default/preferences.html:67
196−#: searx/templates/oscar/preferences.html:97
208+#: searx/templates/oscar/preferences.html:98
197209msgid "Strict"
198210msgstr "Sıkı"
199211
200212#: searx/templates/courgette/preferences.html:67
201213#: searx/templates/default/preferences.html:68
202−#: searx/templates/oscar/preferences.html:98
214+#: searx/templates/oscar/preferences.html:99
203215msgid "Moderate"
204216msgstr "Orta"
205217
206218#: searx/templates/courgette/preferences.html:68
207219#: searx/templates/default/preferences.html:69
208−#: searx/templates/oscar/preferences.html:99
220+#: searx/templates/oscar/preferences.html:100
209221msgid "None"
210222msgstr "Yok"
211223
212224#: searx/templates/courgette/preferences.html:73
213225#: searx/templates/default/preferences.html:74
214−#: searx/templates/oscar/preferences.html:103
226+#: searx/templates/oscar/preferences.html:104
215227#: searx/templates/pix-art/preferences.html:39
216228msgid "Themes"
217229msgstr "Temalar"
@@ -252,6 +264,8 @@ msgstr "Şu anda kullanılan arama motorları"
252264
253265#: searx/templates/courgette/preferences.html:100
254266#: searx/templates/default/preferences.html:88
267+#: searx/templates/oscar/preferences.html:142
268+#: searx/templates/oscar/preferences.html:152
255269#: searx/templates/pix-art/preferences.html:53
256270msgid "Engine name"
257271msgstr "Motor adı"
@@ -266,6 +280,8 @@ msgstr "Türü"
266280#: searx/templates/default/preferences.html:90
267281#: searx/templates/default/preferences.html:101
268282#: searx/templates/oscar/macros.html:67
283+#: searx/templates/oscar/preferences.html:141
284+#: searx/templates/oscar/preferences.html:153
269285#: searx/templates/pix-art/preferences.html:54
270286#: searx/templates/pix-art/preferences.html:64
271287msgid "Allow"
@@ -283,7 +299,7 @@ msgstr "Engelle"
283299
284300#: searx/templates/courgette/preferences.html:122
285301#: searx/templates/default/preferences.html:110
286−#: searx/templates/oscar/preferences.html:180
302+#: searx/templates/oscar/preferences.html:235
287303#: searx/templates/pix-art/preferences.html:73
288304msgid ""
289305"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
292308
293309#: searx/templates/courgette/preferences.html:124
294310#: searx/templates/default/preferences.html:112
295−#: searx/templates/oscar/preferences.html:182
311+#: searx/templates/oscar/preferences.html:237
296312#: searx/templates/pix-art/preferences.html:75
297313msgid ""
298314"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
301317
302318#: searx/templates/courgette/preferences.html:127
303319#: searx/templates/default/preferences.html:115
304−#: searx/templates/oscar/preferences.html:185
320+#: searx/templates/oscar/preferences.html:240
305321#: searx/templates/pix-art/preferences.html:78
306322msgid "save"
307323msgstr "kaydet"
308324
309325#: searx/templates/courgette/preferences.html:128
310326#: searx/templates/default/preferences.html:116
311−#: searx/templates/oscar/preferences.html:187
327+#: searx/templates/oscar/preferences.html:242
312328msgid "Reset defaults"
313−msgstr ""
329+msgstr "Varsayılanları sıfırla"
314330
315331#: searx/templates/courgette/preferences.html:129
316332#: searx/templates/default/preferences.html:117
317−#: searx/templates/oscar/preferences.html:186
333+#: searx/templates/oscar/preferences.html:241
318334#: searx/templates/pix-art/preferences.html:79
319335msgid "back"
320336msgstr "geri"
@@ -424,51 +440,89 @@ msgid "Toggle navigation"
424440msgstr ""
425441
426442#: searx/templates/oscar/preferences.html:17
427−#: searx/templates/oscar/preferences.html:24
443+#: searx/templates/oscar/preferences.html:25
428444msgid "General"
429445msgstr "Genel"
430446
431447#: searx/templates/oscar/preferences.html:18
432−#: searx/templates/oscar/preferences.html:125
448+#: searx/templates/oscar/preferences.html:126
433449msgid "Engines"
434450msgstr "Motorlar"
435451
436452#: searx/templates/oscar/preferences.html:19
437−#: searx/templates/oscar/preferences.html:159
453+#: searx/templates/oscar/preferences.html:187
438454msgid "Plugins"
439455msgstr "Eklentiler"
440456
441−#: searx/templates/oscar/preferences.html:44
457+#: searx/templates/oscar/preferences.html:20
458+#: searx/templates/oscar/preferences.html:210
459+msgid "Cookies"
460+msgstr ""
461+
462+#: searx/templates/oscar/preferences.html:45
442463msgid "What language do you prefer for search?"
443464msgstr "Tercih ettiğiniz arama sonuçları dili"
444465
445−#: searx/templates/oscar/preferences.html:55
466+#: searx/templates/oscar/preferences.html:56
446467msgid "Change the language of the layout"
447468msgstr "Site dilini değiştir"
448469
449−#: searx/templates/oscar/preferences.html:65
470+#: searx/templates/oscar/preferences.html:66
450471msgid "Find stuff as you type"
451472msgstr "Leb demeden leblebiyi anlasın"
452473
453−#: searx/templates/oscar/preferences.html:76
474+#: searx/templates/oscar/preferences.html:77
454475msgid "Proxying image results through searx"
455476msgstr "Görsel arama sonuçlarını, searx vekil sunucusu üzerinden geçir"
456477
457−#: searx/templates/oscar/preferences.html:85
478+#: searx/templates/oscar/preferences.html:86
458479msgid ""
459480"Change how forms are submited, <a "
460481"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
461482" rel=\"external\">learn more about request methods</a>"
462483msgstr "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>"
463484
464−#: searx/templates/oscar/preferences.html:94
485+#: searx/templates/oscar/preferences.html:95
465486msgid "Filter content"
466487msgstr "İçeriyi süz"
467488
468−#: searx/templates/oscar/preferences.html:104
489+#: searx/templates/oscar/preferences.html:105
469490msgid "Change searx layout"
470491msgstr "searx yerleşim düzenini değiştir"
471492
493+#: searx/templates/oscar/preferences.html:143
494+#: searx/templates/oscar/preferences.html:151
495+msgid "Shortcut"
496+msgstr ""
497+
498+#: searx/templates/oscar/preferences.html:145
499+#: searx/templates/oscar/preferences.html:149
500+msgid "Avg. time"
501+msgstr ""
502+
503+#: searx/templates/oscar/preferences.html:146
504+#: searx/templates/oscar/preferences.html:148
505+msgid "Max time"
506+msgstr ""
507+
508+#: searx/templates/oscar/preferences.html:213
509+msgid ""
510+"This is the list of cookies and their values searx is storing on your "
511+"computer."
512+msgstr ""
513+
514+#: searx/templates/oscar/preferences.html:214
515+msgid "With that list, you can assess searx transparency."
516+msgstr ""
517+
518+#: searx/templates/oscar/preferences.html:219
519+msgid "Cookie name"
520+msgstr ""
521+
522+#: searx/templates/oscar/preferences.html:220
523+msgid "Value"
524+msgstr ""
525+
472526#: searx/templates/oscar/results.html:7
473527msgid "Search results"
474528msgstr "Arama sonuçları"
@@ -518,6 +572,14 @@ msgstr "Uyarı!"
518572msgid "Please enable JavaScript to use full functionality of this site."
519573msgstr "Lütfen, bu sitenin tüm işlevlerini kullanmak için JavaScript'i etkinleştirin."
520574
575+#: searx/templates/oscar/messages/no_cookies.html:3
576+msgid "Information!"
577+msgstr ""
578+
579+#: searx/templates/oscar/messages/no_cookies.html:4
580+msgid "currently, there are no cookies defined."
581+msgstr ""
582+
521583#: searx/templates/oscar/messages/no_data_available.html:4
522584msgid "There is currently no data available. "
523585msgstr "Şuan uygun veri yok."
searx/translations/zh_CN/LC_MESSAGES/messages.monew file

Binary file not shown.

searx/translations/zh_CN/LC_MESSAGES/messages.ponew file+682
@@ -0,0 +1,682 @@
1+# Translations template for PROJECT.
2+# Copyright (C) 2015 ORGANIZATION
3+# This file is distributed under the same license as the PROJECT project.
4+#
5+# Translators:
6+# 文科, 2015
7+msgid ""
8+msgstr ""
9+"Project-Id-Version: searx\n"
10+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
11+"POT-Creation-Date: 2015-08-24 11:44+0200\n"
12+"PO-Revision-Date: 2015-08-29 07:35+0000\n"
13+"Last-Translator: 文科\n"
14+"Language-Team: Chinese (China) (http://www.transifex.com/asciimoo/searx/language/zh_CN/)\n"
15+"MIME-Version: 1.0\n"
16+"Content-Type: text/plain; charset=UTF-8\n"
17+"Content-Transfer-Encoding: 8bit\n"
18+"Generated-By: Babel 1.3\n"
19+"Language: zh_CN\n"
20+"Plural-Forms: nplurals=1; plural=0;\n"
21+
22+#: searx/webapp.py:114
23+msgid "files"
24+msgstr "文件"
25+
26+#: searx/webapp.py:115
27+msgid "general"
28+msgstr "一般"
29+
30+#: searx/webapp.py:116
31+msgid "music"
32+msgstr "音乐"
33+
34+#: searx/webapp.py:117
35+msgid "social media"
36+msgstr "社交媒体"
37+
38+#: searx/webapp.py:118
39+msgid "images"
40+msgstr "图片"
41+
42+#: searx/webapp.py:119
43+msgid "videos"
44+msgstr "视频"
45+
46+#: searx/webapp.py:120
47+msgid "it"
48+msgstr "it"
49+
50+#: searx/webapp.py:121
51+msgid "news"
52+msgstr "新闻"
53+
54+#: searx/webapp.py:122
55+msgid "map"
56+msgstr "地图"
57+
58+#: searx/webapp.py:414
59+msgid "{minutes} minute(s) ago"
60+msgstr "{minutes}分钟之前"
61+
62+#: searx/webapp.py:416
63+msgid "{hours} hour(s), {minutes} minute(s) ago"
64+msgstr "{hours}小时{minutes}分钟之前"
65+
66+#: searx/engines/__init__.py:185
67+msgid "Page loads (sec)"
68+msgstr "页面加载 (秒)"
69+
70+#: searx/engines/__init__.py:189
71+msgid "Number of results"
72+msgstr "结果数"
73+
74+#: searx/engines/__init__.py:193
75+msgid "Scores"
76+msgstr "得分"
77+
78+#: searx/engines/__init__.py:197
79+msgid "Scores per result"
80+msgstr "每个结果等分"
81+
82+#: searx/engines/__init__.py:201
83+msgid "Errors"
84+msgstr "错误"
85+
86+#: searx/plugins/https_rewrite.py:29
87+msgid "Rewrite HTTP links to HTTPS if possible"
88+msgstr "如果可能的话重定向HTTP链接到HTTPS"
89+
90+#: searx/plugins/search_on_category_select.py:18
91+msgid "Search on category select"
92+msgstr "搜索类别选择"
93+
94+#: searx/plugins/search_on_category_select.py:19
95+msgid ""
96+"Perform search immediately if a category selected. Disable to select "
97+"multiple categories. (JavaScript required)"
98+msgstr "如果选中一个类别立即搜索。禁用选择多个类别功能。(JavaScript 启用)"
99+
100+#: searx/plugins/self_info.py:20
101+msgid ""
102+"Displays your IP if the query is \"ip\" and your user agent if the query "
103+"contains \"user agent\"."
104+msgstr "搜索“ip”显示你的ip和搜索内容包括“user agent”显示你的user agent。"
105+
106+#: searx/plugins/tracker_url_remover.py:26
107+msgid "Tracker URL remover"
108+msgstr "移除跟踪链接"
109+
110+#: searx/plugins/tracker_url_remover.py:27
111+msgid "Remove trackers arguments from the returned URL"
112+msgstr "从返回的链接中移除跟踪参数"
113+
114+#: searx/templates/courgette/index.html:9
115+#: searx/templates/courgette/index.html:13
116+#: searx/templates/courgette/results.html:5
117+#: searx/templates/default/index.html:8 searx/templates/default/index.html:12
118+#: searx/templates/oscar/navbar.html:7 searx/templates/oscar/navbar.html:35
119+#: searx/templates/oscar/preferences.html:3
120+#: searx/templates/pix-art/index.html:8
121+msgid "preferences"
122+msgstr "首选项"
123+
124+#: searx/templates/courgette/index.html:11
125+#: searx/templates/default/index.html:10 searx/templates/oscar/about.html:3
126+#: searx/templates/oscar/navbar.html:8 searx/templates/oscar/navbar.html:34
127+#: searx/templates/pix-art/index.html:7
128+msgid "about"
129+msgstr "关于"
130+
131+#: searx/templates/courgette/preferences.html:5
132+#: searx/templates/default/preferences.html:5
133+#: searx/templates/oscar/preferences.html:12
134+#: searx/templates/pix-art/preferences.html:5
135+msgid "Preferences"
136+msgstr "首选项"
137+
138+#: searx/templates/courgette/preferences.html:9
139+#: searx/templates/default/preferences.html:9
140+#: searx/templates/oscar/preferences.html:36
141+#: searx/templates/oscar/preferences.html:38
142+msgid "Default categories"
143+msgstr "默认类别"
144+
145+#: searx/templates/courgette/preferences.html:13
146+#: searx/templates/default/preferences.html:14
147+#: searx/templates/oscar/preferences.html:44
148+#: searx/templates/pix-art/preferences.html:9
149+msgid "Search language"
150+msgstr "搜索语言"
151+
152+#: searx/templates/courgette/preferences.html:16
153+#: searx/templates/default/preferences.html:17
154+#: searx/templates/oscar/preferences.html:48
155+#: searx/templates/pix-art/preferences.html:12
156+msgid "Automatic"
157+msgstr "自动"
158+
159+#: searx/templates/courgette/preferences.html:24
160+#: searx/templates/default/preferences.html:25
161+#: searx/templates/oscar/preferences.html:55
162+#: searx/templates/pix-art/preferences.html:20
163+msgid "Interface language"
164+msgstr "界面语言"
165+
166+#: searx/templates/courgette/preferences.html:34
167+#: searx/templates/default/preferences.html:35
168+#: searx/templates/oscar/preferences.html:65
169+msgid "Autocomplete"
170+msgstr "自动完成"
171+
172+#: searx/templates/courgette/preferences.html:45
173+#: searx/templates/default/preferences.html:46
174+#: searx/templates/oscar/preferences.html:76
175+msgid "Image proxy"
176+msgstr "代理图片"
177+
178+#: searx/templates/courgette/preferences.html:48
179+#: searx/templates/default/preferences.html:49
180+#: searx/templates/oscar/preferences.html:80
181+msgid "Enabled"
182+msgstr "启用"
183+
184+#: searx/templates/courgette/preferences.html:49
185+#: searx/templates/default/preferences.html:50
186+#: searx/templates/oscar/preferences.html:81
187+msgid "Disabled"
188+msgstr "禁用"
189+
190+#: searx/templates/courgette/preferences.html:54
191+#: searx/templates/default/preferences.html:55
192+#: searx/templates/oscar/preferences.html:85
193+#: searx/templates/pix-art/preferences.html:30
194+msgid "Method"
195+msgstr "方法"
196+
197+#: searx/templates/courgette/preferences.html:63
198+#: searx/templates/default/preferences.html:64
199+#: searx/templates/oscar/preferences.html:94
200+#: searx/templates/oscar/preferences.html:144
201+#: searx/templates/oscar/preferences.html:150
202+msgid "SafeSearch"
203+msgstr "安全搜索"
204+
205+#: searx/templates/courgette/preferences.html:66
206+#: searx/templates/default/preferences.html:67
207+#: searx/templates/oscar/preferences.html:98
208+msgid "Strict"
209+msgstr "严格模式"
210+
211+#: searx/templates/courgette/preferences.html:67
212+#: searx/templates/default/preferences.html:68
213+#: searx/templates/oscar/preferences.html:99
214+msgid "Moderate"
215+msgstr "中等"
216+
217+#: searx/templates/courgette/preferences.html:68
218+#: searx/templates/default/preferences.html:69
219+#: searx/templates/oscar/preferences.html:100
220+msgid "None"
221+msgstr "不过滤"
222+
223+#: searx/templates/courgette/preferences.html:73
224+#: searx/templates/default/preferences.html:74
225+#: searx/templates/oscar/preferences.html:104
226+#: searx/templates/pix-art/preferences.html:39
227+msgid "Themes"
228+msgstr "主题"
229+
230+#: searx/templates/courgette/preferences.html:83
231+msgid "Color"
232+msgstr "颜色"
233+
234+#: searx/templates/courgette/preferences.html:86
235+msgid "Blue (default)"
236+msgstr "蓝色(默认)"
237+
238+#: searx/templates/courgette/preferences.html:87
239+msgid "Violet"
240+msgstr "紫色"
241+
242+#: searx/templates/courgette/preferences.html:88
243+msgid "Green"
244+msgstr "绿色"
245+
246+#: searx/templates/courgette/preferences.html:89
247+msgid "Cyan"
248+msgstr "青色"
249+
250+#: searx/templates/courgette/preferences.html:90
251+msgid "Orange"
252+msgstr "橙色"
253+
254+#: searx/templates/courgette/preferences.html:91
255+msgid "Red"
256+msgstr "红色"
257+
258+#: searx/templates/courgette/preferences.html:96
259+#: searx/templates/default/preferences.html:84
260+#: searx/templates/pix-art/preferences.html:49
261+msgid "Currently used search engines"
262+msgstr "目前使用的搜索引擎"
263+
264+#: searx/templates/courgette/preferences.html:100
265+#: searx/templates/default/preferences.html:88
266+#: searx/templates/oscar/preferences.html:142
267+#: searx/templates/oscar/preferences.html:152
268+#: searx/templates/pix-art/preferences.html:53
269+msgid "Engine name"
270+msgstr "搜索引擎名字"
271+
272+#: searx/templates/courgette/preferences.html:101
273+#: searx/templates/default/preferences.html:89
274+msgid "Category"
275+msgstr "类别"
276+
277+#: searx/templates/courgette/preferences.html:102
278+#: searx/templates/courgette/preferences.html:113
279+#: searx/templates/default/preferences.html:90
280+#: searx/templates/default/preferences.html:101
281+#: searx/templates/oscar/macros.html:67
282+#: searx/templates/oscar/preferences.html:141
283+#: searx/templates/oscar/preferences.html:153
284+#: searx/templates/pix-art/preferences.html:54
285+#: searx/templates/pix-art/preferences.html:64
286+msgid "Allow"
287+msgstr "允许"
288+
289+#: searx/templates/courgette/preferences.html:102
290+#: searx/templates/courgette/preferences.html:114
291+#: searx/templates/default/preferences.html:90
292+#: searx/templates/default/preferences.html:102
293+#: searx/templates/oscar/macros.html:66
294+#: searx/templates/pix-art/preferences.html:54
295+#: searx/templates/pix-art/preferences.html:65
296+msgid "Block"
297+msgstr "屏蔽"
298+
299+#: searx/templates/courgette/preferences.html:122
300+#: searx/templates/default/preferences.html:110
301+#: searx/templates/oscar/preferences.html:235
302+#: searx/templates/pix-art/preferences.html:73
303+msgid ""
304+"These settings are stored in your cookies, this allows us not to store this "
305+"data about you."
306+msgstr "这些设置保存你的cookie,这代表我们不能储存你的数据。"
307+
308+#: searx/templates/courgette/preferences.html:124
309+#: searx/templates/default/preferences.html:112
310+#: searx/templates/oscar/preferences.html:237
311+#: searx/templates/pix-art/preferences.html:75
312+msgid ""
313+"These cookies serve your sole convenience, we don't use these cookies to "
314+"track you."
315+msgstr "这些cookie是为了让你更加方便,我们不会使用这些cookie跟踪你。"
316+
317+#: searx/templates/courgette/preferences.html:127
318+#: searx/templates/default/preferences.html:115
319+#: searx/templates/oscar/preferences.html:240
320+#: searx/templates/pix-art/preferences.html:78
321+msgid "save"
322+msgstr "保存"
323+
324+#: searx/templates/courgette/preferences.html:128
325+#: searx/templates/default/preferences.html:116
326+#: searx/templates/oscar/preferences.html:242
327+msgid "Reset defaults"
328+msgstr "恢复默认"
329+
330+#: searx/templates/courgette/preferences.html:129
331+#: searx/templates/default/preferences.html:117
332+#: searx/templates/oscar/preferences.html:241
333+#: searx/templates/pix-art/preferences.html:79
334+msgid "back"
335+msgstr "后"
336+
337+#: searx/templates/courgette/results.html:12
338+#: searx/templates/default/results.html:13
339+#: searx/templates/oscar/results.html:110
340+msgid "Search URL"
341+msgstr "搜索链接"
342+
343+#: searx/templates/courgette/results.html:16
344+#: searx/templates/default/results.html:17
345+#: searx/templates/oscar/results.html:115
346+msgid "Download results"
347+msgstr "下载结果"
348+
349+#: searx/templates/courgette/results.html:34
350+#: searx/templates/default/results.html:35
351+msgid "Answers"
352+msgstr "回答"
353+
354+#: searx/templates/courgette/results.html:42
355+#: searx/templates/default/results.html:43
356+#: searx/templates/oscar/results.html:90
357+msgid "Suggestions"
358+msgstr "搜索建议"
359+
360+#: searx/templates/courgette/results.html:70
361+#: searx/templates/default/results.html:81
362+#: searx/templates/oscar/results.html:51 searx/templates/oscar/results.html:63
363+msgid "previous page"
364+msgstr "上一页"
365+
366+#: searx/templates/courgette/results.html:81
367+#: searx/templates/default/results.html:92
368+#: searx/templates/oscar/results.html:44 searx/templates/oscar/results.html:71
369+msgid "next page"
370+msgstr "下一页"
371+
372+#: searx/templates/courgette/search.html:3
373+#: searx/templates/default/search.html:3 searx/templates/oscar/search.html:4
374+#: searx/templates/oscar/search_full.html:9
375+#: searx/templates/pix-art/search.html:3
376+msgid "Search for..."
377+msgstr "搜索..."
378+
379+#: searx/templates/courgette/stats.html:4 searx/templates/default/stats.html:4
380+#: searx/templates/oscar/stats.html:5 searx/templates/pix-art/stats.html:4
381+msgid "Engine stats"
382+msgstr "搜索引擎统计"
383+
384+#: searx/templates/courgette/result_templates/images.html:4
385+#: searx/templates/default/result_templates/images.html:4
386+#: searx/templates/pix-art/result_templates/images.html:4
387+msgid "original context"
388+msgstr "原始上下文"
389+
390+#: searx/templates/courgette/result_templates/torrent.html:7
391+#: searx/templates/default/result_templates/torrent.html:11
392+#: searx/templates/oscar/result_templates/torrent.html:6
393+msgid "Seeder"
394+msgstr ""
395+
396+#: searx/templates/courgette/result_templates/torrent.html:7
397+#: searx/templates/default/result_templates/torrent.html:11
398+#: searx/templates/oscar/result_templates/torrent.html:6
399+msgid "Leecher"
400+msgstr ""
401+
402+#: searx/templates/courgette/result_templates/torrent.html:9
403+#: searx/templates/default/result_templates/torrent.html:9
404+#: searx/templates/oscar/macros.html:21
405+msgid "magnet link"
406+msgstr "磁力链接"
407+
408+#: searx/templates/courgette/result_templates/torrent.html:10
409+#: searx/templates/default/result_templates/torrent.html:10
410+#: searx/templates/oscar/macros.html:22
411+msgid "torrent file"
412+msgstr "种子文件"
413+
414+#: searx/templates/default/categories.html:8
415+msgid "Click on the magnifier to perform search"
416+msgstr "点击放大镜执行搜索"
417+
418+#: searx/templates/default/result_templates/code.html:3
419+#: searx/templates/default/result_templates/default.html:3
420+#: searx/templates/default/result_templates/map.html:9
421+#: searx/templates/oscar/macros.html:20
422+msgid "cached"
423+msgstr "缓存"
424+
425+#: searx/templates/oscar/base.html:78
426+msgid "Powered by"
427+msgstr "Powered by"
428+
429+#: searx/templates/oscar/base.html:78
430+msgid "a privacy-respecting, hackable metasearch engine"
431+msgstr "一个尊重隐私,可再开发的元搜索引擎"
432+
433+#: searx/templates/oscar/navbar.html:9 searx/templates/oscar/navbar.html:33
434+msgid "home"
435+msgstr "主页"
436+
437+#: searx/templates/oscar/navbar.html:14 searx/templates/oscar/navbar.html:24
438+msgid "Toggle navigation"
439+msgstr "切换导航"
440+
441+#: searx/templates/oscar/preferences.html:17
442+#: searx/templates/oscar/preferences.html:25
443+msgid "General"
444+msgstr "常规"
445+
446+#: searx/templates/oscar/preferences.html:18
447+#: searx/templates/oscar/preferences.html:126
448+msgid "Engines"
449+msgstr "搜索引擎"
450+
451+#: searx/templates/oscar/preferences.html:19
452+#: searx/templates/oscar/preferences.html:187
453+msgid "Plugins"
454+msgstr "插件"
455+
456+#: searx/templates/oscar/preferences.html:20
457+#: searx/templates/oscar/preferences.html:210
458+msgid "Cookies"
459+msgstr "Cookie"
460+
461+#: searx/templates/oscar/preferences.html:45
462+msgid "What language do you prefer for search?"
463+msgstr "你更喜欢搜索什么语言?"
464+
465+#: searx/templates/oscar/preferences.html:56
466+msgid "Change the language of the layout"
467+msgstr "改变界面语言"
468+
469+#: searx/templates/oscar/preferences.html:66
470+msgid "Find stuff as you type"
471+msgstr "找到你的搜索的东西"
472+
473+#: searx/templates/oscar/preferences.html:77
474+msgid "Proxying image results through searx"
475+msgstr "通过searx代理图片"
476+
477+#: searx/templates/oscar/preferences.html:86
478+msgid ""
479+"Change how forms are submited, <a "
480+"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
481+" rel=\"external\">learn more about request methods</a>"
482+msgstr "更改请求方法,<a href=\"http://zh.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">关于请求方法了解更多</a>"
483+
484+#: searx/templates/oscar/preferences.html:95
485+msgid "Filter content"
486+msgstr "过滤内容"
487+
488+#: searx/templates/oscar/preferences.html:105
489+msgid "Change searx layout"
490+msgstr "改变searx布局"
491+
492+#: searx/templates/oscar/preferences.html:143
493+#: searx/templates/oscar/preferences.html:151
494+msgid "Shortcut"
495+msgstr "快捷键"
496+
497+#: searx/templates/oscar/preferences.html:145
498+#: searx/templates/oscar/preferences.html:149
499+msgid "Avg. time"
500+msgstr "平均时间"
501+
502+#: searx/templates/oscar/preferences.html:146
503+#: searx/templates/oscar/preferences.html:148
504+msgid "Max time"
505+msgstr "最大时间"
506+
507+#: searx/templates/oscar/preferences.html:213
508+msgid ""
509+"This is the list of cookies and their values searx is storing on your "
510+"computer."
511+msgstr "这是searx保存在你的电脑上的cookie列表。"
512+
513+#: searx/templates/oscar/preferences.html:214
514+msgid "With that list, you can assess searx transparency."
515+msgstr "有了这个列表,你可以评价searx透明度。"
516+
517+#: searx/templates/oscar/preferences.html:219
518+msgid "Cookie name"
519+msgstr "cookie名称"
520+
521+#: searx/templates/oscar/preferences.html:220
522+msgid "Value"
523+msgstr "值"
524+
525+#: searx/templates/oscar/results.html:7
526+msgid "Search results"
527+msgstr "搜索结果"
528+
529+#: searx/templates/oscar/results.html:105
530+msgid "Links"
531+msgstr "链接"
532+
533+#: searx/templates/oscar/search.html:6
534+#: searx/templates/oscar/search_full.html:11
535+msgid "Start search"
536+msgstr "开始搜索"
537+
538+#: searx/templates/oscar/search_full.html:15
539+msgid "Show search filters"
540+msgstr "显示搜索过滤器"
541+
542+#: searx/templates/oscar/search_full.html:15
543+msgid "Hide search filters"
544+msgstr "隐藏搜索过滤器"
545+
546+#: searx/templates/oscar/stats.html:2
547+msgid "stats"
548+msgstr "统计"
549+
550+#: searx/templates/oscar/messages/first_time.html:4
551+#: searx/templates/oscar/messages/no_results.html:5
552+#: searx/templates/oscar/messages/save_settings_successfull.html:5
553+#: searx/templates/oscar/messages/unknow_error.html:5
554+msgid "Close"
555+msgstr "关闭"
556+
557+#: searx/templates/oscar/messages/first_time.html:6
558+#: searx/templates/oscar/messages/no_data_available.html:3
559+msgid "Heads up!"
560+msgstr "小心!"
561+
562+#: searx/templates/oscar/messages/first_time.html:7
563+msgid "It look like you are using searx first time."
564+msgstr "看起来你是第一次使用searx。"
565+
566+#: searx/templates/oscar/messages/js_disabled.html:2
567+msgid "Warning!"
568+msgstr "警告!"
569+
570+#: searx/templates/oscar/messages/js_disabled.html:3
571+msgid "Please enable JavaScript to use full functionality of this site."
572+msgstr "请启用JavaScript来使用本网站全部功能。"
573+
574+#: searx/templates/oscar/messages/no_cookies.html:3
575+msgid "Information!"
576+msgstr "信息!"
577+
578+#: searx/templates/oscar/messages/no_cookies.html:4
579+msgid "currently, there are no cookies defined."
580+msgstr "目前还未保存cookie。"
581+
582+#: searx/templates/oscar/messages/no_data_available.html:4
583+msgid "There is currently no data available. "
584+msgstr "目前没有数据可用。"
585+
586+#: searx/templates/oscar/messages/no_results.html:7
587+msgid "Sorry!"
588+msgstr "抱歉!"
589+
590+#: searx/templates/oscar/messages/no_results.html:8
591+msgid ""
592+"we didn't find any results. Please use another query or search in more "
593+"categories."
594+msgstr "我们没有找到任何结果。请换用其他词语或在更多类别中搜索。"
595+
596+#: searx/templates/oscar/messages/save_settings_successfull.html:7
597+msgid "Well done!"
598+msgstr "做得好!"
599+
600+#: searx/templates/oscar/messages/save_settings_successfull.html:8
601+msgid "Settings saved successfully."
602+msgstr "设置保存成功。"
603+
604+#: searx/templates/oscar/messages/unknow_error.html:7
605+msgid "Oh snap!"
606+msgstr "哦,糟糕!"
607+
608+#: searx/templates/oscar/messages/unknow_error.html:8
609+msgid "Something went wrong."
610+msgstr "出了些问题。"
611+
612+#: searx/templates/oscar/result_templates/default.html:7
613+msgid "show media"
614+msgstr "显示媒体"
615+
616+#: searx/templates/oscar/result_templates/default.html:7
617+msgid "hide media"
618+msgstr "隐藏媒体"
619+
620+#: searx/templates/oscar/result_templates/images.html:23
621+msgid "Get image"
622+msgstr "获取图片"
623+
624+#: searx/templates/oscar/result_templates/images.html:24
625+msgid "View source"
626+msgstr "查看来源"
627+
628+#: searx/templates/oscar/result_templates/map.html:7
629+msgid "show map"
630+msgstr "显示地图"
631+
632+#: searx/templates/oscar/result_templates/map.html:7
633+msgid "hide map"
634+msgstr "隐藏地图"
635+
636+#: searx/templates/oscar/result_templates/map.html:11
637+msgid "show details"
638+msgstr "显示详细信息"
639+
640+#: searx/templates/oscar/result_templates/map.html:11
641+msgid "hide details"
642+msgstr "隐藏详细信息"
643+
644+#: searx/templates/oscar/result_templates/torrent.html:7
645+msgid "Filesize"
646+msgstr "文件大小"
647+
648+#: searx/templates/oscar/result_templates/torrent.html:9
649+msgid "Bytes"
650+msgstr "B"
651+
652+#: searx/templates/oscar/result_templates/torrent.html:10
653+msgid "kiB"
654+msgstr "KB"
655+
656+#: searx/templates/oscar/result_templates/torrent.html:11
657+msgid "MiB"
658+msgstr "MB"
659+
660+#: searx/templates/oscar/result_templates/torrent.html:12
661+msgid "GiB"
662+msgstr "GB"
663+
664+#: searx/templates/oscar/result_templates/torrent.html:13
665+msgid "TiB"
666+msgstr "TB"
667+
668+#: searx/templates/oscar/result_templates/torrent.html:15
669+msgid "Number of Files"
670+msgstr "文件数"
671+
672+#: searx/templates/oscar/result_templates/videos.html:7
673+msgid "show video"
674+msgstr "显示视频"
675+
676+#: searx/templates/oscar/result_templates/videos.html:7
677+msgid "hide video"
678+msgstr "隐藏视频"
679+
680+#: searx/templates/pix-art/results.html:28
681+msgid "Load more..."
682+msgstr "载入更多..."
searx/utils.py+20−24
@@ -1,11 +1,9 @@
1−# import htmlentitydefs
2−import locale
3−import dateutil.parser
41import cStringIO
52import csv
63import os
74import re
85
6+from babel.dates import format_date
97from codecs import getincrementalencoder
108from HTMLParser import HTMLParser
119from random import choice
@@ -21,11 +19,15 @@ ua_versions = ('33.0',
2119 '34.0',
2220 '35.0',
2321 '36.0',
24− '37.0')
22+ '37.0',
23+ '38.0',
24+ '39.0',
25+ '40.0')
2526
2627ua_os = ('Windows NT 6.3; WOW64',
2728 'X11; Linux x86_64',
2829 'X11; Linux x86')
30+
2931ua = "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}"
3032
3133blocked_tags = ('script',
@@ -40,7 +42,7 @@ def gen_useragent():
4042def searx_useragent():
4143 return 'searx/{searx_version} {suffix}'.format(
4244 searx_version=VERSION_STRING,
43− suffix=settings['server'].get('useragent_suffix', ''))
45+ suffix=settings['outgoing'].get('useragent_suffix', ''))
4446
4547
4648def highlight_content(content, query):
@@ -194,23 +196,16 @@ def get_result_templates(base_path):
194196 return result_templates
195197
196198
197−def format_date_by_locale(date_string, locale_string):
199+def format_date_by_locale(date, locale_string):
198200 # strftime works only on dates after 1900
199− parsed_date = dateutil.parser.parse(date_string)
200− if parsed_date.year <= 1900:
201− return parsed_date.isoformat().split('T')[0]
202−
203− orig_locale = locale.getlocale()[0]
204− try:
205− locale.setlocale(locale.LC_ALL, locale_string)
206− except:
207− logger.warning('cannot set locale: {0}'.format(locale_string))
208− formatted_date = parsed_date.strftime(locale.nl_langinfo(locale.D_FMT))
209− try:
210− locale.setlocale(locale.LC_ALL, orig_locale)
211− except:
212− logger.warning('cannot set original locale: {0}'.format(orig_locale))
213− return formatted_date
201+
202+ if date.year <= 1900:
203+ return date.isoformat().split('T')[0]
204+
205+ if locale_string == 'all':
206+ locale_string = settings['ui']['default_locale'] or 'en_US'
207+
208+ return format_date(date, locale=locale_string)
214209
215210
216211def dict_subset(d, properties):
@@ -221,9 +216,10 @@ def dict_subset(d, properties):
221216 return result
222217
223218
224−def prettify_url(url):
225− if len(url) > 74:
226− return u'{0}[...]{1}'.format(url[:35], url[-35:])
219+def prettify_url(url, max_length=74):
220+ if len(url) > max_length:
221+ chunk_len = max_length / 2 + 1
222+ return u'{0}[...]{1}'.format(url[:chunk_len], url[-chunk_len:])
227223 else:
228224 return url
229225
searx/version.py+1−1
@@ -18,7 +18,7 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
1818
1919# version of searx
2020VERSION_MAJOR = 0
21−VERSION_MINOR = 7
21+VERSION_MINOR = 8
2222VERSION_BUILD = 0
2323
2424VERSION_STRING = "{0}.{1}.{2}".format(VERSION_MAJOR,
searx/webapp.py+35−35
@@ -42,7 +42,7 @@ except:
4242
4343from datetime import datetime, timedelta
4444from urllib import urlencode
45−from urlparse import urlparse
45+from urlparse import urlparse, urljoin
4646from werkzeug.contrib.fixers import ProxyFix
4747from flask import (
4848 Flask, request, render_template, url_for, Response, make_response,
@@ -77,11 +77,11 @@ except ImportError:
7777
7878
7979static_path, templates_path, themes =\
80− get_themes(settings['themes_path']
81− if settings.get('themes_path')
80+ get_themes(settings['ui']['themes_path']
81+ if settings['ui']['themes_path']
8282 else searx_dir)
8383
84−default_theme = settings['server'].get('default_theme', 'default')
84+default_theme = settings['ui']['default_theme']
8585
8686static_files = get_static_files(searx_dir)
8787
@@ -121,15 +121,15 @@ _category_names = (gettext('files'),
121121 gettext('news'),
122122 gettext('map'))
123123
124−outgoing_proxies = settings.get('outgoing_proxies', None)
124+outgoing_proxies = settings['outgoing'].get('proxies', None)
125125
126126
127127@babel.localeselector
128128def get_locale():
129129 locale = request.accept_languages.best_match(settings['locales'].keys())
130130
131− if settings['server'].get('default_locale'):
132− locale = settings['server']['default_locale']
131+ if settings['ui'].get('default_locale'):
132+ locale = settings['ui']['default_locale']
133133
134134 if request.cookies.get('locale', '') in settings['locales']:
135135 locale = request.cookies.get('locale', '')
@@ -263,7 +263,7 @@ def image_proxify(url):
263263def render(template_name, override_theme=None, **kwargs):
264264 blocked_engines = get_blocked_engines(engines, request.cookies)
265265
266− autocomplete = request.cookies.get('autocomplete')
266+ autocomplete = request.cookies.get('autocomplete', settings['search']['autocomplete'])
267267
268268 if autocomplete not in autocomplete_backends:
269269 autocomplete = None
@@ -312,7 +312,7 @@ def render(template_name, override_theme=None, **kwargs):
312312
313313 kwargs['method'] = request.cookies.get('method', 'POST')
314314
315− kwargs['safesearch'] = request.cookies.get('safesearch', '1')
315+ kwargs['safesearch'] = request.cookies.get('safesearch', str(settings['search']['safe_search']))
316316
317317 # override url_for function in templates
318318 kwargs['url_for'] = url_for_theme
@@ -383,7 +383,7 @@ def index():
383383
384384 plugins.call('post_search', request, locals())
385385
386− for result in search.results:
386+ for result in search.result_container.get_ordered_results():
387387
388388 plugins.call('on_result', request, locals())
389389 if not search.paging and engines[result['engine']].paging:
@@ -411,7 +411,7 @@ def index():
411411 minutes = int((timedifference.seconds / 60) % 60)
412412 hours = int(timedifference.seconds / 60 / 60)
413413 if hours == 0:
414− result['publishedDate'] = gettext(u'{minutes} minute(s) ago').format(minutes=minutes) # noqa
414+ result['publishedDate'] = gettext(u'{minutes} minute(s) ago').format(minutes=minutes)
415415 else:
416416 result['publishedDate'] = gettext(u'{hours} hour(s), {minutes} minute(s) ago').format(hours=hours, minutes=minutes) # noqa
417417 else:
@@ -419,17 +419,16 @@ def index():
419419
420420 if search.request_data.get('format') == 'json':
421421 return Response(json.dumps({'query': search.query,
422− 'results': search.results}),
422+ 'results': search.result_container.get_ordered_results()}),
423423 mimetype='application/json')
424424 elif search.request_data.get('format') == 'csv':
425425 csv = UnicodeWriter(cStringIO.StringIO())
426426 keys = ('title', 'url', 'content', 'host', 'engine', 'score')
427− if search.results:
428− csv.writerow(keys)
429− for row in search.results:
430− row['host'] = row['parsed_url'].netloc
431− csv.writerow([row.get(key, '') for key in keys])
432− csv.stream.seek(0)
427+ csv.writerow(keys)
428+ for row in search.result_container.get_ordered_results():
429+ row['host'] = row['parsed_url'].netloc
430+ csv.writerow([row.get(key, '') for key in keys])
431+ csv.stream.seek(0)
433432 response = Response(csv.stream.read(), mimetype='application/csv')
434433 cont_disp = 'attachment;Filename=searx_-_{0}.csv'.format(search.query)
435434 response.headers.add('Content-Disposition', cont_disp)
@@ -437,24 +436,24 @@ def index():
437436 elif search.request_data.get('format') == 'rss':
438437 response_rss = render(
439438 'opensearch_response_rss.xml',
440− results=search.results,
439+ results=search.result_container.get_ordered_results(),
441440 q=search.request_data['q'],
442− number_of_results=len(search.results),
441+ number_of_results=search.result_container.results_length(),
443442 base_url=get_base_url()
444443 )
445444 return Response(response_rss, mimetype='text/xml')
446445
447446 return render(
448447 'results.html',
449− results=search.results,
448+ results=search.result_container.get_ordered_results(),
450449 q=search.request_data['q'],
451450 selected_categories=search.categories,
452451 paging=search.paging,
453452 pageno=search.pageno,
454453 base_url=get_base_url(),
455− suggestions=search.suggestions,
456− answers=search.answers,
457− infoboxes=search.infoboxes,
454+ suggestions=search.result_container.suggestions,
455+ answers=search.result_container.answers,
456+ infoboxes=search.result_container.infoboxes,
458457 theme=get_current_theme_name(),
459458 favicons=global_favicons[themes.index(get_current_theme_name())]
460459 )
@@ -491,7 +490,7 @@ def autocompleter():
491490 return '', 400
492491
493492 # run autocompleter
494− completer = autocomplete_backends.get(request.cookies.get('autocomplete'))
493+ completer = autocomplete_backends.get(request.cookies.get('autocomplete', settings['search']['autocomplete']))
495494
496495 # parse searx specific autocompleter results like !bang
497496 raw_results = searx_bang(query)
@@ -532,7 +531,7 @@ def preferences():
532531
533532 blocked_engines = []
534533
535− resp = make_response(redirect(url_for('index')))
534+ resp = make_response(redirect(urljoin(settings['server']['base_url'], url_for('index'))))
536535
537536 if request.method == 'GET':
538537 blocked_engines = get_blocked_engines(engines, request.cookies)
@@ -542,7 +541,7 @@ def preferences():
542541 locale = None
543542 autocomplete = ''
544543 method = 'POST'
545− safesearch = '1'
544+ safesearch = settings['search']['safe_search']
546545 for pd_name, pd in request.form.items():
547546 if pd_name.startswith('category_'):
548547 category = pd_name[9:]
@@ -624,7 +623,7 @@ def preferences():
624623
625624 resp.set_cookie('method', method, max_age=cookie_max_age)
626625
627− resp.set_cookie('safesearch', safesearch, max_age=cookie_max_age)
626+ resp.set_cookie('safesearch', str(safesearch), max_age=cookie_max_age)
628627
629628 resp.set_cookie('image_proxy', image_proxy, max_age=cookie_max_age)
630629
@@ -640,12 +639,12 @@ def preferences():
640639 stats[e.name] = {'time': None,
641640 'warn_timeout': False,
642641 'warn_time': False}
643− if e.timeout > settings['server']['request_timeout']:
642+ if e.timeout > settings['outgoing']['request_timeout']:
644643 stats[e.name]['warn_timeout'] = True
645644
646645 for engine_stat in get_engines_stats()[0][1]:
647646 stats[engine_stat.get('name')]['time'] = round(engine_stat.get('avg'), 3)
648− if engine_stat.get('avg') > settings['server']['request_timeout']:
647+ if engine_stat.get('avg') > settings['outgoing']['request_timeout']:
649648 stats[engine_stat.get('name')]['warn_time'] = True
650649 # end of stats
651650
@@ -683,7 +682,7 @@ def image_proxy():
683682
684683 resp = requests.get(url,
685684 stream=True,
686− timeout=settings['server'].get('request_timeout', 2),
685+ timeout=settings['outgoing']['request_timeout'],
687686 headers=headers,
688687 proxies=outgoing_proxies)
689688
@@ -767,7 +766,7 @@ def favicon():
767766
768767@app.route('/clear_cookies')
769768def clear_cookies():
770− resp = make_response(redirect(url_for('index')))
769+ resp = make_response(redirect(urljoin(settings['server']['base_url'], url_for('index'))))
771770 for cookie_name in request.cookies:
772771 resp.delete_cookie(cookie_name)
773772 return resp
@@ -775,9 +774,10 @@ def clear_cookies():
775774
776775def run():
777776 app.run(
778− debug=settings['server']['debug'],
779− use_debugger=settings['server']['debug'],
780− port=settings['server']['port']
777+ debug=settings['general']['debug'],
778+ use_debugger=settings['general']['debug'],
779+ port=settings['server']['port'],
780+ host=settings['server']['bind_address']
781781 )
782782
783783