From fdf988c04d068f133a03af7c0e47af4af153e5df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 23 Jun 2017 17:37:13 +0200 Subject: [PATCH] util: Force text direction of time strings While the string returned by formatTime() should follow the locale's text direction as a whole, the actual time part is always expected to put hours on the left and minutes to the right. It is possible to enforce that by inserting a left-to-right mark, but so far this is only done by the Hebrew translation. So in order to not require all other RTL translations to be fixed individually, just insert the mark into the returned string ourselves like gnome-desktop's WallClock code does[0]. [0] https://git.gnome.org/browse/gnome-desktop/tree/libgnome-desktop/gnome-wall-clock.c?h=gnome-3-24#n267 https://bugzilla.gnome.org/show_bug.cgi?id=784130 --- js/misc/util.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/js/misc/util.js b/js/misc/util.js index e9aa9ef8a..5abcb54c9 100644 --- a/js/misc/util.js +++ b/js/misc/util.js @@ -280,7 +280,10 @@ function formatTime(time, params) { // xgettext:no-c-format format = N_("%B %d %Y, %l\u2236%M %p"); } - return date.format(Shell.util_translate_time_string(format)); + + let formattedTime = date.format(Shell.util_translate_time_string(format)); + // prepend LTR-mark to colon/ratio to force a text direction on times + return formattedTime.replace(/([:\u2236])/g, '\u200e$1'); } function createTimeLabel(date, params) {