telepathyClient: Only use 12-hour format when supported by the locale

It is a bit odd to request AM/PM format when the locale selected
by LC_TIME lacks the concept. We ignore the format setting in that
case elsewhere and assume 24-hour format, let's do the same for
chat timestamps for consistency.

https://bugzilla.gnome.org/show_bug.cgi?id=728271
This commit is contained in:
Florian Müllner 2014-04-03 17:16:48 +02:00
parent df1bed941d
commit b8f0d0f0dc

View File

@ -948,78 +948,74 @@ const ChatNotification = new Lang.Class({
let desktopSettings = new Gio.Settings({ schema: 'org.gnome.desktop.interface' }); let desktopSettings = new Gio.Settings({ schema: 'org.gnome.desktop.interface' });
let clockFormat = desktopSettings.get_string(CLOCK_FORMAT_KEY); let clockFormat = desktopSettings.get_string(CLOCK_FORMAT_KEY);
let hasAmPm = date.toLocaleFormat('%p') != '';
switch (clockFormat) { if (clockFormat == '24h' || !hasAmPm) {
case '24h': // Show only the time if date is on today
// Show only the time if date is on today if(daysAgo < 1){
if(daysAgo < 1){ /* Translators: Time in 24h format */
/* Translators: Time in 24h format */ format = _("%H\u2236%M");
format = _("%H\u2236%M"); }
} // Show the word "Yesterday" and time if date is on yesterday
// Show the word "Yesterday" and time if date is on yesterday else if(daysAgo <2){
else if(daysAgo <2){ /* Translators: this is the word "Yesterday" followed by a
/* Translators: this is the word "Yesterday" followed by a time string in 24h format. i.e. "Yesterday, 14:30" */
time string in 24h format. i.e. "Yesterday, 14:30" */ // xgettext:no-c-format
// xgettext:no-c-format format = _("Yesterday, %H\u2236%M");
format = _("Yesterday, %H\u2236%M"); }
} // Show a week day and time if date is in the last week
// Show a week day and time if date is in the last week else if (daysAgo < 7) {
else if (daysAgo < 7) { /* Translators: this is the week day name followed by a time
/* Translators: this is the week day name followed by a time string in 24h format. i.e. "Monday, 14:30" */
string in 24h format. i.e. "Monday, 14:30" */ // xgettext:no-c-format
// xgettext:no-c-format format = _("%A, %H\u2236%M");
format = _("%A, %H\u2236%M");
} else if (date.getYear() == now.getYear()) { } else if (date.getYear() == now.getYear()) {
/* Translators: this is the month name and day number /* Translators: this is the month name and day number
followed by a time string in 24h format. followed by a time string in 24h format.
i.e. "May 25, 14:30" */ i.e. "May 25, 14:30" */
// xgettext:no-c-format // xgettext:no-c-format
format = _("%B %d, %H\u2236%M"); format = _("%B %d, %H\u2236%M");
} else { } else {
/* Translators: this is the month name, day number, year /* Translators: this is the month name, day number, year
number followed by a time string in 24h format. number followed by a time string in 24h format.
i.e. "May 25 2012, 14:30" */ i.e. "May 25 2012, 14:30" */
// xgettext:no-c-format // xgettext:no-c-format
format = _("%B %d %Y, %H\u2236%M"); format = _("%B %d %Y, %H\u2236%M");
} }
break; } else {
default: // Show only the time if date is on today
/* explicit fall-through */ if(daysAgo < 1){
case '12h': /* Translators: Time in 24h format */
// Show only the time if date is on today format = _("%l\u2236%M %p");
if(daysAgo < 1){ }
/* Translators: Time in 24h format */ // Show the word "Yesterday" and time if date is on yesterday
format = _("%l\u2236%M %p"); else if(daysAgo <2){
} /* Translators: this is the word "Yesterday" followed by a
// Show the word "Yesterday" and time if date is on yesterday time string in 12h format. i.e. "Yesterday, 2:30 pm" */
else if(daysAgo <2){ // xgettext:no-c-format
/* Translators: this is the word "Yesterday" followed by a format = _("Yesterday, %l\u2236%M %p");
time string in 12h format. i.e. "Yesterday, 2:30 pm" */ }
// xgettext:no-c-format // Show a week day and time if date is in the last week
format = _("Yesterday, %l\u2236%M %p"); else if (daysAgo < 7) {
} /* Translators: this is the week day name followed by a time
// Show a week day and time if date is in the last week string in 12h format. i.e. "Monday, 2:30 pm" */
else if (daysAgo < 7) { // xgettext:no-c-format
/* Translators: this is the week day name followed by a time format = _("%A, %l\u2236%M %p");
string in 12h format. i.e. "Monday, 2:30 pm" */
// xgettext:no-c-format
format = _("%A, %l\u2236%M %p");
} else if (date.getYear() == now.getYear()) { } else if (date.getYear() == now.getYear()) {
/* Translators: this is the month name and day number /* Translators: this is the month name and day number
followed by a time string in 12h format. followed by a time string in 12h format.
i.e. "May 25, 2:30 pm" */ i.e. "May 25, 2:30 pm" */
// xgettext:no-c-format // xgettext:no-c-format
format = _("%B %d, %l\u2236%M %p"); format = _("%B %d, %l\u2236%M %p");
} else { } else {
/* Translators: this is the month name, day number, year /* Translators: this is the month name, day number, year
number followed by a time string in 12h format. number followed by a time string in 12h format.
i.e. "May 25 2012, 2:30 pm"*/ i.e. "May 25 2012, 2:30 pm"*/
// xgettext:no-c-format // xgettext:no-c-format
format = _("%B %d %Y, %l\u2236%M %p"); format = _("%B %d %Y, %l\u2236%M %p");
} }
break;
} }
return date.toLocaleFormat(format); return date.toLocaleFormat(format);
}, },