Локализация Scheduler

По умолчанию все ярлыки Scheduler на английском языке. Некоторые из них можно перевести на желаемый язык:

  • названия операций ("Add", "Delete", и др.)
  • ярлыки режимов работы ("Day", "Week", etc.)
  • ярлыки полей форм и контролов ("name", "details", "colors", и др.)
  • ярлыки кнопок

В пакете Scheduler присутствует только en-US локаль. Ознакомьтесь с нашим репозиторием. Здесь вы можете найти интересующую вас локаль или же создать свою.

Структура локалей

Названия хранятся в объекте:

export default {
  // навигация
  Week: "Week",
  Day: "Day",
  Month: "Month",
  Agenda: "Agenda",
  Today: "Today",
  Create: "Create",
  Next: "Next",
  Previous: "Previous",
  "Next day": "Next day",
  "Previous day": "Previous day",
  "Next week": "Next week",
  "Previous week": "Previous week",
  "Next month": "Next month",
  "Previous month": "Previous month",
 
  // управление календарями
  "Add calendar": "Add calendar",
  "Do you really want to remove this calendar?":
      "Do you really want to remove this calendar?",
  "Edit calendar": "Edit calendar",
  Delete: "Delete",
  Save: "Save",
  Title: "Title",
  Color: "Color",
  Active: "Active",
  Settings: "Settings",
  "(no title)": "(no title)",
 
  // режимы
  "No Events": "No Events",
  "All Day": "All Day",
  more: "more",
  "Expand all-day events": "Expand all-day events",
  "Collapse all-day events": "Collapse all-day events",
 
  // информация и форма
  "The event will be deleted permanently, are you sure?":
      "The event will be deleted permanently, are you sure?",
  Done: "Done",
  "Delete event": "Delete event",
  Close: "Close",
  Edit: "Edit",
  "(No title)": "(No title)",
  Event: "Event",
  Start: "Start",
  End: "End",
  Calendar: "Calendar",
  Notes: "Notes",
  from: "from",
  to: "to",
  labelAllday: "All day",
  labelTime: "Time",
  "Edit event": "Edit event",
 
  // повторение
  never: "never",
  none: "none",
  daily: "daily",
  day: "day",
  days: "days",
  every: "Every",
  weekly: "weekly",
  week: "week",
  weeks: "weeks",
  each: "Every",
  monthly: "monthly",
  month: "month",
  months: "months",
  yearly: "yearly",
  year: "year",
  years: "years",
  Repeat: "Repeat",
  "End repeat": "End repeat",
  "Repeats each": "Repeats each",
  till: "till",
  times: "times",
  "weekly, every": "weekly, every",
  "monthly, every": "monthly, every",
  "yearly, every": "yearly, every",
  "every working day": "every working day",
  custom: "custom",
  Every: "Every",
  on: "on",
  "after several occurrences": "after several occurrences",
  date: "date",
  "week on": "week on",
 
  // диалоговые окна дял редактирования и удаления
  "Do you want to edit the whole set of repeated events?":
      "Do you want to edit the whole set of repeated events?",
  "Edit series": "Edit series",
  "Edit occurrence": "Edit occurrence",
  "Do you want to delete the whole set of repeated events?":
      "Do you want to delete the whole set of repeated events?",
  "Delete series": "Delete series",
  "Delete occurrence": "Delete occurrence",
};

Как задать свою локаль

Чтобы изменить локаль по умолчанию, необходимо:

  • создать локаль с переводами внутри объекта scheduler.locales следующим образом:
// Перевод на русский
scheduler.locales.ru = {
  Week: "Неделя",
  Day: "День",
  // ...
};
  • задать текущую локаль для Scheduler с помощью свойства locale внутри конструктора:
webix.ready(function() {
  // настройка скрола, необязательно
  if (!webix.env.touch && webix.env.scrollSize) 
    webix.CustomScroll.init();
 
  webix.ui({
    view: "scheduler",
    url: "https://docs.webix.com/calendar-backend/",
    locale: {
      lang: "ru"
    }
  });
});

Related sample:  Scheduler: Custom Locale

Как менять локали динамически

Вы можете менять языки динамически, например, при клике по соответствующим кнопкам на панели инструментов.

  • создайте локали с переводом желаемых маркеров:
scheduler.locales.ru = {  // Русский
    Week: "Неделя",
    Day: "День",
    // ...
};
// другие локали
  • меняйте языки с помощью метода setLang сервиса "locale":
{
  view: "segmented",
  options: ["en", "ru"],
  width: 250,
  click: function() {
    const locale = $$("scheduler").getService("locale");
    locale.setLang(this.getValue());
  }
}

Related sample:  Scheduler: Switching Locales

Как синхронизировать Scheduler и Webix локали

Маркеры Webix компонентов внутри Scheduler, а также локализация дат и чисел зависят от текущей локали Webix. Чтобы синхронизировать локализацию Scheduler и Webix, создайте объект webix внутри свойства locale:

{
    view:"scheduler",
    url:"https://docs.webix.com/calendar-backend/",
    locale: {
      lang: "en",
      webix: {
        // меняем локали Webix
        en: "en-US",
        zh: "zh-CN",
        // др. локали
      }
    }
}
Наверх