A better solution to #681

This commit is contained in:
haseo 2018-11-19 15:54:28 +08:00
parent dfa17956c9
commit e1b6fa25e9

View File

@ -197,12 +197,7 @@ def get_locale():
if user.nickname != 'Guest': # if the account is the guest account bypass the config lang settings if user.nickname != 'Guest': # if the account is the guest account bypass the config lang settings
return user.locale return user.locale
translations = [item.language for item in babel.list_translations()] + ['en'] translations = [item.language for item in babel.list_translations()] + ['en']
preferred = [x.replace('-', '_') for x in request.accept_languages.values()] preferred = [str(LC.parse(x, '-')) for x in request.accept_languages.values()]
# In the case of Simplified Chinese, Accept-Language is "zh-CN", while our translation of Simplified Chinese is "zh_Hans_CN".
# TODO: This is Not a good solution, should be improved.
if "zh_CN" in preferred:
return "zh_Hans_CN"
return negotiate_locale(preferred, translations) return negotiate_locale(preferred, translations)