From 35eddb3dfad5579a13a25fb584d7041c23537227 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 d4026e27b..a902aac5e 100644 --- a/js/misc/util.js +++ b/js/misc/util.js @@ -281,7 +281,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) {