diff --git a/addons/website/static/src/js/menu/translate.js b/addons/website/static/src/js/menu/translate.js index 2588d6b6104..dbc45d268ef 100644 --- a/addons/website/static/src/js/menu/translate.js +++ b/addons/website/static/src/js/menu/translate.js @@ -241,6 +241,7 @@ var TranslatePageMenu = websiteNavbarData.WebsiteNavbarActionWidget.extend({ }); self._markTranslatableNodes(); + this.$translations.filter('input[type=hidden].o_translatable_input_hidden').prop('type', 'text'); }, }); diff --git a/addons/website/static/src/scss/website.wysiwyg.scss b/addons/website/static/src/scss/website.wysiwyg.scss index bf236f91900..e9a24a24770 100644 --- a/addons/website/static/src/scss/website.wysiwyg.scss +++ b/addons/website/static/src/scss/website.wysiwyg.scss @@ -58,6 +58,12 @@ html[lang] > body.editor_enable [data-oe-translation-state] { } } +html[data-edit_translations="1"] { + .o_translate_mode_hidden { + display: none !important; + } +} + // SNIPPET PANEL $i: 1; @each $font-name, $font-config in $o-theme-font-configs { diff --git a/odoo/tools/translate.py b/odoo/tools/translate.py index 19efd27db47..f76e813a438 100644 --- a/odoo/tools/translate.py +++ b/odoo/tools/translate.py @@ -151,8 +151,19 @@ TRANSLATED_ATTRS = dict.fromkeys({ 'aria-keyshortcuts', 'aria-placeholder', 'aria-roledescription', 'aria-valuetext', 'value_label', }, lambda e: True) + +def translate_attrib_value(node): + # check if the value attribute of a node must be translated + classes = node.attrib.get('class', '').split(' ') + return ( + (node.tag == 'input' and node.attrib.get('type', 'text') == 'text') + and 'datetimepicker-input' not in classes + or (node.tag == 'input' and node.attrib.get('type') == 'hidden') + and 'o_translatable_input_hidden' in classes + ) + TRANSLATED_ATTRS.update( - value=lambda e: (e.tag == 'input' and e.attrib.get('type', 'text') == 'text') and 'datetimepicker-input' not in e.attrib.get('class', '').split(' '), + value=translate_attrib_value, text=lambda e: (e.tag == 'field' and e.attrib.get('widget', '') == 'url'), **{f't-attf-{attr}': cond for attr, cond in TRANSLATED_ATTRS.items()}, )