Browse Source

Merge remote-tracking branch 'origin/master'

Kang-min Liu 9 years ago
parent
commit
ac8759cd3f
73 changed files with 2693 additions and 1334 deletions
  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. 0 0
      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
      searx/translations/de/LC_MESSAGES/messages.mo
  46. 116 54
      searx/translations/de/LC_MESSAGES/messages.po
  47. BIN
      searx/translations/en/LC_MESSAGES/messages.mo
  48. BIN
      searx/translations/es/LC_MESSAGES/messages.mo
  49. 122 58
      searx/translations/es/LC_MESSAGES/messages.po
  50. BIN
      searx/translations/fr/LC_MESSAGES/messages.mo
  51. 116 54
      searx/translations/fr/LC_MESSAGES/messages.po
  52. BIN
      searx/translations/he/LC_MESSAGES/messages.mo
  53. 118 56
      searx/translations/he/LC_MESSAGES/messages.po
  54. BIN
      searx/translations/hu/LC_MESSAGES/messages.mo
  55. 116 54
      searx/translations/hu/LC_MESSAGES/messages.po
  56. BIN
      searx/translations/it/LC_MESSAGES/messages.mo
  57. 115 53
      searx/translations/it/LC_MESSAGES/messages.po
  58. BIN
      searx/translations/ja/LC_MESSAGES/messages.mo
  59. 124 62
      searx/translations/ja/LC_MESSAGES/messages.po
  60. BIN
      searx/translations/nl/LC_MESSAGES/messages.mo
  61. 116 54
      searx/translations/nl/LC_MESSAGES/messages.po
  62. BIN
      searx/translations/pt/LC_MESSAGES/messages.mo
  63. BIN
      searx/translations/ro/LC_MESSAGES/messages.mo
  64. 117 55
      searx/translations/ro/LC_MESSAGES/messages.po
  65. BIN
      searx/translations/ru/LC_MESSAGES/messages.mo
  66. 115 53
      searx/translations/ru/LC_MESSAGES/messages.po
  67. BIN
      searx/translations/tr/LC_MESSAGES/messages.mo
  68. 116 54
      searx/translations/tr/LC_MESSAGES/messages.po
  69. BIN
      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

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

+ 4 - 0
AUTHORS.rst

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

+ 46 - 0
CHANGELOG.rst

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

+ 1 - 1
README.rst

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

+ 1 - 1
searx/__init__.py

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

+ 1 - 1
searx/autocomplete.py

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

+ 1 - 1
searx/engines/__init__.py

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

+ 1 - 1
searx/engines/bing.py

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

+ 1 - 1
searx/engines/bing_images.py

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

+ 6 - 2
searx/engines/gigablast.py

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

+ 9 - 4
searx/engines/google.py

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

+ 1 - 1
searx/engines/piratebay.py

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

+ 5 - 0
searx/engines/searchcode_code.py

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

+ 5 - 0
searx/engines/searchcode_doc.py

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

+ 46 - 7
searx/engines/startpage.py

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

+ 6 - 2
searx/engines/twitter.py

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

+ 26 - 8
searx/engines/wikidata.py

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

+ 62 - 0
searx/engines/yandex.py

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

+ 0 - 93
searx/engines/youtube.py

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

+ 4 - 4
searx/plugins/self_info.py

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

+ 10 - 8
searx/poolrequests.py

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

+ 239 - 0
searx/results.py

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

+ 26 - 258
searx/search.py

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

+ 27 - 12
searx/settings.yml

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

+ 17 - 5
searx/settings_robot.yml

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

File diff suppressed because it is too large
+ 0 - 0
searx/static/themes/oscar/css/oscar.min.css


+ 5 - 0
searx/static/themes/oscar/less/oscar/results.less

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

+ 1 - 0
searx/templates/courgette/opensearch.xml

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

+ 1 - 0
searx/templates/default/opensearch.xml

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

+ 5 - 1
searx/templates/oscar/macros.html

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

+ 1 - 0
searx/templates/oscar/opensearch.xml

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

+ 2 - 2
searx/templates/pix-art/preferences.html

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

+ 4 - 4
searx/tests/engines/test_bing.py

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

+ 5 - 5
searx/tests/engines/test_bing_images.py

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

+ 4 - 3
searx/tests/engines/test_duckduckgo.py

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

+ 3 - 3
searx/tests/engines/test_piratebay.py

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

+ 3 - 3
searx/tests/engines/test_startpage.py

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

+ 0 - 204
searx/tests/engines/test_youtube.py

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

+ 0 - 1
searx/tests/test_engines.py

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

+ 17 - 11
searx/tests/test_plugins.py

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

+ 41 - 0
searx/tests/test_results.py

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

+ 4 - 19
searx/tests/test_search.py

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

+ 10 - 0
searx/tests/test_utils.py

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

+ 7 - 1
searx/tests/test_webapp.py

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

BIN
searx/translations/de/LC_MESSAGES/messages.mo


+ 116 - 54
searx/translations/de/LC_MESSAGES/messages.po

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

BIN
searx/translations/en/LC_MESSAGES/messages.mo


BIN
searx/translations/es/LC_MESSAGES/messages.mo


+ 122 - 58
searx/translations/es/LC_MESSAGES/messages.po

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

BIN
searx/translations/fr/LC_MESSAGES/messages.mo


+ 116 - 54
searx/translations/fr/LC_MESSAGES/messages.po

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

BIN
searx/translations/he/LC_MESSAGES/messages.mo


+ 118 - 56
searx/translations/he/LC_MESSAGES/messages.po

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

BIN
searx/translations/hu/LC_MESSAGES/messages.mo


+ 116 - 54
searx/translations/hu/LC_MESSAGES/messages.po

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

BIN
searx/translations/it/LC_MESSAGES/messages.mo


+ 115 - 53
searx/translations/it/LC_MESSAGES/messages.po

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

BIN
searx/translations/ja/LC_MESSAGES/messages.mo


+ 124 - 62
searx/translations/ja/LC_MESSAGES/messages.po

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

BIN
searx/translations/nl/LC_MESSAGES/messages.mo


+ 116 - 54
searx/translations/nl/LC_MESSAGES/messages.po

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

BIN
searx/translations/pt/LC_MESSAGES/messages.mo


BIN
searx/translations/ro/LC_MESSAGES/messages.mo


+ 117 - 55
searx/translations/ro/LC_MESSAGES/messages.po

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

BIN
searx/translations/ru/LC_MESSAGES/messages.mo


+ 115 - 53
searx/translations/ru/LC_MESSAGES/messages.po

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

BIN
searx/translations/tr/LC_MESSAGES/messages.mo


+ 116 - 54
searx/translations/tr/LC_MESSAGES/messages.po

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

BIN
searx/translations/zh_CN/LC_MESSAGES/messages.mo


+ 682 - 0
searx/translations/zh_CN/LC_MESSAGES/messages.po

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

+ 20 - 24
searx/utils.py

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

+ 1 - 1
searx/version.py

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

+ 35 - 35
searx/webapp.py

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

Some files were not shown because too many files changed in this diff