Telerik UI for WinForms

To localize RadScheduler to display control text and messages in a specific language:

  • All required classes for localization are defined in Telerik.WinControls.UI.Localization namespace.

  • Start by creating a descendant of the RadSchedulerLocalizationProvider class.

  • Override the GetLocalizedString(string id) method and provide a translation for the messages. If a translation is not provided, the default value will be returned. This behavior is guaranteed by the call to the base GetLocalizedString method in the default clause of the switch statement in the example.

Below is a sample implementation of a custom localization provider: 

Copy[C#]
public class CustomSchedulerLocalizationProvider : RadSchedulerLocalizationProvider
{
    public override string GetLocalizedString(string id)
    {
        switch (id)
        {

            case RadSchedulerStringId.NextAppointment:
                return "Next Appointment";
            case RadSchedulerStringId.PreviousAppointment:
                return "Previous Appointment";
            case RadSchedulerStringId.AppointmentDialogTitle:
                return "Edit Appointment";
            case RadSchedulerStringId.AppointmentDialogSubject:
                return "Subject:";
            case RadSchedulerStringId.AppointmentDialogLocation:
                return "Location:";
            case RadSchedulerStringId.AppointmentDialogBackground:
                return "Background:";
            case RadSchedulerStringId.AppointmentDialogDescription:
                return "Description:";
            case RadSchedulerStringId.AppointmentDialogStartTime:
                return "Start time:";
            case RadSchedulerStringId.AppointmentDialogEndTime:
                return "End time:";
            case RadSchedulerStringId.AppointmentDialogAllDay:
                return "All day event";
            case RadSchedulerStringId.AppointmentDialogResource:
                return "Resource:";
            case RadSchedulerStringId.AppointmentDialogStatus:
                return "Show time as:";
            case RadSchedulerStringId.AppointmentDialogOK:
                return "OK";
            case RadSchedulerStringId.AppointmentDialogCancel:
                return "Cancel";
            case RadSchedulerStringId.AppointmentDialogDelete:
                return "Delete";
            case RadSchedulerStringId.AppointmentDialogRecurrence:
                return "Recurrence";
            case RadSchedulerStringId.OpenRecurringDialogTitle:
                return "Open Recurring Item";
            case RadSchedulerStringId.OpenRecurringDialogOK:
                return "OK";
            case RadSchedulerStringId.OpenRecurringDialogCancel:
                return "Cancel";
            case RadSchedulerStringId.OpenRecurringDialogLabel:
                return "\"{0}\" is a recurring\nappointment. Do you want to open\nonly this occurrence or the series?";
            case RadSchedulerStringId.OpenRecurringDialogRadioOccurrence:
                return "Open this occurrence.";
            case RadSchedulerStringId.OpenRecurringDialogRadioSeries:
                return "Open the series.";
            case RadSchedulerStringId.RecurrenceDialogTitle:
                return "Edit Recurrence";
            case RadSchedulerStringId.RecurrenceDialogAppointmentTimeGroup:
                return "Appointment time";
            case RadSchedulerStringId.RecurrenceDialogDuration:
                return "Duration:";
            case RadSchedulerStringId.RecurrenceDialogAppointmentEnd:
                return "End:";
            case RadSchedulerStringId.RecurrenceDialogAppointmentStart:
                return "Start:";
            case RadSchedulerStringId.RecurrenceDialogRecurrenceGroup:
                return "Recurrence pattern";
            case RadSchedulerStringId.RecurrenceDialogRangeGroup:
                return "Range of recurrence";
            case RadSchedulerStringId.RecurrenceDialogOccurrences:
                return "occurrences";
            case RadSchedulerStringId.RecurrenceDialogRecurrenceStart:
                return "Start:";
            case RadSchedulerStringId.RecurrenceDialogYearly:
                return "Yearly";
            case RadSchedulerStringId.RecurrenceDialogMonthly:
                return "Monthly";
            case RadSchedulerStringId.RecurrenceDialogWeekly:
                return "Weekly";
            case RadSchedulerStringId.RecurrenceDialogDaily:
                return "Daily";
            case RadSchedulerStringId.RecurrenceDialogEndBy:
                return "End by:";
            case RadSchedulerStringId.RecurrenceDialogEndAfter:
                return "End after:";
            case RadSchedulerStringId.RecurrenceDialogNoEndDate:
                return "No end date";
            case RadSchedulerStringId.RecurrenceDialogOK:
                return "OK";
            case RadSchedulerStringId.RecurrenceDialogCancel:
                return "Cancel";
            case RadSchedulerStringId.RecurrenceDialogRemoveRecurrence:
                return "Remove Recurrence";
            case RadSchedulerStringId.DailyRecurrenceEveryDay:
                return "Every";
            case RadSchedulerStringId.DailyRecurrenceEveryWeekday:
                return "Every weekday";
            case RadSchedulerStringId.DailyRecurrenceDays:
                return "day(s)";
            case RadSchedulerStringId.WeeklyRecurrenceRecurEvery:
                return "Recur every";
            case RadSchedulerStringId.WeeklyRecurrenceWeeksOn:
                return "week(s) on:";
            case RadSchedulerStringId.WeeklyRecurrenceSunday:
                return "Sunday";
            case RadSchedulerStringId.WeeklyRecurrenceMonday:
                return "Monday";
            case RadSchedulerStringId.WeeklyRecurrenceTuesday:
                return "Tuesday";
            case RadSchedulerStringId.WeeklyRecurrenceWednesday:
                return "Wednesday";
            case RadSchedulerStringId.WeeklyRecurrenceThursday:
                return "Thursday";
            case RadSchedulerStringId.WeeklyRecurrenceFriday:
                return "Friday";
            case RadSchedulerStringId.WeeklyRecurrenceSaturday:
                return "Saturday";
            case RadSchedulerStringId.WeeklyRecurrenceDay:
                return "Day";
            case RadSchedulerStringId.WeeklyRecurrenceWeekday:
                return "Weekday";
            case RadSchedulerStringId.WeeklyRecurrenceWeekendDay:
                return "Weekend day";
            case RadSchedulerStringId.MonthlyRecurrenceDay:
                return "Day";
            case RadSchedulerStringId.MonthlyRecurrenceWeek:
                return "The";
            case RadSchedulerStringId.MonthlyRecurrenceDayOfMonth:
                return "of every";
            case RadSchedulerStringId.MonthlyRecurrenceMonths:
                return "month(s)";
            case RadSchedulerStringId.MonthlyRecurrenceWeekOfMonth:
                return "of every";
            case RadSchedulerStringId.MonthlyRecurrenceFirst:
                return "First";
            case RadSchedulerStringId.MonthlyRecurrenceSecond:
                return "Second";
            case RadSchedulerStringId.MonthlyRecurrenceThird:
                return "Third";
            case RadSchedulerStringId.MonthlyRecurrenceFourth:
                return "Fourth";
            case RadSchedulerStringId.MonthlyRecurrenceLast:
                return "Last";
            case RadSchedulerStringId.YearlyRecurrenceDayOfMonth:
                return "Every";
            case RadSchedulerStringId.YearlyRecurrenceWeekOfMonth:
                return "The";
            case RadSchedulerStringId.YearlyRecurrenceOfMonth:
                return "of";
            case RadSchedulerStringId.YearlyRecurrenceJanuary:
                return "January";
            case RadSchedulerStringId.YearlyRecurrenceFebruary:
                return "February";
            case RadSchedulerStringId.YearlyRecurrenceMarch:
                return "March";
            case RadSchedulerStringId.YearlyRecurrenceApril:
                return "April";
            case RadSchedulerStringId.YearlyRecurrenceMay:
                return "May";
            case RadSchedulerStringId.YearlyRecurrenceJune:
                return "June";
            case RadSchedulerStringId.YearlyRecurrenceJuly:
                return "July";
            case RadSchedulerStringId.YearlyRecurrenceAugust:
                return "August";
            case RadSchedulerStringId.YearlyRecurrenceSeptember:
                return "September";
            case RadSchedulerStringId.YearlyRecurrenceOctober:
                return "October";
            case RadSchedulerStringId.YearlyRecurrenceNovember:
                return "November";
            case RadSchedulerStringId.YearlyRecurrenceDecember:
                return "December";
            case RadSchedulerStringId.BackgroundNone:
                return "None";
            case RadSchedulerStringId.BackgroundImportant:
                return "Important";
            case RadSchedulerStringId.BackgroundBusiness:
                return "Business";
            case RadSchedulerStringId.BackgroundPersonal:
                return "Personal";
            case RadSchedulerStringId.BackgroundVacation:
                return "Vacation";
            case RadSchedulerStringId.BackgroundMustAttend:
                return "Must Attend";
            case RadSchedulerStringId.BackgroundTravelRequired:
                return "Travel Required";
            case RadSchedulerStringId.BackgroundNeedsPreparation:
                return "Needs Preparation";
            case RadSchedulerStringId.BackgroundBirthday:
                return "Birthday";
            case RadSchedulerStringId.BackgroundAnniversary:
                return "Anniversary";
            case RadSchedulerStringId.BackgroundPhoneCall:
                return "Phone Call";
            case RadSchedulerStringId.StatusBusy:
                return "Busy";
            case RadSchedulerStringId.StatusFree:
                return "Free";
            case RadSchedulerStringId.StatusTentative:
                return "Tentative";
            case RadSchedulerStringId.StatusUnavailable:
                return "Unavailable";
            case RadSchedulerStringId.ContextMenuNewAppointment:
                return "New Appointment";
            case RadSchedulerStringId.ContextMenuEditAppointment:
                return "Edit Appointment";
            case RadSchedulerStringId.ContextMenuNewRecurringAppointment:
                return "New Recurring Appointment";
            case RadSchedulerStringId.ContextMenu60Minutes:
                return "60 Minutes";
            case RadSchedulerStringId.ContextMenu30Minutes:
                return "30 Minutes";
            case RadSchedulerStringId.ContextMenu15Minutes:
                return "15 Minutes";
            case RadSchedulerStringId.ContextMenu10Minutes:
                return "10 Minutes";
            case RadSchedulerStringId.ContextMenu6Minutes:
                return "6 Minutes";
            case RadSchedulerStringId.ContextMenu5Minutes:
                return "5 Minutes";
            case RadSchedulerStringId.ContextMenuNavigateToNextView:
                return "Next View";
            case RadSchedulerStringId.ContextMenuNavigateToPreviousView:
                return "Previous View";
            case RadSchedulerStringId.ContextMenuTimescales:
                return "Time Scales";
            case RadSchedulerStringId.ContextMenuTimescalesYear:
                return "Year";
            case RadSchedulerStringId.ContextMenuTimescalesMonth:
                return "Month";
            case RadSchedulerStringId.ContextMenuTimescalesWeek:
                return "Week";
            case RadSchedulerStringId.ContextMenuTimescalesDay:
                return "Day";
            case RadSchedulerStringId.ContextMenuTimescalesHour:
                return "Hour";
            case RadSchedulerStringId.ContextMenuTimescalesFifteenMinutes:
                return "15 minutes";
            case RadSchedulerStringId.ErrorProviderWrongAppointmentDates:
                return "Appointment end time is less or equal to start time!";
            case RadSchedulerStringId.ErrorProviderWrongExceptionDuration:
                return "Recurrence interval must be greater or equal to appointment duration!";
            case RadSchedulerStringId.TimeZoneLocal:
                return "Local";
            case RadSchedulerStringId.Reminder:
                return "Reminder";
        }

        return string.Empty;
    }
}
Copy[VB.NET]
Public Class CustomSchedulerLocalizationProvider
    Inherits RadSchedulerLocalizationProvider
    Public Overrides Function GetLocalizedString(ByVal id As String) As String
        Select Case id         
            Case RadSchedulerStringId.NextAppointment
                Return "Next Appointment"
            Case RadSchedulerStringId.PreviousAppointment
                Return "Previous Appointment"
            Case RadSchedulerStringId.AppointmentDialogTitle
                Return "Edit Appointment"
            Case RadSchedulerStringId.AppointmentDialogSubject
                Return "Subject:"
            Case RadSchedulerStringId.AppointmentDialogLocation
                Return "Location:"
            Case RadSchedulerStringId.AppointmentDialogBackground
                Return "Background:"
            Case RadSchedulerStringId.AppointmentDialogDescription
                Return "Description:"
            Case RadSchedulerStringId.AppointmentDialogStartTime
                Return "Start time:"
            Case RadSchedulerStringId.AppointmentDialogEndTime
                Return "End time:"
            Case RadSchedulerStringId.AppointmentDialogAllDay
                Return "All day event"
            Case RadSchedulerStringId.AppointmentDialogResource
                Return "Resource:"
            Case RadSchedulerStringId.AppointmentDialogStatus
                Return "Show time as:"
            Case RadSchedulerStringId.AppointmentDialogOK
                Return "OK"
            Case RadSchedulerStringId.AppointmentDialogCancel
                Return "Cancel"
            Case RadSchedulerStringId.AppointmentDialogDelete
                Return "Delete"
            Case RadSchedulerStringId.AppointmentDialogRecurrence
                Return "Recurrence"
            Case RadSchedulerStringId.OpenRecurringDialogTitle
                Return "Open Recurring Item"
            Case RadSchedulerStringId.OpenRecurringDialogOK
                Return "OK"
            Case RadSchedulerStringId.OpenRecurringDialogCancel
                Return "Cancel"
            Case RadSchedulerStringId.OpenRecurringDialogLabel
                Return """{0}"" is a recurring" & vbLf & "appointment. Do you want to open" & vbLf & "only this occurrence or the series?"
            Case RadSchedulerStringId.OpenRecurringDialogRadioOccurrence
                Return "Open this occurrence."
            Case RadSchedulerStringId.OpenRecurringDialogRadioSeries
                Return "Open the series."
            Case RadSchedulerStringId.RecurrenceDialogTitle
                Return "Edit Recurrence"
            Case RadSchedulerStringId.RecurrenceDialogAppointmentTimeGroup
                Return "Appointment time"
            Case RadSchedulerStringId.RecurrenceDialogDuration
                Return "Duration:"
            Case RadSchedulerStringId.RecurrenceDialogAppointmentEnd
                Return "End:"
            Case RadSchedulerStringId.RecurrenceDialogAppointmentStart
                Return "Start:"
            Case RadSchedulerStringId.RecurrenceDialogRecurrenceGroup
                Return "Recurrence pattern"
            Case RadSchedulerStringId.RecurrenceDialogRangeGroup
                Return "Range of recurrence"
            Case RadSchedulerStringId.RecurrenceDialogOccurrences
                Return "occurrences"
            Case RadSchedulerStringId.RecurrenceDialogRecurrenceStart
                Return "Start:"
            Case RadSchedulerStringId.RecurrenceDialogYearly
                Return "Yearly"
            Case RadSchedulerStringId.RecurrenceDialogMonthly
                Return "Monthly"
            Case RadSchedulerStringId.RecurrenceDialogWeekly
                Return "Weekly"
            Case RadSchedulerStringId.RecurrenceDialogDaily
                Return "Daily"
            Case RadSchedulerStringId.RecurrenceDialogEndBy
                Return "End by:"
            Case RadSchedulerStringId.RecurrenceDialogEndAfter
                Return "End after:"
            Case RadSchedulerStringId.RecurrenceDialogNoEndDate
                Return "No end date"
            Case RadSchedulerStringId.RecurrenceDialogOK
                Return "OK"
            Case RadSchedulerStringId.RecurrenceDialogCancel
                Return "Cancel"
            Case RadSchedulerStringId.RecurrenceDialogRemoveRecurrence
                Return "Remove Recurrence"
            Case RadSchedulerStringId.DailyRecurrenceEveryDay
                Return "Every"
            Case RadSchedulerStringId.DailyRecurrenceEveryWeekday
                Return "Every weekday"
            Case RadSchedulerStringId.DailyRecurrenceDays
                Return "day(s)"
            Case RadSchedulerStringId.WeeklyRecurrenceRecurEvery
                Return "Recur every"
            Case RadSchedulerStringId.WeeklyRecurrenceWeeksOn
                Return "week(s) on:"
            Case RadSchedulerStringId.WeeklyRecurrenceSunday
                Return "Sunday"
            Case RadSchedulerStringId.WeeklyRecurrenceMonday
                Return "Monday"
            Case RadSchedulerStringId.WeeklyRecurrenceTuesday
                Return "Tuesday"
            Case RadSchedulerStringId.WeeklyRecurrenceWednesday
                Return "Wednesday"
            Case RadSchedulerStringId.WeeklyRecurrenceThursday
                Return "Thursday"
            Case RadSchedulerStringId.WeeklyRecurrenceFriday
                Return "Friday"
            Case RadSchedulerStringId.WeeklyRecurrenceSaturday
                Return "Saturday"
            Case RadSchedulerStringId.WeeklyRecurrenceDay
                Return "Day"
            Case RadSchedulerStringId.WeeklyRecurrenceWeekday
                Return "Weekday"
            Case RadSchedulerStringId.WeeklyRecurrenceWeekendDay
                Return "Weekend day"
            Case RadSchedulerStringId.MonthlyRecurrenceDay
                Return "Day"
            Case RadSchedulerStringId.MonthlyRecurrenceWeek
                Return "The"
            Case RadSchedulerStringId.MonthlyRecurrenceDayOfMonth
                Return "of every"
            Case RadSchedulerStringId.MonthlyRecurrenceMonths
                Return "month(s)"
            Case RadSchedulerStringId.MonthlyRecurrenceWeekOfMonth
                Return "of every"
            Case RadSchedulerStringId.MonthlyRecurrenceFirst
                Return "First"
            Case RadSchedulerStringId.MonthlyRecurrenceSecond
                Return "Second"
            Case RadSchedulerStringId.MonthlyRecurrenceThird
                Return "Third"
            Case RadSchedulerStringId.MonthlyRecurrenceFourth
                Return "Fourth"
            Case RadSchedulerStringId.MonthlyRecurrenceLast
                Return "Last"
            Case RadSchedulerStringId.YearlyRecurrenceDayOfMonth
                Return "Every"
            Case RadSchedulerStringId.YearlyRecurrenceWeekOfMonth
                Return "The"
            Case RadSchedulerStringId.YearlyRecurrenceOfMonth
                Return "of"
            Case RadSchedulerStringId.YearlyRecurrenceJanuary
                Return "January"
            Case RadSchedulerStringId.YearlyRecurrenceFebruary
                Return "February"
            Case RadSchedulerStringId.YearlyRecurrenceMarch
                Return "March"
            Case RadSchedulerStringId.YearlyRecurrenceApril
                Return "April"
            Case RadSchedulerStringId.YearlyRecurrenceMay
                Return "May"
            Case RadSchedulerStringId.YearlyRecurrenceJune
                Return "June"
            Case RadSchedulerStringId.YearlyRecurrenceJuly
                Return "July"
            Case RadSchedulerStringId.YearlyRecurrenceAugust
                Return "August"
            Case RadSchedulerStringId.YearlyRecurrenceSeptember
                Return "September"
            Case RadSchedulerStringId.YearlyRecurrenceOctober
                Return "October"
            Case RadSchedulerStringId.YearlyRecurrenceNovember
                Return "November"
            Case RadSchedulerStringId.YearlyRecurrenceDecember
                Return "December"
            Case RadSchedulerStringId.BackgroundNone
                Return "None"
            Case RadSchedulerStringId.BackgroundImportant
                Return "Important"
            Case RadSchedulerStringId.BackgroundBusiness
                Return "Business"
            Case RadSchedulerStringId.BackgroundPersonal
                Return "Personal"
            Case RadSchedulerStringId.BackgroundVacation
                Return "Vacation"
            Case RadSchedulerStringId.BackgroundMustAttend
                Return "Must Attend"
            Case RadSchedulerStringId.BackgroundTravelRequired
                Return "Travel Required"
            Case RadSchedulerStringId.BackgroundNeedsPreparation
                Return "Needs Preparation"
            Case RadSchedulerStringId.BackgroundBirthday
                Return "Birthday"
            Case RadSchedulerStringId.BackgroundAnniversary
                Return "Anniversary"
            Case RadSchedulerStringId.BackgroundPhoneCall
                Return "Phone Call"
            Case RadSchedulerStringId.StatusBusy
                Return "Busy"
            Case RadSchedulerStringId.StatusFree
                Return "Free"
            Case RadSchedulerStringId.StatusTentative
                Return "Tentative"
            Case RadSchedulerStringId.StatusUnavailable
                Return "Unavailable"
            Case RadSchedulerStringId.ContextMenuNewAppointment
                Return "New Appointment"
            Case RadSchedulerStringId.ContextMenuEditAppointment
                Return "Edit Appointment"
            Case RadSchedulerStringId.ContextMenuNewRecurringAppointment
                Return "New Recurring Appointment"
            Case RadSchedulerStringId.ContextMenu60Minutes
                Return "60 Minutes"
            Case RadSchedulerStringId.ContextMenu30Minutes
                Return "30 Minutes"
            Case RadSchedulerStringId.ContextMenu15Minutes
                Return "15 Minutes"
            Case RadSchedulerStringId.ContextMenu10Minutes
                Return "10 Minutes"
            Case RadSchedulerStringId.ContextMenu6Minutes
                Return "6 Minutes"
            Case RadSchedulerStringId.ContextMenu5Minutes
                Return "5 Minutes"
            Case RadSchedulerStringId.ContextMenuNavigateToNextView
                Return "Next View"
            Case RadSchedulerStringId.ContextMenuNavigateToPreviousView
                Return "Previous View"
            Case RadSchedulerStringId.ContextMenuTimescales
                Return "Time Scales"
            Case RadSchedulerStringId.ContextMenuTimescalesYear
                Return "Year"
            Case RadSchedulerStringId.ContextMenuTimescalesMonth
                Return "Month"
            Case RadSchedulerStringId.ContextMenuTimescalesWeek
                Return "Week"
            Case RadSchedulerStringId.ContextMenuTimescalesDay
                Return "Day"
            Case RadSchedulerStringId.ContextMenuTimescalesHour
                Return "Hour"
            Case RadSchedulerStringId.ContextMenuTimescalesFifteenMinutes
                Return "15 minutes"
            Case RadSchedulerStringId.ErrorProviderWrongAppointmentDates
                Return "Appointment end time is less or equal to start time!"
            Case RadSchedulerStringId.ErrorProviderWrongExceptionDuration
                Return "Recurrence interval must be greater or equal to appointment duration!"
            Case RadSchedulerStringId.TimeZoneLocal
                Return "Local"
            Case RadSchedulerStringId.Reminder
                Return "Reminder"
        End Select

        Return String.Empty
    End Function
End Class

To apply the custom localization provider, instantiate and assign it to the current localization provider:

Copy[C#]
RadSchedulerLocalizationProvider.CurrentProvider = new CustomSchedulerLocalizationProvider();
Copy[VB.NET]
RadSchedulerLocalizationProvider.CurrentProvider = New CustomSchedulerLocalizationProvider()