@@ -11,13 +11,12 @@
11 @parse url, title, content
11 @parse url, title, content
13 @todo rewrite to api
13 @todo rewrite to api
14− @todo language support
15− (the current used site does not support language-change)
18from urllib import urlencode
16from urllib import urlencode
19from lxml.html import fromstring
17from lxml.html import fromstring
20from searx.engines.xpath import extract_text
18from searx.engines.xpath import extract_text
19+from searx.languages import language_codes
22# engine dependent config
21# engine dependent config
23categories = ['general']
22categories = ['general']
@@ -39,13 +38,28 @@ def request(query, params):
39 offset = (params['pageno'] - 1) * 30
38 offset = (params['pageno'] - 1) * 30
41 if params['language'] == 'all':
40 if params['language'] == 'all':
42− locale = 'en-us'
41+ locale = None
44− locale = params['language'].replace('_', '-').lower()
43+ locale = params['language'].split('_')
45−
44+ if len(locale) == 2:
45+ # country code goes first
46+ locale = locale[1].lower() + '-' + locale[0].lower()
48+ # tries to get a country code from language
49+ locale = locale[0].lower()
50+ lang_codes = [x[0] for x in language_codes]
51+ for lc in lang_codes:
54+ locale = lc[1].lower() + '-' + lc[0].lower()
46− params['url'] = url.format(
58+ params['url'] = url.format(
47− query=urlencode({'q': query, 'kl': locale}),
59+ query=urlencode({'q': query, 'kl': locale}), offset=offset)
61+ params['url'] = url.format(
48− offset=offset)
62+ query=urlencode({'q': query}), offset=offset)
50 return params
64 return params