diff --git a/cps/web.py b/cps/web.py index f482d8ab..f03ef83d 100644 --- a/cps/web.py +++ b/cps/web.py @@ -194,7 +194,13 @@ def get_locale(): if user.nickname != 'Guest': # if the account is the guest account bypass the config lang settings return user.locale translations = [str(item) for item in babel.list_translations()] + ['en'] - preferred = [str(LC.parse(x.replace('-','_').replace('*','en'))) for x in request.accept_languages.values()] + preferred = list() + for x in request.accept_languages.values(): + try: + preferred.append(str(LC.parse(x.replace('-', '_')))) + except (UnknownLocaleError, ValueError) as e: + app.logger.debug("Could not parse locale: %s", e) + preferred.append('en') return negotiate_locale(preferred, translations)