dateMenu: Format weather forecast times without AM/PM

If the clock is set to 12h, the AM/PM in the weather forecast times
should be clear from the context, because they are the immediately
following hours. This makes it less likely that the times will be
ellipsized (in which case the AM/PM wouldn't be shown anyway.)

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/835
This commit is contained in:
Philip Chimento 2019-11-19 13:15:34 -08:00
parent c1a7c71549
commit 83f224e08b
2 changed files with 10 additions and 1 deletions

View File

@ -217,7 +217,10 @@ function formatTime(time, params) {
_desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' }); _desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' });
let clockFormat = _desktopSettings.get_string('clock-format'); let clockFormat = _desktopSettings.get_string('clock-format');
params = Params.parse(params, { timeOnly: false }); params = Params.parse(params, {
timeOnly: false,
ampm: true,
});
if (clockFormat == '24h') { if (clockFormat == '24h') {
// Show only the time if date is on today // Show only the time if date is on today
@ -279,6 +282,11 @@ function formatTime(time, params) {
format = N_("%B %-d %Y, %l\u2236%M %p"); format = N_("%B %-d %Y, %l\u2236%M %p");
} }
// Time in short 12h format, without the equivalent of "AM" or "PM"; used
// when it is clear from the context
if (!params.ampm)
format = format.replace(/\s*%p/g, '');
let formattedTime = 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 // prepend LTR-mark to colon/ratio to force a text direction on times
return formattedTime.replace(/([:\u2236])/g, '\u200e$1'); return formattedTime.replace(/([:\u2236])/g, '\u200e$1');

View File

@ -336,6 +336,7 @@ class WeatherSection extends St.Button {
let [ok_, timestamp] = fc.get_value_update(); let [ok_, timestamp] = fc.get_value_update();
let timeStr = Util.formatTime(new Date(timestamp * 1000), { let timeStr = Util.formatTime(new Date(timestamp * 1000), {
timeOnly: true, timeOnly: true,
ampm: false,
}); });
let icon = new St.Icon({ style_class: 'weather-forecast-icon', let icon = new St.Icon({ style_class: 'weather-forecast-icon',