* Fix sr locale being selected over sr-Latn
* Update tests
end
def request_locale
- preferred_locale || compatible_locale
- end
-
- def preferred_locale
- http_accept_language.preferred_language_from(available_locales)
- end
-
- def compatible_locale
- http_accept_language.compatible_language_from(available_locales)
- end
-
- def available_locales
- I18n.available_locales.reverse
+ http_accept_language.language_region_compatible_from(I18n.available_locales)
end
end
:el,
:en,
:eo,
- :'es-AR',
:es,
+ :'es-AR',
:et,
:eu,
:fa,
:sk,
:sl,
:sq,
- :'sr-Latn',
:sr,
+ :'sr-Latn',
:sv,
:ta,
:te,
end
shared_examples 'default locale' do
+ it 'sets available and preferred language' do
+ request.headers['Accept-Language'] = 'sr-Latn'
+ get 'success'
+ expect(response.body).to eq 'sr-Latn'
+ end
+
it 'sets available and preferred language' do
request.headers['Accept-Language'] = 'ca-ES, fa'
get 'success'
- expect(response.body).to eq 'fa'
+ expect(response.body).to eq 'ca'
end
it 'sets available and compatible language if none of available languages are preferred' do