[glib] g_date_time_format: honour T_FMT_AMPM for '%r'
- From: Ryan Lortie <ryanl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] g_date_time_format: honour T_FMT_AMPM for '%r'
- Date: Mon, 5 Sep 2011 04:10:45 +0000 (UTC)
commit b6fdbb8e448be794fd9d098dc5f2bd327b2f23f0
Author: Ryan Lortie <desrt desrt ca>
Date: Sun Sep 4 18:01:55 2011 -0400
g_date_time_format: honour T_FMT_AMPM for '%r'
We had the 12 hour time format hard-coded to "%02d:%02d:%02d %s" but it
actually changes depending on the locale. Just with the other formats,
use nl_langinfo() if we have it, otherwise fall back on gettext().
configure.ac | 2 ++
glib/gdatetime.c | 17 +++++++----------
2 files changed, 9 insertions(+), 10 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 061964e..1f5493d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1323,8 +1323,10 @@ AC_CACHE_CHECK([for nl_langinfo (PM_STR)],glib_cv_langinfo_time,[
AC_TRY_COMPILE([#include <langinfo.h>],
[char *str;
str = nl_langinfo (PM_STR);
+ str = nl_langinfo (D_T_FMT);
str = nl_langinfo (D_FMT);
str = nl_langinfo (T_FMT);
+ str = nl_langinfo (T_FMT_AMPM);
str = nl_langinfo (MON_1);
str = nl_langinfo (ABMON_12);
str = nl_langinfo (DAY_1);
diff --git a/glib/gdatetime.c b/glib/gdatetime.c
index f3dbba5..c3dd6b7 100644
--- a/glib/gdatetime.c
+++ b/glib/gdatetime.c
@@ -175,6 +175,8 @@ static const guint16 days_in_year[2][13] =
#define PREFERRED_DATE_TIME_FMT nl_langinfo (D_T_FMT)
#define PREFERRED_DATE_FMT nl_langinfo (D_FMT)
#define PREFERRED_TIME_FMT nl_langinfo (T_FMT)
+#define PREFERRED_TIME_FMT nl_langinfo (T_FMT)
+#define PREFERRED_12HR_TIME_FMT nl_langinfo (T_FMT_AMPM)
static const gint weekday_item[2][7] =
{
@@ -210,6 +212,8 @@ static const gint month_item[2][12] =
/* Translators: this is the preferred format for expressing the time */
#define PREFERRED_TIME_FMT C_("GDateTime", "%H:%M:%S")
+/* Translators: this is the preferred format for expressing 12 hour time */
+#define PREFERRED_12HR_TIME_FMT C_("GDateTime", "%I:%M:%S %p")
#define WEEKDAY_ABBR(d) (get_weekday_name_abbr (g_date_time_get_day_of_week (d)))
#define WEEKDAY_FULL(d) (get_weekday_name (g_date_time_get_day_of_week (d)))
@@ -2535,16 +2539,9 @@ g_date_time_format (GDateTime *datetime,
break;
case 'r':
{
- gint hour = g_date_time_get_hour (datetime) % 12;
- if (hour == 0)
- hour = 12;
- ampm = g_utf8_strup (GET_AMPM (datetime), -1);
- g_string_append_printf (outstr, "%02d:%02d:%02d %s",
- hour,
- g_date_time_get_minute (datetime),
- g_date_time_get_second (datetime),
- ampm);
- g_free (ampm);
+ tmp = g_date_time_format (datetime, PREFERRED_12HR_TIME_FMT);
+ g_string_append (outstr, tmp);
+ g_free (tmp);
}
break;
case 'R':
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]