Локализация

Библиотека поддерживает локализацию для планировщика, предоставляя ряд предустановленных локалей и возможность создания собственных. По умолчанию DHTMLX Scheduler поставляется с английской локалью.

Активация

Чтобы установить язык планировщика, необходимо активировать нужную локаль с помощью метода setLocale объекта scheduler.i18n.

scheduler.i18n.setLocale("fr");

Вы можете использовать любую из предустановленных локалей, включённых в файл dhtmlxscheduler.js, либо создать свою собственную локаль.

Локаль можно менять "на лету", но изменения вступят в силу только после полной перерисовки Scheduler с помощью вызова scheduler.render() или scheduler.init().

scheduler.i18n.setLocale("fr");
scheduler.init("scheduler_here");

Related sample:  Localization

Включённые локали

Файлы локалей Common и Recurring входят в состав файла dhtmlxscheduler.js.

dhtmlxScheduler поддерживает локализацию для следующих языков:

Язык Код языка
Арабский ar
Белорусский be
Каталонский ca
Китайский cn
Чешский cs
Датский da
Голландский nl
Английский en (по умолчанию)
Финский fi
Французский fr
Немецкий de
Греческий el
Иврит he
Венгерский hu
Индонезийский id
Итальянский it
Японский jp
Норвежский no
Норвежский букмол nb
Польский pl
Португальский pt
Румынский ro
Русский ru
Словацкий sk
Словенский si
Испанский es
Шведский sv
Турецкий tr
Украинский ua

Создание собственной локали

Объект scheduler.i18n доступен начиная с v6.0. В более ранних версиях использовался объект scheduler.locale. Подробнее см. в статье по миграции.

Самый простой способ создать свою локаль — скопировать стандартную английскую локаль из примера ниже и перевести строки на нужный язык.

Есть два способа применить собственную локаль к Scheduler:

  • Переопределить текущую локаль, передав объект локали в метод setLocale:
scheduler.i18n.setLocale(localeObject);

Если вы укажете только часть объекта локали, планировщик объединит ваши метки с существующей локалью:

scheduler.i18n.setLocale({
    labels: {
        day_tab: "Day",
    }
});
  • Или, если нужно переключаться между несколькими локалями, вы можете добавить локаль с собственным языковым кодом и затем переключиться на неё:
scheduler.i18n.addLocale("lang", localeObject); 
scheduler.i18n.setLocale("lang");

Имейте в виду, что переключение на собственную локаль изменит интерфейс приложения. Проверьте и скорректируйте все элементы, зависящие от локали, чтобы планировщик корректно отображался на новом языке.

Примечание

  • Вы можете отправить свой файл локали на support@dhtmlx.com, и он может быть включён в будущие версии;
  • Активная локаль доступна через объект scheduler.locale;
  • monthFull содержит полные названия месяцев, начиная с января;
  • monthShort содержит сокращённые названия месяцев, начиная с января;
  • dayFull содержит полные названия дней недели, начиная с воскресенья;
  • dayShort содержит сокращённые названия дней недели, начиная с воскресенья.

English locale definition

scheduler.i18n.setLocale({
    date:{
        month_full: ["January", "February", "March", "April", "May", "June", 
            "July", "August", "September", "October", "November", "December"],
        month_short: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", 
            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
        day_full: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", 
            "Friday", "Saturday"],
        day_short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
    },
    labels:{
        dhx_cal_today_button: "Today",
        day_tab: "Day",
        week_tab: "Week",
        month_tab: "Month",
        new_event: "New event",
        icon_save: "Save",
        icon_cancel: "Cancel",
        icon_details: "Details",
        icon_edit: "Edit",
        icon_delete: "Delete",
        confirm_closing: "", // Your changes will be lost, are your sure?
        confirm_deleting: "Event will be deleted permanently, are you sure?",
        section_description: "Description",
        section_time: "Time period",
        full_day: "Full day",
 
        /*recurring events*/
        confirm_recurring:"Edit recurring event",
        section_recurring:"Repeat event",
        button_recurring:"Disabled",
        button_recurring_open:"Enabled",
        button_edit_series: "All events",
        button_edit_occurrence: "This event",
        button_edit_occurrence_and_following: "This and following events",
 
        /*agenda view extension*/
        agenda_tab: "Agenda",
        date: "Date",
        description: "Description",
 
        /*year view extension*/
        year_tab: "Year",
 
        /* week agenda extension */
        week_agenda_tab: "Agenda",
 
        /*grid view extension*/
        grid_tab: "Grid",
 
        /* touch tooltip*/
        drag_to_create: "Drag to create",
        drag_to_move: "Drag to move",
 
        /* dhtmlx message default buttons */
        message_ok: "OK",
        message_cancel: "Cancel",
 
        /* wai aria labels for non-text controls */
        next: "Next",
        prev: "Previous",
        year: "Year",
        month: "Month",
        day: "Day",
        hour: "Hour",
        minute: "Minute",
 
        /* legacy  recurring event components */
        repeat_radio_day: "Daily", // name="repeat" value="day"
        repeat_radio_week: "Weekly", // name="repeat" value="week
        repeat_radio_month: "Monthly",
        repeat_radio_year: "Yearly",
        repeat_radio_day_type: "Every",
        repeat_text_day_count: "day",
        repeat_radio_day_type2: "Every workday",
        repeat_week: " Repeat every",
        repeat_text_week_count: "week next days:",
        repeat_radio_month_type: "Repeat",
        repeat_radio_month_start: "On",
        repeat_text_month_day: "day every",
        repeat_text_month_count: "month",
        repeat_text_month_count2_before: "every",
        repeat_text_month_count2_after: "month",
        repeat_year_label: "On",
        select_year_day2: "of",
        repeat_text_year_day: "day",
        select_year_month: "month",
        repeat_radio_end: "No end date",
        repeat_text_occurrences_count: "occurrences",
        repeat_radio_end2: "After",
        repeat_radio_end3: "End by",
 
        /* recurring event components */
        repeat_never: "Never",
        repeat_daily: "Every day",
        repeat_workdays: "Every weekday",
        repeat_weekly: "Every week",
        repeat_monthly: "Every month",
        repeat_yearly: "Every year",
        repeat_custom: "Custom",
        repeat_freq_day: "Day",
        repeat_freq_week: "Week",
        repeat_freq_month: "Month",
        repeat_freq_year: "Year",
        repeat_on_date: "On date",
        repeat_ends: "Ends",
        month_for_recurring: ["January", "February", "March", "April", "May", "June", 
            "July", "August", "September", "October", "November", "December"],
        day_for_recurring: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", 
            "Friday", "Saturday"]
    }
});

Related sample:  Localization

Дополнительные замечания

  • Если метки confirm_closing или confirm_deleting не заданы, соответствующее окно подтверждения не появится (подтверждение произойдёт автоматически);
  • Метки вида section_{name} соответствуют секции lightbox с таким именем.
  • Метка new_event определяет текст по умолчанию для новых событий.
Наверх