此方法提取浏览器语言,当语言有 2 个字母时工作正常,es, en, de
...等。
def extract_locale_from_accept_language_header
browser_locale = request.env['HTTP_ACCEPT_LANGUAGE'].try(:scan, /^[a-z]{2}/).try(:first).try(:to_sym)
if I18n.available_locales.include? browser_locale
browser_locale
else
I18n.default_locale
end
end
但是,当浏览器语言有 4 个字母时不起作用:
en
en-us
en-gb
en-au
en-ca
zh-TW
zh-cn
如何解决这个问题?
谢谢