internal override LocalizedString When()
 {
     if (Recurrence.IsGregorianCompatible(this.CalendarType))
     {
         if (base.RecurrenceInterval == 1)
         {
             if (base.RecurrenceObjectType == RecurrenceObjectType.CalendarRecurrence)
             {
                 return(ClientStrings.CalendarWhenMonthlyEveryMonth(this.DayOfMonth));
             }
             return(ClientStrings.TaskWhenMonthlyEveryMonth(this.DayOfMonth));
         }
         else if (base.RecurrenceInterval == 2)
         {
             if (base.RecurrenceObjectType == RecurrenceObjectType.CalendarRecurrence)
             {
                 return(ClientStrings.CalendarWhenMonthlyEveryOtherMonth(this.DayOfMonth));
             }
             return(ClientStrings.TaskWhenMonthlyEveryOtherMonth(this.DayOfMonth));
         }
         else
         {
             if (base.RecurrenceObjectType == RecurrenceObjectType.CalendarRecurrence)
             {
                 return(ClientStrings.CalendarWhenMonthlyEveryNMonths(this.DayOfMonth, base.RecurrenceInterval));
             }
             return(ClientStrings.TaskWhenMonthlyEveryNMonths(this.DayOfMonth, base.RecurrenceInterval));
         }
     }
     else if (base.RecurrenceInterval == 1)
     {
         if (base.RecurrenceObjectType == RecurrenceObjectType.CalendarRecurrence)
         {
             return(ClientStrings.AlternateCalendarWhenMonthlyEveryMonth(Recurrence.GetCalendarName(this.CalendarType), this.DayOfMonth));
         }
         return(ClientStrings.AlternateCalendarTaskWhenMonthlyEveryMonth(Recurrence.GetCalendarName(this.CalendarType), this.DayOfMonth));
     }
     else if (base.RecurrenceInterval == 2)
     {
         if (base.RecurrenceObjectType == RecurrenceObjectType.CalendarRecurrence)
         {
             return(ClientStrings.AlternateCalendarWhenMonthlyEveryOtherMonth(Recurrence.GetCalendarName(this.CalendarType), this.DayOfMonth));
         }
         return(ClientStrings.AlternateCalendarTaskWhenMonthlyEveryOtherMonth(Recurrence.GetCalendarName(this.CalendarType), this.DayOfMonth));
     }
     else
     {
         if (base.RecurrenceObjectType == RecurrenceObjectType.CalendarRecurrence)
         {
             return(ClientStrings.AlternateCalendarWhenMonthlyEveryNMonths(Recurrence.GetCalendarName(this.CalendarType), this.DayOfMonth, base.RecurrenceInterval));
         }
         return(ClientStrings.AlternateCalendarTaskWhenMonthlyEveryNMonths(Recurrence.GetCalendarName(this.CalendarType), this.DayOfMonth, base.RecurrenceInterval));
     }
 }