Index: ./widgets/misc/e-calendar-item.c
===================================================================
RCS file: /cvs/gnome/evolution/widgets/misc/e-calendar-item.c,v
retrieving revision 1.53
diff -u -8 -p -r1.53 e-calendar-item.c
--- ./widgets/misc/e-calendar-item.c	4 Dec 2006 15:43:45 -0000	1.53
+++ ./widgets/misc/e-calendar-item.c	5 Jan 2007 14:33:51 -0000
@@ -32,16 +32,17 @@
 #endif
 
 #include "e-calendar-item.h"
 #include "ea-widgets.h"
 
 #include <time.h>
 #include <string.h>
 #include <glib.h>
+#include <glib/gi18n.h> 		
 #include <gtk/gtkmain.h>
 #include <gtk/gtkmenu.h>
 #include <gtk/gtkmenuitem.h>
 #include <gtk/gtklabel.h>
 #include <gtk/gtksignal.h>
 #include <gdk/gdkkeysyms.h>
 #include <libgnome/gnome-i18n.h>
 #include <libedataserver/e-data-server-util.h>
@@ -407,19 +408,26 @@ e_calendar_item_init (ECalendarItem *cal
 	calitem->style_callback_data = NULL;
 	calitem->style_callback_destroy = NULL;
 
 	calitem->time_callback = NULL;
 	calitem->time_callback_data = NULL;
 	calitem->time_callback_destroy = NULL;
 
 	/* Translators: These are the first characters of each day of the
-	   week, 'M' for 'Monday', 'T' for Tuesday etc. */
-	calitem->days = _("MTWTFSS");
-
+	   week, 'M' for 'Monday', 'T' for Tuesday etc. Please use as small representation
+	   for them as possible. Skip the "context-name" part when translating.*/
+	calitem->days[0] = Q_("context-Monday|M");
+	calitem->days[1] = Q_("context-Tuesday|T");
+	calitem->days[2] = Q_("context-Wednesday|W");
+	calitem->days[3] = Q_("context-Thursday|T");
+	calitem->days[4] = Q_("context-Friday|F");
+	calitem->days[5] = Q_("context-Saturday|S");
+	calitem->days[6] = Q_("context-Sunday|S");
+	
 	calitem->signal_emission_idle_id = 0;
 }
 
 
 static void
 e_calendar_item_destroy		(GtkObject *o)
 {
 	ECalendarItem *calitem;
@@ -960,28 +968,17 @@ e_calendar_item_draw		(GnomeCanvasItem *
 
 	pango_font_metrics_unref (font_metrics);
 }
 
 
 static void
 layout_set_day_text (ECalendarItem *calitem, PangoLayout *layout, int day_index)
 {
-	char *day;
-	int char_size = 0;
-
-	day = g_utf8_offset_to_pointer (calitem->days, day_index);
-
-	/* we use strlen because we actually want to count bytes */
-	if (day_index == 6)
-		char_size = strlen (day); 
-	else
-		char_size = strlen (day) - strlen (g_utf8_find_next_char (day, NULL));
-
-	pango_layout_set_text (layout, day, char_size);	
+	pango_layout_set_text (layout, calitem->days[day_index], -1);
 }
 
 static void
 e_calendar_item_draw_month	(ECalendarItem   *calitem,
 				 GdkDrawable	 *drawable,
 				 int		  x,
 				 int		  y,
 				 int		  width,
@@ -1607,28 +1604,17 @@ e_calendar_item_draw		(GnomeCanvasItem *
 	pango_font_metrics_unref (font_metrics);
 	cairo_destroy (cr);
 }
 
 
 static void
 layout_set_day_text (ECalendarItem *calitem, PangoLayout *layout, int day_index)
 {
-	char *day;
-	int char_size = 0;
-
-	day = g_utf8_offset_to_pointer (calitem->days, day_index);
-
-	/* we use strlen because we actually want to count bytes */
-	if (day_index == 6)
-		char_size = strlen (day); 
-	else
-		char_size = strlen (day) - strlen (g_utf8_find_next_char (day, NULL));
-
-	pango_layout_set_text (layout, day, char_size);	
+	pango_layout_set_text (layout, calitem->days[day_index], -1);
 }
 
 static void
 e_calendar_item_draw_month	(ECalendarItem   *calitem,
 				 GdkDrawable	 *drawable,
 				 int		  x,
 				 int		  y,
 				 int		  width,
Index: ./widgets/misc/e-calendar-item.h
===================================================================
RCS file: /cvs/gnome/evolution/widgets/misc/e-calendar-item.h,v
retrieving revision 1.19
diff -u -8 -p -r1.19 e-calendar-item.h
--- ./widgets/misc/e-calendar-item.h	28 Apr 2005 08:03:47 -0000	1.19
+++ ./widgets/misc/e-calendar-item.h	5 Jan 2007 14:33:53 -0000
@@ -211,18 +211,18 @@ struct _ECalendarItem
 	gboolean selection_set;
 	gint selection_start_month_offset;
 	gint selection_start_day;
 	gint selection_end_month_offset;
 	gint selection_end_day;
 	gint selection_real_start_month_offset;
 	gint selection_real_start_day;
 
-	/* The first character of each day of the week, e.g. 'MTWTFSS'. */
-	gchar *days;
+	/* A array of string pointers to hold day names (abbriviated to 2 chars) */
+	gchar *days[7];
 
 	/* Widths of the day characters. */
 	gint day_widths[7];
 
 	/* Widths of the digits, '0' .. '9'. */
 	gint digit_widths[10];
 	gint max_digit_width;
 	gint week_number_digit_widths[10];
Index: calendar/gui/weekday-picker.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/weekday-picker.c,v
retrieving revision 1.21
diff -u -8 -p -r1.21 weekday-picker.c
--- calendar/gui/weekday-picker.c	8 Feb 2006 13:06:02 -0000	1.21
+++ calendar/gui/weekday-picker.c	5 Jan 2007 15:04:37 -0000
@@ -310,30 +310,27 @@ colorize_items (WeekdayPicker *wp)
 				       NULL);
 	}
 }
 
 /* Configures the items in the weekday picker by setting their attributes. */
 static char *
 get_day_text (int day_index)
 {
-	/* The first letter of each day of the week starting with Sunday */
-	const char *str = _("SMTWTFS");
-	char *day;
-	int char_size = 0;
-
-	day = g_utf8_offset_to_pointer (str, day_index);
-
-	/* we use strlen because we actually want to count bytes */
-	if (day_index == 6)
-		char_size = strlen (day); 
-	else
-		char_size = strlen (day) - strlen (g_utf8_find_next_char (day, NULL));
-
-	return g_strndup (day, char_size);
+	/* The first letter of each day of the week */
+	gchar *days[7];
+	days[0] = Q_("context-Monday|M");
+	days[1] = Q_("context-Tuesday|T");
+	days[2] = Q_("context-Wednesday|W");
+	days[3] = Q_("context-Thursday|T");
+	days[4] = Q_("context-Friday|F");
+	days[5] = Q_("context-Saturday|S");
+	days[6] = Q_("context-Sunday|S");
+	
+	return g_strdup(days[day_index]);
 }
 
 static void
 configure_items (WeekdayPicker *wp)
 {
 	WeekdayPickerPrivate *priv;
 	int width, height;
 	int box_width;
