|
Lines 660-666
find_attendee (icalcomponent *ical_comp,
|
Link Here
|
|---|
|
| |
static void | static void |
write_label_piece (EItipControl *itip, ECalComponentDateTime *dt, | write_label_piece (EItipControl *itip, ECalComponentDateTime *dt, |
char *buffer, int size, |
GString *buffer, |
const char *stext, const char *etext, | const char *stext, const char *etext, |
gboolean just_date) | gboolean just_date) |
{ | { |
|
Lines 685-697
write_label_piece (EItipControl *itip, E
|
Link Here
|
|---|
|
tmp_tm.tm_hour = tmp_tm.tm_min = tmp_tm.tm_sec = 0; | tmp_tm.tm_hour = tmp_tm.tm_min = tmp_tm.tm_sec = 0; |
| |
if (stext != NULL) | if (stext != NULL) |
strcat (buffer, stext); |
g_string_append (buffer, stext); |
| |
e_time_format_date_and_time (&tmp_tm, | e_time_format_date_and_time (&tmp_tm, |
calendar_config_get_24_hour_format (), | calendar_config_get_24_hour_format (), |
FALSE, FALSE, | FALSE, FALSE, |
time_buf, sizeof (time_buf)); | time_buf, sizeof (time_buf)); |
strcat (buffer, time_buf); |
g_string_append (buffer, time_buf); |
| |
if (!dt->value->is_utc && dt->tzid) { | if (!dt->value->is_utc && dt->tzid) { |
zone = icalcomponent_get_timezone (priv->top_level, dt->tzid); | zone = icalcomponent_get_timezone (priv->top_level, dt->tzid); |
|
Lines 703-723
write_label_piece (EItipControl *itip, E
|
Link Here
|
|---|
|
UTF-8. But it probably is not translated. */ | UTF-8. But it probably is not translated. */ |
display_name = icaltimezone_get_display_name (zone); | display_name = icaltimezone_get_display_name (zone); |
if (display_name && *display_name) { | if (display_name && *display_name) { |
strcat (buffer, " <font size=-1>["); |
g_string_append_len (buffer, " <font size=-1>[", 16); |
| |
/* We check if it is one of our builtin timezone names, | /* We check if it is one of our builtin timezone names, |
in which case we call gettext to translate it. */ | in which case we call gettext to translate it. */ |
if (icaltimezone_get_builtin_timezone (display_name)) { | if (icaltimezone_get_builtin_timezone (display_name)) { |
strcat (buffer, _(display_name)); |
g_string_append_printf (buffer, "%s", _(display_name)); |
} else { | } else { |
strcat (buffer, display_name); |
g_string_append_printf (buffer, "%s", display_name); |
} | } |
strcat (buffer, "]</font>"); |
g_string_append_len (buffer, "]</font>", 8); |
} | } |
} | } |
| |
if (etext != NULL) | if (etext != NULL) |
strcat (buffer, etext); |
g_string_append (buffer, etext); |
} | } |
| |
static const char * | static const char * |
|
Lines 754-772
get_dayname (struct icalrecurrencetype *
|
Link Here
|
|---|
|
| |
static void | static void |
write_recurrence_piece (EItipControl *itip, ECalComponent *comp, | write_recurrence_piece (EItipControl *itip, ECalComponent *comp, |
char *buffer, int size) |
GString *buffer) |
{ | { |
GSList *rrules; | GSList *rrules; |
struct icalrecurrencetype *r; | struct icalrecurrencetype *r; |
int len, i; |
int i; |
| |
strcpy (buffer, "<b>Recurring:</b> "); |
g_string_append_len (buffer, "<b>Recurring:</b> ", 18); |
len = strlen (buffer); |
|
buffer += len; |
|
size -= len; |
|
| |
if (!e_cal_component_has_simple_recurrence (comp)) { | if (!e_cal_component_has_simple_recurrence (comp)) { |
strcpy (buffer, _("Yes. (Complex Recurrence)")); |
g_string_append_printf ( |
|
buffer, "%s", _("Yes. (Complex Recurrence)")); |
return; | return; |
} | } |
| |
|
Lines 782-788
write_recurrence_piece (EItipControl *it
|
Link Here
|
|---|
|
Every %d day/days" */ | Every %d day/days" */ |
/* For Translators : 'Every day' is event Recurring every day */ | /* For Translators : 'Every day' is event Recurring every day */ |
/* For Translators : 'Every %d days' is event Recurring every %d days. %d is a digit */ | /* For Translators : 'Every %d days' is event Recurring every %d days. %d is a digit */ |
sprintf (buffer, ngettext("Every day", "Every %d days", r->interval), r->interval); |
g_string_append_printf ( |
|
buffer, ngettext ("Every day", |
|
"Every %d days", r->interval), |
|
r->interval); |
break; | break; |
| |
case ICAL_WEEKLY_RECURRENCE: | case ICAL_WEEKLY_RECURRENCE: |
|
Lines 792-820
write_recurrence_piece (EItipControl *it
|
Link Here
|
|---|
|
Every %d week/weeks" */ | Every %d week/weeks" */ |
/* For Translators : 'Every week' is event Recurring every week */ | /* For Translators : 'Every week' is event Recurring every week */ |
/* For Translators : 'Every %d weeks' is event Recurring every %d weeks. %d is a digit */ | /* For Translators : 'Every %d weeks' is event Recurring every %d weeks. %d is a digit */ |
sprintf (buffer, ngettext("Every week", "Every %d weeks", r->interval), r->interval); |
g_string_append_printf ( |
|
buffer, ngettext ("Every week", |
|
"Every %d weeks", r->interval), |
|
r->interval); |
} else { | } else { |
/* For Translators : 'Every week on' is event Recurring every week on (dayname) and (dayname) and (dayname) */ | /* For Translators : 'Every week on' is event Recurring every week on (dayname) and (dayname) and (dayname) */ |
/* For Translators : 'Every %d weeks on' is event Recurring: every %d weeks on (dayname) and (dayname). %d is a digit */ | /* For Translators : 'Every %d weeks on' is event Recurring: every %d weeks on (dayname) and (dayname). %d is a digit */ |
sprintf (buffer, ngettext("Every week on ", "Every %d weeks on ", r->interval), r->interval); |
g_string_append_printf ( |
|
buffer, ngettext ("Every week on ", |
|
"Every %d weeks on ", r->interval), |
|
r->interval); |
| |
for (i = 1; i < 8 && r->by_day[i] != ICAL_RECURRENCE_ARRAY_MAX; i++) { | for (i = 1; i < 8 && r->by_day[i] != ICAL_RECURRENCE_ARRAY_MAX; i++) { |
if (i > 1) | if (i > 1) |
strcat (buffer, ", "); |
g_string_append_len (buffer, ", ", 2); |
strcat (buffer, get_dayname (r, i - 1)); |
g_string_append (buffer, get_dayname (r, i - 1)); |
} | } |
if (i > 1) | if (i > 1) |
/* For Translators : 'and' is part of the sentence 'event recurring every week on (dayname) and (dayname)' */ | /* For Translators : 'and' is part of the sentence 'event recurring every week on (dayname) and (dayname)' */ |
strcat (buffer, _(" and ")); |
g_string_append_printf (buffer, "%s", _(" and ")); |
strcat (buffer, get_dayname (r, i - 1)); |
g_string_append (buffer, get_dayname (r, i - 1)); |
} | } |
break; | break; |
| |
case ICAL_MONTHLY_RECURRENCE: | case ICAL_MONTHLY_RECURRENCE: |
if (r->by_month_day[0] != ICAL_RECURRENCE_ARRAY_MAX) { | if (r->by_month_day[0] != ICAL_RECURRENCE_ARRAY_MAX) { |
/* For Translators : 'The %s day of' is part of the sentence 'event recurring on the (nth) day of every month.' */ | /* For Translators : 'The %s day of' is part of the sentence 'event recurring on the (nth) day of every month.' */ |
sprintf (buffer, _("The %s day of "), |
g_string_append_printf ( |
nth (r->by_month_day[0])); |
buffer, _("The %s day of "), |
|
nth (r->by_month_day[0])); |
} else { | } else { |
int pos; | int pos; |
| |
|
Lines 828-847
write_recurrence_piece (EItipControl *it
|
Link Here
|
|---|
|
| |
/* For Translators : 'The %s %s of' is part of the sentence 'event recurring on the (nth) (dayname) of every month.' | /* For Translators : 'The %s %s of' is part of the sentence 'event recurring on the (nth) (dayname) of every month.' |
eg,third monday of every month */ | eg,third monday of every month */ |
sprintf (buffer, _("The %s %s of "), |
g_string_append_printf ( |
nth (pos), get_dayname (r, 0)); |
buffer, _("The %s %s of "), |
|
nth (pos), get_dayname (r, 0)); |
} | } |
| |
len = strlen (buffer); |
|
buffer += len; |
|
size -= len; |
|
/* For Translators: In this can also be translated as "With the period of %d | /* For Translators: In this can also be translated as "With the period of %d |
month/months", where %d is a number. The entire sentence is of the form "Recurring: | month/months", where %d is a number. The entire sentence is of the form "Recurring: |
Every %d month/months" */ | Every %d month/months" */ |
/* For Translators : 'every month' is part of the sentence 'event recurring on the (nth) day of every month.' */ | /* For Translators : 'every month' is part of the sentence 'event recurring on the (nth) day of every month.' */ |
/* For Translators : 'every %d months' is part of the sentence 'event recurring on the (nth) day of every %d months.' | /* For Translators : 'every %d months' is part of the sentence 'event recurring on the (nth) day of every %d months.' |
%d is a digit */ | %d is a digit */ |
sprintf (buffer, ngettext("every month","every %d months", r->interval), r->interval); |
g_string_append_printf ( |
|
buffer, ngettext ("every month", |
|
"every %d months", r->interval), |
|
r->interval); |
break; | break; |
| |
case ICAL_YEARLY_RECURRENCE: | case ICAL_YEARLY_RECURRENCE: |
|
Lines 850-869
write_recurrence_piece (EItipControl *it
|
Link Here
|
|---|
|
Every %d year/years" */ | Every %d year/years" */ |
/* For Translators : 'Every year' is event Recurring every year */ | /* For Translators : 'Every year' is event Recurring every year */ |
/* For Translators : 'Every %d years' is event Recurring every %d years. %d is a digit */ | /* For Translators : 'Every %d years' is event Recurring every %d years. %d is a digit */ |
sprintf (buffer, ngettext("Every year", "Every %d years", r->interval), r->interval); |
g_string_append_printf ( |
|
buffer, ngettext ("Every year", |
|
"Every %d years", r->interval), |
|
r->interval); |
break; | break; |
| |
default: | default: |
g_return_if_reached (); | g_return_if_reached (); |
} | } |
| |
len = strlen (buffer); |
|
buffer += len; |
|
size -= len; |
|
if (r->count) { | if (r->count) { |
/* For Translators:'a total of %d time' is part of the sentence of the form 'event recurring every day,a total of % time.' %d is a digit*/ | /* For Translators:'a total of %d time' is part of the sentence of the form 'event recurring every day,a total of % time.' %d is a digit*/ |
/* For Translators:'a total of %d times' is part of the sentence of the form 'event recurring every day,a total of % times.' %d is a digit*/ | /* For Translators:'a total of %d times' is part of the sentence of the form 'event recurring every day,a total of % times.' %d is a digit*/ |
sprintf (buffer, ngettext("a total of %d time", " a total of %d times", r->count), r->count); |
g_string_append_printf ( |
|
buffer, ngettext ("a total of %d time", |
|
" a total of %d times", r->count), r->count); |
} else if (!icaltime_is_null_time (r->until)) { | } else if (!icaltime_is_null_time (r->until)) { |
ECalComponentDateTime dt; | ECalComponentDateTime dt; |
| |
|
Lines 871-882
write_recurrence_piece (EItipControl *it
|
Link Here
|
|---|
|
dt.value = &r->until; | dt.value = &r->until; |
dt.tzid = icaltimezone_get_tzid ((icaltimezone *)r->until.zone); | dt.tzid = icaltimezone_get_tzid ((icaltimezone *)r->until.zone); |
| |
write_label_piece (itip, &dt, buffer, size, |
write_label_piece (itip, &dt, buffer, |
/* For Translators : ', ending on' is part of the sentence of the form 'event recurring every day, ending on (date).'*/ | /* For Translators : ', ending on' is part of the sentence of the form 'event recurring every day, ending on (date).'*/ |
_(", ending on "), NULL, TRUE); | _(", ending on "), NULL, TRUE); |
} | } |
| |
strcat (buffer, "<br>"); |
g_string_append_len (buffer, "<br>", 4); |
} | } |
| |
static void | static void |
|
Lines 884-930
set_date_label (EItipControl *itip, GtkH
|
Link Here
|
|---|
|
ECalComponent *comp) | ECalComponent *comp) |
{ | { |
ECalComponentDateTime datetime; | ECalComponentDateTime datetime; |
static char buffer[1024]; |
GString *buffer; |
gchar *str; | gchar *str; |
gboolean wrote = FALSE, task_completed = FALSE; | gboolean wrote = FALSE, task_completed = FALSE; |
ECalComponentVType type; | ECalComponentVType type; |
| |
|
buffer = g_string_sized_new (1024); |
type = e_cal_component_get_vtype (comp); | type = e_cal_component_get_vtype (comp); |
| |
buffer[0] = '\0'; |
|
e_cal_component_get_dtstart (comp, &datetime); | e_cal_component_get_dtstart (comp, &datetime); |
if (datetime.value) { | if (datetime.value) { |
/* For Translators : 'starts' is starts:date implying a task starts on what date */ | /* For Translators : 'starts' is starts:date implying a task starts on what date */ |
str = g_strdup_printf ("<b>%s:</b>", _("Starts")); | str = g_strdup_printf ("<b>%s:</b>", _("Starts")); |
write_label_piece (itip, &datetime, buffer, 1024, |
write_label_piece (itip, &datetime, buffer, str, "<br>", FALSE); |
str, |
gtk_html_write (html, html_stream, buffer->str, buffer->len); |
"<br>", FALSE); |
|
gtk_html_write (html, html_stream, buffer, strlen(buffer)); |
|
wrote = TRUE; | wrote = TRUE; |
g_free (str); | g_free (str); |
} | } |
e_cal_component_free_datetime (&datetime); | e_cal_component_free_datetime (&datetime); |
| |
buffer[0] = '\0'; |
/* Reset the buffer. */ |
|
g_string_truncate (buffer, 0); |
|
|
e_cal_component_get_dtend (comp, &datetime); | e_cal_component_get_dtend (comp, &datetime); |
if (datetime.value){ | if (datetime.value){ |
/* For Translators : 'ends' is ends:date implying a task ends on what date */ | /* For Translators : 'ends' is ends:date implying a task ends on what date */ |
str = g_strdup_printf ("<b>%s:</b>", _("Ends")); | str = g_strdup_printf ("<b>%s:</b>", _("Ends")); |
write_label_piece (itip, &datetime, buffer, 1024, str, "<br>", FALSE); |
write_label_piece (itip, &datetime, buffer, str, "<br>", FALSE); |
gtk_html_write (html, html_stream, buffer, strlen (buffer)); |
gtk_html_write (html, html_stream, buffer->str, buffer->len); |
wrote = TRUE; | wrote = TRUE; |
g_free (str); | g_free (str); |
} | } |
e_cal_component_free_datetime (&datetime); | e_cal_component_free_datetime (&datetime); |
| |
buffer[0] = '\0'; |
/* Reset the buffer. */ |
|
g_string_truncate (buffer, 0); |
|
|
if (e_cal_component_has_recurrences (comp)) { | if (e_cal_component_has_recurrences (comp)) { |
write_recurrence_piece (itip, comp, buffer, 1024); |
write_recurrence_piece (itip, comp, buffer); |
gtk_html_write (html, html_stream, buffer, strlen (buffer)); |
gtk_html_write (html, html_stream, buffer->str, buffer->len); |
wrote = TRUE; | wrote = TRUE; |
} | } |
| |
buffer[0] = '\0'; |
/* Reset the buffer. */ |
|
g_string_truncate (buffer, 0); |
|
|
datetime.tzid = NULL; | datetime.tzid = NULL; |
e_cal_component_get_completed (comp, &datetime.value); | e_cal_component_get_completed (comp, &datetime.value); |
if (type == E_CAL_COMPONENT_TODO && datetime.value) { | if (type == E_CAL_COMPONENT_TODO && datetime.value) { |
|
Lines 932-951
set_date_label (EItipControl *itip, GtkH
|
Link Here
|
|---|
|
timezone. */ | timezone. */ |
str = g_strdup_printf ("<b>%s:</b>", _("Completed")); | str = g_strdup_printf ("<b>%s:</b>", _("Completed")); |
datetime.value->is_utc = TRUE; | datetime.value->is_utc = TRUE; |
write_label_piece (itip, &datetime, buffer, 1024, str, "<br>", FALSE); |
write_label_piece (itip, &datetime, buffer, str, "<br>", FALSE); |
gtk_html_write (html, html_stream, buffer, strlen (buffer)); |
gtk_html_write (html, html_stream, buffer->str, buffer->len); |
wrote = TRUE; | wrote = TRUE; |
task_completed = TRUE; | task_completed = TRUE; |
g_free (str); | g_free (str); |
} | } |
e_cal_component_free_datetime (&datetime); | e_cal_component_free_datetime (&datetime); |
| |
buffer[0] = '\0'; |
/* Reset the buffer. */ |
|
g_string_truncate (buffer, 0); |
|
|
e_cal_component_get_due (comp, &datetime); | e_cal_component_get_due (comp, &datetime); |
if (type == E_CAL_COMPONENT_TODO && !task_completed && datetime.value) { | if (type == E_CAL_COMPONENT_TODO && !task_completed && datetime.value) { |
str = g_strdup_printf ("<b>%s:</b>", _("Due")); | str = g_strdup_printf ("<b>%s:</b>", _("Due")); |
write_label_piece (itip, &datetime, buffer, 1024, str, "<br>", FALSE); |
write_label_piece (itip, &datetime, buffer, str, "<br>", FALSE); |
gtk_html_write (html, html_stream, buffer, strlen (buffer)); |
gtk_html_write (html, html_stream, buffer->str, buffer->len); |
wrote = TRUE; | wrote = TRUE; |
g_free (str); | g_free (str); |
} | } |
|
Lines 954-959
set_date_label (EItipControl *itip, GtkH
|
Link Here
|
|---|
|
| |
if (wrote) | if (wrote) |
gtk_html_stream_printf (html_stream, "<br>"); | gtk_html_stream_printf (html_stream, "<br>"); |
|
|
|
g_string_free (buffer, TRUE); |
} | } |
| |
static void | static void |