forked from Icycoide/searxng
[fix] get correct locale with country from browser
Some of our interface locales include uppercase country codes, which are separated by `_` instead of the more common `-`. Also, a browser's `Accept-Language` header could be in lowercase. This commit attempts to normalize those cases so a browser's language+country codes can better match with our locales. This solution assumes that our UI locales have nothing more than language and optionally country. If we ever add a script specific locale like `zh-Hant-TW` this would have to change to accomodate that, but the idea would be pretty much the same as this fix.
This commit is contained in:
parent
321788f14a
commit
c937a9e85f
2 changed files with 20 additions and 5 deletions
|
@ -198,6 +198,20 @@ class ViewsTestCase(SearxTestCase):
|
|||
result.data
|
||||
)
|
||||
|
||||
def test_browser_locale(self):
|
||||
result = self.app.get('/preferences', headers={'Accept-Language': 'zh-tw;q=0.8'})
|
||||
self.assertEqual(result.status_code, 200)
|
||||
self.assertIn(
|
||||
b'<option value="zh_TW" selected="selected">',
|
||||
result.data,
|
||||
'Interface locale ignored browser preference.'
|
||||
)
|
||||
self.assertIn(
|
||||
b'<option value="zh-TW" selected="selected">',
|
||||
result.data,
|
||||
'Search language ignored browser preference.'
|
||||
)
|
||||
|
||||
def test_stats(self):
|
||||
result = self.app.get('/stats')
|
||||
self.assertEqual(result.status_code, 200)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue