diff --git a/addons/website/models/website.py b/addons/website/models/website.py index b8c7057757b..a1414f204bc 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -233,7 +233,31 @@ class website(osv.osv): return [(lg.code, lg.name) for lg in website.language_ids] def get_languages(self, cr, uid, ids, context=None): - return self._get_languages(cr, uid, ids[0]) + return self._get_languages(cr, uid, ids[0], context=context) + + def get_alternate_languages(self, cr, uid, ids, req=None, context=None): + langs = [] + if req is None: + req = request.httprequest + default = self.get_current_website(cr, uid, context=context).default_lang_code + uri = req.path + if req.query_string: + uri += '?' + req.query_string + shorts = [] + for code, name in self.get_languages(cr, uid, ids, context=context): + lg_path = ('/' + code) if code != default else '' + lg = code.split('_') + shorts.append(lg[0]) + lang = { + 'hreflang': ('-'.join(lg)).lower(), + 'short': lg[0], + 'href': req.url_root[0:-1] + lg_path + uri, + } + langs.append(lang) + for lang in langs: + if shorts.count(lang['short']) == 1: + lang['hreflang'] = lang['short'] + return langs def get_current_website(self, cr, uid, context=None): # TODO: Select website, currently hard coded diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml index 7c5b633e21c..ff0f624fa28 100644 --- a/addons/website/views/website_templates.xml +++ b/addons/website/views/website_templates.xml @@ -83,10 +83,9 @@ <t t-esc="title"/> - - - - + + +