diff --git a/addons/portal/i18n/portal.pot b/addons/portal/i18n/portal.pot index ed76b6fef14..200958639ca 100644 --- a/addons/portal/i18n/portal.pot +++ b/addons/portal/i18n/portal.pot @@ -19,7 +19,7 @@ msgstr "" #. openerp-web #: code:addons/portal/static/src/js/portal_sidebar.js:0 #, python-format -msgid "%d days overdue" +msgid "%1d days overdue" msgstr "" #. module: portal @@ -411,7 +411,7 @@ msgstr "" #. openerp-web #: code:addons/portal/static/src/js/portal_sidebar.js:0 #, python-format -msgid "Due in %d days" +msgid "Due in %1d days" msgstr "" #. module: portal diff --git a/addons/portal/static/src/js/portal_sidebar.js b/addons/portal/static/src/js/portal_sidebar.js index b565e27868b..d081ddec68d 100644 --- a/addons/portal/static/src/js/portal_sidebar.js +++ b/addons/portal/static/src/js/portal_sidebar.js @@ -4,6 +4,7 @@ odoo.define('portal.PortalSidebar', function (require) { var core = require('web.core'); var publicWidget = require('web.public.widget'); var time = require('web.time'); +var session = require('web.session'); var _t = core._t; @@ -34,14 +35,18 @@ var PortalSidebar = publicWidget.Widget.extend({ diff = dateTime.diff(today, 'days', true), displayStr; - if (diff === 0) { - displayStr = _t('Due today'); - } else if (diff > 0) { - displayStr = _.str.sprintf(_t('Due in %d days'), Math.abs(diff)); - } else { - displayStr = _.str.sprintf(_t('%d days overdue'), Math.abs(diff)); - } - $(el).text(displayStr); + session.is_bound.then(function (){ + if (diff === 0) { + displayStr = _t('Due today'); + } else if (diff > 0) { + // Workaround: force uniqueness of these two translations. We use %1d because the string + // with %d is already used in mail and mail's translations are not sent to the frontend. + displayStr = _.str.sprintf(_t('Due in %1d days'), Math.abs(diff)); + } else { + displayStr = _.str.sprintf(_t('%1d days overdue'), Math.abs(diff)); + } + $(el).text(displayStr); + }); }); }, /**