internal override LocalizedString When() { LocalizedString result; if (Recurrence.IsGregorianCompatible(this.CalendarType)) { if (base.RecurrenceObjectType == RecurrenceObjectType.CalendarRecurrence) { result = ClientStrings.CalendarWhenYearly(new LocalizedMonth(this.month), this.DayOfMonth); } else { result = ClientStrings.TaskWhenYearly(new LocalizedMonth(this.month), this.DayOfMonth); } } else if (this.IsLeapMonth) { if (base.RecurrenceObjectType == RecurrenceObjectType.CalendarRecurrence) { result = ClientStrings.AlternateCalendarWhenYearlyLeap(Recurrence.GetCalendarName(this.CalendarType), this.month, this.DayOfMonth); } else { result = ClientStrings.AlternateCalendarTaskWhenYearlyLeap(Recurrence.GetCalendarName(this.CalendarType), this.month, this.DayOfMonth); } } else if (base.RecurrenceObjectType == RecurrenceObjectType.CalendarRecurrence) { result = ClientStrings.AlternateCalendarWhenYearly(Recurrence.GetCalendarName(this.CalendarType), this.month, this.DayOfMonth); } else { result = ClientStrings.AlternateCalendarTaskWhenYearly(Recurrence.GetCalendarName(this.CalendarType), this.month, this.DayOfMonth); } return(result); }