From 57071f72502baa93f1b240d57f11fdffa04db086 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Arnauts?= Date: Thu, 5 Jan 2017 14:38:27 +0100 Subject: [PATCH] Fix locale for non-english users (#170) * Take navigator.languages into account when determining the preferred language * Lookup language only once, use it also for other date/time functions * Show the date picker value in localized date * Show the date picker value in localized date (in history) --- panels/history/ha-panel-history.html | 2 +- panels/logbook/ha-panel-logbook.html | 2 +- src/util/hass-util.html | 9 ++++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/panels/history/ha-panel-history.html b/panels/history/ha-panel-history.html index f1b04d7a70..750d4d0a93 100644 --- a/panels/history/ha-panel-history.html +++ b/panels/history/ha-panel-history.html @@ -117,7 +117,7 @@ Polymer({ hass.entityHistoryGetters.currentDate, function (currentDate) { var dateObj = new Date(currentDate); - return dateObj.toLocaleDateString(); + return window.hassUtil.formatDate(dateObj); }, ]; }, diff --git a/panels/logbook/ha-panel-logbook.html b/panels/logbook/ha-panel-logbook.html index da4fdfe2d2..e47ac12c3e 100644 --- a/panels/logbook/ha-panel-logbook.html +++ b/panels/logbook/ha-panel-logbook.html @@ -100,7 +100,7 @@ Polymer({ hass.logbookGetters.currentDate, function (currentDate) { var dateObj = new Date(currentDate); - return dateObj.toLocaleDateString(); + return window.hassUtil.formatDate(dateObj); }, ]; }, diff --git a/src/util/hass-util.html b/src/util/hass-util.html index ee5bce9aca..bae710051e 100644 --- a/src/util/hass-util.html +++ b/src/util/hass-util.html @@ -34,6 +34,9 @@ window.hassUtil.HIDE_MORE_INFO = [ 'input_select', 'scene', 'script', 'input_slider', ]; +window.hassUtil.LANGUAGE = navigator.languages ? + navigator.languages[0] : navigator.language || navigator.userLanguage; + window.hassUtil.attributeClassNames = function (stateObj, attributes) { if (!stateObj) return ''; return attributes.map( @@ -100,7 +103,7 @@ window.fecha.masks.haDateTime = (window.fecha.masks.shortTime + ' ' + if (toLocaleStringSupportsOptions()) { window.hassUtil.formatDateTime = function (dateObj) { - return dateObj.toLocaleString(navigator.language, { + return dateObj.toLocaleString(window.hassUtil.LANGUAGE, { year: 'numeric', month: 'long', day: 'numeric', @@ -116,7 +119,7 @@ if (toLocaleStringSupportsOptions()) { if (toLocaleDateStringSupportsOptions()) { window.hassUtil.formatDate = function (dateObj) { - return dateObj.toLocaleDateString(navigator.language, + return dateObj.toLocaleDateString(window.hassUtil.LANGUAGE, { year: 'numeric', month: 'long', day: 'numeric' }); }; } else { @@ -127,7 +130,7 @@ if (toLocaleDateStringSupportsOptions()) { if (toLocaleTimeStringSupportsOptions()) { window.hassUtil.formatTime = function (dateObj) { - return dateObj.toLocaleTimeString(navigator.language, + return dateObj.toLocaleTimeString(window.hassUtil.LANGUAGE, { hour: 'numeric', minute: '2-digit' }); }; } else {