Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.41 KB | None | 0 0
  1. diff --git a/libcinnamon-desktop/gnome-wall-clock.c b/libcinnamon-desktop/gnome-wall-clock.c
  2. index 5747882..0de206c 100644
  3. --- a/libcinnamon-desktop/gnome-wall-clock.c
  4. +++ b/libcinnamon-desktop/gnome-wall-clock.c
  5. @@ -23,6 +23,7 @@
  6. */
  7.  
  8. #include "config.h"
  9. +#include "locale.h"
  10.  
  11. #include <glib/gi18n-lib.h>
  12.  
  13. @@ -60,37 +61,69 @@ enum {
  14.  
  15. G_DEFINE_TYPE (GnomeWallClock, gnome_wall_clock, G_TYPE_OBJECT);
  16.  
  17. +/*
  18. + * Translate @str according to the locale defined by LC_TIME; unlike
  19. + * dcgettext(), the translation is still taken from the LC_MESSAGES
  20. + * catalogue and not the LC_TIME one.
  21. + */
  22. +static const char *
  23. +translate_time_format_string (const char *str)
  24. +{
  25. + const char *locale = g_getenv ("LC_TIME");
  26. + const char *res;
  27. + char *sep;
  28. + locale_t old_loc;
  29. + locale_t loc = (locale_t)0;
  30. +
  31. + if (locale)
  32. + loc = newlocale (LC_MESSAGES_MASK, locale, (locale_t)0);
  33. +
  34. + old_loc = uselocale (loc);
  35. +
  36. + sep = strchr (str, '\004');
  37. + res = g_dpgettext (GETTEXT_PACKAGE, str, sep ? sep - str + 1 : 0);
  38. +
  39. + uselocale (old_loc);
  40. +
  41. + if (loc != (locale_t)0)
  42. + freelocale (loc);
  43. +
  44. + return res;
  45. +}
  46. +
  47. +#define T_(string) translate_time_format_string (string)
  48. +
  49. /* Date/Time format defaults - options are stored in org.cinnamon.desktop.interface keys.
  50. * The wall clock is used variously in Cinnamon applets and desklets, as well as
  51. * cinnamon-screensaver's default lock screen. */
  52.  
  53. /* Default date format (typically matching date portion of WITH_DATE_* defaults.)
  54. * Currently used by cinnamon-screensaver default clock */
  55. -#define DATE_ONLY (_("%A, %B %e"))
  56. +#define DATE_ONLY (T_(N_("%A, %B %e")))
  57.  
  58. /* Defaut date/time format when show-date, show-seconds, use-24h are set */
  59. -#define WITH_DATE_24H_SECONDS (_("%A %B %e, %R:%S"))
  60. +#define WITH_DATE_24H_SECONDS (T_(N_("%A %B %e, %R:%S")))
  61.  
  62. /* Default date/time format when show-date, show-seconds are set */
  63. -#define WITH_DATE_12H_SECONDS (_("%A %B %e, %l:%M:%S %p"))
  64. +#define WITH_DATE_12H_SECONDS (T_(N_("%A %B %e, %l:%M:%S %p")))
  65.  
  66. /* Default date/time format when show-date, use-24h are set */
  67. -#define WITH_DATE_24H (_("%A %B %e, %R"))
  68. +#define WITH_DATE_24H (T_(N_("%A %B %e, %R")))
  69.  
  70. /* Default date/time format when just show-date is set */
  71. -#define WITH_DATE_12H (_("%A %B %e, %l:%M %p"))
  72. +#define WITH_DATE_12H (T_(N_("%A %B %e, %l:%M %p")))
  73.  
  74. /* Default date/time format when show-seconds, use-24h are set */
  75. -#define NO_DATE_24H_SECONDS (_("%R:%S"))
  76. +#define NO_DATE_24H_SECONDS (T_(N_("%R:%S")))
  77.  
  78. /* Default date/time format when just show-seconds is set */
  79. -#define NO_DATE_12H_SECONDS (_("%l:%M:%S %p"))
  80. +#define NO_DATE_12H_SECONDS (T_(N_("%l:%M:%S %p")))
  81.  
  82. /* Default date/time format when just use-24h is set */
  83. -#define NO_DATE_24H (_("%R"))
  84. +#define NO_DATE_24H (T_(N_("%R")))
  85.  
  86. /* Default date/time format with no options are set */
  87. -#define NO_DATE_12H (_("%l:%M %p"))
  88. +#define NO_DATE_12H (T_(N_("%l:%M %p")))
  89.  
  90. #define NO_DATE ("")
  91.  
  92. @@ -212,6 +245,9 @@ gnome_wall_clock_class_init (GnomeWallClockClass *klass)
  93. {
  94. GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
  95.  
  96. + bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
  97. + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
  98. +
  99. gobject_class->get_property = gnome_wall_clock_get_property;
  100. gobject_class->set_property = gnome_wall_clock_set_property;
  101. gobject_class->dispose = gnome_wall_clock_dispose;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement