Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

Kang-min Liu 9 gadus atpakaļ
vecāks
revīzija
ac8759cd3f
73 mainītis faili ar 2781 papildinājumiem un 1335 dzēšanām
  1. 6
    0
      .travis.yml
  2. 4
    0
      AUTHORS.rst
  3. 46
    0
      CHANGELOG.rst
  4. 1
    1
      README.rst
  5. 1
    1
      searx/__init__.py
  6. 1
    1
      searx/autocomplete.py
  7. 1
    1
      searx/engines/__init__.py
  8. 1
    1
      searx/engines/bing.py
  9. 1
    1
      searx/engines/bing_images.py
  10. 6
    2
      searx/engines/gigablast.py
  11. 9
    4
      searx/engines/google.py
  12. 1
    1
      searx/engines/piratebay.py
  13. 5
    0
      searx/engines/searchcode_code.py
  14. 5
    0
      searx/engines/searchcode_doc.py
  15. 46
    7
      searx/engines/startpage.py
  16. 6
    2
      searx/engines/twitter.py
  17. 26
    8
      searx/engines/wikidata.py
  18. 62
    0
      searx/engines/yandex.py
  19. 0
    93
      searx/engines/youtube.py
  20. 4
    4
      searx/plugins/self_info.py
  21. 10
    8
      searx/poolrequests.py
  22. 239
    0
      searx/results.py
  23. 26
    258
      searx/search.py
  24. 27
    12
      searx/settings.yml
  25. 17
    5
      searx/settings_robot.yml
  26. 88
    1
      searx/static/themes/oscar/css/oscar.min.css
  27. 5
    0
      searx/static/themes/oscar/less/oscar/results.less
  28. 1
    0
      searx/templates/courgette/opensearch.xml
  29. 1
    0
      searx/templates/default/opensearch.xml
  30. 5
    1
      searx/templates/oscar/macros.html
  31. 1
    0
      searx/templates/oscar/opensearch.xml
  32. 2
    2
      searx/templates/pix-art/preferences.html
  33. 4
    4
      searx/tests/engines/test_bing.py
  34. 5
    5
      searx/tests/engines/test_bing_images.py
  35. 4
    3
      searx/tests/engines/test_duckduckgo.py
  36. 3
    3
      searx/tests/engines/test_piratebay.py
  37. 3
    3
      searx/tests/engines/test_startpage.py
  38. 0
    204
      searx/tests/engines/test_youtube.py
  39. 0
    1
      searx/tests/test_engines.py
  40. 17
    11
      searx/tests/test_plugins.py
  41. 41
    0
      searx/tests/test_results.py
  42. 4
    19
      searx/tests/test_search.py
  43. 10
    0
      searx/tests/test_utils.py
  44. 7
    1
      searx/tests/test_webapp.py
  45. Binārs
      searx/translations/de/LC_MESSAGES/messages.mo
  46. 116
    54
      searx/translations/de/LC_MESSAGES/messages.po
  47. Binārs
      searx/translations/en/LC_MESSAGES/messages.mo
  48. Binārs
      searx/translations/es/LC_MESSAGES/messages.mo
  49. 122
    58
      searx/translations/es/LC_MESSAGES/messages.po
  50. Binārs
      searx/translations/fr/LC_MESSAGES/messages.mo
  51. 116
    54
      searx/translations/fr/LC_MESSAGES/messages.po
  52. Binārs
      searx/translations/he/LC_MESSAGES/messages.mo
  53. 118
    56
      searx/translations/he/LC_MESSAGES/messages.po
  54. Binārs
      searx/translations/hu/LC_MESSAGES/messages.mo
  55. 116
    54
      searx/translations/hu/LC_MESSAGES/messages.po
  56. Binārs
      searx/translations/it/LC_MESSAGES/messages.mo
  57. 115
    53
      searx/translations/it/LC_MESSAGES/messages.po
  58. Binārs
      searx/translations/ja/LC_MESSAGES/messages.mo
  59. 124
    62
      searx/translations/ja/LC_MESSAGES/messages.po
  60. Binārs
      searx/translations/nl/LC_MESSAGES/messages.mo
  61. 116
    54
      searx/translations/nl/LC_MESSAGES/messages.po
  62. Binārs
      searx/translations/pt/LC_MESSAGES/messages.mo
  63. Binārs
      searx/translations/ro/LC_MESSAGES/messages.mo
  64. 117
    55
      searx/translations/ro/LC_MESSAGES/messages.po
  65. Binārs
      searx/translations/ru/LC_MESSAGES/messages.mo
  66. 115
    53
      searx/translations/ru/LC_MESSAGES/messages.po
  67. Binārs
      searx/translations/tr/LC_MESSAGES/messages.mo
  68. 116
    54
      searx/translations/tr/LC_MESSAGES/messages.po
  69. Binārs
      searx/translations/zh_CN/LC_MESSAGES/messages.mo
  70. 682
    0
      searx/translations/zh_CN/LC_MESSAGES/messages.po
  71. 20
    24
      searx/utils.py
  72. 1
    1
      searx/version.py
  73. 35
    35
      searx/webapp.py

+ 6
- 0
.travis.yml Parādīt failu

@@ -1,3 +1,9 @@
1
+sudo: false
2
+cache:
3
+  - pip
4
+  - npm
5
+  - directories:
6
+    - $HOME/.cache/pip
1 7
 language: python
2 8
 python:
3 9
   - "2.7"

+ 4
- 0
AUTHORS.rst Parādīt failu

@@ -34,3 +34,7 @@ generally made searx better:
34 34
 - @opi
35 35
 - @dimqua
36 36
 - Giorgos Logiotatidis
37
+- Luc Didry
38
+- Niklas Haas
39
+- @underr
40
+- Emmanuel Benazera

+ 46
- 0
CHANGELOG.rst Parādīt failu

@@ -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
+
1 47
 0.7.0 2015.02.03
2 48
 ================
3 49
 

+ 1
- 1
README.rst Parādīt failu

@@ -96,7 +96,7 @@ remember 'untested code is broken code'.
96 96
 Runs robot (Selenium) tests, you must have ``firefox`` installed because
97 97
 this functional tests actually run the browser and perform operations on
98 98
 it. 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>`__.
100 100
 
101 101
 ``make flake8``
102 102
 '''''''''''''''

+ 1
- 1
searx/__init__.py Parādīt failu

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

+ 1
- 1
searx/autocomplete.py Parādīt failu

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

+ 1
- 1
searx/engines/__init__.py Parādīt failu

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

+ 1
- 1
searx/engines/bing.py Parādīt failu

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

+ 1
- 1
searx/engines/bing_images.py Parādīt failu

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

+ 6
- 2
searx/engines/gigablast.py Parādīt failu

@@ -13,6 +13,8 @@
13 13
 from urllib import urlencode
14 14
 from cgi import escape
15 15
 from lxml import etree
16
+from random import randint
17
+from time import time
16 18
 
17 19
 # engine dependent config
18 20
 categories = ['general']
@@ -21,7 +23,7 @@ number_of_results = 5
21 23
 
22 24
 # search-url, invalid HTTPS certificate
23 25
 base_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}'
25 27
 
26 28
 # specific xpath variables
27 29
 results_xpath = '//response//result'
@@ -37,7 +39,9 @@ def request(query, params):
37 39
     search_path = search_string.format(
38 40
         query=urlencode({'q': query}),
39 41
         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()))
41 45
 
42 46
     params['url'] = base_url + search_path
43 47
 

+ 9
- 4
searx/engines/google.py Parādīt failu

@@ -9,11 +9,15 @@
9 9
 # @parse       url, title, content, suggestion
10 10
 
11 11
 import re
12
+from cgi import escape
12 13
 from urllib import urlencode
13 14
 from urlparse import urlparse, parse_qsl
14
-from lxml import html
15
+from lxml import html, etree
15 16
 from searx.poolrequests import get
16 17
 from searx.engines.xpath import extract_text, extract_url
18
+from searx.search import logger
19
+
20
+logger = logger.getChild('google engine')
17 21
 
18 22
 
19 23
 # engine dependent config
@@ -167,7 +171,7 @@ def parse_url(url_string, google_hostname):
167 171
 def extract_text_from_dom(result, xpath):
168 172
     r = result.xpath(xpath)
169 173
     if len(r) > 0:
170
-        return extract_text(r[0])
174
+        return escape(extract_text(r[0]))
171 175
     return None
172 176
 
173 177
 
@@ -224,8 +228,8 @@ def response(resp):
224 228
 
225 229
     # parse results
226 230
     for result in dom.xpath(results_xpath):
227
-        title = extract_text(result.xpath(title_xpath)[0])
228 231
         try:
232
+            title = extract_text(result.xpath(title_xpath)[0])
229 233
             url = parse_url(extract_url(result.xpath(url_xpath), google_url), google_hostname)
230 234
             parsed_url = urlparse(url, google_hostname)
231 235
 
@@ -268,12 +272,13 @@ def response(resp):
268 272
                                 'content': content
269 273
                                 })
270 274
         except:
275
+            logger.debug('result parse error in:\n%s', etree.tostring(result, pretty_print=True))
271 276
             continue
272 277
 
273 278
     # parse suggestion
274 279
     for suggestion in dom.xpath(suggestion_xpath):
275 280
         # append suggestion
276
-        results.append({'suggestion': extract_text(suggestion)})
281
+        results.append({'suggestion': escape(extract_text(suggestion))})
277 282
 
278 283
     # return results
279 284
     return results

+ 1
- 1
searx/engines/piratebay.py Parādīt failu

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

+ 5
- 0
searx/engines/searchcode_code.py Parādīt failu

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

+ 5
- 0
searx/engines/searchcode_doc.py Parādīt failu

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

+ 46
- 7
searx/engines/startpage.py Parādīt failu

@@ -12,6 +12,8 @@
12 12
 
13 13
 from lxml import html
14 14
 from cgi import escape
15
+from dateutil import parser
16
+from datetime import datetime, timedelta
15 17
 import re
16 18
 from searx.engines.xpath import extract_text
17 19
 
@@ -66,20 +68,57 @@ def response(resp):
66 68
         url = link.attrib.get('href')
67 69
 
68 70
         # 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):
70 80
             continue
71 81
 
72 82
         title = escape(extract_text(link))
73 83
 
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"]')))
76 86
         else:
77 87
             content = ''
78 88
 
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})
83 122
 
84 123
     # return results
85 124
     return results

+ 6
- 2
searx/engines/twitter.py Parādīt failu

@@ -55,10 +55,14 @@ def response(resp):
55 55
 
56 56
     # parse results
57 57
     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
+
59 64
         url = urljoin(base_url, link.attrib.get('href'))
60 65
         title = extract_text(tweet.xpath(title_xpath))
61
-        content = extract_text(tweet.xpath(content_xpath)[0])
62 66
 
63 67
         pubdate = tweet.xpath(timestamp_xpath)
64 68
         if len(pubdate) > 0:

+ 26
- 8
searx/engines/wikidata.py Parādīt failu

@@ -1,8 +1,15 @@
1 1
 import json
2
-from urllib import urlencode
2
+
3
+from searx import logger
3 4
 from searx.poolrequests import get
4 5
 from searx.utils import format_date_by_locale
5 6
 
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')
6 13
 result_count = 1
7 14
 wikidata_host = 'https://www.wikidata.org'
8 15
 wikidata_api = wikidata_host + '/w/api.php'
@@ -164,14 +171,12 @@ def getDetail(jsonresponse, wikidata_id, language, locale):
164 171
     if postal_code is not None:
165 172
         attributes.append({'label': 'Postal code(s)', 'value': postal_code})
166 173
 
167
-    date_of_birth = get_time(claims, 'P569', None)
174
+    date_of_birth = get_time(claims, 'P569', locale, None)
168 175
     if date_of_birth is not None:
169
-        date_of_birth = format_date_by_locale(date_of_birth[8:], locale)
170 176
         attributes.append({'label': 'Date of birth', 'value': date_of_birth})
171 177
 
172
-    date_of_death = get_time(claims, 'P570', None)
178
+    date_of_death = get_time(claims, 'P570', locale, None)
173 179
     if date_of_death is not None:
174
-        date_of_death = format_date_by_locale(date_of_death[8:], locale)
175 180
         attributes.append({'label': 'Date of death', 'value': date_of_death})
176 181
 
177 182
     if len(attributes) == 0 and len(urls) == 2 and len(description) == 0:
@@ -229,7 +234,7 @@ def get_string(claims, propertyName, defaultValue=None):
229 234
         return result[0]
230 235
 
231 236
 
232
-def get_time(claims, propertyName, defaultValue=None):
237
+def get_time(claims, propertyName, locale, defaultValue=None):
233 238
     propValue = claims.get(propertyName, {})
234 239
     if len(propValue) == 0:
235 240
         return defaultValue
@@ -244,9 +249,22 @@ def get_time(claims, propertyName, defaultValue=None):
244 249
             result.append(value.get('time', ''))
245 250
 
246 251
     if len(result) == 0:
247
-        return defaultValue
252
+        date_string = defaultValue
248 253
     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)
250 268
 
251 269
 
252 270
 def get_geolink(claims, propertyName, defaultValue=''):

+ 62
- 0
searx/engines/yandex.py Parādīt failu

@@ -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

+ 0
- 93
searx/engines/youtube.py Parādīt failu

@@ -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

+ 4
- 4
searx/plugins/self_info.py Parādīt failu

@@ -35,10 +35,10 @@ def post_search(request, ctx):
35 35
             ip = x_forwarded_for[0]
36 36
         else:
37 37
             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)
40 40
     elif p.match(ctx['search'].query):
41 41
         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)
44 44
     return True

+ 10
- 8
searx/poolrequests.py Parādīt failu

@@ -1,5 +1,7 @@
1 1
 import requests
2
+
2 3
 from itertools import cycle
4
+from threading import RLock
3 5
 from searx import settings
4 6
 
5 7
 
@@ -39,11 +41,11 @@ class HTTPAdapterWithConnParams(requests.adapters.HTTPAdapter):
39 41
                               block=self._pool_block, **self._conn_params)
40 42
 
41 43
 
42
-if settings.get('source_ips'):
44
+if settings['outgoing'].get('source_ips'):
43 45
     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'])
45 47
     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'])
47 49
 else:
48 50
     http_adapters = cycle((HTTPAdapterWithConnParams(pool_connections=100), ))
49 51
     https_adapters = cycle((HTTPAdapterWithConnParams(pool_connections=100), ))
@@ -55,9 +57,10 @@ class SessionSinglePool(requests.Session):
55 57
         super(SessionSinglePool, self).__init__()
56 58
 
57 59
         # 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))
61 64
 
62 65
     def close(self):
63 66
         """Call super, but clear adapters since there are managed globaly"""
@@ -67,9 +70,8 @@ class SessionSinglePool(requests.Session):
67 70
 
68 71
 def request(method, url, **kwargs):
69 72
     """same as requests/requests/api.py request(...) except it use SessionSinglePool and force proxies"""
70
-    global settings
71 73
     session = SessionSinglePool()
72
-    kwargs['proxies'] = settings.get('outgoing_proxies', None)
74
+    kwargs['proxies'] = settings['outgoing'].get('proxies', None)
73 75
     response = session.request(method=method, url=url, **kwargs)
74 76
     session.close()
75 77
     return response

+ 239
- 0
searx/results.py Parādīt failu

@@ -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)

+ 26
- 258
searx/search.py Parādīt failu

@@ -16,19 +16,16 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
16 16
 '''
17 17
 
18 18
 import threading
19
-import re
20 19
 import searx.poolrequests as requests_lib
21
-from itertools import izip_longest, chain
22
-from operator import itemgetter
23
-from Queue import Queue
24 20
 from time import time
25
-from urlparse import urlparse, unquote
21
+from searx import settings
26 22
 from searx.engines import (
27 23
     categories, engines
28 24
 )
29 25
 from searx.languages import language_codes
30 26
 from searx.utils import gen_useragent, get_blocked_engines
31 27
 from searx.query import Query
28
+from searx.results import ResultContainer
32 29
 from searx import logger
33 30
 
34 31
 logger = logger.getChild('search')
@@ -41,7 +38,8 @@ def search_request_wrapper(fn, url, engine_name, **kwargs):
41 38
         return fn(url, **kwargs)
42 39
     except:
43 40
         # increase errors stats
44
-        engines[engine_name].stats['errors'] += 1
41
+        with threading.RLock():
42
+            engines[engine_name].stats['errors'] += 1
45 43
 
46 44
         # print engine name and specific error message
47 45
         logger.exception('engine crash: {0}'.format(engine_name))
@@ -83,7 +81,7 @@ def default_request_params():
83 81
 
84 82
 
85 83
 # 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):
87 85
 
88 86
     # creating a callback wrapper for the search engine results
89 87
     def process_callback(response, **kwargs):
@@ -95,12 +93,17 @@ def make_callback(engine_name, results_queue, callback, params):
95 93
 
96 94
         response.search_params = params
97 95
 
98
-        timeout_overhead = 0.2  # seconds
99 96
         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
100 102
         timeout_limit = engines[engine_name].timeout + timeout_overhead
103
+
101 104
         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
104 107
             return
105 108
 
106 109
         # callback
@@ -110,207 +113,11 @@ def make_callback(engine_name, results_queue, callback, params):
110 113
         for result in search_results:
111 114
             result['engine'] = engine_name
112 115
 
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)
117 117
 
118 118
     return process_callback
119 119
 
120 120
 
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
-
314 121
 class Search(object):
315 122
 
316 123
     """Search information container"""
@@ -328,10 +135,7 @@ class Search(object):
328 135
         # set blocked engines
329 136
         self.blocked_engines = get_blocked_engines(engines, request.cookies)
330 137
 
331
-        self.results = []
332
-        self.suggestions = set()
333
-        self.answers = set()
334
-        self.infoboxes = []
138
+        self.result_container = ResultContainer()
335 139
         self.request_data = {}
336 140
 
337 141
         # set specific language if set
@@ -386,11 +190,11 @@ class Search(object):
386 190
             load_default_categories = True
387 191
             for pd_name, pd in self.request_data.items():
388 192
                 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)
390 194
                 elif pd_name == 'engines':
391 195
                     pd_engines = [{'category': engines[engine].categories[0],
392 196
                                    '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]
394 198
                     if pd_engines:
395 199
                         self.engines.extend(pd_engines)
396 200
                         load_default_categories = False
@@ -409,6 +213,9 @@ class Search(object):
409 213
                         self.categories.remove(category)
410 214
 
411 215
             if not load_default_categories:
216
+                if not self.categories:
217
+                    self.categories = list(set(engine['category']
218
+                                               for engine in self.engines))
412 219
                 return
413 220
 
414 221
             # if no category is specified for this search,
@@ -440,8 +247,6 @@ class Search(object):
440 247
 
441 248
         # init vars
442 249
         requests = []
443
-        results_queue = Queue()
444
-        results = {}
445 250
 
446 251
         # increase number of searches
447 252
         number_of_searches += 1
@@ -473,16 +278,16 @@ class Search(object):
473 278
             request_params['started'] = time()
474 279
             request_params['pageno'] = self.pageno
475 280
 
476
-            if hasattr(engine, 'language'):
281
+            if hasattr(engine, 'language') and engine.language:
477 282
                 request_params['language'] = engine.language
478 283
             else:
479 284
                 request_params['language'] = self.lang
480 285
 
481 286
             try:
482 287
                 # 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']
486 291
 
487 292
             # update request parameters dependent on
488 293
             # search-engine (contained in engines folder)
@@ -495,9 +300,9 @@ class Search(object):
495 300
             # create a callback wrapper for the search engine results
496 301
             callback = make_callback(
497 302
                 selected_engine['name'],
498
-                results_queue,
499 303
                 engine.response,
500
-                request_params)
304
+                request_params,
305
+                self.result_container)
501 306
 
502 307
             # create dictionary which contain all
503 308
             # informations about the request
@@ -530,42 +335,5 @@ class Search(object):
530 335
         # send all search-request
531 336
         threaded_requests(requests)
532 337
 
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
-
570 338
         # return results, suggestions, answers and infoboxes
571 339
         return self

+ 27
- 12
searx/settings.yml Parādīt failu

@@ -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
+
1 8
 server:
2 9
     port : 8888
10
+    bind_address : "127.0.0.1" # address to listen on
3 11
     secret_key : "ultrasecretkey" # change this!
4
-    debug : False # Debug mode, only for development
5
-    request_timeout : 2.0 # seconds
6 12
     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:
7 16
     themes_path : "" # Custom ui themes path - leave it blank if you didn't change
8 17
     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
11 18
     default_locale : "" # Default interface locale - leave blank to detect from browser information or use codes from the 'locales' config section
12 19
 
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
13 23
 # uncomment below section if you want to use a proxy
14 24
 # see http://docs.python-requests.org/en/latest/user/advanced/#proxies
15 25
 # 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
20 29
 # uncomment below section only if you have more than one network interface
21 30
 # 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
25 34
 
26 35
 engines:
27 36
   - name : wikipedia
@@ -265,6 +274,11 @@ engines:
265 274
     engine : yahoo
266 275
     shortcut : yh
267 276
 
277
+  - name : yandex
278
+    engine : yandex
279
+    shortcut : yn
280
+    disabled : True
281
+
268 282
   - name : yahoo news
269 283
     engine : yahoo_news
270 284
     shortcut : yhn
@@ -310,6 +324,7 @@ locales:
310 324
     nl : Nederlands
311 325
     ja : 日本語 (Japanese)
312 326
     tr : Türkçe
313
-    pt: Português
327
+    pt : Português
314 328
     ru : Russian
315 329
     ro : Romanian
330
+    zh : 中文 (Chinese)

+ 17
- 5
searx/settings_robot.yml Parādīt failu

@@ -1,13 +1,25 @@
1
+general:
2
+    debug : False
3
+
4
+search:
5
+    safe_search : 0
6
+    autocomplete : 0
7
+
1 8
 server:
2 9
     port : 11111
10
+    bind_address : 127.0.0.1
3 11
     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:
7 16
     themes_path : ""
8 17
     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 : ""
11 23
 
12 24
 engines:
13 25
   - name : general_dummy

+ 88
- 1
searx/static/themes/oscar/css/oscar.min.css Parādīt failu

@@ -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;}

+ 5
- 0
searx/static/themes/oscar/less/oscar/results.less Parādīt failu

@@ -76,3 +76,8 @@
76 76
     margin-top: 30px;
77 77
     padding-bottom: 50px;
78 78
 }
79
+
80
+.label-default {
81
+    color: #AAA;
82
+    background: #FFF;
83
+}

+ 1
- 0
searx/templates/courgette/opensearch.xml Parādīt failu

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

+ 1
- 0
searx/templates/default/opensearch.xml Parādīt failu

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

+ 5
- 1
searx/templates/oscar/macros.html Parādīt failu

@@ -25,7 +25,11 @@
25 25
 <!-- Draw result footer -->
26 26
 {% macro result_footer(result) -%}
27 27
     <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>
29 33
     <p class="text-muted">{{ result.pretty_url }}</p>
30 34
 {%- endmacro %}
31 35
 

+ 1
- 0
searx/templates/oscar/opensearch.xml Parādīt failu

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

+ 2
- 2
searx/templates/pix-art/preferences.html Parādīt failu

@@ -53,8 +53,8 @@
53 53
             <th>{{ _('Engine name') }}</th>
54 54
             <th>{{ _('Allow') }} / {{ _('Block') }}</th>
55 55
         </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] %}
58 58
 
59 59
             {% if not search_engine.private %}
60 60
             <tr>

+ 4
- 4
searx/tests/engines/test_bing.py Parādīt failu

@@ -29,10 +29,10 @@ class TestBingEngine(SearxTestCase):
29 29
         self.assertRaises(AttributeError, bing.response, '')
30 30
         self.assertRaises(AttributeError, bing.response, '[]')
31 31
 
32
-        response = mock.Mock(content='<html></html>')
32
+        response = mock.Mock(text='<html></html>')
33 33
         self.assertEqual(bing.response(response), [])
34 34
 
35
-        response = mock.Mock(content='<html></html>')
35
+        response = mock.Mock(text='<html></html>')
36 36
         self.assertEqual(bing.response(response), [])
37 37
 
38 38
         html = """
@@ -54,7 +54,7 @@ class TestBingEngine(SearxTestCase):
54 54
             </div>
55 55
         </div>
56 56
         """
57
-        response = mock.Mock(content=html)
57
+        response = mock.Mock(text=html)
58 58
         results = bing.response(response)
59 59
         self.assertEqual(type(results), list)
60 60
         self.assertEqual(len(results), 1)
@@ -81,7 +81,7 @@ class TestBingEngine(SearxTestCase):
81 81
             </div>
82 82
         </li>
83 83
         """
84
-        response = mock.Mock(content=html)
84
+        response = mock.Mock(text=html)
85 85
         results = bing.response(response)
86 86
         self.assertEqual(type(results), list)
87 87
         self.assertEqual(len(results), 1)

+ 5
- 5
searx/tests/engines/test_bing_images.py Parādīt failu

@@ -31,10 +31,10 @@ class TestBingImagesEngine(SearxTestCase):
31 31
         self.assertRaises(AttributeError, bing_images.response, '')
32 32
         self.assertRaises(AttributeError, bing_images.response, '[]')
33 33
 
34
-        response = mock.Mock(content='<html></html>')
34
+        response = mock.Mock(text='<html></html>')
35 35
         self.assertEqual(bing_images.response(response), [])
36 36
 
37
-        response = mock.Mock(content='<html></html>')
37
+        response = mock.Mock(text='<html></html>')
38 38
         self.assertEqual(bing_images.response(response), [])
39 39
 
40 40
         html = """
@@ -52,7 +52,7 @@ oh:&quot;238&quot;,tft:&quot;0&quot;,oi:&quot;http://www.image.url/Images/Test%2
52 52
         </div>
53 53
         """
54 54
         html = html.replace('\r\n', '').replace('\n', '').replace('\r', '')
55
-        response = mock.Mock(content=html)
55
+        response = mock.Mock(text=html)
56 56
         results = bing_images.response(response)
57 57
         self.assertEqual(type(results), list)
58 58
         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
75 75
             style="height:144px;" width="178" height="144"/>
76 76
         </a>
77 77
         """
78
-        response = mock.Mock(content=html)
78
+        response = mock.Mock(text=html)
79 79
         results = bing_images.response(response)
80 80
         self.assertEqual(type(results), list)
81 81
         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
263 263
         </div>
264 264
         """
265 265
         html = html.replace('\r\n', '').replace('\n', '').replace('\r', '')
266
-        response = mock.Mock(content=html)
266
+        response = mock.Mock(text=html)
267 267
         results = bing_images.response(response)
268 268
         self.assertEqual(type(results), list)
269 269
         self.assertEqual(len(results), 10)

+ 4
- 3
searx/tests/engines/test_duckduckgo.py Parādīt failu

@@ -1,3 +1,4 @@
1
+# -*- coding: utf-8 -*-
1 2
 from collections import defaultdict
2 3
 import mock
3 4
 from searx.engines import duckduckgo
@@ -30,7 +31,7 @@ class TestDuckduckgoEngine(SearxTestCase):
30 31
         response = mock.Mock(text='<html></html>')
31 32
         self.assertEqual(duckduckgo.response(response), [])
32 33
 
33
-        html = """
34
+        html = u"""
34 35
         <div class="results_links results_links_deep web-result">
35 36
             <div class="icon_fav" style="display: block;">
36 37
                 <a rel="nofollow" href="https://www.test.com/">
@@ -39,7 +40,7 @@ class TestDuckduckgoEngine(SearxTestCase):
39 40
                 </a>
40 41
             </div>
41 42
             <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/ű">
43 44
                     This <b>is</b> <b>the</b> title
44 45
                 </a>
45 46
                 <div class="snippet"><b>This</b> should be the content.</div>
@@ -54,7 +55,7 @@ class TestDuckduckgoEngine(SearxTestCase):
54 55
         self.assertEqual(type(results), list)
55 56
         self.assertEqual(len(results), 1)
56 57
         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/ű')
58 59
         self.assertEqual(results[0]['content'], 'This should be the content.')
59 60
 
60 61
         html = """

+ 3
- 3
searx/tests/engines/test_piratebay.py Parādīt failu

@@ -15,7 +15,7 @@ class TestPiratebayEngine(SearxTestCase):
15 15
         params = piratebay.request(query, dicto)
16 16
         self.assertIn('url', params)
17 17
         self.assertIn(query, params['url'])
18
-        self.assertIn('piratebay.am', params['url'])
18
+        self.assertIn('piratebay.se', params['url'])
19 19
         self.assertIn('0', params['url'])
20 20
 
21 21
         dicto['category'] = 'music'
@@ -99,7 +99,7 @@ class TestPiratebayEngine(SearxTestCase):
99 99
         self.assertEqual(type(results), list)
100 100
         self.assertEqual(len(results), 2)
101 101
         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')
103 103
         self.assertEqual(results[0]['content'], 'This is the content and should be OK')
104 104
         self.assertEqual(results[0]['seed'], 13)
105 105
         self.assertEqual(results[0]['leech'], 334)
@@ -149,7 +149,7 @@ class TestPiratebayEngine(SearxTestCase):
149 149
         self.assertEqual(type(results), list)
150 150
         self.assertEqual(len(results), 1)
151 151
         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')
153 153
         self.assertEqual(results[0]['content'], 'This is the content and should be OK')
154 154
         self.assertEqual(results[0]['seed'], 0)
155 155
         self.assertEqual(results[0]['leech'], 0)

+ 3
- 3
searx/tests/engines/test_startpage.py Parādīt failu

@@ -42,7 +42,7 @@ class TestStartpageEngine(SearxTestCase):
42 42
                 </a>
43 43
                 <span id='title_stars_2' name='title_stars_2'>  </span>
44 44
             </h3>
45
-            <p class='desc'>
45
+            <p class='desc clk'>
46 46
                 This should be the content.
47 47
             </p>
48 48
             <p>
@@ -78,7 +78,7 @@ class TestStartpageEngine(SearxTestCase):
78 78
                 </a>
79 79
                 <span id='title_stars_2' name='title_stars_2'>  </span>
80 80
             </h3>
81
-            <p class='desc'>
81
+            <p class='desc clk'>
82 82
                 This should be the content.
83 83
             </p>
84 84
             <p>
@@ -101,7 +101,7 @@ class TestStartpageEngine(SearxTestCase):
101 101
             <h3>
102 102
                 <span id='title_stars_2' name='title_stars_2'>  </span>
103 103
             </h3>
104
-            <p class='desc'>
104
+            <p class='desc clk'>
105 105
                 This should be the content.
106 106
             </p>
107 107
             <p>

+ 0
- 204
searx/tests/engines/test_youtube.py Parādīt failu

@@ -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)

+ 0
- 1
searx/tests/test_engines.py Parādīt failu

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

+ 17
- 11
searx/tests/test_plugins.py Parādīt failu

@@ -5,6 +5,12 @@ from searx import plugins
5 5
 from mock import Mock
6 6
 
7 7
 
8
+def get_search_mock(query, **kwargs):
9
+    return {'search': Mock(query=query,
10
+                           result_container=Mock(answers=set()),
11
+                           **kwargs)}
12
+
13
+
8 14
 class PluginStoreTest(SearxTestCase):
9 15
 
10 16
     def test_PluginStore_init(self):
@@ -46,23 +52,23 @@ class SelfIPTest(SearxTestCase):
46 52
         request = Mock(user_plugins=store.plugins,
47 53
                        remote_addr='127.0.0.1')
48 54
         request.headers.getlist.return_value = []
49
-        ctx = {'search': Mock(answers=set(),
50
-                              query='ip')}
55
+        ctx = get_search_mock(query='ip')
51 56
         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)
53 58
 
54 59
         # User agent test
55 60
         request = Mock(user_plugins=store.plugins,
56 61
                        user_agent='Mock')
57 62
         request.headers.getlist.return_value = []
58
-        ctx = {'search': Mock(answers=set(),
59
-                              query='user-agent')}
63
+
64
+        ctx = get_search_mock(query='user-agent')
60 65
         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')
64 69
         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?')
68 73
         store.call('post_search', request, ctx)
74
+        self.assertTrue('Mock' in ctx['search'].result_container.answers)

+ 41
- 0
searx/tests/test_results.py Parādīt failu

@@ -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)

+ 4
- 19
searx/tests/test_search.py Parādīt failu

@@ -1,25 +1,10 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3
-from searx.search import score_results
4 3
 from searx.testing import SearxTestCase
5 4
 
6 5
 
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):
15 8
 
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

+ 10
- 0
searx/tests/test_utils.py Parādīt failu

@@ -1,3 +1,4 @@
1
+# -*- coding: utf-8 -*-
1 2
 import mock
2 3
 from searx.testing import SearxTestCase
3 4
 from searx import utils
@@ -51,6 +52,15 @@ class TestUtils(SearxTestCase):
51 52
         self.assertIsNotNone(utils.html_to_text(html))
52 53
         self.assertEqual(utils.html_to_text(html), "Test text")
53 54
 
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
+
54 64
 
55 65
 class TestHTMLTextExtractor(SearxTestCase):
56 66
 

+ 7
- 1
searx/tests/test_webapp.py Parādīt failu

@@ -1,6 +1,7 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3 3
 import json
4
+from mock import Mock
4 5
 from urlparse import ParseResult
5 6
 from searx import webapp
6 7
 from searx.testing import SearxTestCase
@@ -33,7 +34,12 @@ class ViewsTestCase(SearxTestCase):
33 34
         ]
34 35
 
35 36
         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))
37 43
 
38 44
         webapp.Search.search = search_mock
39 45
 

Binārs
searx/translations/de/LC_MESSAGES/messages.mo Parādīt failu


+ 116
- 54
searx/translations/de/LC_MESSAGES/messages.po Parādīt failu

@@ -14,10 +14,10 @@ msgid ""
14 14
 msgstr ""
15 15
 "Project-Id-Version: searx\n"
16 16
 "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"
19 19
 "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"
21 21
 "MIME-Version: 1.0\n"
22 22
 "Content-Type: text/plain; charset=UTF-8\n"
23 23
 "Content-Transfer-Encoding: 8bit\n"
@@ -25,67 +25,67 @@ msgstr ""
25 25
 "Language: de\n"
26 26
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
27 27
 
28
-#: searx/webapp.py:104
28
+#: searx/webapp.py:114
29 29
 msgid "files"
30 30
 msgstr "Dateien"
31 31
 
32
-#: searx/webapp.py:105
32
+#: searx/webapp.py:115
33 33
 msgid "general"
34 34
 msgstr "Allgemein"
35 35
 
36
-#: searx/webapp.py:106
36
+#: searx/webapp.py:116
37 37
 msgid "music"
38 38
 msgstr "Musik"
39 39
 
40
-#: searx/webapp.py:107
40
+#: searx/webapp.py:117
41 41
 msgid "social media"
42 42
 msgstr "Soziale Medien"
43 43
 
44
-#: searx/webapp.py:108
44
+#: searx/webapp.py:118
45 45
 msgid "images"
46 46
 msgstr "Bilder"
47 47
 
48
-#: searx/webapp.py:109
48
+#: searx/webapp.py:119
49 49
 msgid "videos"
50 50
 msgstr "Videos"
51 51
 
52
-#: searx/webapp.py:110
52
+#: searx/webapp.py:120
53 53
 msgid "it"
54 54
 msgstr "IT"
55 55
 
56
-#: searx/webapp.py:111
56
+#: searx/webapp.py:121
57 57
 msgid "news"
58 58
 msgstr "Neuigkeiten"
59 59
 
60
-#: searx/webapp.py:112
60
+#: searx/webapp.py:122
61 61
 msgid "map"
62 62
 msgstr "Karte"
63 63
 
64
-#: searx/webapp.py:396
64
+#: searx/webapp.py:414
65 65
 msgid "{minutes} minute(s) ago"
66 66
 msgstr "vor {minutes} Minute(n)"
67 67
 
68
-#: searx/webapp.py:398
68
+#: searx/webapp.py:416
69 69
 msgid "{hours} hour(s), {minutes} minute(s) ago"
70 70
 msgstr "vor {hours} Stunde(n), {minutes} Minute(n)"
71 71
 
72
-#: searx/engines/__init__.py:182
72
+#: searx/engines/__init__.py:185
73 73
 msgid "Page loads (sec)"
74 74
 msgstr "Ladezeit (sek)"
75 75
 
76
-#: searx/engines/__init__.py:186
76
+#: searx/engines/__init__.py:189
77 77
 msgid "Number of results"
78 78
 msgstr "Trefferanzahl"
79 79
 
80
-#: searx/engines/__init__.py:190
80
+#: searx/engines/__init__.py:193
81 81
 msgid "Scores"
82 82
 msgstr "Punkte"
83 83
 
84
-#: searx/engines/__init__.py:194
84
+#: searx/engines/__init__.py:197
85 85
 msgid "Scores per result"
86 86
 msgstr "Punkte pro Treffer"
87 87
 
88
-#: searx/engines/__init__.py:198
88
+#: searx/engines/__init__.py:201
89 89
 msgid "Errors"
90 90
 msgstr "Fehler"
91 91
 
@@ -100,12 +100,22 @@ msgstr "Starte Suche wenn Kategorie angeklickt wird"
100 100
 #: searx/plugins/search_on_category_select.py:19
101 101
 msgid ""
102 102
 "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)"
105 105
 
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"
109 119
 
110 120
 #: searx/templates/courgette/index.html:9
111 121
 #: searx/templates/courgette/index.html:13
@@ -133,90 +143,92 @@ msgstr "Einstellungen"
133 143
 
134 144
 #: searx/templates/courgette/preferences.html:9
135 145
 #: 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
138 148
 msgid "Default categories"
139 149
 msgstr "Standardkategorien"
140 150
 
141 151
 #: searx/templates/courgette/preferences.html:13
142 152
 #: searx/templates/default/preferences.html:14
143
-#: searx/templates/oscar/preferences.html:43
153
+#: searx/templates/oscar/preferences.html:44
144 154
 #: searx/templates/pix-art/preferences.html:9
145 155
 msgid "Search language"
146 156
 msgstr "Suchsprache"
147 157
 
148 158
 #: searx/templates/courgette/preferences.html:16
149 159
 #: searx/templates/default/preferences.html:17
150
-#: searx/templates/oscar/preferences.html:47
160
+#: searx/templates/oscar/preferences.html:48
151 161
 #: searx/templates/pix-art/preferences.html:12
152 162
 msgid "Automatic"
153 163
 msgstr "Automatisch"
154 164
 
155 165
 #: searx/templates/courgette/preferences.html:24
156 166
 #: searx/templates/default/preferences.html:25
157
-#: searx/templates/oscar/preferences.html:54
167
+#: searx/templates/oscar/preferences.html:55
158 168
 #: searx/templates/pix-art/preferences.html:20
159 169
 msgid "Interface language"
160 170
 msgstr "Oberflächensprache"
161 171
 
162 172
 #: searx/templates/courgette/preferences.html:34
163 173
 #: searx/templates/default/preferences.html:35
164
-#: searx/templates/oscar/preferences.html:64
174
+#: searx/templates/oscar/preferences.html:65
165 175
 msgid "Autocomplete"
166 176
 msgstr "Autovervollständigung"
167 177
 
168 178
 #: searx/templates/courgette/preferences.html:45
169 179
 #: searx/templates/default/preferences.html:46
170
-#: searx/templates/oscar/preferences.html:75
180
+#: searx/templates/oscar/preferences.html:76
171 181
 msgid "Image proxy"
172 182
 msgstr "Bilder Proxy"
173 183
 
174 184
 #: searx/templates/courgette/preferences.html:48
175 185
 #: searx/templates/default/preferences.html:49
176
-#: searx/templates/oscar/preferences.html:79
186
+#: searx/templates/oscar/preferences.html:80
177 187
 msgid "Enabled"
178 188
 msgstr "Aktiviert"
179 189
 
180 190
 #: searx/templates/courgette/preferences.html:49
181 191
 #: searx/templates/default/preferences.html:50
182
-#: searx/templates/oscar/preferences.html:80
192
+#: searx/templates/oscar/preferences.html:81
183 193
 msgid "Disabled"
184 194
 msgstr "Deaktiviert"
185 195
 
186 196
 #: searx/templates/courgette/preferences.html:54
187 197
 #: searx/templates/default/preferences.html:55
188
-#: searx/templates/oscar/preferences.html:84
198
+#: searx/templates/oscar/preferences.html:85
189 199
 #: searx/templates/pix-art/preferences.html:30
190 200
 msgid "Method"
191 201
 msgstr "Methode"
192 202
 
193 203
 #: searx/templates/courgette/preferences.html:63
194 204
 #: 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
196 208
 msgid "SafeSearch"
197 209
 msgstr "Sichere Suche (SafeSearch)"
198 210
 
199 211
 #: searx/templates/courgette/preferences.html:66
200 212
 #: searx/templates/default/preferences.html:67
201
-#: searx/templates/oscar/preferences.html:97
213
+#: searx/templates/oscar/preferences.html:98
202 214
 msgid "Strict"
203 215
 msgstr "Streng"
204 216
 
205 217
 #: searx/templates/courgette/preferences.html:67
206 218
 #: searx/templates/default/preferences.html:68
207
-#: searx/templates/oscar/preferences.html:98
219
+#: searx/templates/oscar/preferences.html:99
208 220
 msgid "Moderate"
209 221
 msgstr "Moderat"
210 222
 
211 223
 #: searx/templates/courgette/preferences.html:68
212 224
 #: searx/templates/default/preferences.html:69
213
-#: searx/templates/oscar/preferences.html:99
225
+#: searx/templates/oscar/preferences.html:100
214 226
 msgid "None"
215 227
 msgstr "Keine"
216 228
 
217 229
 #: searx/templates/courgette/preferences.html:73
218 230
 #: searx/templates/default/preferences.html:74
219
-#: searx/templates/oscar/preferences.html:103
231
+#: searx/templates/oscar/preferences.html:104
220 232
 #: searx/templates/pix-art/preferences.html:39
221 233
 msgid "Themes"
222 234
 msgstr "Designs"
@@ -257,6 +269,8 @@ msgstr "Aktuell benutzte Suchmaschinen"
257 269
 
258 270
 #: searx/templates/courgette/preferences.html:100
259 271
 #: searx/templates/default/preferences.html:88
272
+#: searx/templates/oscar/preferences.html:142
273
+#: searx/templates/oscar/preferences.html:152
260 274
 #: searx/templates/pix-art/preferences.html:53
261 275
 msgid "Engine name"
262 276
 msgstr "Suchmaschinenname"
@@ -271,6 +285,8 @@ msgstr "Kategorie"
271 285
 #: searx/templates/default/preferences.html:90
272 286
 #: searx/templates/default/preferences.html:101
273 287
 #: searx/templates/oscar/macros.html:67
288
+#: searx/templates/oscar/preferences.html:141
289
+#: searx/templates/oscar/preferences.html:153
274 290
 #: searx/templates/pix-art/preferences.html:54
275 291
 #: searx/templates/pix-art/preferences.html:64
276 292
 msgid "Allow"
@@ -288,7 +304,7 @@ msgstr "Blockieren"
288 304
 
289 305
 #: searx/templates/courgette/preferences.html:122
290 306
 #: searx/templates/default/preferences.html:110
291
-#: searx/templates/oscar/preferences.html:180
307
+#: searx/templates/oscar/preferences.html:235
292 308
 #: searx/templates/pix-art/preferences.html:73
293 309
 msgid ""
294 310
 "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
297 313
 
298 314
 #: searx/templates/courgette/preferences.html:124
299 315
 #: searx/templates/default/preferences.html:112
300
-#: searx/templates/oscar/preferences.html:182
316
+#: searx/templates/oscar/preferences.html:237
301 317
 #: searx/templates/pix-art/preferences.html:75
302 318
 msgid ""
303 319
 "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
306 322
 
307 323
 #: searx/templates/courgette/preferences.html:127
308 324
 #: searx/templates/default/preferences.html:115
309
-#: searx/templates/oscar/preferences.html:185
325
+#: searx/templates/oscar/preferences.html:240
310 326
 #: searx/templates/pix-art/preferences.html:78
311 327
 msgid "save"
312 328
 msgstr "Speichern"
313 329
 
314 330
 #: searx/templates/courgette/preferences.html:128
315 331
 #: searx/templates/default/preferences.html:116
316
-#: searx/templates/oscar/preferences.html:187
332
+#: searx/templates/oscar/preferences.html:242
317 333
 msgid "Reset defaults"
318 334
 msgstr "Zurücksetzen"
319 335
 
320 336
 #: searx/templates/courgette/preferences.html:129
321 337
 #: searx/templates/default/preferences.html:117
322
-#: searx/templates/oscar/preferences.html:186
338
+#: searx/templates/oscar/preferences.html:241
323 339
 #: searx/templates/pix-art/preferences.html:79
324 340
 msgid "back"
325 341
 msgstr "Zurück"
@@ -429,51 +445,89 @@ msgid "Toggle navigation"
429 445
 msgstr "Navigation umschalten"
430 446
 
431 447
 #: searx/templates/oscar/preferences.html:17
432
-#: searx/templates/oscar/preferences.html:24
448
+#: searx/templates/oscar/preferences.html:25
433 449
 msgid "General"
434 450
 msgstr "Allgemein"
435 451
 
436 452
 #: searx/templates/oscar/preferences.html:18
437
-#: searx/templates/oscar/preferences.html:125
453
+#: searx/templates/oscar/preferences.html:126
438 454
 msgid "Engines"
439 455
 msgstr "Suchmaschinen"
440 456
 
441 457
 #: searx/templates/oscar/preferences.html:19
442
-#: searx/templates/oscar/preferences.html:159
458
+#: searx/templates/oscar/preferences.html:187
443 459
 msgid "Plugins"
444 460
 msgstr "Erweiterungen"
445 461
 
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
447 468
 msgid "What language do you prefer for search?"
448 469
 msgstr "welche Sprache bevorzugst du für die Suche?"
449 470
 
450
-#: searx/templates/oscar/preferences.html:55
471
+#: searx/templates/oscar/preferences.html:56
451 472
 msgid "Change the language of the layout"
452 473
 msgstr "ändere die Sprache des Layouts"
453 474
 
454
-#: searx/templates/oscar/preferences.html:65
475
+#: searx/templates/oscar/preferences.html:66
455 476
 msgid "Find stuff as you type"
456 477
 msgstr "zeige Vorschläge während der Eingabe an"
457 478
 
458
-#: searx/templates/oscar/preferences.html:76
479
+#: searx/templates/oscar/preferences.html:77
459 480
 msgid "Proxying image results through searx"
460 481
 msgstr "tunnel Bilder durch searx"
461 482
 
462
-#: searx/templates/oscar/preferences.html:85
483
+#: searx/templates/oscar/preferences.html:86
463 484
 msgid ""
464 485
 "Change how forms are submited, <a "
465 486
 "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
466 487
 " rel=\"external\">learn more about request methods</a>"
467 488
 msgstr "ändere wie Formulare übertragen werden, <a href=\"https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol#HTTP-Anfragemethoden\" rel=\"external\">lerne mehr über Anfragemethoden</a>"
468 489
 
469
-#: searx/templates/oscar/preferences.html:94
490
+#: searx/templates/oscar/preferences.html:95
470 491
 msgid "Filter content"
471 492
 msgstr "Inhalte filtern"
472 493
 
473
-#: searx/templates/oscar/preferences.html:104
494
+#: searx/templates/oscar/preferences.html:105
474 495
 msgid "Change searx layout"
475 496
 msgstr "ändere das Aussehen von searx"
476 497
 
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
+
477 531
 #: searx/templates/oscar/results.html:7
478 532
 msgid "Search results"
479 533
 msgstr "Suchergebnisse"
@@ -523,6 +577,14 @@ msgstr "Warnung!"
523 577
 msgid "Please enable JavaScript to use full functionality of this site."
524 578
 msgstr "Bitte aktiviere JavaScript, um alle Funktionen dieser Seite zu nutzen. "
525 579
 
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
+
526 588
 #: searx/templates/oscar/messages/no_data_available.html:4
527 589
 msgid "There is currently no data available. "
528 590
 msgstr "Es sind derzeit keine Daten vorhanden."

Binārs
searx/translations/en/LC_MESSAGES/messages.mo Parādīt failu


Binārs
searx/translations/es/LC_MESSAGES/messages.mo Parādīt failu


+ 122
- 58
searx/translations/es/LC_MESSAGES/messages.po Parādīt failu

@@ -3,16 +3,18 @@
3 3
 # This file is distributed under the same license as the PROJECT project.
4 4
 # 
5 5
 # Translators:
6
+# Adam Tauber <asciimoo@gmail.com>, 2015
6 7
 # Alejandro León Aznar, 2014
7 8
 # Alejandro León Aznar, 2014-2015
9
+# Oscar Carrero <holaoscar@protonmail.ch>, 2015
8 10
 msgid ""
9 11
 msgstr ""
10 12
 "Project-Id-Version: searx\n"
11 13
 "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"
16 18
 "MIME-Version: 1.0\n"
17 19
 "Content-Type: text/plain; charset=UTF-8\n"
18 20
 "Content-Transfer-Encoding: 8bit\n"
@@ -20,67 +22,67 @@ msgstr ""
20 22
 "Language: es\n"
21 23
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22 24
 
23
-#: searx/webapp.py:104
25
+#: searx/webapp.py:114
24 26
 msgid "files"
25 27
 msgstr "Archivos"
26 28
 
27
-#: searx/webapp.py:105
29
+#: searx/webapp.py:115
28 30
 msgid "general"
29 31
 msgstr "General"
30 32
 
31
-#: searx/webapp.py:106
33
+#: searx/webapp.py:116
32 34
 msgid "music"
33 35
 msgstr "Música"
34 36
 
35
-#: searx/webapp.py:107
37
+#: searx/webapp.py:117
36 38
 msgid "social media"
37 39
 msgstr "Medios sociales"
38 40
 
39
-#: searx/webapp.py:108
41
+#: searx/webapp.py:118
40 42
 msgid "images"
41 43
 msgstr "Imágenes"
42 44
 
43
-#: searx/webapp.py:109
45
+#: searx/webapp.py:119
44 46
 msgid "videos"
45 47
 msgstr "Vídeos"
46 48
 
47
-#: searx/webapp.py:110
49
+#: searx/webapp.py:120
48 50
 msgid "it"
49 51
 msgstr "TIC"
50 52
 
51
-#: searx/webapp.py:111
53
+#: searx/webapp.py:121
52 54
 msgid "news"
53 55
 msgstr "noticias"
54 56
 
55
-#: searx/webapp.py:112
57
+#: searx/webapp.py:122
56 58
 msgid "map"
57 59
 msgstr "mapa"
58 60
 
59
-#: searx/webapp.py:396
61
+#: searx/webapp.py:414
60 62
 msgid "{minutes} minute(s) ago"
61 63
 msgstr "hace {minutes} minuto(s)"
62 64
 
63
-#: searx/webapp.py:398
65
+#: searx/webapp.py:416
64 66
 msgid "{hours} hour(s), {minutes} minute(s) ago"
65 67
 msgstr "hace {hours} hora(s) y {minutes} minuto(s)"
66 68
 
67
-#: searx/engines/__init__.py:182
69
+#: searx/engines/__init__.py:185
68 70
 msgid "Page loads (sec)"
69 71
 msgstr "Tiempo de carga (segundos)"
70 72
 
71
-#: searx/engines/__init__.py:186
73
+#: searx/engines/__init__.py:189
72 74
 msgid "Number of results"
73 75
 msgstr "Número de resultados"
74 76
 
75
-#: searx/engines/__init__.py:190
77
+#: searx/engines/__init__.py:193
76 78
 msgid "Scores"
77 79
 msgstr "Puntuaciones"
78 80
 
79
-#: searx/engines/__init__.py:194
81
+#: searx/engines/__init__.py:197
80 82
 msgid "Scores per result"
81 83
 msgstr "Puntuaciones por resultado"
82 84
 
83
-#: searx/engines/__init__.py:198
85
+#: searx/engines/__init__.py:201
84 86
 msgid "Errors"
85 87
 msgstr "Errores"
86 88
 
@@ -95,12 +97,22 @@ msgstr "Buscar en la categoría seleccionada"
95 97
 #: searx/plugins/search_on_category_select.py:19
96 98
 msgid ""
97 99
 "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)"
100 102
 
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"
104 116
 
105 117
 #: searx/templates/courgette/index.html:9
106 118
 #: searx/templates/courgette/index.html:13
@@ -128,90 +140,92 @@ msgstr "Preferencias"
128 140
 
129 141
 #: searx/templates/courgette/preferences.html:9
130 142
 #: 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
133 145
 msgid "Default categories"
134 146
 msgstr "Categorías predeterminadas"
135 147
 
136 148
 #: searx/templates/courgette/preferences.html:13
137 149
 #: searx/templates/default/preferences.html:14
138
-#: searx/templates/oscar/preferences.html:43
150
+#: searx/templates/oscar/preferences.html:44
139 151
 #: searx/templates/pix-art/preferences.html:9
140 152
 msgid "Search language"
141 153
 msgstr "Buscar idioma"
142 154
 
143 155
 #: searx/templates/courgette/preferences.html:16
144 156
 #: searx/templates/default/preferences.html:17
145
-#: searx/templates/oscar/preferences.html:47
157
+#: searx/templates/oscar/preferences.html:48
146 158
 #: searx/templates/pix-art/preferences.html:12
147 159
 msgid "Automatic"
148 160
 msgstr "Automático"
149 161
 
150 162
 #: searx/templates/courgette/preferences.html:24
151 163
 #: searx/templates/default/preferences.html:25
152
-#: searx/templates/oscar/preferences.html:54
164
+#: searx/templates/oscar/preferences.html:55
153 165
 #: searx/templates/pix-art/preferences.html:20
154 166
 msgid "Interface language"
155 167
 msgstr "Idioma de la interfaz"
156 168
 
157 169
 #: searx/templates/courgette/preferences.html:34
158 170
 #: searx/templates/default/preferences.html:35
159
-#: searx/templates/oscar/preferences.html:64
171
+#: searx/templates/oscar/preferences.html:65
160 172
 msgid "Autocomplete"
161 173
 msgstr "Autocompletar"
162 174
 
163 175
 #: searx/templates/courgette/preferences.html:45
164 176
 #: searx/templates/default/preferences.html:46
165
-#: searx/templates/oscar/preferences.html:75
177
+#: searx/templates/oscar/preferences.html:76
166 178
 msgid "Image proxy"
167 179
 msgstr "Imagen proxy"
168 180
 
169 181
 #: searx/templates/courgette/preferences.html:48
170 182
 #: searx/templates/default/preferences.html:49
171
-#: searx/templates/oscar/preferences.html:79
183
+#: searx/templates/oscar/preferences.html:80
172 184
 msgid "Enabled"
173 185
 msgstr "Activado"
174 186
 
175 187
 #: searx/templates/courgette/preferences.html:49
176 188
 #: searx/templates/default/preferences.html:50
177
-#: searx/templates/oscar/preferences.html:80
189
+#: searx/templates/oscar/preferences.html:81
178 190
 msgid "Disabled"
179 191
 msgstr "Desactivado"
180 192
 
181 193
 #: searx/templates/courgette/preferences.html:54
182 194
 #: searx/templates/default/preferences.html:55
183
-#: searx/templates/oscar/preferences.html:84
195
+#: searx/templates/oscar/preferences.html:85
184 196
 #: searx/templates/pix-art/preferences.html:30
185 197
 msgid "Method"
186 198
 msgstr "Método"
187 199
 
188 200
 #: searx/templates/courgette/preferences.html:63
189 201
 #: 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
191 205
 msgid "SafeSearch"
192 206
 msgstr "Búsqueda segura"
193 207
 
194 208
 #: searx/templates/courgette/preferences.html:66
195 209
 #: searx/templates/default/preferences.html:67
196
-#: searx/templates/oscar/preferences.html:97
210
+#: searx/templates/oscar/preferences.html:98
197 211
 msgid "Strict"
198 212
 msgstr "Riguroso"
199 213
 
200 214
 #: searx/templates/courgette/preferences.html:67
201 215
 #: searx/templates/default/preferences.html:68
202
-#: searx/templates/oscar/preferences.html:98
216
+#: searx/templates/oscar/preferences.html:99
203 217
 msgid "Moderate"
204 218
 msgstr "Moderado"
205 219
 
206 220
 #: searx/templates/courgette/preferences.html:68
207 221
 #: searx/templates/default/preferences.html:69
208
-#: searx/templates/oscar/preferences.html:99
222
+#: searx/templates/oscar/preferences.html:100
209 223
 msgid "None"
210 224
 msgstr "Ninguno"
211 225
 
212 226
 #: searx/templates/courgette/preferences.html:73
213 227
 #: searx/templates/default/preferences.html:74
214
-#: searx/templates/oscar/preferences.html:103
228
+#: searx/templates/oscar/preferences.html:104
215 229
 #: searx/templates/pix-art/preferences.html:39
216 230
 msgid "Themes"
217 231
 msgstr "Temas"
@@ -252,6 +266,8 @@ msgstr "Motores de búsqueda actualmente en uso"
252 266
 
253 267
 #: searx/templates/courgette/preferences.html:100
254 268
 #: searx/templates/default/preferences.html:88
269
+#: searx/templates/oscar/preferences.html:142
270
+#: searx/templates/oscar/preferences.html:152
255 271
 #: searx/templates/pix-art/preferences.html:53
256 272
 msgid "Engine name"
257 273
 msgstr "Nombre del motor de búsqueda"
@@ -266,6 +282,8 @@ msgstr "Categoría"
266 282
 #: searx/templates/default/preferences.html:90
267 283
 #: searx/templates/default/preferences.html:101
268 284
 #: searx/templates/oscar/macros.html:67
285
+#: searx/templates/oscar/preferences.html:141
286
+#: searx/templates/oscar/preferences.html:153
269 287
 #: searx/templates/pix-art/preferences.html:54
270 288
 #: searx/templates/pix-art/preferences.html:64
271 289
 msgid "Allow"
@@ -283,7 +301,7 @@ msgstr "Bloquear"
283 301
 
284 302
 #: searx/templates/courgette/preferences.html:122
285 303
 #: searx/templates/default/preferences.html:110
286
-#: searx/templates/oscar/preferences.html:180
304
+#: searx/templates/oscar/preferences.html:235
287 305
 #: searx/templates/pix-art/preferences.html:73
288 306
 msgid ""
289 307
 "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
292 310
 
293 311
 #: searx/templates/courgette/preferences.html:124
294 312
 #: searx/templates/default/preferences.html:112
295
-#: searx/templates/oscar/preferences.html:182
313
+#: searx/templates/oscar/preferences.html:237
296 314
 #: searx/templates/pix-art/preferences.html:75
297 315
 msgid ""
298 316
 "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
301 319
 
302 320
 #: searx/templates/courgette/preferences.html:127
303 321
 #: searx/templates/default/preferences.html:115
304
-#: searx/templates/oscar/preferences.html:185
322
+#: searx/templates/oscar/preferences.html:240
305 323
 #: searx/templates/pix-art/preferences.html:78
306 324
 msgid "save"
307 325
 msgstr "Guardar"
308 326
 
309 327
 #: searx/templates/courgette/preferences.html:128
310 328
 #: searx/templates/default/preferences.html:116
311
-#: searx/templates/oscar/preferences.html:187
329
+#: searx/templates/oscar/preferences.html:242
312 330
 msgid "Reset defaults"
313 331
 msgstr "Restablecer configuración por defecto"
314 332
 
315 333
 #: searx/templates/courgette/preferences.html:129
316 334
 #: searx/templates/default/preferences.html:117
317
-#: searx/templates/oscar/preferences.html:186
335
+#: searx/templates/oscar/preferences.html:241
318 336
 #: searx/templates/pix-art/preferences.html:79
319 337
 msgid "back"
320 338
 msgstr "Atrás"
@@ -323,7 +341,7 @@ msgstr "Atrás"
323 341
 #: searx/templates/default/results.html:13
324 342
 #: searx/templates/oscar/results.html:110
325 343
 msgid "Search URL"
326
-msgstr "Buscar URL"
344
+msgstr "URL de la búsqueda"
327 345
 
328 346
 #: searx/templates/courgette/results.html:16
329 347
 #: searx/templates/default/results.html:17
@@ -413,7 +431,7 @@ msgstr "Creado por"
413 431
 
414 432
 #: searx/templates/oscar/base.html:78
415 433
 msgid "a privacy-respecting, hackable metasearch engine"
416
-msgstr "un metabuscador hackeable que respeta la privacidad"
434
+msgstr "un metabuscador hackable que respeta la privacidad"
417 435
 
418 436
 #: searx/templates/oscar/navbar.html:9 searx/templates/oscar/navbar.html:33
419 437
 msgid "home"
@@ -424,51 +442,89 @@ msgid "Toggle navigation"
424 442
 msgstr "Cambiar navegación"
425 443
 
426 444
 #: searx/templates/oscar/preferences.html:17
427
-#: searx/templates/oscar/preferences.html:24
445
+#: searx/templates/oscar/preferences.html:25
428 446
 msgid "General"
429 447
 msgstr "General"
430 448
 
431 449
 #: searx/templates/oscar/preferences.html:18
432
-#: searx/templates/oscar/preferences.html:125
450
+#: searx/templates/oscar/preferences.html:126
433 451
 msgid "Engines"
434 452
 msgstr "Motores"
435 453
 
436 454
 #: searx/templates/oscar/preferences.html:19
437
-#: searx/templates/oscar/preferences.html:159
455
+#: searx/templates/oscar/preferences.html:187
438 456
 msgid "Plugins"
439 457
 msgstr "Plugins"
440 458
 
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
442 465
 msgid "What language do you prefer for search?"
443 466
 msgstr "¿Qué idioma prefieres para la búsqueda?"
444 467
 
445
-#: searx/templates/oscar/preferences.html:55
468
+#: searx/templates/oscar/preferences.html:56
446 469
 msgid "Change the language of the layout"
447 470
 msgstr "Cambiar idioma de la interfaz"
448 471
 
449
-#: searx/templates/oscar/preferences.html:65
472
+#: searx/templates/oscar/preferences.html:66
450 473
 msgid "Find stuff as you type"
451 474
 msgstr "Buscar mientras escribes"
452 475
 
453
-#: searx/templates/oscar/preferences.html:76
476
+#: searx/templates/oscar/preferences.html:77
454 477
 msgid "Proxying image results through searx"
455 478
 msgstr "Filtrando resultados de imágenes en searx"
456 479
 
457
-#: searx/templates/oscar/preferences.html:85
480
+#: searx/templates/oscar/preferences.html:86
458 481
 msgid ""
459 482
 "Change how forms are submited, <a "
460 483
 "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
461 484
 " rel=\"external\">learn more about request methods</a>"
462 485
 msgstr "Modifica cómo se envian los formularios <a href=\"http://es.wikipedia.org/wiki/Hypertext_Transfer_Protocol#M.C3.A9todos_de_petici.C3.B3n\" rel=\"external\">más información sobre métodos de peticiones</a>"
463 486
 
464
-#: searx/templates/oscar/preferences.html:94
487
+#: searx/templates/oscar/preferences.html:95
465 488
 msgid "Filter content"
466 489
 msgstr "Filtro de contenido"
467 490
 
468
-#: searx/templates/oscar/preferences.html:104
491
+#: searx/templates/oscar/preferences.html:105
469 492
 msgid "Change searx layout"
470 493
 msgstr "Cambiar aspecto de searx"
471 494
 
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
+
472 528
 #: searx/templates/oscar/results.html:7
473 529
 msgid "Search results"
474 530
 msgstr "Buscar"
@@ -516,7 +572,15 @@ msgstr "¡Cuidado!"
516 572
 
517 573
 #: searx/templates/oscar/messages/js_disabled.html:3
518 574
 msgid "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."
520 584
 
521 585
 #: searx/templates/oscar/messages/no_data_available.html:4
522 586
 msgid "There is currently no data available. "

Binārs
searx/translations/fr/LC_MESSAGES/messages.mo Parādīt failu


+ 116
- 54
searx/translations/fr/LC_MESSAGES/messages.po Parādīt failu

@@ -13,10 +13,10 @@ msgid ""
13 13
 msgstr ""
14 14
 "Project-Id-Version: searx\n"
15 15
 "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"
18 18
 "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"
20 20
 "MIME-Version: 1.0\n"
21 21
 "Content-Type: text/plain; charset=UTF-8\n"
22 22
 "Content-Transfer-Encoding: 8bit\n"
@@ -24,67 +24,67 @@ msgstr ""
24 24
 "Language: fr\n"
25 25
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
26 26
 
27
-#: searx/webapp.py:104
27
+#: searx/webapp.py:114
28 28
 msgid "files"
29 29
 msgstr "fichiers"
30 30
 
31
-#: searx/webapp.py:105
31
+#: searx/webapp.py:115
32 32
 msgid "general"
33 33
 msgstr "général"
34 34
 
35
-#: searx/webapp.py:106
35
+#: searx/webapp.py:116
36 36
 msgid "music"
37 37
 msgstr "musique"
38 38
 
39
-#: searx/webapp.py:107
39
+#: searx/webapp.py:117
40 40
 msgid "social media"
41 41
 msgstr "réseaux sociaux"
42 42
 
43
-#: searx/webapp.py:108
43
+#: searx/webapp.py:118
44 44
 msgid "images"
45 45
 msgstr "images"
46 46
 
47
-#: searx/webapp.py:109
47
+#: searx/webapp.py:119
48 48
 msgid "videos"
49 49
 msgstr "vidéos"
50 50
 
51
-#: searx/webapp.py:110
51
+#: searx/webapp.py:120
52 52
 msgid "it"
53 53
 msgstr "informatique"
54 54
 
55
-#: searx/webapp.py:111
55
+#: searx/webapp.py:121
56 56
 msgid "news"
57 57
 msgstr "actus"
58 58
 
59
-#: searx/webapp.py:112
59
+#: searx/webapp.py:122
60 60
 msgid "map"
61 61
 msgstr "carte"
62 62
 
63
-#: searx/webapp.py:396
63
+#: searx/webapp.py:414
64 64
 msgid "{minutes} minute(s) ago"
65 65
 msgstr "il y a {minutes} minute(s)"
66 66
 
67
-#: searx/webapp.py:398
67
+#: searx/webapp.py:416
68 68
 msgid "{hours} hour(s), {minutes} minute(s) ago"
69 69
 msgstr "il y a {hours} heure(s), {minutes} minute(s)"
70 70
 
71
-#: searx/engines/__init__.py:182
71
+#: searx/engines/__init__.py:185
72 72
 msgid "Page loads (sec)"
73 73
 msgstr "Chargement de la page (sec)"
74 74
 
75
-#: searx/engines/__init__.py:186
75
+#: searx/engines/__init__.py:189
76 76
 msgid "Number of results"
77 77
 msgstr "Nombre de résultats"
78 78
 
79
-#: searx/engines/__init__.py:190
79
+#: searx/engines/__init__.py:193
80 80
 msgid "Scores"
81 81
 msgstr "Score"
82 82
 
83
-#: searx/engines/__init__.py:194
83
+#: searx/engines/__init__.py:197
84 84
 msgid "Scores per result"
85 85
 msgstr "Score par résultat"
86 86
 
87
-#: searx/engines/__init__.py:198
87
+#: searx/engines/__init__.py:201
88 88
 msgid "Errors"
89 89
 msgstr "Erreurs"
90 90
 
@@ -99,12 +99,22 @@ msgstr "Lancer la recherche lors du choix d'une catégorie"
99 99
 #: searx/plugins/search_on_category_select.py:19
100 100
 msgid ""
101 101
 "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)."
104 104
 
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"
108 118
 
109 119
 #: searx/templates/courgette/index.html:9
110 120
 #: searx/templates/courgette/index.html:13
@@ -132,90 +142,92 @@ msgstr "Préférences"
132 142
 
133 143
 #: searx/templates/courgette/preferences.html:9
134 144
 #: 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
137 147
 msgid "Default categories"
138 148
 msgstr "Catégories par défaut"
139 149
 
140 150
 #: searx/templates/courgette/preferences.html:13
141 151
 #: searx/templates/default/preferences.html:14
142
-#: searx/templates/oscar/preferences.html:43
152
+#: searx/templates/oscar/preferences.html:44
143 153
 #: searx/templates/pix-art/preferences.html:9
144 154
 msgid "Search language"
145 155
 msgstr "Langue de recherche"
146 156
 
147 157
 #: searx/templates/courgette/preferences.html:16
148 158
 #: searx/templates/default/preferences.html:17
149
-#: searx/templates/oscar/preferences.html:47
159
+#: searx/templates/oscar/preferences.html:48
150 160
 #: searx/templates/pix-art/preferences.html:12
151 161
 msgid "Automatic"
152 162
 msgstr "Automatique"
153 163
 
154 164
 #: searx/templates/courgette/preferences.html:24
155 165
 #: searx/templates/default/preferences.html:25
156
-#: searx/templates/oscar/preferences.html:54
166
+#: searx/templates/oscar/preferences.html:55
157 167
 #: searx/templates/pix-art/preferences.html:20
158 168
 msgid "Interface language"
159 169
 msgstr "Langue de l'interface"
160 170
 
161 171
 #: searx/templates/courgette/preferences.html:34
162 172
 #: searx/templates/default/preferences.html:35
163
-#: searx/templates/oscar/preferences.html:64
173
+#: searx/templates/oscar/preferences.html:65
164 174
 msgid "Autocomplete"
165 175
 msgstr "Complétion automatique"
166 176
 
167 177
 #: searx/templates/courgette/preferences.html:45
168 178
 #: searx/templates/default/preferences.html:46
169
-#: searx/templates/oscar/preferences.html:75
179
+#: searx/templates/oscar/preferences.html:76
170 180
 msgid "Image proxy"
171 181
 msgstr "Proxy d'images"
172 182
 
173 183
 #: searx/templates/courgette/preferences.html:48
174 184
 #: searx/templates/default/preferences.html:49
175
-#: searx/templates/oscar/preferences.html:79
185
+#: searx/templates/oscar/preferences.html:80
176 186
 msgid "Enabled"
177 187
 msgstr "Activé"
178 188
 
179 189
 #: searx/templates/courgette/preferences.html:49
180 190
 #: searx/templates/default/preferences.html:50
181
-#: searx/templates/oscar/preferences.html:80
191
+#: searx/templates/oscar/preferences.html:81
182 192
 msgid "Disabled"
183 193
 msgstr "Désactivé"
184 194
 
185 195
 #: searx/templates/courgette/preferences.html:54
186 196
 #: searx/templates/default/preferences.html:55
187
-#: searx/templates/oscar/preferences.html:84
197
+#: searx/templates/oscar/preferences.html:85
188 198
 #: searx/templates/pix-art/preferences.html:30
189 199
 msgid "Method"
190 200
 msgstr "Méthode"
191 201
 
192 202
 #: searx/templates/courgette/preferences.html:63
193 203
 #: 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
195 207
 msgid "SafeSearch"
196 208
 msgstr "Recherche sécurisée"
197 209
 
198 210
 #: searx/templates/courgette/preferences.html:66
199 211
 #: searx/templates/default/preferences.html:67
200
-#: searx/templates/oscar/preferences.html:97
212
+#: searx/templates/oscar/preferences.html:98
201 213
 msgid "Strict"
202 214
 msgstr "Stricte"
203 215
 
204 216
 #: searx/templates/courgette/preferences.html:67
205 217
 #: searx/templates/default/preferences.html:68
206
-#: searx/templates/oscar/preferences.html:98
218
+#: searx/templates/oscar/preferences.html:99
207 219
 msgid "Moderate"
208 220
 msgstr "Moyen"
209 221
 
210 222
 #: searx/templates/courgette/preferences.html:68
211 223
 #: searx/templates/default/preferences.html:69
212
-#: searx/templates/oscar/preferences.html:99
224
+#: searx/templates/oscar/preferences.html:100
213 225
 msgid "None"
214 226
 msgstr "Pas du tout"
215 227
 
216 228
 #: searx/templates/courgette/preferences.html:73
217 229
 #: searx/templates/default/preferences.html:74
218
-#: searx/templates/oscar/preferences.html:103
230
+#: searx/templates/oscar/preferences.html:104
219 231
 #: searx/templates/pix-art/preferences.html:39
220 232
 msgid "Themes"
221 233
 msgstr "Thème"
@@ -256,6 +268,8 @@ msgstr "Moteurs de recherche actuellement utilisés"
256 268
 
257 269
 #: searx/templates/courgette/preferences.html:100
258 270
 #: searx/templates/default/preferences.html:88
271
+#: searx/templates/oscar/preferences.html:142
272
+#: searx/templates/oscar/preferences.html:152
259 273
 #: searx/templates/pix-art/preferences.html:53
260 274
 msgid "Engine name"
261 275
 msgstr "Nom du moteur"
@@ -270,6 +284,8 @@ msgstr "Catégorie"
270 284
 #: searx/templates/default/preferences.html:90
271 285
 #: searx/templates/default/preferences.html:101
272 286
 #: searx/templates/oscar/macros.html:67
287
+#: searx/templates/oscar/preferences.html:141
288
+#: searx/templates/oscar/preferences.html:153
273 289
 #: searx/templates/pix-art/preferences.html:54
274 290
 #: searx/templates/pix-art/preferences.html:64
275 291
 msgid "Allow"
@@ -287,7 +303,7 @@ msgstr "Bloquer"
287 303
 
288 304
 #: searx/templates/courgette/preferences.html:122
289 305
 #: searx/templates/default/preferences.html:110
290
-#: searx/templates/oscar/preferences.html:180
306
+#: searx/templates/oscar/preferences.html:235
291 307
 #: searx/templates/pix-art/preferences.html:73
292 308
 msgid ""
293 309
 "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
296 312
 
297 313
 #: searx/templates/courgette/preferences.html:124
298 314
 #: searx/templates/default/preferences.html:112
299
-#: searx/templates/oscar/preferences.html:182
315
+#: searx/templates/oscar/preferences.html:237
300 316
 #: searx/templates/pix-art/preferences.html:75
301 317
 msgid ""
302 318
 "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
305 321
 
306 322
 #: searx/templates/courgette/preferences.html:127
307 323
 #: searx/templates/default/preferences.html:115
308
-#: searx/templates/oscar/preferences.html:185
324
+#: searx/templates/oscar/preferences.html:240
309 325
 #: searx/templates/pix-art/preferences.html:78
310 326
 msgid "save"
311 327
 msgstr "enregistrer"
312 328
 
313 329
 #: searx/templates/courgette/preferences.html:128
314 330
 #: searx/templates/default/preferences.html:116
315
-#: searx/templates/oscar/preferences.html:187
331
+#: searx/templates/oscar/preferences.html:242
316 332
 msgid "Reset defaults"
317 333
 msgstr "Remettre les valeurs par défaut"
318 334
 
319 335
 #: searx/templates/courgette/preferences.html:129
320 336
 #: searx/templates/default/preferences.html:117
321
-#: searx/templates/oscar/preferences.html:186
337
+#: searx/templates/oscar/preferences.html:241
322 338
 #: searx/templates/pix-art/preferences.html:79
323 339
 msgid "back"
324 340
 msgstr "retour"
@@ -428,51 +444,89 @@ msgid "Toggle navigation"
428 444
 msgstr "Afficher/Masquer la navigation"
429 445
 
430 446
 #: searx/templates/oscar/preferences.html:17
431
-#: searx/templates/oscar/preferences.html:24
447
+#: searx/templates/oscar/preferences.html:25
432 448
 msgid "General"
433 449
 msgstr "Général"
434 450
 
435 451
 #: searx/templates/oscar/preferences.html:18
436
-#: searx/templates/oscar/preferences.html:125
452
+#: searx/templates/oscar/preferences.html:126
437 453
 msgid "Engines"
438 454
 msgstr "Moteurs"
439 455
 
440 456
 #: searx/templates/oscar/preferences.html:19
441
-#: searx/templates/oscar/preferences.html:159
457
+#: searx/templates/oscar/preferences.html:187
442 458
 msgid "Plugins"
443 459
 msgstr "Plugins"
444 460
 
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
446 467
 msgid "What language do you prefer for search?"
447 468
 msgstr "Dans quelle langue préférez-vous effectuer la recherche ?"
448 469
 
449
-#: searx/templates/oscar/preferences.html:55
470
+#: searx/templates/oscar/preferences.html:56
450 471
 msgid "Change the language of the layout"
451 472
 msgstr "Changer la langue d'affichage"
452 473
 
453
-#: searx/templates/oscar/preferences.html:65
474
+#: searx/templates/oscar/preferences.html:66
454 475
 msgid "Find stuff as you type"
455 476
 msgstr "Chercher au fil de la saisie"
456 477
 
457
-#: searx/templates/oscar/preferences.html:76
478
+#: searx/templates/oscar/preferences.html:77
458 479
 msgid "Proxying image results through searx"
459 480
 msgstr "Proxifier les images de résultats à travers searx"
460 481
 
461
-#: searx/templates/oscar/preferences.html:85
482
+#: searx/templates/oscar/preferences.html:86
462 483
 msgid ""
463 484
 "Change how forms are submited, <a "
464 485
 "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
465 486
 " rel=\"external\">learn more about request methods</a>"
466 487
 msgstr "Permet de choisir comment la recherche est envoyée, <a href=\"https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol#M.C3.A9thodes\" rel=\"external\">en savoir plus sur les méthodes HTTP</a>"
467 488
 
468
-#: searx/templates/oscar/preferences.html:94
489
+#: searx/templates/oscar/preferences.html:95
469 490
 msgid "Filter content"
470 491
 msgstr "Filtrer le contenu"
471 492
 
472
-#: searx/templates/oscar/preferences.html:104
493
+#: searx/templates/oscar/preferences.html:105
473 494
 msgid "Change searx layout"
474 495
 msgstr "Modifier l'affichage de searx"
475 496
 
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
+
476 530
 #: searx/templates/oscar/results.html:7
477 531
 msgid "Search results"
478 532
 msgstr "Résultats de recherche"
@@ -522,6 +576,14 @@ msgstr "Attention !"
522 576
 msgid "Please enable JavaScript to use full functionality of this site."
523 577
 msgstr "Merci d'activer JavaScript pour utiliser toutes les fonctionnalités de ce site."
524 578
 
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
+
525 587
 #: searx/templates/oscar/messages/no_data_available.html:4
526 588
 msgid "There is currently no data available. "
527 589
 msgstr "Aucune donnée disponible pour l'instant. "

Binārs
searx/translations/he/LC_MESSAGES/messages.mo Parādīt failu


+ 118
- 56
searx/translations/he/LC_MESSAGES/messages.po Parādīt failu

@@ -12,10 +12,10 @@ msgid ""
12 12
 msgstr ""
13 13
 "Project-Id-Version: searx\n"
14 14
 "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"
17 17
 "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"
19 19
 "MIME-Version: 1.0\n"
20 20
 "Content-Type: text/plain; charset=UTF-8\n"
21 21
 "Content-Transfer-Encoding: 8bit\n"
@@ -23,67 +23,67 @@ msgstr ""
23 23
 "Language: he\n"
24 24
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
25 25
 
26
-#: searx/webapp.py:104
26
+#: searx/webapp.py:114
27 27
 msgid "files"
28 28
 msgstr "קבצים"
29 29
 
30
-#: searx/webapp.py:105
30
+#: searx/webapp.py:115
31 31
 msgid "general"
32 32
 msgstr "כללי"
33 33
 
34
-#: searx/webapp.py:106
34
+#: searx/webapp.py:116
35 35
 msgid "music"
36 36
 msgstr "מוזיקה"
37 37
 
38
-#: searx/webapp.py:107
38
+#: searx/webapp.py:117
39 39
 msgid "social media"
40 40
 msgstr "מדיה חברתית"
41 41
 
42
-#: searx/webapp.py:108
42
+#: searx/webapp.py:118
43 43
 msgid "images"
44 44
 msgstr "תמונות"
45 45
 
46
-#: searx/webapp.py:109
46
+#: searx/webapp.py:119
47 47
 msgid "videos"
48 48
 msgstr "סרטונים"
49 49
 
50
-#: searx/webapp.py:110
50
+#: searx/webapp.py:120
51 51
 msgid "it"
52 52
 msgstr "IT"
53 53
 
54
-#: searx/webapp.py:111
54
+#: searx/webapp.py:121
55 55
 msgid "news"
56 56
 msgstr "חדשות"
57 57
 
58
-#: searx/webapp.py:112
58
+#: searx/webapp.py:122
59 59
 msgid "map"
60 60
 msgstr "מפה"
61 61
 
62
-#: searx/webapp.py:396
62
+#: searx/webapp.py:414
63 63
 msgid "{minutes} minute(s) ago"
64 64
 msgstr "לפני {minutes} דקות"
65 65
 
66
-#: searx/webapp.py:398
66
+#: searx/webapp.py:416
67 67
 msgid "{hours} hour(s), {minutes} minute(s) ago"
68 68
 msgstr "לפני {hours} שעות, {minutes} דקות"
69 69
 
70
-#: searx/engines/__init__.py:182
70
+#: searx/engines/__init__.py:185
71 71
 msgid "Page loads (sec)"
72 72
 msgstr "עומס עמוד (שניות)"
73 73
 
74
-#: searx/engines/__init__.py:186
74
+#: searx/engines/__init__.py:189
75 75
 msgid "Number of results"
76 76
 msgstr "מספר תוצאות"
77 77
 
78
-#: searx/engines/__init__.py:190
78
+#: searx/engines/__init__.py:193
79 79
 msgid "Scores"
80 80
 msgstr "דירוג"
81 81
 
82
-#: searx/engines/__init__.py:194
82
+#: searx/engines/__init__.py:197
83 83
 msgid "Scores per result"
84 84
 msgstr "דירוג לכל תוצאה"
85 85
 
86
-#: searx/engines/__init__.py:198
86
+#: searx/engines/__init__.py:201
87 87
 msgid "Errors"
88 88
 msgstr "שגיאות"
89 89
 
@@ -98,12 +98,22 @@ msgstr "חפש בעת בחירת קטגוריה"
98 98
 #: searx/plugins/search_on_category_select.py:19
99 99
 msgid ""
100 100
 "Perform search immediately if a category selected. Disable to select "
101
-"multiple categories."
102
-msgstr "בצע חיפוש מיד לאחר שקטגוריה נבחרת. נטרל כדי לבחור מספר קטגוריות."
101
+"multiple categories. (JavaScript required)"
102
+msgstr "בצע חיפוש לאלתר כאשר קטגוריה נבחרת. נטרל כדי לבחור קטגוריות מרובות. (מצריך JavaScript)"
103 103
 
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 מוחזר"
107 117
 
108 118
 #: searx/templates/courgette/index.html:9
109 119
 #: searx/templates/courgette/index.html:13
@@ -131,90 +141,92 @@ msgstr "העדפות"
131 141
 
132 142
 #: searx/templates/courgette/preferences.html:9
133 143
 #: 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
136 146
 msgid "Default categories"
137 147
 msgstr "קטגוריות ברירת מחדל"
138 148
 
139 149
 #: searx/templates/courgette/preferences.html:13
140 150
 #: searx/templates/default/preferences.html:14
141
-#: searx/templates/oscar/preferences.html:43
151
+#: searx/templates/oscar/preferences.html:44
142 152
 #: searx/templates/pix-art/preferences.html:9
143 153
 msgid "Search language"
144 154
 msgstr "שפת חיפוש"
145 155
 
146 156
 #: searx/templates/courgette/preferences.html:16
147 157
 #: searx/templates/default/preferences.html:17
148
-#: searx/templates/oscar/preferences.html:47
158
+#: searx/templates/oscar/preferences.html:48
149 159
 #: searx/templates/pix-art/preferences.html:12
150 160
 msgid "Automatic"
151 161
 msgstr "אוטומטי"
152 162
 
153 163
 #: searx/templates/courgette/preferences.html:24
154 164
 #: searx/templates/default/preferences.html:25
155
-#: searx/templates/oscar/preferences.html:54
165
+#: searx/templates/oscar/preferences.html:55
156 166
 #: searx/templates/pix-art/preferences.html:20
157 167
 msgid "Interface language"
158 168
 msgstr "שפת ממשק"
159 169
 
160 170
 #: searx/templates/courgette/preferences.html:34
161 171
 #: searx/templates/default/preferences.html:35
162
-#: searx/templates/oscar/preferences.html:64
172
+#: searx/templates/oscar/preferences.html:65
163 173
 msgid "Autocomplete"
164 174
 msgstr "השלמה אוטומטית"
165 175
 
166 176
 #: searx/templates/courgette/preferences.html:45
167 177
 #: searx/templates/default/preferences.html:46
168
-#: searx/templates/oscar/preferences.html:75
178
+#: searx/templates/oscar/preferences.html:76
169 179
 msgid "Image proxy"
170 180
 msgstr "proxy תמונה"
171 181
 
172 182
 #: searx/templates/courgette/preferences.html:48
173 183
 #: searx/templates/default/preferences.html:49
174
-#: searx/templates/oscar/preferences.html:79
184
+#: searx/templates/oscar/preferences.html:80
175 185
 msgid "Enabled"
176 186
 msgstr "מאופשר"
177 187
 
178 188
 #: searx/templates/courgette/preferences.html:49
179 189
 #: searx/templates/default/preferences.html:50
180
-#: searx/templates/oscar/preferences.html:80
190
+#: searx/templates/oscar/preferences.html:81
181 191
 msgid "Disabled"
182 192
 msgstr "מנוטרל"
183 193
 
184 194
 #: searx/templates/courgette/preferences.html:54
185 195
 #: searx/templates/default/preferences.html:55
186
-#: searx/templates/oscar/preferences.html:84
196
+#: searx/templates/oscar/preferences.html:85
187 197
 #: searx/templates/pix-art/preferences.html:30
188 198
 msgid "Method"
189 199
 msgstr "שיטה"
190 200
 
191 201
 #: searx/templates/courgette/preferences.html:63
192 202
 #: 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
194 206
 msgid "SafeSearch"
195 207
 msgstr "חיפוש בטוח"
196 208
 
197 209
 #: searx/templates/courgette/preferences.html:66
198 210
 #: searx/templates/default/preferences.html:67
199
-#: searx/templates/oscar/preferences.html:97
211
+#: searx/templates/oscar/preferences.html:98
200 212
 msgid "Strict"
201 213
 msgstr "מחמיר"
202 214
 
203 215
 #: searx/templates/courgette/preferences.html:67
204 216
 #: searx/templates/default/preferences.html:68
205
-#: searx/templates/oscar/preferences.html:98
217
+#: searx/templates/oscar/preferences.html:99
206 218
 msgid "Moderate"
207 219
 msgstr "מתון"
208 220
 
209 221
 #: searx/templates/courgette/preferences.html:68
210 222
 #: searx/templates/default/preferences.html:69
211
-#: searx/templates/oscar/preferences.html:99
223
+#: searx/templates/oscar/preferences.html:100
212 224
 msgid "None"
213 225
 msgstr "בלי"
214 226
 
215 227
 #: searx/templates/courgette/preferences.html:73
216 228
 #: searx/templates/default/preferences.html:74
217
-#: searx/templates/oscar/preferences.html:103
229
+#: searx/templates/oscar/preferences.html:104
218 230
 #: searx/templates/pix-art/preferences.html:39
219 231
 msgid "Themes"
220 232
 msgstr "מוטיבים"
@@ -251,10 +263,12 @@ msgstr "אדום"
251 263
 #: searx/templates/default/preferences.html:84
252 264
 #: searx/templates/pix-art/preferences.html:49
253 265
 msgid "Currently used search engines"
254
-msgstr "מנועי חיפוש שבשימוש עתה"
266
+msgstr "מנועי חיפוש בשימוש עתה"
255 267
 
256 268
 #: searx/templates/courgette/preferences.html:100
257 269
 #: searx/templates/default/preferences.html:88
270
+#: searx/templates/oscar/preferences.html:142
271
+#: searx/templates/oscar/preferences.html:152
258 272
 #: searx/templates/pix-art/preferences.html:53
259 273
 msgid "Engine name"
260 274
 msgstr "שם מנוע"
@@ -269,6 +283,8 @@ msgstr "קטגוריה"
269 283
 #: searx/templates/default/preferences.html:90
270 284
 #: searx/templates/default/preferences.html:101
271 285
 #: searx/templates/oscar/macros.html:67
286
+#: searx/templates/oscar/preferences.html:141
287
+#: searx/templates/oscar/preferences.html:153
272 288
 #: searx/templates/pix-art/preferences.html:54
273 289
 #: searx/templates/pix-art/preferences.html:64
274 290
 msgid "Allow"
@@ -286,7 +302,7 @@ msgstr "חסום"
286 302
 
287 303
 #: searx/templates/courgette/preferences.html:122
288 304
 #: searx/templates/default/preferences.html:110
289
-#: searx/templates/oscar/preferences.html:180
305
+#: searx/templates/oscar/preferences.html:235
290 306
 #: searx/templates/pix-art/preferences.html:73
291 307
 msgid ""
292 308
 "These settings are stored in your cookies, this allows us not to store this "
@@ -295,7 +311,7 @@ msgstr "הגדרות אלו מאוחסנות בתוך העוגיות שלך, א
295 311
 
296 312
 #: searx/templates/courgette/preferences.html:124
297 313
 #: searx/templates/default/preferences.html:112
298
-#: searx/templates/oscar/preferences.html:182
314
+#: searx/templates/oscar/preferences.html:237
299 315
 #: searx/templates/pix-art/preferences.html:75
300 316
 msgid ""
301 317
 "These cookies serve your sole convenience, we don't use these cookies to "
@@ -304,20 +320,20 @@ msgstr "עוגיות אלו משרתות את נוחותך הבלעדית, אנ
304 320
 
305 321
 #: searx/templates/courgette/preferences.html:127
306 322
 #: searx/templates/default/preferences.html:115
307
-#: searx/templates/oscar/preferences.html:185
323
+#: searx/templates/oscar/preferences.html:240
308 324
 #: searx/templates/pix-art/preferences.html:78
309 325
 msgid "save"
310 326
 msgstr "שמור"
311 327
 
312 328
 #: searx/templates/courgette/preferences.html:128
313 329
 #: searx/templates/default/preferences.html:116
314
-#: searx/templates/oscar/preferences.html:187
330
+#: searx/templates/oscar/preferences.html:242
315 331
 msgid "Reset defaults"
316 332
 msgstr "אפס ברירות מחדל"
317 333
 
318 334
 #: searx/templates/courgette/preferences.html:129
319 335
 #: searx/templates/default/preferences.html:117
320
-#: searx/templates/oscar/preferences.html:186
336
+#: searx/templates/oscar/preferences.html:241
321 337
 #: searx/templates/pix-art/preferences.html:79
322 338
 msgid "back"
323 339
 msgstr "חזור"
@@ -412,7 +428,7 @@ msgstr "מוטמן"
412 428
 
413 429
 #: searx/templates/oscar/base.html:78
414 430
 msgid "Powered by"
415
-msgstr "ממונע באמצעות"
431
+msgstr "מופעל באמצעות"
416 432
 
417 433
 #: searx/templates/oscar/base.html:78
418 434
 msgid "a privacy-respecting, hackable metasearch engine"
@@ -427,51 +443,89 @@ msgid "Toggle navigation"
427 443
 msgstr "Toggle ניווט"
428 444
 
429 445
 #: searx/templates/oscar/preferences.html:17
430
-#: searx/templates/oscar/preferences.html:24
446
+#: searx/templates/oscar/preferences.html:25
431 447
 msgid "General"
432 448
 msgstr "כללי"
433 449
 
434 450
 #: searx/templates/oscar/preferences.html:18
435
-#: searx/templates/oscar/preferences.html:125
451
+#: searx/templates/oscar/preferences.html:126
436 452
 msgid "Engines"
437 453
 msgstr "מנועים"
438 454
 
439 455
 #: searx/templates/oscar/preferences.html:19
440
-#: searx/templates/oscar/preferences.html:159
456
+#: searx/templates/oscar/preferences.html:187
441 457
 msgid "Plugins"
442 458
 msgstr "תוספים"
443 459
 
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
445 466
 msgid "What language do you prefer for search?"
446 467
 msgstr "איזו שפה אתם מעדיפים לצורך חיפוש?"
447 468
 
448
-#: searx/templates/oscar/preferences.html:55
469
+#: searx/templates/oscar/preferences.html:56
449 470
 msgid "Change the language of the layout"
450 471
 msgstr "שינוי שפת הממשק"
451 472
 
452
-#: searx/templates/oscar/preferences.html:65
473
+#: searx/templates/oscar/preferences.html:66
453 474
 msgid "Find stuff as you type"
454 475
 msgstr "מציאת דברים בזמן הקלדה"
455 476
 
456
-#: searx/templates/oscar/preferences.html:76
477
+#: searx/templates/oscar/preferences.html:77
457 478
 msgid "Proxying image results through searx"
458 479
 msgstr "Proxying תוצאות תמונה מבעד searx"
459 480
 
460
-#: searx/templates/oscar/preferences.html:85
481
+#: searx/templates/oscar/preferences.html:86
461 482
 msgid ""
462 483
 "Change how forms are submited, <a "
463 484
 "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
464 485
 " rel=\"external\">learn more about request methods</a>"
465 486
 msgstr "שינוי האופן בו טפסים נשלחים, <a href=\"http://he.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">למדו עוד אודות שיטות בקשה (request methods)</a>"
466 487
 
467
-#: searx/templates/oscar/preferences.html:94
488
+#: searx/templates/oscar/preferences.html:95
468 489
 msgid "Filter content"
469 490
 msgstr "סנן תוכן"
470 491
 
471
-#: searx/templates/oscar/preferences.html:104
492
+#: searx/templates/oscar/preferences.html:105
472 493
 msgid "Change searx layout"
473 494
 msgstr "שינוי ממשק searx"
474 495
 
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
+
475 529
 #: searx/templates/oscar/results.html:7
476 530
 msgid "Search results"
477 531
 msgstr "תוצאות חיפוש"
@@ -521,6 +575,14 @@ msgstr "אזהרה!"
521 575
 msgid "Please enable JavaScript to use full functionality of this site."
522 576
 msgstr "אנא אפשרו JavaScript כדי לנצל תפקודיות מלאה של אתר זה."
523 577
 
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
+
524 586
 #: searx/templates/oscar/messages/no_data_available.html:4
525 587
 msgid "There is currently no data available. "
526 588
 msgstr "אין כעת מידע זמין. "

Binārs
searx/translations/hu/LC_MESSAGES/messages.mo Parādīt failu


+ 116
- 54
searx/translations/hu/LC_MESSAGES/messages.po Parādīt failu

@@ -9,10 +9,10 @@ msgid ""
9 9
 msgstr ""
10 10
 "Project-Id-Version: searx\n"
11 11
 "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"
14 14
 "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"
16 16
 "MIME-Version: 1.0\n"
17 17
 "Content-Type: text/plain; charset=UTF-8\n"
18 18
 "Content-Transfer-Encoding: 8bit\n"
@@ -20,67 +20,67 @@ msgstr ""
20 20
 "Language: hu\n"
21 21
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22 22
 
23
-#: searx/webapp.py:104
23
+#: searx/webapp.py:114
24 24
 msgid "files"
25 25
 msgstr "fájlok"
26 26
 
27
-#: searx/webapp.py:105
27
+#: searx/webapp.py:115
28 28
 msgid "general"
29 29
 msgstr "általános"
30 30
 
31
-#: searx/webapp.py:106
31
+#: searx/webapp.py:116
32 32
 msgid "music"
33 33
 msgstr "zene"
34 34
 
35
-#: searx/webapp.py:107
35
+#: searx/webapp.py:117
36 36
 msgid "social media"
37 37
 msgstr "közösségi média"
38 38
 
39
-#: searx/webapp.py:108
39
+#: searx/webapp.py:118
40 40
 msgid "images"
41 41
 msgstr "képek"
42 42
 
43
-#: searx/webapp.py:109
43
+#: searx/webapp.py:119
44 44
 msgid "videos"
45 45
 msgstr "videók"
46 46
 
47
-#: searx/webapp.py:110
47
+#: searx/webapp.py:120
48 48
 msgid "it"
49 49
 msgstr "it"
50 50
 
51
-#: searx/webapp.py:111
51
+#: searx/webapp.py:121
52 52
 msgid "news"
53 53
 msgstr "hírek"
54 54
 
55
-#: searx/webapp.py:112
55
+#: searx/webapp.py:122
56 56
 msgid "map"
57 57
 msgstr "térkép"
58 58
 
59
-#: searx/webapp.py:396
59
+#: searx/webapp.py:414
60 60
 msgid "{minutes} minute(s) ago"
61 61
 msgstr "{minutes} perce"
62 62
 
63
-#: searx/webapp.py:398
63
+#: searx/webapp.py:416
64 64
 msgid "{hours} hour(s), {minutes} minute(s) ago"
65 65
 msgstr "{hours} óra, {minutes} perce"
66 66
 
67
-#: searx/engines/__init__.py:182
67
+#: searx/engines/__init__.py:185
68 68
 msgid "Page loads (sec)"
69 69
 msgstr "Válaszidők (sec)"
70 70
 
71
-#: searx/engines/__init__.py:186
71
+#: searx/engines/__init__.py:189
72 72
 msgid "Number of results"
73 73
 msgstr "Találatok száma"
74 74
 
75
-#: searx/engines/__init__.py:190
75
+#: searx/engines/__init__.py:193
76 76
 msgid "Scores"
77 77
 msgstr "Pontszámok"
78 78
 
79
-#: searx/engines/__init__.py:194
79
+#: searx/engines/__init__.py:197
80 80
 msgid "Scores per result"
81 81
 msgstr "Pontszámok találatonként"
82 82
 
83
-#: searx/engines/__init__.py:198
83
+#: searx/engines/__init__.py:201
84 84
 msgid "Errors"
85 85
 msgstr "Hibák"
86 86
 
@@ -95,12 +95,22 @@ msgstr "Azonnal keresés kategória választással"
95 95
 #: searx/plugins/search_on_category_select.py:19
96 96
 msgid ""
97 97
 "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)"
100 100
 
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"
104 114
 
105 115
 #: searx/templates/courgette/index.html:9
106 116
 #: searx/templates/courgette/index.html:13
@@ -128,90 +138,92 @@ msgstr "Beállítások"
128 138
 
129 139
 #: searx/templates/courgette/preferences.html:9
130 140
 #: 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
133 143
 msgid "Default categories"
134 144
 msgstr "Alapértelmezett kategóriák"
135 145
 
136 146
 #: searx/templates/courgette/preferences.html:13
137 147
 #: searx/templates/default/preferences.html:14
138
-#: searx/templates/oscar/preferences.html:43
148
+#: searx/templates/oscar/preferences.html:44
139 149
 #: searx/templates/pix-art/preferences.html:9
140 150
 msgid "Search language"
141 151
 msgstr "Keresés nyelve"
142 152
 
143 153
 #: searx/templates/courgette/preferences.html:16
144 154
 #: searx/templates/default/preferences.html:17
145
-#: searx/templates/oscar/preferences.html:47
155
+#: searx/templates/oscar/preferences.html:48
146 156
 #: searx/templates/pix-art/preferences.html:12
147 157
 msgid "Automatic"
148 158
 msgstr "Automatikus"
149 159
 
150 160
 #: searx/templates/courgette/preferences.html:24
151 161
 #: searx/templates/default/preferences.html:25
152
-#: searx/templates/oscar/preferences.html:54
162
+#: searx/templates/oscar/preferences.html:55
153 163
 #: searx/templates/pix-art/preferences.html:20
154 164
 msgid "Interface language"
155 165
 msgstr "Felület nyelve"
156 166
 
157 167
 #: searx/templates/courgette/preferences.html:34
158 168
 #: searx/templates/default/preferences.html:35
159
-#: searx/templates/oscar/preferences.html:64
169
+#: searx/templates/oscar/preferences.html:65
160 170
 msgid "Autocomplete"
161 171
 msgstr "Automatikus kiegészítés"
162 172
 
163 173
 #: searx/templates/courgette/preferences.html:45
164 174
 #: searx/templates/default/preferences.html:46
165
-#: searx/templates/oscar/preferences.html:75
175
+#: searx/templates/oscar/preferences.html:76
166 176
 msgid "Image proxy"
167 177
 msgstr "Kép proxy"
168 178
 
169 179
 #: searx/templates/courgette/preferences.html:48
170 180
 #: searx/templates/default/preferences.html:49
171
-#: searx/templates/oscar/preferences.html:79
181
+#: searx/templates/oscar/preferences.html:80
172 182
 msgid "Enabled"
173 183
 msgstr "Engedélyez"
174 184
 
175 185
 #: searx/templates/courgette/preferences.html:49
176 186
 #: searx/templates/default/preferences.html:50
177
-#: searx/templates/oscar/preferences.html:80
187
+#: searx/templates/oscar/preferences.html:81
178 188
 msgid "Disabled"
179 189
 msgstr "Inaktivál"
180 190
 
181 191
 #: searx/templates/courgette/preferences.html:54
182 192
 #: searx/templates/default/preferences.html:55
183
-#: searx/templates/oscar/preferences.html:84
193
+#: searx/templates/oscar/preferences.html:85
184 194
 #: searx/templates/pix-art/preferences.html:30
185 195
 msgid "Method"
186 196
 msgstr "Method"
187 197
 
188 198
 #: searx/templates/courgette/preferences.html:63
189 199
 #: 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
191 203
 msgid "SafeSearch"
192 204
 msgstr "Felnőtt tartalom szűrés"
193 205
 
194 206
 #: searx/templates/courgette/preferences.html:66
195 207
 #: searx/templates/default/preferences.html:67
196
-#: searx/templates/oscar/preferences.html:97
208
+#: searx/templates/oscar/preferences.html:98
197 209
 msgid "Strict"
198 210
 msgstr "Erős"
199 211
 
200 212
 #: searx/templates/courgette/preferences.html:67
201 213
 #: searx/templates/default/preferences.html:68
202
-#: searx/templates/oscar/preferences.html:98
214
+#: searx/templates/oscar/preferences.html:99
203 215
 msgid "Moderate"
204 216
 msgstr "Enyhe"
205 217
 
206 218
 #: searx/templates/courgette/preferences.html:68
207 219
 #: searx/templates/default/preferences.html:69
208
-#: searx/templates/oscar/preferences.html:99
220
+#: searx/templates/oscar/preferences.html:100
209 221
 msgid "None"
210 222
 msgstr "Nincs"
211 223
 
212 224
 #: searx/templates/courgette/preferences.html:73
213 225
 #: searx/templates/default/preferences.html:74
214
-#: searx/templates/oscar/preferences.html:103
226
+#: searx/templates/oscar/preferences.html:104
215 227
 #: searx/templates/pix-art/preferences.html:39
216 228
 msgid "Themes"
217 229
 msgstr "Megjelenés"
@@ -252,6 +264,8 @@ msgstr "Jelenleg használt keresők"
252 264
 
253 265
 #: searx/templates/courgette/preferences.html:100
254 266
 #: searx/templates/default/preferences.html:88
267
+#: searx/templates/oscar/preferences.html:142
268
+#: searx/templates/oscar/preferences.html:152
255 269
 #: searx/templates/pix-art/preferences.html:53
256 270
 msgid "Engine name"
257 271
 msgstr "Kereső neve"
@@ -266,6 +280,8 @@ msgstr "Kategória"
266 280
 #: searx/templates/default/preferences.html:90
267 281
 #: searx/templates/default/preferences.html:101
268 282
 #: searx/templates/oscar/macros.html:67
283
+#: searx/templates/oscar/preferences.html:141
284
+#: searx/templates/oscar/preferences.html:153
269 285
 #: searx/templates/pix-art/preferences.html:54
270 286
 #: searx/templates/pix-art/preferences.html:64
271 287
 msgid "Allow"
@@ -283,7 +299,7 @@ msgstr "Tiltás"
283 299
 
284 300
 #: searx/templates/courgette/preferences.html:122
285 301
 #: searx/templates/default/preferences.html:110
286
-#: searx/templates/oscar/preferences.html:180
302
+#: searx/templates/oscar/preferences.html:235
287 303
 #: searx/templates/pix-art/preferences.html:73
288 304
 msgid ""
289 305
 "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."
292 308
 
293 309
 #: searx/templates/courgette/preferences.html:124
294 310
 #: searx/templates/default/preferences.html:112
295
-#: searx/templates/oscar/preferences.html:182
311
+#: searx/templates/oscar/preferences.html:237
296 312
 #: searx/templates/pix-art/preferences.html:75
297 313
 msgid ""
298 314
 "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
301 317
 
302 318
 #: searx/templates/courgette/preferences.html:127
303 319
 #: searx/templates/default/preferences.html:115
304
-#: searx/templates/oscar/preferences.html:185
320
+#: searx/templates/oscar/preferences.html:240
305 321
 #: searx/templates/pix-art/preferences.html:78
306 322
 msgid "save"
307 323
 msgstr "mentés"
308 324
 
309 325
 #: searx/templates/courgette/preferences.html:128
310 326
 #: searx/templates/default/preferences.html:116
311
-#: searx/templates/oscar/preferences.html:187
327
+#: searx/templates/oscar/preferences.html:242
312 328
 msgid "Reset defaults"
313 329
 msgstr "Alapbeállítások visszaállítása"
314 330
 
315 331
 #: searx/templates/courgette/preferences.html:129
316 332
 #: searx/templates/default/preferences.html:117
317
-#: searx/templates/oscar/preferences.html:186
333
+#: searx/templates/oscar/preferences.html:241
318 334
 #: searx/templates/pix-art/preferences.html:79
319 335
 msgid "back"
320 336
 msgstr "vissza"
@@ -424,51 +440,89 @@ msgid "Toggle navigation"
424 440
 msgstr "Navigáció megjelenítés"
425 441
 
426 442
 #: searx/templates/oscar/preferences.html:17
427
-#: searx/templates/oscar/preferences.html:24
443
+#: searx/templates/oscar/preferences.html:25
428 444
 msgid "General"
429 445
 msgstr "Általános"
430 446
 
431 447
 #: searx/templates/oscar/preferences.html:18
432
-#: searx/templates/oscar/preferences.html:125
448
+#: searx/templates/oscar/preferences.html:126
433 449
 msgid "Engines"
434 450
 msgstr "Kereső motorok"
435 451
 
436 452
 #: searx/templates/oscar/preferences.html:19
437
-#: searx/templates/oscar/preferences.html:159
453
+#: searx/templates/oscar/preferences.html:187
438 454
 msgid "Plugins"
439 455
 msgstr "Pluginek"
440 456
 
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
442 463
 msgid "What language do you prefer for search?"
443 464
 msgstr "Preferált keresési nyelv"
444 465
 
445
-#: searx/templates/oscar/preferences.html:55
466
+#: searx/templates/oscar/preferences.html:56
446 467
 msgid "Change the language of the layout"
447 468
 msgstr "Felület nyelve"
448 469
 
449
-#: searx/templates/oscar/preferences.html:65
470
+#: searx/templates/oscar/preferences.html:66
450 471
 msgid "Find stuff as you type"
451 472
 msgstr "Autómatikus kereső kifejezés kiegészítés"
452 473
 
453
-#: searx/templates/oscar/preferences.html:76
474
+#: searx/templates/oscar/preferences.html:77
454 475
 msgid "Proxying image results through searx"
455 476
 msgstr "Kép találatok betöltése searx-ön keresztül"
456 477
 
457
-#: searx/templates/oscar/preferences.html:85
478
+#: searx/templates/oscar/preferences.html:86
458 479
 msgid ""
459 480
 "Change how forms are submited, <a "
460 481
 "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
461 482
 " rel=\"external\">learn more about request methods</a>"
462 483
 msgstr "Keresés metódusa (<a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">bővebben</a>)"
463 484
 
464
-#: searx/templates/oscar/preferences.html:94
485
+#: searx/templates/oscar/preferences.html:95
465 486
 msgid "Filter content"
466 487
 msgstr "Tartalom szűrés"
467 488
 
468
-#: searx/templates/oscar/preferences.html:104
489
+#: searx/templates/oscar/preferences.html:105
469 490
 msgid "Change searx layout"
470 491
 msgstr "Megjelenés"
471 492
 
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
+
472 526
 #: searx/templates/oscar/results.html:7
473 527
 msgid "Search results"
474 528
 msgstr "Keresési eredmények"
@@ -518,6 +572,14 @@ msgstr "Figyelem!"
518 572
 msgid "Please enable JavaScript to use full functionality of this site."
519 573
 msgstr "Engedélyezze a javascript-et a teljes funkcionalitás használathoz"
520 574
 
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
+
521 583
 #: searx/templates/oscar/messages/no_data_available.html:4
522 584
 msgid "There is currently no data available. "
523 585
 msgstr "Nincs megjeleníthető adat."

Binārs
searx/translations/it/LC_MESSAGES/messages.mo Parādīt failu


+ 115
- 53
searx/translations/it/LC_MESSAGES/messages.po Parādīt failu

@@ -9,10 +9,10 @@ msgid ""
9 9
 msgstr ""
10 10
 "Project-Id-Version: searx\n"
11 11
 "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"
16 16
 "MIME-Version: 1.0\n"
17 17
 "Content-Type: text/plain; charset=UTF-8\n"
18 18
 "Content-Transfer-Encoding: 8bit\n"
@@ -20,67 +20,67 @@ msgstr ""
20 20
 "Language: it\n"
21 21
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22 22
 
23
-#: searx/webapp.py:104
23
+#: searx/webapp.py:114
24 24
 msgid "files"
25 25
 msgstr "documenti"
26 26
 
27
-#: searx/webapp.py:105
27
+#: searx/webapp.py:115
28 28
 msgid "general"
29 29
 msgstr "generale"
30 30
 
31
-#: searx/webapp.py:106
31
+#: searx/webapp.py:116
32 32
 msgid "music"
33 33
 msgstr "musica"
34 34
 
35
-#: searx/webapp.py:107
35
+#: searx/webapp.py:117
36 36
 msgid "social media"
37 37
 msgstr "social media"
38 38
 
39
-#: searx/webapp.py:108
39
+#: searx/webapp.py:118
40 40
 msgid "images"
41 41
 msgstr "immagini"
42 42
 
43
-#: searx/webapp.py:109
43
+#: searx/webapp.py:119
44 44
 msgid "videos"
45 45
 msgstr "video"
46 46
 
47
-#: searx/webapp.py:110
47
+#: searx/webapp.py:120
48 48
 msgid "it"
49 49
 msgstr "it"
50 50
 
51
-#: searx/webapp.py:111
51
+#: searx/webapp.py:121
52 52
 msgid "news"
53 53
 msgstr "notizie"
54 54
 
55
-#: searx/webapp.py:112
55
+#: searx/webapp.py:122
56 56
 msgid "map"
57 57
 msgstr "mappe"
58 58
 
59
-#: searx/webapp.py:396
59
+#: searx/webapp.py:414
60 60
 msgid "{minutes} minute(s) ago"
61 61
 msgstr "di {minutes} minuti fa"
62 62
 
63
-#: searx/webapp.py:398
63
+#: searx/webapp.py:416
64 64
 msgid "{hours} hour(s), {minutes} minute(s) ago"
65 65
 msgstr "di {ore} h e {minutes} minuti fa"
66 66
 
67
-#: searx/engines/__init__.py:182
67
+#: searx/engines/__init__.py:185
68 68
 msgid "Page loads (sec)"
69 69
 msgstr " Caricamento della pagina (secondi)"
70 70
 
71
-#: searx/engines/__init__.py:186
71
+#: searx/engines/__init__.py:189
72 72
 msgid "Number of results"
73 73
 msgstr "Risultati ottenuti"
74 74
 
75
-#: searx/engines/__init__.py:190
75
+#: searx/engines/__init__.py:193
76 76
 msgid "Scores"
77 77
 msgstr "Punteggio"
78 78
 
79
-#: searx/engines/__init__.py:194
79
+#: searx/engines/__init__.py:197
80 80
 msgid "Scores per result"
81 81
 msgstr "Punteggio per risultato"
82 82
 
83
-#: searx/engines/__init__.py:198
83
+#: searx/engines/__init__.py:201
84 84
 msgid "Errors"
85 85
 msgstr "Errori"
86 86
 
@@ -95,11 +95,21 @@ msgstr ""
95 95
 #: searx/plugins/search_on_category_select.py:19
96 96
 msgid ""
97 97
 "Perform search immediately if a category selected. Disable to select "
98
-"multiple categories."
98
+"multiple categories. (JavaScript required)"
99 99
 msgstr ""
100 100
 
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"
103 113
 msgstr ""
104 114
 
105 115
 #: searx/templates/courgette/index.html:9
@@ -128,90 +138,92 @@ msgstr "Preferenze"
128 138
 
129 139
 #: searx/templates/courgette/preferences.html:9
130 140
 #: 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
133 143
 msgid "Default categories"
134 144
 msgstr "Categorie predefinite"
135 145
 
136 146
 #: searx/templates/courgette/preferences.html:13
137 147
 #: searx/templates/default/preferences.html:14
138
-#: searx/templates/oscar/preferences.html:43
148
+#: searx/templates/oscar/preferences.html:44
139 149
 #: searx/templates/pix-art/preferences.html:9
140 150
 msgid "Search language"
141 151
 msgstr "Lingua di ricerca"
142 152
 
143 153
 #: searx/templates/courgette/preferences.html:16
144 154
 #: searx/templates/default/preferences.html:17
145
-#: searx/templates/oscar/preferences.html:47
155
+#: searx/templates/oscar/preferences.html:48
146 156
 #: searx/templates/pix-art/preferences.html:12
147 157
 msgid "Automatic"
148 158
 msgstr "Automatico"
149 159
 
150 160
 #: searx/templates/courgette/preferences.html:24
151 161
 #: searx/templates/default/preferences.html:25
152
-#: searx/templates/oscar/preferences.html:54
162
+#: searx/templates/oscar/preferences.html:55
153 163
 #: searx/templates/pix-art/preferences.html:20
154 164
 msgid "Interface language"
155 165
 msgstr "Linguaggio dell'interfaccia"
156 166
 
157 167
 #: searx/templates/courgette/preferences.html:34
158 168
 #: searx/templates/default/preferences.html:35
159
-#: searx/templates/oscar/preferences.html:64
169
+#: searx/templates/oscar/preferences.html:65
160 170
 msgid "Autocomplete"
161 171
 msgstr "Completamento automatico"
162 172
 
163 173
 #: searx/templates/courgette/preferences.html:45
164 174
 #: searx/templates/default/preferences.html:46
165
-#: searx/templates/oscar/preferences.html:75
175
+#: searx/templates/oscar/preferences.html:76
166 176
 msgid "Image proxy"
167 177
 msgstr ""
168 178
 
169 179
 #: searx/templates/courgette/preferences.html:48
170 180
 #: searx/templates/default/preferences.html:49
171
-#: searx/templates/oscar/preferences.html:79
181
+#: searx/templates/oscar/preferences.html:80
172 182
 msgid "Enabled"
173 183
 msgstr ""
174 184
 
175 185
 #: searx/templates/courgette/preferences.html:49
176 186
 #: searx/templates/default/preferences.html:50
177
-#: searx/templates/oscar/preferences.html:80
187
+#: searx/templates/oscar/preferences.html:81
178 188
 msgid "Disabled"
179 189
 msgstr ""
180 190
 
181 191
 #: searx/templates/courgette/preferences.html:54
182 192
 #: searx/templates/default/preferences.html:55
183
-#: searx/templates/oscar/preferences.html:84
193
+#: searx/templates/oscar/preferences.html:85
184 194
 #: searx/templates/pix-art/preferences.html:30
185 195
 msgid "Method"
186 196
 msgstr "Metodo"
187 197
 
188 198
 #: searx/templates/courgette/preferences.html:63
189 199
 #: 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
191 203
 msgid "SafeSearch"
192 204
 msgstr ""
193 205
 
194 206
 #: searx/templates/courgette/preferences.html:66
195 207
 #: searx/templates/default/preferences.html:67
196
-#: searx/templates/oscar/preferences.html:97
208
+#: searx/templates/oscar/preferences.html:98
197 209
 msgid "Strict"
198 210
 msgstr ""
199 211
 
200 212
 #: searx/templates/courgette/preferences.html:67
201 213
 #: searx/templates/default/preferences.html:68
202
-#: searx/templates/oscar/preferences.html:98
214
+#: searx/templates/oscar/preferences.html:99
203 215
 msgid "Moderate"
204 216
 msgstr ""
205 217
 
206 218
 #: searx/templates/courgette/preferences.html:68
207 219
 #: searx/templates/default/preferences.html:69
208
-#: searx/templates/oscar/preferences.html:99
220
+#: searx/templates/oscar/preferences.html:100
209 221
 msgid "None"
210 222
 msgstr ""
211 223
 
212 224
 #: searx/templates/courgette/preferences.html:73
213 225
 #: searx/templates/default/preferences.html:74
214
-#: searx/templates/oscar/preferences.html:103
226
+#: searx/templates/oscar/preferences.html:104
215 227
 #: searx/templates/pix-art/preferences.html:39
216 228
 msgid "Themes"
217 229
 msgstr "Grafica"
@@ -252,6 +264,8 @@ msgstr "Motori di ricerca attualmente in uso"
252 264
 
253 265
 #: searx/templates/courgette/preferences.html:100
254 266
 #: searx/templates/default/preferences.html:88
267
+#: searx/templates/oscar/preferences.html:142
268
+#: searx/templates/oscar/preferences.html:152
255 269
 #: searx/templates/pix-art/preferences.html:53
256 270
 msgid "Engine name"
257 271
 msgstr "Nome del motore"
@@ -266,6 +280,8 @@ msgstr "Categoria"
266 280
 #: searx/templates/default/preferences.html:90
267 281
 #: searx/templates/default/preferences.html:101
268 282
 #: searx/templates/oscar/macros.html:67
283
+#: searx/templates/oscar/preferences.html:141
284
+#: searx/templates/oscar/preferences.html:153
269 285
 #: searx/templates/pix-art/preferences.html:54
270 286
 #: searx/templates/pix-art/preferences.html:64
271 287
 msgid "Allow"
@@ -283,7 +299,7 @@ msgstr "Blocca"
283 299
 
284 300
 #: searx/templates/courgette/preferences.html:122
285 301
 #: searx/templates/default/preferences.html:110
286
-#: searx/templates/oscar/preferences.html:180
302
+#: searx/templates/oscar/preferences.html:235
287 303
 #: searx/templates/pix-art/preferences.html:73
288 304
 msgid ""
289 305
 "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
292 308
 
293 309
 #: searx/templates/courgette/preferences.html:124
294 310
 #: searx/templates/default/preferences.html:112
295
-#: searx/templates/oscar/preferences.html:182
311
+#: searx/templates/oscar/preferences.html:237
296 312
 #: searx/templates/pix-art/preferences.html:75
297 313
 msgid ""
298 314
 "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
301 317
 
302 318
 #: searx/templates/courgette/preferences.html:127
303 319
 #: searx/templates/default/preferences.html:115
304
-#: searx/templates/oscar/preferences.html:185
320
+#: searx/templates/oscar/preferences.html:240
305 321
 #: searx/templates/pix-art/preferences.html:78
306 322
 msgid "save"
307 323
 msgstr "salva"
308 324
 
309 325
 #: searx/templates/courgette/preferences.html:128
310 326
 #: searx/templates/default/preferences.html:116
311
-#: searx/templates/oscar/preferences.html:187
327
+#: searx/templates/oscar/preferences.html:242
312 328
 msgid "Reset defaults"
313 329
 msgstr ""
314 330
 
315 331
 #: searx/templates/courgette/preferences.html:129
316 332
 #: searx/templates/default/preferences.html:117
317
-#: searx/templates/oscar/preferences.html:186
333
+#: searx/templates/oscar/preferences.html:241
318 334
 #: searx/templates/pix-art/preferences.html:79
319 335
 msgid "back"
320 336
 msgstr "indietro"
@@ -424,51 +440,89 @@ msgid "Toggle navigation"
424 440
 msgstr ""
425 441
 
426 442
 #: searx/templates/oscar/preferences.html:17
427
-#: searx/templates/oscar/preferences.html:24
443
+#: searx/templates/oscar/preferences.html:25
428 444
 msgid "General"
429 445
 msgstr ""
430 446
 
431 447
 #: searx/templates/oscar/preferences.html:18
432
-#: searx/templates/oscar/preferences.html:125
448
+#: searx/templates/oscar/preferences.html:126
433 449
 msgid "Engines"
434 450
 msgstr ""
435 451
 
436 452
 #: searx/templates/oscar/preferences.html:19
437
-#: searx/templates/oscar/preferences.html:159
453
+#: searx/templates/oscar/preferences.html:187
438 454
 msgid "Plugins"
439 455
 msgstr ""
440 456
 
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
442 463
 msgid "What language do you prefer for search?"
443 464
 msgstr ""
444 465
 
445
-#: searx/templates/oscar/preferences.html:55
466
+#: searx/templates/oscar/preferences.html:56
446 467
 msgid "Change the language of the layout"
447 468
 msgstr ""
448 469
 
449
-#: searx/templates/oscar/preferences.html:65
470
+#: searx/templates/oscar/preferences.html:66
450 471
 msgid "Find stuff as you type"
451 472
 msgstr ""
452 473
 
453
-#: searx/templates/oscar/preferences.html:76
474
+#: searx/templates/oscar/preferences.html:77
454 475
 msgid "Proxying image results through searx"
455 476
 msgstr ""
456 477
 
457
-#: searx/templates/oscar/preferences.html:85
478
+#: searx/templates/oscar/preferences.html:86
458 479
 msgid ""
459 480
 "Change how forms are submited, <a "
460 481
 "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
461 482
 " rel=\"external\">learn more about request methods</a>"
462 483
 msgstr ""
463 484
 
464
-#: searx/templates/oscar/preferences.html:94
485
+#: searx/templates/oscar/preferences.html:95
465 486
 msgid "Filter content"
466 487
 msgstr ""
467 488
 
468
-#: searx/templates/oscar/preferences.html:104
489
+#: searx/templates/oscar/preferences.html:105
469 490
 msgid "Change searx layout"
470 491
 msgstr ""
471 492
 
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
+
472 526
 #: searx/templates/oscar/results.html:7
473 527
 msgid "Search results"
474 528
 msgstr ""
@@ -518,6 +572,14 @@ msgstr ""
518 572
 msgid "Please enable JavaScript to use full functionality of this site."
519 573
 msgstr ""
520 574
 
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
+
521 583
 #: searx/templates/oscar/messages/no_data_available.html:4
522 584
 msgid "There is currently no data available. "
523 585
 msgstr ""

Binārs
searx/translations/ja/LC_MESSAGES/messages.mo Parādīt failu


+ 124
- 62
searx/translations/ja/LC_MESSAGES/messages.po Parādīt failu

@@ -12,10 +12,10 @@ msgid ""
12 12
 msgstr ""
13 13
 "Project-Id-Version: searx\n"
14 14
 "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"
19 19
 "MIME-Version: 1.0\n"
20 20
 "Content-Type: text/plain; charset=UTF-8\n"
21 21
 "Content-Transfer-Encoding: 8bit\n"
@@ -23,67 +23,67 @@ msgstr ""
23 23
 "Language: ja\n"
24 24
 "Plural-Forms: nplurals=1; plural=0;\n"
25 25
 
26
-#: searx/webapp.py:104
26
+#: searx/webapp.py:114
27 27
 msgid "files"
28 28
 msgstr "ファイル"
29 29
 
30
-#: searx/webapp.py:105
30
+#: searx/webapp.py:115
31 31
 msgid "general"
32 32
 msgstr "一般的な"
33 33
 
34
-#: searx/webapp.py:106
34
+#: searx/webapp.py:116
35 35
 msgid "music"
36 36
 msgstr "音楽"
37 37
 
38
-#: searx/webapp.py:107
38
+#: searx/webapp.py:117
39 39
 msgid "social media"
40 40
 msgstr "社会的ネットワーク"
41 41
 
42
-#: searx/webapp.py:108
42
+#: searx/webapp.py:118
43 43
 msgid "images"
44 44
 msgstr "画像"
45 45
 
46
-#: searx/webapp.py:109
46
+#: searx/webapp.py:119
47 47
 msgid "videos"
48 48
 msgstr "動画"
49 49
 
50
-#: searx/webapp.py:110
50
+#: searx/webapp.py:120
51 51
 msgid "it"
52 52
 msgstr "情報技術"
53 53
 
54
-#: searx/webapp.py:111
54
+#: searx/webapp.py:121
55 55
 msgid "news"
56 56
 msgstr "お知らせ"
57 57
 
58
-#: searx/webapp.py:112
58
+#: searx/webapp.py:122
59 59
 msgid "map"
60 60
 msgstr "地図"
61 61
 
62
-#: searx/webapp.py:396
62
+#: searx/webapp.py:414
63 63
 msgid "{minutes} minute(s) ago"
64 64
 msgstr "{minutes}分前"
65 65
 
66
-#: searx/webapp.py:398
66
+#: searx/webapp.py:416
67 67
 msgid "{hours} hour(s), {minutes} minute(s) ago"
68 68
 msgstr "{hours}時間と{minutes}分前"
69 69
 
70
-#: searx/engines/__init__.py:182
70
+#: searx/engines/__init__.py:185
71 71
 msgid "Page loads (sec)"
72 72
 msgstr ""
73 73
 
74
-#: searx/engines/__init__.py:186
74
+#: searx/engines/__init__.py:189
75 75
 msgid "Number of results"
76 76
 msgstr "通知の数"
77 77
 
78
-#: searx/engines/__init__.py:190
78
+#: searx/engines/__init__.py:193
79 79
 msgid "Scores"
80 80
 msgstr ""
81 81
 
82
-#: searx/engines/__init__.py:194
82
+#: searx/engines/__init__.py:197
83 83
 msgid "Scores per result"
84 84
 msgstr ""
85 85
 
86
-#: searx/engines/__init__.py:198
86
+#: searx/engines/__init__.py:201
87 87
 msgid "Errors"
88 88
 msgstr "エラー"
89 89
 
@@ -98,11 +98,21 @@ msgstr ""
98 98
 #: searx/plugins/search_on_category_select.py:19
99 99
 msgid ""
100 100
 "Perform search immediately if a category selected. Disable to select "
101
-"multiple categories."
101
+"multiple categories. (JavaScript required)"
102 102
 msgstr ""
103 103
 
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"
106 116
 msgstr ""
107 117
 
108 118
 #: searx/templates/courgette/index.html:9
@@ -131,93 +141,95 @@ msgstr "設定"
131 141
 
132 142
 #: searx/templates/courgette/preferences.html:9
133 143
 #: 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
136 146
 msgid "Default categories"
137 147
 msgstr ""
138 148
 
139 149
 #: searx/templates/courgette/preferences.html:13
140 150
 #: searx/templates/default/preferences.html:14
141
-#: searx/templates/oscar/preferences.html:43
151
+#: searx/templates/oscar/preferences.html:44
142 152
 #: searx/templates/pix-art/preferences.html:9
143 153
 msgid "Search language"
144 154
 msgstr "検索の言語"
145 155
 
146 156
 #: searx/templates/courgette/preferences.html:16
147 157
 #: searx/templates/default/preferences.html:17
148
-#: searx/templates/oscar/preferences.html:47
158
+#: searx/templates/oscar/preferences.html:48
149 159
 #: searx/templates/pix-art/preferences.html:12
150 160
 msgid "Automatic"
151 161
 msgstr ""
152 162
 
153 163
 #: searx/templates/courgette/preferences.html:24
154 164
 #: searx/templates/default/preferences.html:25
155
-#: searx/templates/oscar/preferences.html:54
165
+#: searx/templates/oscar/preferences.html:55
156 166
 #: searx/templates/pix-art/preferences.html:20
157 167
 msgid "Interface language"
158 168
 msgstr "界面の言語"
159 169
 
160 170
 #: searx/templates/courgette/preferences.html:34
161 171
 #: searx/templates/default/preferences.html:35
162
-#: searx/templates/oscar/preferences.html:64
172
+#: searx/templates/oscar/preferences.html:65
163 173
 msgid "Autocomplete"
164 174
 msgstr ""
165 175
 
166 176
 #: searx/templates/courgette/preferences.html:45
167 177
 #: searx/templates/default/preferences.html:46
168
-#: searx/templates/oscar/preferences.html:75
178
+#: searx/templates/oscar/preferences.html:76
169 179
 msgid "Image proxy"
170 180
 msgstr ""
171 181
 
172 182
 #: searx/templates/courgette/preferences.html:48
173 183
 #: searx/templates/default/preferences.html:49
174
-#: searx/templates/oscar/preferences.html:79
184
+#: searx/templates/oscar/preferences.html:80
175 185
 msgid "Enabled"
176
-msgstr ""
186
+msgstr "活性化する"
177 187
 
178 188
 #: searx/templates/courgette/preferences.html:49
179 189
 #: searx/templates/default/preferences.html:50
180
-#: searx/templates/oscar/preferences.html:80
190
+#: searx/templates/oscar/preferences.html:81
181 191
 msgid "Disabled"
182
-msgstr ""
192
+msgstr "使用不可能にする"
183 193
 
184 194
 #: searx/templates/courgette/preferences.html:54
185 195
 #: searx/templates/default/preferences.html:55
186
-#: searx/templates/oscar/preferences.html:84
196
+#: searx/templates/oscar/preferences.html:85
187 197
 #: searx/templates/pix-art/preferences.html:30
188 198
 msgid "Method"
189 199
 msgstr ""
190 200
 
191 201
 #: searx/templates/courgette/preferences.html:63
192 202
 #: 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
194 206
 msgid "SafeSearch"
195 207
 msgstr "安全な検索"
196 208
 
197 209
 #: searx/templates/courgette/preferences.html:66
198 210
 #: searx/templates/default/preferences.html:67
199
-#: searx/templates/oscar/preferences.html:97
211
+#: searx/templates/oscar/preferences.html:98
200 212
 msgid "Strict"
201 213
 msgstr "たくさん。"
202 214
 
203 215
 #: searx/templates/courgette/preferences.html:67
204 216
 #: searx/templates/default/preferences.html:68
205
-#: searx/templates/oscar/preferences.html:98
217
+#: searx/templates/oscar/preferences.html:99
206 218
 msgid "Moderate"
207 219
 msgstr "少し"
208 220
 
209 221
 #: searx/templates/courgette/preferences.html:68
210 222
 #: searx/templates/default/preferences.html:69
211
-#: searx/templates/oscar/preferences.html:99
223
+#: searx/templates/oscar/preferences.html:100
212 224
 msgid "None"
213 225
 msgstr "なし"
214 226
 
215 227
 #: searx/templates/courgette/preferences.html:73
216 228
 #: searx/templates/default/preferences.html:74
217
-#: searx/templates/oscar/preferences.html:103
229
+#: searx/templates/oscar/preferences.html:104
218 230
 #: searx/templates/pix-art/preferences.html:39
219 231
 msgid "Themes"
220
-msgstr ""
232
+msgstr "図様"
221 233
 
222 234
 #: searx/templates/courgette/preferences.html:83
223 235
 msgid "Color"
@@ -255,6 +267,8 @@ msgstr ""
255 267
 
256 268
 #: searx/templates/courgette/preferences.html:100
257 269
 #: searx/templates/default/preferences.html:88
270
+#: searx/templates/oscar/preferences.html:142
271
+#: searx/templates/oscar/preferences.html:152
258 272
 #: searx/templates/pix-art/preferences.html:53
259 273
 msgid "Engine name"
260 274
 msgstr ""
@@ -269,6 +283,8 @@ msgstr "カテゴリー"
269 283
 #: searx/templates/default/preferences.html:90
270 284
 #: searx/templates/default/preferences.html:101
271 285
 #: searx/templates/oscar/macros.html:67
286
+#: searx/templates/oscar/preferences.html:141
287
+#: searx/templates/oscar/preferences.html:153
272 288
 #: searx/templates/pix-art/preferences.html:54
273 289
 #: searx/templates/pix-art/preferences.html:64
274 290
 msgid "Allow"
@@ -282,11 +298,11 @@ msgstr "許可する"
282 298
 #: searx/templates/pix-art/preferences.html:54
283 299
 #: searx/templates/pix-art/preferences.html:65
284 300
 msgid "Block"
285
-msgstr ""
301
+msgstr "封鎖する"
286 302
 
287 303
 #: searx/templates/courgette/preferences.html:122
288 304
 #: searx/templates/default/preferences.html:110
289
-#: searx/templates/oscar/preferences.html:180
305
+#: searx/templates/oscar/preferences.html:235
290 306
 #: searx/templates/pix-art/preferences.html:73
291 307
 msgid ""
292 308
 "These settings are stored in your cookies, this allows us not to store this "
@@ -295,7 +311,7 @@ msgstr ""
295 311
 
296 312
 #: searx/templates/courgette/preferences.html:124
297 313
 #: searx/templates/default/preferences.html:112
298
-#: searx/templates/oscar/preferences.html:182
314
+#: searx/templates/oscar/preferences.html:237
299 315
 #: searx/templates/pix-art/preferences.html:75
300 316
 msgid ""
301 317
 "These cookies serve your sole convenience, we don't use these cookies to "
@@ -304,20 +320,20 @@ msgstr ""
304 320
 
305 321
 #: searx/templates/courgette/preferences.html:127
306 322
 #: searx/templates/default/preferences.html:115
307
-#: searx/templates/oscar/preferences.html:185
323
+#: searx/templates/oscar/preferences.html:240
308 324
 #: searx/templates/pix-art/preferences.html:78
309 325
 msgid "save"
310 326
 msgstr "保存"
311 327
 
312 328
 #: searx/templates/courgette/preferences.html:128
313 329
 #: searx/templates/default/preferences.html:116
314
-#: searx/templates/oscar/preferences.html:187
330
+#: searx/templates/oscar/preferences.html:242
315 331
 msgid "Reset defaults"
316 332
 msgstr ""
317 333
 
318 334
 #: searx/templates/courgette/preferences.html:129
319 335
 #: searx/templates/default/preferences.html:117
320
-#: searx/templates/oscar/preferences.html:186
336
+#: searx/templates/oscar/preferences.html:241
321 337
 #: searx/templates/pix-art/preferences.html:79
322 338
 msgid "back"
323 339
 msgstr "バック"
@@ -427,51 +443,89 @@ msgid "Toggle navigation"
427 443
 msgstr ""
428 444
 
429 445
 #: searx/templates/oscar/preferences.html:17
430
-#: searx/templates/oscar/preferences.html:24
446
+#: searx/templates/oscar/preferences.html:25
431 447
 msgid "General"
432 448
 msgstr ""
433 449
 
434 450
 #: searx/templates/oscar/preferences.html:18
435
-#: searx/templates/oscar/preferences.html:125
451
+#: searx/templates/oscar/preferences.html:126
436 452
 msgid "Engines"
437 453
 msgstr ""
438 454
 
439 455
 #: searx/templates/oscar/preferences.html:19
440
-#: searx/templates/oscar/preferences.html:159
456
+#: searx/templates/oscar/preferences.html:187
441 457
 msgid "Plugins"
442 458
 msgstr ""
443 459
 
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
445 466
 msgid "What language do you prefer for search?"
446 467
 msgstr ""
447 468
 
448
-#: searx/templates/oscar/preferences.html:55
469
+#: searx/templates/oscar/preferences.html:56
449 470
 msgid "Change the language of the layout"
450 471
 msgstr ""
451 472
 
452
-#: searx/templates/oscar/preferences.html:65
473
+#: searx/templates/oscar/preferences.html:66
453 474
 msgid "Find stuff as you type"
454 475
 msgstr ""
455 476
 
456
-#: searx/templates/oscar/preferences.html:76
477
+#: searx/templates/oscar/preferences.html:77
457 478
 msgid "Proxying image results through searx"
458 479
 msgstr ""
459 480
 
460
-#: searx/templates/oscar/preferences.html:85
481
+#: searx/templates/oscar/preferences.html:86
461 482
 msgid ""
462 483
 "Change how forms are submited, <a "
463 484
 "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
464 485
 " rel=\"external\">learn more about request methods</a>"
465 486
 msgstr ""
466 487
 
467
-#: searx/templates/oscar/preferences.html:94
488
+#: searx/templates/oscar/preferences.html:95
468 489
 msgid "Filter content"
469 490
 msgstr ""
470 491
 
471
-#: searx/templates/oscar/preferences.html:104
492
+#: searx/templates/oscar/preferences.html:105
472 493
 msgid "Change searx layout"
473 494
 msgstr "レイアウトのsearxの変更"
474 495
 
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
+
475 529
 #: searx/templates/oscar/results.html:7
476 530
 msgid "Search results"
477 531
 msgstr "検索結果"
@@ -515,12 +569,20 @@ msgstr ""
515 569
 
516 570
 #: searx/templates/oscar/messages/js_disabled.html:2
517 571
 msgid "Warning!"
518
-msgstr ""
572
+msgstr "意見"
519 573
 
520 574
 #: searx/templates/oscar/messages/js_disabled.html:3
521 575
 msgid "Please enable JavaScript to use full functionality of this site."
522 576
 msgstr ""
523 577
 
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
+
524 586
 #: searx/templates/oscar/messages/no_data_available.html:4
525 587
 msgid "There is currently no data available. "
526 588
 msgstr ""
@@ -537,7 +599,7 @@ msgstr ""
537 599
 
538 600
 #: searx/templates/oscar/messages/save_settings_successfull.html:7
539 601
 msgid "Well done!"
540
-msgstr ""
602
+msgstr "あっぱれ。"
541 603
 
542 604
 #: searx/templates/oscar/messages/save_settings_successfull.html:8
543 605
 msgid "Settings saved successfully."
@@ -545,7 +607,7 @@ msgstr ""
545 607
 
546 608
 #: searx/templates/oscar/messages/unknow_error.html:7
547 609
 msgid "Oh snap!"
548
-msgstr ""
610
+msgstr "ちぇっ"
549 611
 
550 612
 #: searx/templates/oscar/messages/unknow_error.html:8
551 613
 msgid "Something went wrong."
@@ -585,7 +647,7 @@ msgstr ""
585 647
 
586 648
 #: searx/templates/oscar/result_templates/torrent.html:7
587 649
 msgid "Filesize"
588
-msgstr ""
650
+msgstr "ファイル・サイズ"
589 651
 
590 652
 #: searx/templates/oscar/result_templates/torrent.html:9
591 653
 msgid "Bytes"
@@ -609,7 +671,7 @@ msgstr ""
609 671
 
610 672
 #: searx/templates/oscar/result_templates/torrent.html:15
611 673
 msgid "Number of Files"
612
-msgstr ""
674
+msgstr "ファイル数"
613 675
 
614 676
 #: searx/templates/oscar/result_templates/videos.html:7
615 677
 msgid "show video"

Binārs
searx/translations/nl/LC_MESSAGES/messages.mo Parādīt failu


+ 116
- 54
searx/translations/nl/LC_MESSAGES/messages.po Parādīt failu

@@ -9,10 +9,10 @@ msgid ""
9 9
 msgstr ""
10 10
 "Project-Id-Version: searx\n"
11 11
 "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"
14 14
 "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"
16 16
 "MIME-Version: 1.0\n"
17 17
 "Content-Type: text/plain; charset=UTF-8\n"
18 18
 "Content-Transfer-Encoding: 8bit\n"
@@ -20,67 +20,67 @@ msgstr ""
20 20
 "Language: nl\n"
21 21
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22 22
 
23
-#: searx/webapp.py:104
23
+#: searx/webapp.py:114
24 24
 msgid "files"
25 25
 msgstr "bestanden"
26 26
 
27
-#: searx/webapp.py:105
27
+#: searx/webapp.py:115
28 28
 msgid "general"
29 29
 msgstr "algemeen"
30 30
 
31
-#: searx/webapp.py:106
31
+#: searx/webapp.py:116
32 32
 msgid "music"
33 33
 msgstr "muziek"
34 34
 
35
-#: searx/webapp.py:107
35
+#: searx/webapp.py:117
36 36
 msgid "social media"
37 37
 msgstr "social media"
38 38
 
39
-#: searx/webapp.py:108
39
+#: searx/webapp.py:118
40 40
 msgid "images"
41 41
 msgstr "afbeeldingen"
42 42
 
43
-#: searx/webapp.py:109
43
+#: searx/webapp.py:119
44 44
 msgid "videos"
45 45
 msgstr "video's"
46 46
 
47
-#: searx/webapp.py:110
47
+#: searx/webapp.py:120
48 48
 msgid "it"
49 49
 msgstr "it"
50 50
 
51
-#: searx/webapp.py:111
51
+#: searx/webapp.py:121
52 52
 msgid "news"
53 53
 msgstr "nieuws"
54 54
 
55
-#: searx/webapp.py:112
55
+#: searx/webapp.py:122
56 56
 msgid "map"
57 57
 msgstr "kaart"
58 58
 
59
-#: searx/webapp.py:396
59
+#: searx/webapp.py:414
60 60
 msgid "{minutes} minute(s) ago"
61 61
 msgstr "{minutes} min geleden"
62 62
 
63
-#: searx/webapp.py:398
63
+#: searx/webapp.py:416
64 64
 msgid "{hours} hour(s), {minutes} minute(s) ago"
65 65
 msgstr "{hours} uur, {minutes} min geleden"
66 66
 
67
-#: searx/engines/__init__.py:182
67
+#: searx/engines/__init__.py:185
68 68
 msgid "Page loads (sec)"
69 69
 msgstr "Pagina laadt (sec)"
70 70
 
71
-#: searx/engines/__init__.py:186
71
+#: searx/engines/__init__.py:189
72 72
 msgid "Number of results"
73 73
 msgstr "Aantal zoekresultaten"
74 74
 
75
-#: searx/engines/__init__.py:190
75
+#: searx/engines/__init__.py:193
76 76
 msgid "Scores"
77 77
 msgstr "Scores"
78 78
 
79
-#: searx/engines/__init__.py:194
79
+#: searx/engines/__init__.py:197
80 80
 msgid "Scores per result"
81 81
 msgstr "Scores per zoekresultaat"
82 82
 
83
-#: searx/engines/__init__.py:198
83
+#: searx/engines/__init__.py:201
84 84
 msgid "Errors"
85 85
 msgstr "Fouten"
86 86
 
@@ -95,12 +95,22 @@ msgstr "Zoeken bij selecteren van categorie"
95 95
 #: searx/plugins/search_on_category_select.py:19
96 96
 msgid ""
97 97
 "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)"
100 100
 
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"
104 114
 
105 115
 #: searx/templates/courgette/index.html:9
106 116
 #: searx/templates/courgette/index.html:13
@@ -128,90 +138,92 @@ msgstr "Voorkeuren"
128 138
 
129 139
 #: searx/templates/courgette/preferences.html:9
130 140
 #: 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
133 143
 msgid "Default categories"
134 144
 msgstr "Standaardcategorieën"
135 145
 
136 146
 #: searx/templates/courgette/preferences.html:13
137 147
 #: searx/templates/default/preferences.html:14
138
-#: searx/templates/oscar/preferences.html:43
148
+#: searx/templates/oscar/preferences.html:44
139 149
 #: searx/templates/pix-art/preferences.html:9
140 150
 msgid "Search language"
141 151
 msgstr "Zoektaal"
142 152
 
143 153
 #: searx/templates/courgette/preferences.html:16
144 154
 #: searx/templates/default/preferences.html:17
145
-#: searx/templates/oscar/preferences.html:47
155
+#: searx/templates/oscar/preferences.html:48
146 156
 #: searx/templates/pix-art/preferences.html:12
147 157
 msgid "Automatic"
148 158
 msgstr "Automatisch"
149 159
 
150 160
 #: searx/templates/courgette/preferences.html:24
151 161
 #: searx/templates/default/preferences.html:25
152
-#: searx/templates/oscar/preferences.html:54
162
+#: searx/templates/oscar/preferences.html:55
153 163
 #: searx/templates/pix-art/preferences.html:20
154 164
 msgid "Interface language"
155 165
 msgstr "Interfacetaal"
156 166
 
157 167
 #: searx/templates/courgette/preferences.html:34
158 168
 #: searx/templates/default/preferences.html:35
159
-#: searx/templates/oscar/preferences.html:64
169
+#: searx/templates/oscar/preferences.html:65
160 170
 msgid "Autocomplete"
161 171
 msgstr "Auto-aanvullen"
162 172
 
163 173
 #: searx/templates/courgette/preferences.html:45
164 174
 #: searx/templates/default/preferences.html:46
165
-#: searx/templates/oscar/preferences.html:75
175
+#: searx/templates/oscar/preferences.html:76
166 176
 msgid "Image proxy"
167 177
 msgstr "Afbeeldingen proxy"
168 178
 
169 179
 #: searx/templates/courgette/preferences.html:48
170 180
 #: searx/templates/default/preferences.html:49
171
-#: searx/templates/oscar/preferences.html:79
181
+#: searx/templates/oscar/preferences.html:80
172 182
 msgid "Enabled"
173 183
 msgstr "Ingeschakeld"
174 184
 
175 185
 #: searx/templates/courgette/preferences.html:49
176 186
 #: searx/templates/default/preferences.html:50
177
-#: searx/templates/oscar/preferences.html:80
187
+#: searx/templates/oscar/preferences.html:81
178 188
 msgid "Disabled"
179 189
 msgstr "Uitgeschakeld"
180 190
 
181 191
 #: searx/templates/courgette/preferences.html:54
182 192
 #: searx/templates/default/preferences.html:55
183
-#: searx/templates/oscar/preferences.html:84
193
+#: searx/templates/oscar/preferences.html:85
184 194
 #: searx/templates/pix-art/preferences.html:30
185 195
 msgid "Method"
186 196
 msgstr "Methode"
187 197
 
188 198
 #: searx/templates/courgette/preferences.html:63
189 199
 #: 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
191 203
 msgid "SafeSearch"
192 204
 msgstr "SafeSearch"
193 205
 
194 206
 #: searx/templates/courgette/preferences.html:66
195 207
 #: searx/templates/default/preferences.html:67
196
-#: searx/templates/oscar/preferences.html:97
208
+#: searx/templates/oscar/preferences.html:98
197 209
 msgid "Strict"
198 210
 msgstr "Strikt"
199 211
 
200 212
 #: searx/templates/courgette/preferences.html:67
201 213
 #: searx/templates/default/preferences.html:68
202
-#: searx/templates/oscar/preferences.html:98
214
+#: searx/templates/oscar/preferences.html:99
203 215
 msgid "Moderate"
204 216
 msgstr "Gemiddeld"
205 217
 
206 218
 #: searx/templates/courgette/preferences.html:68
207 219
 #: searx/templates/default/preferences.html:69
208
-#: searx/templates/oscar/preferences.html:99
220
+#: searx/templates/oscar/preferences.html:100
209 221
 msgid "None"
210 222
 msgstr "Geen"
211 223
 
212 224
 #: searx/templates/courgette/preferences.html:73
213 225
 #: searx/templates/default/preferences.html:74
214
-#: searx/templates/oscar/preferences.html:103
226
+#: searx/templates/oscar/preferences.html:104
215 227
 #: searx/templates/pix-art/preferences.html:39
216 228
 msgid "Themes"
217 229
 msgstr "Thema's"
@@ -252,6 +264,8 @@ msgstr "Momenteel gebruikte zoekmachines"
252 264
 
253 265
 #: searx/templates/courgette/preferences.html:100
254 266
 #: searx/templates/default/preferences.html:88
267
+#: searx/templates/oscar/preferences.html:142
268
+#: searx/templates/oscar/preferences.html:152
255 269
 #: searx/templates/pix-art/preferences.html:53
256 270
 msgid "Engine name"
257 271
 msgstr "Naam zoekmachine"
@@ -266,6 +280,8 @@ msgstr "Categorie"
266 280
 #: searx/templates/default/preferences.html:90
267 281
 #: searx/templates/default/preferences.html:101
268 282
 #: searx/templates/oscar/macros.html:67
283
+#: searx/templates/oscar/preferences.html:141
284
+#: searx/templates/oscar/preferences.html:153
269 285
 #: searx/templates/pix-art/preferences.html:54
270 286
 #: searx/templates/pix-art/preferences.html:64
271 287
 msgid "Allow"
@@ -283,7 +299,7 @@ msgstr "Blokkeren"
283 299
 
284 300
 #: searx/templates/courgette/preferences.html:122
285 301
 #: searx/templates/default/preferences.html:110
286
-#: searx/templates/oscar/preferences.html:180
302
+#: searx/templates/oscar/preferences.html:235
287 303
 #: searx/templates/pix-art/preferences.html:73
288 304
 msgid ""
289 305
 "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
292 308
 
293 309
 #: searx/templates/courgette/preferences.html:124
294 310
 #: searx/templates/default/preferences.html:112
295
-#: searx/templates/oscar/preferences.html:182
311
+#: searx/templates/oscar/preferences.html:237
296 312
 #: searx/templates/pix-art/preferences.html:75
297 313
 msgid ""
298 314
 "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
301 317
 
302 318
 #: searx/templates/courgette/preferences.html:127
303 319
 #: searx/templates/default/preferences.html:115
304
-#: searx/templates/oscar/preferences.html:185
320
+#: searx/templates/oscar/preferences.html:240
305 321
 #: searx/templates/pix-art/preferences.html:78
306 322
 msgid "save"
307 323
 msgstr "bewaren"
308 324
 
309 325
 #: searx/templates/courgette/preferences.html:128
310 326
 #: searx/templates/default/preferences.html:116
311
-#: searx/templates/oscar/preferences.html:187
327
+#: searx/templates/oscar/preferences.html:242
312 328
 msgid "Reset defaults"
313 329
 msgstr "Standaardinstellingen herstellen"
314 330
 
315 331
 #: searx/templates/courgette/preferences.html:129
316 332
 #: searx/templates/default/preferences.html:117
317
-#: searx/templates/oscar/preferences.html:186
333
+#: searx/templates/oscar/preferences.html:241
318 334
 #: searx/templates/pix-art/preferences.html:79
319 335
 msgid "back"
320 336
 msgstr "terug"
@@ -424,51 +440,89 @@ msgid "Toggle navigation"
424 440
 msgstr "Omschakelen navigatie"
425 441
 
426 442
 #: searx/templates/oscar/preferences.html:17
427
-#: searx/templates/oscar/preferences.html:24
443
+#: searx/templates/oscar/preferences.html:25
428 444
 msgid "General"
429 445
 msgstr "Algemeen"
430 446
 
431 447
 #: searx/templates/oscar/preferences.html:18
432
-#: searx/templates/oscar/preferences.html:125
448
+#: searx/templates/oscar/preferences.html:126
433 449
 msgid "Engines"
434 450
 msgstr "Zoekmachines"
435 451
 
436 452
 #: searx/templates/oscar/preferences.html:19
437
-#: searx/templates/oscar/preferences.html:159
453
+#: searx/templates/oscar/preferences.html:187
438 454
 msgid "Plugins"
439 455
 msgstr "Plugins"
440 456
 
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
442 463
 msgid "What language do you prefer for search?"
443 464
 msgstr "Welke taal wil je gebruiken voor het zoeken?"
444 465
 
445
-#: searx/templates/oscar/preferences.html:55
466
+#: searx/templates/oscar/preferences.html:56
446 467
 msgid "Change the language of the layout"
447 468
 msgstr "Wijzig de taal van de layout"
448 469
 
449
-#: searx/templates/oscar/preferences.html:65
470
+#: searx/templates/oscar/preferences.html:66
450 471
 msgid "Find stuff as you type"
451 472
 msgstr "Zoek tijdens het typen"
452 473
 
453
-#: searx/templates/oscar/preferences.html:76
474
+#: searx/templates/oscar/preferences.html:77
454 475
 msgid "Proxying image results through searx"
455 476
 msgstr "Proxyen afbeeldingen resultaat via searx"
456 477
 
457
-#: searx/templates/oscar/preferences.html:85
478
+#: searx/templates/oscar/preferences.html:86
458 479
 msgid ""
459 480
 "Change how forms are submited, <a "
460 481
 "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
461 482
 " rel=\"external\">learn more about request methods</a>"
462 483
 msgstr "Bepaal hoe de formulieren worden ingestuurd, <a href=\"http://nl.wikipedia.org/wiki/Hypertext_Transfer_Protocol#HTTP-requests\" rel=\"external\">lees meer over request methodes</a>"
463 484
 
464
-#: searx/templates/oscar/preferences.html:94
485
+#: searx/templates/oscar/preferences.html:95
465 486
 msgid "Filter content"
466 487
 msgstr "Filteren content"
467 488
 
468
-#: searx/templates/oscar/preferences.html:104
489
+#: searx/templates/oscar/preferences.html:105
469 490
 msgid "Change searx layout"
470 491
 msgstr "Wijzig searx layout"
471 492
 
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
+
472 526
 #: searx/templates/oscar/results.html:7
473 527
 msgid "Search results"
474 528
 msgstr "Zoekresultaten"
@@ -518,6 +572,14 @@ msgstr "Waarschuwing!"
518 572
 msgid "Please enable JavaScript to use full functionality of this site."
519 573
 msgstr "Activeer JavaScript om alle functionaliteit van deze site te gebruiken."
520 574
 
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
+
521 583
 #: searx/templates/oscar/messages/no_data_available.html:4
522 584
 msgid "There is currently no data available. "
523 585
 msgstr "Er zijn momenteel geen gegevens beschikbaar."

Binārs
searx/translations/pt/LC_MESSAGES/messages.mo Parādīt failu


Binārs
searx/translations/ro/LC_MESSAGES/messages.mo Parādīt failu


+ 117
- 55
searx/translations/ro/LC_MESSAGES/messages.po Parādīt failu

@@ -8,10 +8,10 @@ msgid ""
8 8
 msgstr ""
9 9
 "Project-Id-Version: searx\n"
10 10
 "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"
15 15
 "MIME-Version: 1.0\n"
16 16
 "Content-Type: text/plain; charset=UTF-8\n"
17 17
 "Content-Transfer-Encoding: 8bit\n"
@@ -19,67 +19,67 @@ msgstr ""
19 19
 "Language: ro\n"
20 20
 "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
21 21
 
22
-#: searx/webapp.py:104
22
+#: searx/webapp.py:114
23 23
 msgid "files"
24 24
 msgstr "fișiere"
25 25
 
26
-#: searx/webapp.py:105
26
+#: searx/webapp.py:115
27 27
 msgid "general"
28 28
 msgstr "general"
29 29
 
30
-#: searx/webapp.py:106
30
+#: searx/webapp.py:116
31 31
 msgid "music"
32 32
 msgstr "muzică"
33 33
 
34
-#: searx/webapp.py:107
34
+#: searx/webapp.py:117
35 35
 msgid "social media"
36 36
 msgstr "rețele sociale"
37 37
 
38
-#: searx/webapp.py:108
38
+#: searx/webapp.py:118
39 39
 msgid "images"
40 40
 msgstr "imagini"
41 41
 
42
-#: searx/webapp.py:109
42
+#: searx/webapp.py:119
43 43
 msgid "videos"
44 44
 msgstr "videouri"
45 45
 
46
-#: searx/webapp.py:110
46
+#: searx/webapp.py:120
47 47
 msgid "it"
48 48
 msgstr "el(ea)"
49 49
 
50
-#: searx/webapp.py:111
50
+#: searx/webapp.py:121
51 51
 msgid "news"
52 52
 msgstr "știri"
53 53
 
54
-#: searx/webapp.py:112
54
+#: searx/webapp.py:122
55 55
 msgid "map"
56 56
 msgstr "hartă"
57 57
 
58
-#: searx/webapp.py:396
58
+#: searx/webapp.py:414
59 59
 msgid "{minutes} minute(s) ago"
60 60
 msgstr "{minutes} minut(e) în urmă"
61 61
 
62
-#: searx/webapp.py:398
62
+#: searx/webapp.py:416
63 63
 msgid "{hours} hour(s), {minutes} minute(s) ago"
64 64
 msgstr "{hours} oră(e), {minutes} minut(e) în urmă"
65 65
 
66
-#: searx/engines/__init__.py:182
66
+#: searx/engines/__init__.py:185
67 67
 msgid "Page loads (sec)"
68 68
 msgstr "Încărcarea paginilor (sec)"
69 69
 
70
-#: searx/engines/__init__.py:186
70
+#: searx/engines/__init__.py:189
71 71
 msgid "Number of results"
72 72
 msgstr "Numărul de rezultate"
73 73
 
74
-#: searx/engines/__init__.py:190
74
+#: searx/engines/__init__.py:193
75 75
 msgid "Scores"
76 76
 msgstr "Scoruri"
77 77
 
78
-#: searx/engines/__init__.py:194
78
+#: searx/engines/__init__.py:197
79 79
 msgid "Scores per result"
80 80
 msgstr "Scoruri per rezultat"
81 81
 
82
-#: searx/engines/__init__.py:198
82
+#: searx/engines/__init__.py:201
83 83
 msgid "Errors"
84 84
 msgstr "Erori"
85 85
 
@@ -94,12 +94,22 @@ msgstr "Căutare în categoria selectată"
94 94
 #: searx/plugins/search_on_category_select.py:19
95 95
 msgid ""
96 96
 "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 ""
99 105
 
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 ""
103 113
 
104 114
 #: searx/templates/courgette/index.html:9
105 115
 #: searx/templates/courgette/index.html:13
@@ -127,90 +137,92 @@ msgstr "Preferințe"
127 137
 
128 138
 #: searx/templates/courgette/preferences.html:9
129 139
 #: 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
132 142
 msgid "Default categories"
133 143
 msgstr "Categorii implicite"
134 144
 
135 145
 #: searx/templates/courgette/preferences.html:13
136 146
 #: searx/templates/default/preferences.html:14
137
-#: searx/templates/oscar/preferences.html:43
147
+#: searx/templates/oscar/preferences.html:44
138 148
 #: searx/templates/pix-art/preferences.html:9
139 149
 msgid "Search language"
140 150
 msgstr "Limba de căutare"
141 151
 
142 152
 #: searx/templates/courgette/preferences.html:16
143 153
 #: searx/templates/default/preferences.html:17
144
-#: searx/templates/oscar/preferences.html:47
154
+#: searx/templates/oscar/preferences.html:48
145 155
 #: searx/templates/pix-art/preferences.html:12
146 156
 msgid "Automatic"
147 157
 msgstr "Automat"
148 158
 
149 159
 #: searx/templates/courgette/preferences.html:24
150 160
 #: searx/templates/default/preferences.html:25
151
-#: searx/templates/oscar/preferences.html:54
161
+#: searx/templates/oscar/preferences.html:55
152 162
 #: searx/templates/pix-art/preferences.html:20
153 163
 msgid "Interface language"
154 164
 msgstr "Limba interfeței"
155 165
 
156 166
 #: searx/templates/courgette/preferences.html:34
157 167
 #: searx/templates/default/preferences.html:35
158
-#: searx/templates/oscar/preferences.html:64
168
+#: searx/templates/oscar/preferences.html:65
159 169
 msgid "Autocomplete"
160 170
 msgstr "Completare automată"
161 171
 
162 172
 #: searx/templates/courgette/preferences.html:45
163 173
 #: searx/templates/default/preferences.html:46
164
-#: searx/templates/oscar/preferences.html:75
174
+#: searx/templates/oscar/preferences.html:76
165 175
 msgid "Image proxy"
166 176
 msgstr "Proxy de imagini"
167 177
 
168 178
 #: searx/templates/courgette/preferences.html:48
169 179
 #: searx/templates/default/preferences.html:49
170
-#: searx/templates/oscar/preferences.html:79
180
+#: searx/templates/oscar/preferences.html:80
171 181
 msgid "Enabled"
172 182
 msgstr "Activat"
173 183
 
174 184
 #: searx/templates/courgette/preferences.html:49
175 185
 #: searx/templates/default/preferences.html:50
176
-#: searx/templates/oscar/preferences.html:80
186
+#: searx/templates/oscar/preferences.html:81
177 187
 msgid "Disabled"
178 188
 msgstr "Dezactivat"
179 189
 
180 190
 #: searx/templates/courgette/preferences.html:54
181 191
 #: searx/templates/default/preferences.html:55
182
-#: searx/templates/oscar/preferences.html:84
192
+#: searx/templates/oscar/preferences.html:85
183 193
 #: searx/templates/pix-art/preferences.html:30
184 194
 msgid "Method"
185 195
 msgstr "Metodă"
186 196
 
187 197
 #: searx/templates/courgette/preferences.html:63
188 198
 #: 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
190 202
 msgid "SafeSearch"
191 203
 msgstr "CăutareSigură"
192 204
 
193 205
 #: searx/templates/courgette/preferences.html:66
194 206
 #: searx/templates/default/preferences.html:67
195
-#: searx/templates/oscar/preferences.html:97
207
+#: searx/templates/oscar/preferences.html:98
196 208
 msgid "Strict"
197 209
 msgstr "Strict"
198 210
 
199 211
 #: searx/templates/courgette/preferences.html:67
200 212
 #: searx/templates/default/preferences.html:68
201
-#: searx/templates/oscar/preferences.html:98
213
+#: searx/templates/oscar/preferences.html:99
202 214
 msgid "Moderate"
203 215
 msgstr "Moderat"
204 216
 
205 217
 #: searx/templates/courgette/preferences.html:68
206 218
 #: searx/templates/default/preferences.html:69
207
-#: searx/templates/oscar/preferences.html:99
219
+#: searx/templates/oscar/preferences.html:100
208 220
 msgid "None"
209 221
 msgstr "Nimic"
210 222
 
211 223
 #: searx/templates/courgette/preferences.html:73
212 224
 #: searx/templates/default/preferences.html:74
213
-#: searx/templates/oscar/preferences.html:103
225
+#: searx/templates/oscar/preferences.html:104
214 226
 #: searx/templates/pix-art/preferences.html:39
215 227
 msgid "Themes"
216 228
 msgstr "Teme"
@@ -251,6 +263,8 @@ msgstr "Motoarele de căutare folosite curent"
251 263
 
252 264
 #: searx/templates/courgette/preferences.html:100
253 265
 #: searx/templates/default/preferences.html:88
266
+#: searx/templates/oscar/preferences.html:142
267
+#: searx/templates/oscar/preferences.html:152
254 268
 #: searx/templates/pix-art/preferences.html:53
255 269
 msgid "Engine name"
256 270
 msgstr "Numele motorului"
@@ -265,6 +279,8 @@ msgstr "Categorie"
265 279
 #: searx/templates/default/preferences.html:90
266 280
 #: searx/templates/default/preferences.html:101
267 281
 #: searx/templates/oscar/macros.html:67
282
+#: searx/templates/oscar/preferences.html:141
283
+#: searx/templates/oscar/preferences.html:153
268 284
 #: searx/templates/pix-art/preferences.html:54
269 285
 #: searx/templates/pix-art/preferences.html:64
270 286
 msgid "Allow"
@@ -282,7 +298,7 @@ msgstr "Blochează"
282 298
 
283 299
 #: searx/templates/courgette/preferences.html:122
284 300
 #: searx/templates/default/preferences.html:110
285
-#: searx/templates/oscar/preferences.html:180
301
+#: searx/templates/oscar/preferences.html:235
286 302
 #: searx/templates/pix-art/preferences.html:73
287 303
 msgid ""
288 304
 "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
291 307
 
292 308
 #: searx/templates/courgette/preferences.html:124
293 309
 #: searx/templates/default/preferences.html:112
294
-#: searx/templates/oscar/preferences.html:182
310
+#: searx/templates/oscar/preferences.html:237
295 311
 #: searx/templates/pix-art/preferences.html:75
296 312
 msgid ""
297 313
 "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
300 316
 
301 317
 #: searx/templates/courgette/preferences.html:127
302 318
 #: searx/templates/default/preferences.html:115
303
-#: searx/templates/oscar/preferences.html:185
319
+#: searx/templates/oscar/preferences.html:240
304 320
 #: searx/templates/pix-art/preferences.html:78
305 321
 msgid "save"
306 322
 msgstr "salvează"
307 323
 
308 324
 #: searx/templates/courgette/preferences.html:128
309 325
 #: searx/templates/default/preferences.html:116
310
-#: searx/templates/oscar/preferences.html:187
326
+#: searx/templates/oscar/preferences.html:242
311 327
 msgid "Reset defaults"
312 328
 msgstr "Resetează valorile implicite"
313 329
 
314 330
 #: searx/templates/courgette/preferences.html:129
315 331
 #: searx/templates/default/preferences.html:117
316
-#: searx/templates/oscar/preferences.html:186
332
+#: searx/templates/oscar/preferences.html:241
317 333
 #: searx/templates/pix-art/preferences.html:79
318 334
 msgid "back"
319 335
 msgstr "înapoi"
@@ -423,51 +439,89 @@ msgid "Toggle navigation"
423 439
 msgstr "Comută navigarea"
424 440
 
425 441
 #: searx/templates/oscar/preferences.html:17
426
-#: searx/templates/oscar/preferences.html:24
442
+#: searx/templates/oscar/preferences.html:25
427 443
 msgid "General"
428 444
 msgstr "General"
429 445
 
430 446
 #: searx/templates/oscar/preferences.html:18
431
-#: searx/templates/oscar/preferences.html:125
447
+#: searx/templates/oscar/preferences.html:126
432 448
 msgid "Engines"
433 449
 msgstr "Motoare"
434 450
 
435 451
 #: searx/templates/oscar/preferences.html:19
436
-#: searx/templates/oscar/preferences.html:159
452
+#: searx/templates/oscar/preferences.html:187
437 453
 msgid "Plugins"
438 454
 msgstr "Module"
439 455
 
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
441 462
 msgid "What language do you prefer for search?"
442 463
 msgstr "Ce limbă preferați pentru căutare?"
443 464
 
444
-#: searx/templates/oscar/preferences.html:55
465
+#: searx/templates/oscar/preferences.html:56
445 466
 msgid "Change the language of the layout"
446 467
 msgstr "Schimbă limba aspectului"
447 468
 
448
-#: searx/templates/oscar/preferences.html:65
469
+#: searx/templates/oscar/preferences.html:66
449 470
 msgid "Find stuff as you type"
450 471
 msgstr "Găsește lucruri în timp ce tastezi"
451 472
 
452
-#: searx/templates/oscar/preferences.html:76
473
+#: searx/templates/oscar/preferences.html:77
453 474
 msgid "Proxying image results through searx"
454 475
 msgstr "Transferă rezultatele cu imagini prin searx"
455 476
 
456
-#: searx/templates/oscar/preferences.html:85
477
+#: searx/templates/oscar/preferences.html:86
457 478
 msgid ""
458 479
 "Change how forms are submited, <a "
459 480
 "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
460 481
 " rel=\"external\">learn more about request methods</a>"
461 482
 msgstr "Modificați cum sunt trimise formularele, <a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">învățați mai multe despre metodele de transfer</a>"
462 483
 
463
-#: searx/templates/oscar/preferences.html:94
484
+#: searx/templates/oscar/preferences.html:95
464 485
 msgid "Filter content"
465 486
 msgstr "Filtrează conținutul"
466 487
 
467
-#: searx/templates/oscar/preferences.html:104
488
+#: searx/templates/oscar/preferences.html:105
468 489
 msgid "Change searx layout"
469 490
 msgstr "Schimbă aspectul lui searx"
470 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 ""
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
+
471 525
 #: searx/templates/oscar/results.html:7
472 526
 msgid "Search results"
473 527
 msgstr "Rezultatele căutării"
@@ -517,6 +571,14 @@ msgstr "Avertizare!"
517 571
 msgid "Please enable JavaScript to use full functionality of this site."
518 572
 msgstr "Vă rog activați JavaScript pentru a utiliza funcționalitatea completă a acestui site."
519 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 ""
581
+
520 582
 #: searx/templates/oscar/messages/no_data_available.html:4
521 583
 msgid "There is currently no data available. "
522 584
 msgstr "Deocamdată nu există date disponibile."

Binārs
searx/translations/ru/LC_MESSAGES/messages.mo Parādīt failu


+ 115
- 53
searx/translations/ru/LC_MESSAGES/messages.po Parādīt failu

@@ -9,10 +9,10 @@ msgid ""
9 9
 msgstr ""
10 10
 "Project-Id-Version: searx\n"
11 11
 "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"
16 16
 "MIME-Version: 1.0\n"
17 17
 "Content-Type: text/plain; charset=UTF-8\n"
18 18
 "Content-Transfer-Encoding: 8bit\n"
@@ -20,67 +20,67 @@ msgstr ""
20 20
 "Language: ru\n"
21 21
 "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"
22 22
 
23
-#: searx/webapp.py:104
23
+#: searx/webapp.py:114
24 24
 msgid "files"
25 25
 msgstr "файлы"
26 26
 
27
-#: searx/webapp.py:105
27
+#: searx/webapp.py:115
28 28
 msgid "general"
29 29
 msgstr "общие"
30 30
 
31
-#: searx/webapp.py:106
31
+#: searx/webapp.py:116
32 32
 msgid "music"
33 33
 msgstr "музыка"
34 34
 
35
-#: searx/webapp.py:107
35
+#: searx/webapp.py:117
36 36
 msgid "social media"
37 37
 msgstr "соцсети"
38 38
 
39
-#: searx/webapp.py:108
39
+#: searx/webapp.py:118
40 40
 msgid "images"
41 41
 msgstr "картинки"
42 42
 
43
-#: searx/webapp.py:109
43
+#: searx/webapp.py:119
44 44
 msgid "videos"
45 45
 msgstr "видео"
46 46
 
47
-#: searx/webapp.py:110
47
+#: searx/webapp.py:120
48 48
 msgid "it"
49 49
 msgstr "IT"
50 50
 
51
-#: searx/webapp.py:111
51
+#: searx/webapp.py:121
52 52
 msgid "news"
53 53
 msgstr "новости"
54 54
 
55
-#: searx/webapp.py:112
55
+#: searx/webapp.py:122
56 56
 msgid "map"
57 57
 msgstr "карты"
58 58
 
59
-#: searx/webapp.py:396
59
+#: searx/webapp.py:414
60 60
 msgid "{minutes} minute(s) ago"
61 61
 msgstr "{minutes} минут назад"
62 62
 
63
-#: searx/webapp.py:398
63
+#: searx/webapp.py:416
64 64
 msgid "{hours} hour(s), {minutes} minute(s) ago"
65 65
 msgstr "{hours} час, {minutes} минут назад"
66 66
 
67
-#: searx/engines/__init__.py:182
67
+#: searx/engines/__init__.py:185
68 68
 msgid "Page loads (sec)"
69 69
 msgstr "Время загрузки (сек)"
70 70
 
71
-#: searx/engines/__init__.py:186
71
+#: searx/engines/__init__.py:189
72 72
 msgid "Number of results"
73 73
 msgstr "Число результатов"
74 74
 
75
-#: searx/engines/__init__.py:190
75
+#: searx/engines/__init__.py:193
76 76
 msgid "Scores"
77 77
 msgstr "Попаданий"
78 78
 
79
-#: searx/engines/__init__.py:194
79
+#: searx/engines/__init__.py:197
80 80
 msgid "Scores per result"
81 81
 msgstr "Попаданий за результат"
82 82
 
83
-#: searx/engines/__init__.py:198
83
+#: searx/engines/__init__.py:201
84 84
 msgid "Errors"
85 85
 msgstr "Ошибок"
86 86
 
@@ -95,11 +95,21 @@ msgstr ""
95 95
 #: searx/plugins/search_on_category_select.py:19
96 96
 msgid ""
97 97
 "Perform search immediately if a category selected. Disable to select "
98
-"multiple categories."
98
+"multiple categories. (JavaScript required)"
99 99
 msgstr ""
100 100
 
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"
103 113
 msgstr ""
104 114
 
105 115
 #: searx/templates/courgette/index.html:9
@@ -128,90 +138,92 @@ msgstr "Опции"
128 138
 
129 139
 #: searx/templates/courgette/preferences.html:9
130 140
 #: 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
133 143
 msgid "Default categories"
134 144
 msgstr "Категории по-умолчанию"
135 145
 
136 146
 #: searx/templates/courgette/preferences.html:13
137 147
 #: searx/templates/default/preferences.html:14
138
-#: searx/templates/oscar/preferences.html:43
148
+#: searx/templates/oscar/preferences.html:44
139 149
 #: searx/templates/pix-art/preferences.html:9
140 150
 msgid "Search language"
141 151
 msgstr "Язык поиска"
142 152
 
143 153
 #: searx/templates/courgette/preferences.html:16
144 154
 #: searx/templates/default/preferences.html:17
145
-#: searx/templates/oscar/preferences.html:47
155
+#: searx/templates/oscar/preferences.html:48
146 156
 #: searx/templates/pix-art/preferences.html:12
147 157
 msgid "Automatic"
148 158
 msgstr "Выбирать автоматически"
149 159
 
150 160
 #: searx/templates/courgette/preferences.html:24
151 161
 #: searx/templates/default/preferences.html:25
152
-#: searx/templates/oscar/preferences.html:54
162
+#: searx/templates/oscar/preferences.html:55
153 163
 #: searx/templates/pix-art/preferences.html:20
154 164
 msgid "Interface language"
155 165
 msgstr "Язык интерфейса"
156 166
 
157 167
 #: searx/templates/courgette/preferences.html:34
158 168
 #: searx/templates/default/preferences.html:35
159
-#: searx/templates/oscar/preferences.html:64
169
+#: searx/templates/oscar/preferences.html:65
160 170
 msgid "Autocomplete"
161 171
 msgstr "Авто-подсказки"
162 172
 
163 173
 #: searx/templates/courgette/preferences.html:45
164 174
 #: searx/templates/default/preferences.html:46
165
-#: searx/templates/oscar/preferences.html:75
175
+#: searx/templates/oscar/preferences.html:76
166 176
 msgid "Image proxy"
167 177
 msgstr "Прокси для картинок"
168 178
 
169 179
 #: searx/templates/courgette/preferences.html:48
170 180
 #: searx/templates/default/preferences.html:49
171
-#: searx/templates/oscar/preferences.html:79
181
+#: searx/templates/oscar/preferences.html:80
172 182
 msgid "Enabled"
173 183
 msgstr "Включен"
174 184
 
175 185
 #: searx/templates/courgette/preferences.html:49
176 186
 #: searx/templates/default/preferences.html:50
177
-#: searx/templates/oscar/preferences.html:80
187
+#: searx/templates/oscar/preferences.html:81
178 188
 msgid "Disabled"
179 189
 msgstr "Выключен"
180 190
 
181 191
 #: searx/templates/courgette/preferences.html:54
182 192
 #: searx/templates/default/preferences.html:55
183
-#: searx/templates/oscar/preferences.html:84
193
+#: searx/templates/oscar/preferences.html:85
184 194
 #: searx/templates/pix-art/preferences.html:30
185 195
 msgid "Method"
186 196
 msgstr "Метод"
187 197
 
188 198
 #: searx/templates/courgette/preferences.html:63
189 199
 #: 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
191 203
 msgid "SafeSearch"
192 204
 msgstr "Безопасный поиск"
193 205
 
194 206
 #: searx/templates/courgette/preferences.html:66
195 207
 #: searx/templates/default/preferences.html:67
196
-#: searx/templates/oscar/preferences.html:97
208
+#: searx/templates/oscar/preferences.html:98
197 209
 msgid "Strict"
198 210
 msgstr "Строгий"
199 211
 
200 212
 #: searx/templates/courgette/preferences.html:67
201 213
 #: searx/templates/default/preferences.html:68
202
-#: searx/templates/oscar/preferences.html:98
214
+#: searx/templates/oscar/preferences.html:99
203 215
 msgid "Moderate"
204 216
 msgstr "Умеренный"
205 217
 
206 218
 #: searx/templates/courgette/preferences.html:68
207 219
 #: searx/templates/default/preferences.html:69
208
-#: searx/templates/oscar/preferences.html:99
220
+#: searx/templates/oscar/preferences.html:100
209 221
 msgid "None"
210 222
 msgstr "Выключен"
211 223
 
212 224
 #: searx/templates/courgette/preferences.html:73
213 225
 #: searx/templates/default/preferences.html:74
214
-#: searx/templates/oscar/preferences.html:103
226
+#: searx/templates/oscar/preferences.html:104
215 227
 #: searx/templates/pix-art/preferences.html:39
216 228
 msgid "Themes"
217 229
 msgstr "Темы"
@@ -252,6 +264,8 @@ msgstr "Используемые поисковые движки"
252 264
 
253 265
 #: searx/templates/courgette/preferences.html:100
254 266
 #: searx/templates/default/preferences.html:88
267
+#: searx/templates/oscar/preferences.html:142
268
+#: searx/templates/oscar/preferences.html:152
255 269
 #: searx/templates/pix-art/preferences.html:53
256 270
 msgid "Engine name"
257 271
 msgstr "Имя движка"
@@ -266,6 +280,8 @@ msgstr "Категория"
266 280
 #: searx/templates/default/preferences.html:90
267 281
 #: searx/templates/default/preferences.html:101
268 282
 #: searx/templates/oscar/macros.html:67
283
+#: searx/templates/oscar/preferences.html:141
284
+#: searx/templates/oscar/preferences.html:153
269 285
 #: searx/templates/pix-art/preferences.html:54
270 286
 #: searx/templates/pix-art/preferences.html:64
271 287
 msgid "Allow"
@@ -283,7 +299,7 @@ msgstr "Блокировать"
283 299
 
284 300
 #: searx/templates/courgette/preferences.html:122
285 301
 #: searx/templates/default/preferences.html:110
286
-#: searx/templates/oscar/preferences.html:180
302
+#: searx/templates/oscar/preferences.html:235
287 303
 #: searx/templates/pix-art/preferences.html:73
288 304
 msgid ""
289 305
 "These settings are stored in your cookies, this allows us not to store this "
@@ -292,7 +308,7 @@ msgstr "Настройки хранятся в ваших cookies-файлах,
292 308
 
293 309
 #: searx/templates/courgette/preferences.html:124
294 310
 #: searx/templates/default/preferences.html:112
295
-#: searx/templates/oscar/preferences.html:182
311
+#: searx/templates/oscar/preferences.html:237
296 312
 #: searx/templates/pix-art/preferences.html:75
297 313
 msgid ""
298 314
 "These cookies serve your sole convenience, we don't use these cookies to "
@@ -301,20 +317,20 @@ msgstr "Данные cookies применяются для вашего удоб
301 317
 
302 318
 #: searx/templates/courgette/preferences.html:127
303 319
 #: searx/templates/default/preferences.html:115
304
-#: searx/templates/oscar/preferences.html:185
320
+#: searx/templates/oscar/preferences.html:240
305 321
 #: searx/templates/pix-art/preferences.html:78
306 322
 msgid "save"
307 323
 msgstr "сохранить"
308 324
 
309 325
 #: searx/templates/courgette/preferences.html:128
310 326
 #: searx/templates/default/preferences.html:116
311
-#: searx/templates/oscar/preferences.html:187
327
+#: searx/templates/oscar/preferences.html:242
312 328
 msgid "Reset defaults"
313 329
 msgstr ""
314 330
 
315 331
 #: searx/templates/courgette/preferences.html:129
316 332
 #: searx/templates/default/preferences.html:117
317
-#: searx/templates/oscar/preferences.html:186
333
+#: searx/templates/oscar/preferences.html:241
318 334
 #: searx/templates/pix-art/preferences.html:79
319 335
 msgid "back"
320 336
 msgstr "назад"
@@ -424,51 +440,89 @@ msgid "Toggle navigation"
424 440
 msgstr "Переключить навигацию"
425 441
 
426 442
 #: searx/templates/oscar/preferences.html:17
427
-#: searx/templates/oscar/preferences.html:24
443
+#: searx/templates/oscar/preferences.html:25
428 444
 msgid "General"
429 445
 msgstr "Общие"
430 446
 
431 447
 #: searx/templates/oscar/preferences.html:18
432
-#: searx/templates/oscar/preferences.html:125
448
+#: searx/templates/oscar/preferences.html:126
433 449
 msgid "Engines"
434 450
 msgstr "Движки"
435 451
 
436 452
 #: searx/templates/oscar/preferences.html:19
437
-#: searx/templates/oscar/preferences.html:159
453
+#: searx/templates/oscar/preferences.html:187
438 454
 msgid "Plugins"
439 455
 msgstr ""
440 456
 
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
442 463
 msgid "What language do you prefer for search?"
443 464
 msgstr "На каком языке вы предпочитаете искать?"
444 465
 
445
-#: searx/templates/oscar/preferences.html:55
466
+#: searx/templates/oscar/preferences.html:56
446 467
 msgid "Change the language of the layout"
447 468
 msgstr "Изменить язык сайта"
448 469
 
449
-#: searx/templates/oscar/preferences.html:65
470
+#: searx/templates/oscar/preferences.html:66
450 471
 msgid "Find stuff as you type"
451 472
 msgstr "Поисковые предложения при наборе"
452 473
 
453
-#: searx/templates/oscar/preferences.html:76
474
+#: searx/templates/oscar/preferences.html:77
454 475
 msgid "Proxying image results through searx"
455 476
 msgstr "Проксировать найденные изображения с помощью searx"
456 477
 
457
-#: searx/templates/oscar/preferences.html:85
478
+#: searx/templates/oscar/preferences.html:86
458 479
 msgid ""
459 480
 "Change how forms are submited, <a "
460 481
 "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
461 482
 " rel=\"external\">learn more about request methods</a>"
462 483
 msgstr "Изменяет способ отправки запросов (<a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">подробней о методах запросов</a>)"
463 484
 
464
-#: searx/templates/oscar/preferences.html:94
485
+#: searx/templates/oscar/preferences.html:95
465 486
 msgid "Filter content"
466 487
 msgstr "Использовать ли фильтр контента"
467 488
 
468
-#: searx/templates/oscar/preferences.html:104
489
+#: searx/templates/oscar/preferences.html:105
469 490
 msgid "Change searx layout"
470 491
 msgstr "Изменить тему сайта"
471 492
 
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
+
472 526
 #: searx/templates/oscar/results.html:7
473 527
 msgid "Search results"
474 528
 msgstr "Результаты поиска"
@@ -518,6 +572,14 @@ msgstr "Внимание!"
518 572
 msgid "Please enable JavaScript to use full functionality of this site."
519 573
 msgstr "Пожалуйста включите JavaScript, чтобы использовать все функции сайта."
520 574
 
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
+
521 583
 #: searx/templates/oscar/messages/no_data_available.html:4
522 584
 msgid "There is currently no data available. "
523 585
 msgstr "На данный момент данные недоступны."

Binārs
searx/translations/tr/LC_MESSAGES/messages.mo Parādīt failu


+ 116
- 54
searx/translations/tr/LC_MESSAGES/messages.po Parādīt failu

@@ -9,10 +9,10 @@ msgid ""
9 9
 msgstr ""
10 10
 "Project-Id-Version: searx\n"
11 11
 "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"
16 16
 "MIME-Version: 1.0\n"
17 17
 "Content-Type: text/plain; charset=UTF-8\n"
18 18
 "Content-Transfer-Encoding: 8bit\n"
@@ -20,67 +20,67 @@ msgstr ""
20 20
 "Language: tr\n"
21 21
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
22 22
 
23
-#: searx/webapp.py:104
23
+#: searx/webapp.py:114
24 24
 msgid "files"
25 25
 msgstr "dosyalar"
26 26
 
27
-#: searx/webapp.py:105
27
+#: searx/webapp.py:115
28 28
 msgid "general"
29 29
 msgstr "genel"
30 30
 
31
-#: searx/webapp.py:106
31
+#: searx/webapp.py:116
32 32
 msgid "music"
33 33
 msgstr "müzik"
34 34
 
35
-#: searx/webapp.py:107
35
+#: searx/webapp.py:117
36 36
 msgid "social media"
37 37
 msgstr "sosyal medya"
38 38
 
39
-#: searx/webapp.py:108
39
+#: searx/webapp.py:118
40 40
 msgid "images"
41 41
 msgstr "görseller"
42 42
 
43
-#: searx/webapp.py:109
43
+#: searx/webapp.py:119
44 44
 msgid "videos"
45 45
 msgstr "videolar"
46 46
 
47
-#: searx/webapp.py:110
47
+#: searx/webapp.py:120
48 48
 msgid "it"
49 49
 msgstr "bilişim"
50 50
 
51
-#: searx/webapp.py:111
51
+#: searx/webapp.py:121
52 52
 msgid "news"
53 53
 msgstr "haberler"
54 54
 
55
-#: searx/webapp.py:112
55
+#: searx/webapp.py:122
56 56
 msgid "map"
57 57
 msgstr "harita"
58 58
 
59
-#: searx/webapp.py:396
59
+#: searx/webapp.py:414
60 60
 msgid "{minutes} minute(s) ago"
61 61
 msgstr "{minutes} dakika() önce"
62 62
 
63
-#: searx/webapp.py:398
63
+#: searx/webapp.py:416
64 64
 msgid "{hours} hour(s), {minutes} minute(s) ago"
65 65
 msgstr "{hours} saat(), {minutes} dakika() önce"
66 66
 
67
-#: searx/engines/__init__.py:182
67
+#: searx/engines/__init__.py:185
68 68
 msgid "Page loads (sec)"
69 69
 msgstr "Yüklenen sayfa (sn)"
70 70
 
71
-#: searx/engines/__init__.py:186
71
+#: searx/engines/__init__.py:189
72 72
 msgid "Number of results"
73 73
 msgstr "Sonuç sayısı"
74 74
 
75
-#: searx/engines/__init__.py:190
75
+#: searx/engines/__init__.py:193
76 76
 msgid "Scores"
77 77
 msgstr ""
78 78
 
79
-#: searx/engines/__init__.py:194
79
+#: searx/engines/__init__.py:197
80 80
 msgid "Scores per result"
81 81
 msgstr ""
82 82
 
83
-#: searx/engines/__init__.py:198
83
+#: searx/engines/__init__.py:201
84 84
 msgid "Errors"
85 85
 msgstr "Hatalar"
86 86
 
@@ -95,11 +95,21 @@ msgstr ""
95 95
 #: searx/plugins/search_on_category_select.py:19
96 96
 msgid ""
97 97
 "Perform search immediately if a category selected. Disable to select "
98
-"multiple categories."
98
+"multiple categories. (JavaScript required)"
99 99
 msgstr ""
100 100
 
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"
103 113
 msgstr ""
104 114
 
105 115
 #: searx/templates/courgette/index.html:9
@@ -128,90 +138,92 @@ msgstr "Tercihler"
128 138
 
129 139
 #: searx/templates/courgette/preferences.html:9
130 140
 #: 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
133 143
 msgid "Default categories"
134 144
 msgstr "Öntanımlı kategoriler"
135 145
 
136 146
 #: searx/templates/courgette/preferences.html:13
137 147
 #: searx/templates/default/preferences.html:14
138
-#: searx/templates/oscar/preferences.html:43
148
+#: searx/templates/oscar/preferences.html:44
139 149
 #: searx/templates/pix-art/preferences.html:9
140 150
 msgid "Search language"
141 151
 msgstr "Arama dili"
142 152
 
143 153
 #: searx/templates/courgette/preferences.html:16
144 154
 #: searx/templates/default/preferences.html:17
145
-#: searx/templates/oscar/preferences.html:47
155
+#: searx/templates/oscar/preferences.html:48
146 156
 #: searx/templates/pix-art/preferences.html:12
147 157
 msgid "Automatic"
148 158
 msgstr "Otomatik"
149 159
 
150 160
 #: searx/templates/courgette/preferences.html:24
151 161
 #: searx/templates/default/preferences.html:25
152
-#: searx/templates/oscar/preferences.html:54
162
+#: searx/templates/oscar/preferences.html:55
153 163
 #: searx/templates/pix-art/preferences.html:20
154 164
 msgid "Interface language"
155 165
 msgstr "Arayüz dili"
156 166
 
157 167
 #: searx/templates/courgette/preferences.html:34
158 168
 #: searx/templates/default/preferences.html:35
159
-#: searx/templates/oscar/preferences.html:64
169
+#: searx/templates/oscar/preferences.html:65
160 170
 msgid "Autocomplete"
161 171
 msgstr "Otomatik tamamlama"
162 172
 
163 173
 #: searx/templates/courgette/preferences.html:45
164 174
 #: searx/templates/default/preferences.html:46
165
-#: searx/templates/oscar/preferences.html:75
175
+#: searx/templates/oscar/preferences.html:76
166 176
 msgid "Image proxy"
167 177
 msgstr "Görsel vekil sunucu"
168 178
 
169 179
 #: searx/templates/courgette/preferences.html:48
170 180
 #: searx/templates/default/preferences.html:49
171
-#: searx/templates/oscar/preferences.html:79
181
+#: searx/templates/oscar/preferences.html:80
172 182
 msgid "Enabled"
173 183
 msgstr "Etkin"
174 184
 
175 185
 #: searx/templates/courgette/preferences.html:49
176 186
 #: searx/templates/default/preferences.html:50
177
-#: searx/templates/oscar/preferences.html:80
187
+#: searx/templates/oscar/preferences.html:81
178 188
 msgid "Disabled"
179 189
 msgstr "Devre dışı"
180 190
 
181 191
 #: searx/templates/courgette/preferences.html:54
182 192
 #: searx/templates/default/preferences.html:55
183
-#: searx/templates/oscar/preferences.html:84
193
+#: searx/templates/oscar/preferences.html:85
184 194
 #: searx/templates/pix-art/preferences.html:30
185 195
 msgid "Method"
186 196
 msgstr "Sorgu gönderim yöntemi"
187 197
 
188 198
 #: searx/templates/courgette/preferences.html:63
189 199
 #: 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
191 203
 msgid "SafeSearch"
192 204
 msgstr "Güvenli Arama"
193 205
 
194 206
 #: searx/templates/courgette/preferences.html:66
195 207
 #: searx/templates/default/preferences.html:67
196
-#: searx/templates/oscar/preferences.html:97
208
+#: searx/templates/oscar/preferences.html:98
197 209
 msgid "Strict"
198 210
 msgstr "Sıkı"
199 211
 
200 212
 #: searx/templates/courgette/preferences.html:67
201 213
 #: searx/templates/default/preferences.html:68
202
-#: searx/templates/oscar/preferences.html:98
214
+#: searx/templates/oscar/preferences.html:99
203 215
 msgid "Moderate"
204 216
 msgstr "Orta"
205 217
 
206 218
 #: searx/templates/courgette/preferences.html:68
207 219
 #: searx/templates/default/preferences.html:69
208
-#: searx/templates/oscar/preferences.html:99
220
+#: searx/templates/oscar/preferences.html:100
209 221
 msgid "None"
210 222
 msgstr "Yok"
211 223
 
212 224
 #: searx/templates/courgette/preferences.html:73
213 225
 #: searx/templates/default/preferences.html:74
214
-#: searx/templates/oscar/preferences.html:103
226
+#: searx/templates/oscar/preferences.html:104
215 227
 #: searx/templates/pix-art/preferences.html:39
216 228
 msgid "Themes"
217 229
 msgstr "Temalar"
@@ -252,6 +264,8 @@ msgstr "Şu anda kullanılan arama motorları"
252 264
 
253 265
 #: searx/templates/courgette/preferences.html:100
254 266
 #: searx/templates/default/preferences.html:88
267
+#: searx/templates/oscar/preferences.html:142
268
+#: searx/templates/oscar/preferences.html:152
255 269
 #: searx/templates/pix-art/preferences.html:53
256 270
 msgid "Engine name"
257 271
 msgstr "Motor adı"
@@ -266,6 +280,8 @@ msgstr "Türü"
266 280
 #: searx/templates/default/preferences.html:90
267 281
 #: searx/templates/default/preferences.html:101
268 282
 #: searx/templates/oscar/macros.html:67
283
+#: searx/templates/oscar/preferences.html:141
284
+#: searx/templates/oscar/preferences.html:153
269 285
 #: searx/templates/pix-art/preferences.html:54
270 286
 #: searx/templates/pix-art/preferences.html:64
271 287
 msgid "Allow"
@@ -283,7 +299,7 @@ msgstr "Engelle"
283 299
 
284 300
 #: searx/templates/courgette/preferences.html:122
285 301
 #: searx/templates/default/preferences.html:110
286
-#: searx/templates/oscar/preferences.html:180
302
+#: searx/templates/oscar/preferences.html:235
287 303
 #: searx/templates/pix-art/preferences.html:73
288 304
 msgid ""
289 305
 "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
292 308
 
293 309
 #: searx/templates/courgette/preferences.html:124
294 310
 #: searx/templates/default/preferences.html:112
295
-#: searx/templates/oscar/preferences.html:182
311
+#: searx/templates/oscar/preferences.html:237
296 312
 #: searx/templates/pix-art/preferences.html:75
297 313
 msgid ""
298 314
 "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
301 317
 
302 318
 #: searx/templates/courgette/preferences.html:127
303 319
 #: searx/templates/default/preferences.html:115
304
-#: searx/templates/oscar/preferences.html:185
320
+#: searx/templates/oscar/preferences.html:240
305 321
 #: searx/templates/pix-art/preferences.html:78
306 322
 msgid "save"
307 323
 msgstr "kaydet"
308 324
 
309 325
 #: searx/templates/courgette/preferences.html:128
310 326
 #: searx/templates/default/preferences.html:116
311
-#: searx/templates/oscar/preferences.html:187
327
+#: searx/templates/oscar/preferences.html:242
312 328
 msgid "Reset defaults"
313
-msgstr ""
329
+msgstr "Varsayılanları sıfırla"
314 330
 
315 331
 #: searx/templates/courgette/preferences.html:129
316 332
 #: searx/templates/default/preferences.html:117
317
-#: searx/templates/oscar/preferences.html:186
333
+#: searx/templates/oscar/preferences.html:241
318 334
 #: searx/templates/pix-art/preferences.html:79
319 335
 msgid "back"
320 336
 msgstr "geri"
@@ -424,51 +440,89 @@ msgid "Toggle navigation"
424 440
 msgstr ""
425 441
 
426 442
 #: searx/templates/oscar/preferences.html:17
427
-#: searx/templates/oscar/preferences.html:24
443
+#: searx/templates/oscar/preferences.html:25
428 444
 msgid "General"
429 445
 msgstr "Genel"
430 446
 
431 447
 #: searx/templates/oscar/preferences.html:18
432
-#: searx/templates/oscar/preferences.html:125
448
+#: searx/templates/oscar/preferences.html:126
433 449
 msgid "Engines"
434 450
 msgstr "Motorlar"
435 451
 
436 452
 #: searx/templates/oscar/preferences.html:19
437
-#: searx/templates/oscar/preferences.html:159
453
+#: searx/templates/oscar/preferences.html:187
438 454
 msgid "Plugins"
439 455
 msgstr "Eklentiler"
440 456
 
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
442 463
 msgid "What language do you prefer for search?"
443 464
 msgstr "Tercih ettiğiniz arama sonuçları dili"
444 465
 
445
-#: searx/templates/oscar/preferences.html:55
466
+#: searx/templates/oscar/preferences.html:56
446 467
 msgid "Change the language of the layout"
447 468
 msgstr "Site dilini değiştir"
448 469
 
449
-#: searx/templates/oscar/preferences.html:65
470
+#: searx/templates/oscar/preferences.html:66
450 471
 msgid "Find stuff as you type"
451 472
 msgstr "Leb demeden leblebiyi anlasın"
452 473
 
453
-#: searx/templates/oscar/preferences.html:76
474
+#: searx/templates/oscar/preferences.html:77
454 475
 msgid "Proxying image results through searx"
455 476
 msgstr "Görsel arama sonuçlarını, searx vekil sunucusu üzerinden geçir"
456 477
 
457
-#: searx/templates/oscar/preferences.html:85
478
+#: searx/templates/oscar/preferences.html:86
458 479
 msgid ""
459 480
 "Change how forms are submited, <a "
460 481
 "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
461 482
 " rel=\"external\">learn more about request methods</a>"
462 483
 msgstr "Aramaların nasıl gönderildiğini değiştir, <a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">istek yöntemleri hakkında daha fazla bilgi</a>"
463 484
 
464
-#: searx/templates/oscar/preferences.html:94
485
+#: searx/templates/oscar/preferences.html:95
465 486
 msgid "Filter content"
466 487
 msgstr "İçeriyi süz"
467 488
 
468
-#: searx/templates/oscar/preferences.html:104
489
+#: searx/templates/oscar/preferences.html:105
469 490
 msgid "Change searx layout"
470 491
 msgstr "searx yerleşim düzenini değiştir"
471 492
 
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
+
472 526
 #: searx/templates/oscar/results.html:7
473 527
 msgid "Search results"
474 528
 msgstr "Arama sonuçları"
@@ -518,6 +572,14 @@ msgstr "Uyarı!"
518 572
 msgid "Please enable JavaScript to use full functionality of this site."
519 573
 msgstr "Lütfen, bu sitenin tüm işlevlerini kullanmak için JavaScript'i etkinleştirin."
520 574
 
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
+
521 583
 #: searx/templates/oscar/messages/no_data_available.html:4
522 584
 msgid "There is currently no data available. "
523 585
 msgstr "Şuan uygun veri yok."

Binārs
searx/translations/zh_CN/LC_MESSAGES/messages.mo Parādīt failu


+ 682
- 0
searx/translations/zh_CN/LC_MESSAGES/messages.po Parādīt failu

@@ -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 "载入更多..."

+ 20
- 24
searx/utils.py Parādīt failu

@@ -1,11 +1,9 @@
1
-# import htmlentitydefs
2
-import locale
3
-import dateutil.parser
4 1
 import cStringIO
5 2
 import csv
6 3
 import os
7 4
 import re
8 5
 
6
+from babel.dates import format_date
9 7
 from codecs import getincrementalencoder
10 8
 from HTMLParser import HTMLParser
11 9
 from random import choice
@@ -21,11 +19,15 @@ ua_versions = ('33.0',
21 19
                '34.0',
22 20
                '35.0',
23 21
                '36.0',
24
-               '37.0')
22
+               '37.0',
23
+               '38.0',
24
+               '39.0',
25
+               '40.0')
25 26
 
26 27
 ua_os = ('Windows NT 6.3; WOW64',
27 28
          'X11; Linux x86_64',
28 29
          'X11; Linux x86')
30
+
29 31
 ua = "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}"
30 32
 
31 33
 blocked_tags = ('script',
@@ -40,7 +42,7 @@ def gen_useragent():
40 42
 def searx_useragent():
41 43
     return 'searx/{searx_version} {suffix}'.format(
42 44
            searx_version=VERSION_STRING,
43
-           suffix=settings['server'].get('useragent_suffix', ''))
45
+           suffix=settings['outgoing'].get('useragent_suffix', ''))
44 46
 
45 47
 
46 48
 def highlight_content(content, query):
@@ -194,23 +196,16 @@ def get_result_templates(base_path):
194 196
     return result_templates
195 197
 
196 198
 
197
-def format_date_by_locale(date_string, locale_string):
199
+def format_date_by_locale(date, locale_string):
198 200
     # 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)
214 209
 
215 210
 
216 211
 def dict_subset(d, properties):
@@ -221,9 +216,10 @@ def dict_subset(d, properties):
221 216
     return result
222 217
 
223 218
 
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:])
227 223
     else:
228 224
         return url
229 225
 

+ 1
- 1
searx/version.py Parādīt failu

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

+ 35
- 35
searx/webapp.py Parādīt failu

@@ -42,7 +42,7 @@ except:
42 42
 
43 43
 from datetime import datetime, timedelta
44 44
 from urllib import urlencode
45
-from urlparse import urlparse
45
+from urlparse import urlparse, urljoin
46 46
 from werkzeug.contrib.fixers import ProxyFix
47 47
 from flask import (
48 48
     Flask, request, render_template, url_for, Response, make_response,
@@ -77,11 +77,11 @@ except ImportError:
77 77
 
78 78
 
79 79
 static_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']
82 82
                else searx_dir)
83 83
 
84
-default_theme = settings['server'].get('default_theme', 'default')
84
+default_theme = settings['ui']['default_theme']
85 85
 
86 86
 static_files = get_static_files(searx_dir)
87 87
 
@@ -121,15 +121,15 @@ _category_names = (gettext('files'),
121 121
                    gettext('news'),
122 122
                    gettext('map'))
123 123
 
124
-outgoing_proxies = settings.get('outgoing_proxies', None)
124
+outgoing_proxies = settings['outgoing'].get('proxies', None)
125 125
 
126 126
 
127 127
 @babel.localeselector
128 128
 def get_locale():
129 129
     locale = request.accept_languages.best_match(settings['locales'].keys())
130 130
 
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']
133 133
 
134 134
     if request.cookies.get('locale', '') in settings['locales']:
135 135
         locale = request.cookies.get('locale', '')
@@ -263,7 +263,7 @@ def image_proxify(url):
263 263
 def render(template_name, override_theme=None, **kwargs):
264 264
     blocked_engines = get_blocked_engines(engines, request.cookies)
265 265
 
266
-    autocomplete = request.cookies.get('autocomplete')
266
+    autocomplete = request.cookies.get('autocomplete', settings['search']['autocomplete'])
267 267
 
268 268
     if autocomplete not in autocomplete_backends:
269 269
         autocomplete = None
@@ -312,7 +312,7 @@ def render(template_name, override_theme=None, **kwargs):
312 312
 
313 313
     kwargs['method'] = request.cookies.get('method', 'POST')
314 314
 
315
-    kwargs['safesearch'] = request.cookies.get('safesearch', '1')
315
+    kwargs['safesearch'] = request.cookies.get('safesearch', str(settings['search']['safe_search']))
316 316
 
317 317
     # override url_for function in templates
318 318
     kwargs['url_for'] = url_for_theme
@@ -383,7 +383,7 @@ def index():
383 383
 
384 384
     plugins.call('post_search', request, locals())
385 385
 
386
-    for result in search.results:
386
+    for result in search.result_container.get_ordered_results():
387 387
 
388 388
         plugins.call('on_result', request, locals())
389 389
         if not search.paging and engines[result['engine']].paging:
@@ -411,7 +411,7 @@ def index():
411 411
                 minutes = int((timedifference.seconds / 60) % 60)
412 412
                 hours = int(timedifference.seconds / 60 / 60)
413 413
                 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)
415 415
                 else:
416 416
                     result['publishedDate'] = gettext(u'{hours} hour(s), {minutes} minute(s) ago').format(hours=hours, minutes=minutes)  # noqa
417 417
             else:
@@ -419,17 +419,16 @@ def index():
419 419
 
420 420
     if search.request_data.get('format') == 'json':
421 421
         return Response(json.dumps({'query': search.query,
422
-                                    'results': search.results}),
422
+                                    'results': search.result_container.get_ordered_results()}),
423 423
                         mimetype='application/json')
424 424
     elif search.request_data.get('format') == 'csv':
425 425
         csv = UnicodeWriter(cStringIO.StringIO())
426 426
         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)
433 432
         response = Response(csv.stream.read(), mimetype='application/csv')
434 433
         cont_disp = 'attachment;Filename=searx_-_{0}.csv'.format(search.query)
435 434
         response.headers.add('Content-Disposition', cont_disp)
@@ -437,24 +436,24 @@ def index():
437 436
     elif search.request_data.get('format') == 'rss':
438 437
         response_rss = render(
439 438
             'opensearch_response_rss.xml',
440
-            results=search.results,
439
+            results=search.result_container.get_ordered_results(),
441 440
             q=search.request_data['q'],
442
-            number_of_results=len(search.results),
441
+            number_of_results=search.result_container.results_length(),
443 442
             base_url=get_base_url()
444 443
         )
445 444
         return Response(response_rss, mimetype='text/xml')
446 445
 
447 446
     return render(
448 447
         'results.html',
449
-        results=search.results,
448
+        results=search.result_container.get_ordered_results(),
450 449
         q=search.request_data['q'],
451 450
         selected_categories=search.categories,
452 451
         paging=search.paging,
453 452
         pageno=search.pageno,
454 453
         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,
458 457
         theme=get_current_theme_name(),
459 458
         favicons=global_favicons[themes.index(get_current_theme_name())]
460 459
     )
@@ -491,7 +490,7 @@ def autocompleter():
491 490
         return '', 400
492 491
 
493 492
     # run autocompleter
494
-    completer = autocomplete_backends.get(request.cookies.get('autocomplete'))
493
+    completer = autocomplete_backends.get(request.cookies.get('autocomplete', settings['search']['autocomplete']))
495 494
 
496 495
     # parse searx specific autocompleter results like !bang
497 496
     raw_results = searx_bang(query)
@@ -532,7 +531,7 @@ def preferences():
532 531
 
533 532
     blocked_engines = []
534 533
 
535
-    resp = make_response(redirect(url_for('index')))
534
+    resp = make_response(redirect(urljoin(settings['server']['base_url'], url_for('index'))))
536 535
 
537 536
     if request.method == 'GET':
538 537
         blocked_engines = get_blocked_engines(engines, request.cookies)
@@ -542,7 +541,7 @@ def preferences():
542 541
         locale = None
543 542
         autocomplete = ''
544 543
         method = 'POST'
545
-        safesearch = '1'
544
+        safesearch = settings['search']['safe_search']
546 545
         for pd_name, pd in request.form.items():
547 546
             if pd_name.startswith('category_'):
548 547
                 category = pd_name[9:]
@@ -624,7 +623,7 @@ def preferences():
624 623
 
625 624
         resp.set_cookie('method', method, max_age=cookie_max_age)
626 625
 
627
-        resp.set_cookie('safesearch', safesearch, max_age=cookie_max_age)
626
+        resp.set_cookie('safesearch', str(safesearch), max_age=cookie_max_age)
628 627
 
629 628
         resp.set_cookie('image_proxy', image_proxy, max_age=cookie_max_age)
630 629
 
@@ -640,12 +639,12 @@ def preferences():
640 639
             stats[e.name] = {'time': None,
641 640
                              'warn_timeout': False,
642 641
                              'warn_time': False}
643
-            if e.timeout > settings['server']['request_timeout']:
642
+            if e.timeout > settings['outgoing']['request_timeout']:
644 643
                 stats[e.name]['warn_timeout'] = True
645 644
 
646 645
     for engine_stat in get_engines_stats()[0][1]:
647 646
         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']:
649 648
             stats[engine_stat.get('name')]['warn_time'] = True
650 649
     # end of stats
651 650
 
@@ -683,7 +682,7 @@ def image_proxy():
683 682
 
684 683
     resp = requests.get(url,
685 684
                         stream=True,
686
-                        timeout=settings['server'].get('request_timeout', 2),
685
+                        timeout=settings['outgoing']['request_timeout'],
687 686
                         headers=headers,
688 687
                         proxies=outgoing_proxies)
689 688
 
@@ -767,7 +766,7 @@ def favicon():
767 766
 
768 767
 @app.route('/clear_cookies')
769 768
 def clear_cookies():
770
-    resp = make_response(redirect(url_for('index')))
769
+    resp = make_response(redirect(urljoin(settings['server']['base_url'], url_for('index'))))
771 770
     for cookie_name in request.cookies:
772 771
         resp.delete_cookie(cookie_name)
773 772
     return resp
@@ -775,9 +774,10 @@ def clear_cookies():
775 774
 
776 775
 def run():
777 776
     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']
781 781
     )
782 782
 
783 783