diff --git a/addons/http_routing/models/ir_http.py b/addons/http_routing/models/ir_http.py index b288718ba7c..c95d86509fd 100644 --- a/addons/http_routing/models/ir_http.py +++ b/addons/http_routing/models/ir_http.py @@ -170,7 +170,9 @@ def is_multilang_url(local_url, langs=None): func = router.match(path, method='POST', query_args=query_string)[0] return (func.routing.get('website', False) and func.routing.get('multilang', func.routing['type'] == 'http')) - except Exception: + except werkzeug.exceptions.NotFound: + return True + except Exception as e: return False @@ -331,7 +333,7 @@ class IrHttp(models.AbstractModel): request.is_frontend_multilang = ( request.is_frontend and - func and func.routing.get('multilang', func.routing['type'] == 'http') + (not func or (func and func.routing.get('multilang', func.routing['type'] == 'http'))) ) cls._geoip_setup_resolver() diff --git a/addons/website/models/website.py b/addons/website/models/website.py index 797825c9131..5ce52c0516c 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -50,6 +50,7 @@ class Website(models.Model): language_ids = fields.Many2many('res.lang', 'website_lang_rel', 'website_id', 'lang_id', 'Languages', default=_active_languages) default_lang_id = fields.Many2one('res.lang', string="Default Language", default=_default_language, required=True) default_lang_code = fields.Char(related='default_lang_id.code', string="Default language code", store=True) + auto_redirect_lang = fields.Boolean('Autoredirect Language', default=True, help="Should users be redirected to their browser's language") social_twitter = fields.Char(related="company_id.social_twitter") social_facebook = fields.Char(related="company_id.social_facebook")