From aef375cc0b350ed76e2cb6b41d92cce342e13c4d Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 28 Mar 2019 14:31:01 +0100 Subject: [PATCH] Fix moment.js usage of language and locale Signed-off-by: Joas Schilling --- core/js/js.js | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/core/js/js.js b/core/js/js.js index e03e2334c0985..e65438747977e 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -895,9 +895,33 @@ function initCore() { jQuery.globalEval = function(){}; /** - * Set users locale to moment.js as soon as possible + * Set users language and locale to moment.js as soon as possible */ - moment.locale(OC.getLocale()); + moment.locale(OC.getLanguage()); + var localeData = { + months: moment.localeData().months(), + monthsShort: moment.localeData().monthsShort(), + weekdays: moment.localeData().weekdays(), + weekdaysShort: moment.localeData().weekdaysShort(), + weekdaysMin: moment.localeData().weekdaysMin(), + calendar: moment.localeData().calendar, + relativeTime: moment.localeData()._relativeTime, + }; + + function getBestParentLocale() { + moment.locale([ + OC.getLocale(), + OC.getLocale().split('_')[0], + OC.getLanguage(), + OC.getLanguage().split('_')[0], + 'en', + ]); + return moment.localeData()._abbr; + } + localeData.parentLocale = getBestParentLocale(); + + moment.defineLocale('locale-and-language', localeData); + moment.locale('locale-and-language'); var userAgent = window.navigator.userAgent; var msie = userAgent.indexOf('MSIE ');