Изменить тексты и локализовать

Настраиваемые тексты

Изменить тексты, которые использует виджет, можно двумя способами:

  1. Переопределив шаблоны и код контроллеров и модели виджета;
  2. Указав альтернативные тексты в настройках виджета.

Мы настоятельно рекомендуем использовать второй способ.

В примерах ниже показаны все существующие настройки текстов.

Внимание! Не включайте в код вставки настройки, которые не собираетесь менять. Внимательно следите за закрытостью скобок и кавычек, а также запятыми – в случае ошибки виджет либо пожалуется на повреждённую конфигурацию, либо просто проигнорирует ваши настройки.

Виджет регистрации

<a href="http://org13.timepad.ru/event/АЙДИ_СОБЫТИЯ/" data-twf-placeholder="yes">Перейти к заказу билетов</a>
<script type="text/javascript"
        defer="defer"
        data-data-timepad-customized="АЙДИ_ИЗ_ВАШЕГО_КОДА"
        data-twf2s-event--id="АЙДИ_СОБЫТИЯ"
        data-timepad-widget-v2="event_register"
        src="//timepad.ru/js/tpwf/loader/min/loader.js">
  (function() {
    return {
      "buttonSettings": {
        "text" : "Текст на кнопке, открывающей виджет-попап ('режим кнопки')"
      },
      "mainFormButtonSettings": { 
        "staticText": "Жестко задать текст главной кнопке виджета, по умолчанию меняется в зависимости от ситуации, используя значения из блока texts ниже",
        "texts": {
          "proceed": "Продолжить",
          "buy": "Купить",
          "buy_ticket": "Купить билет",
          "items": [
            "билет",
            "билеты"
          ],
          "register": "Зарегистрироваться",
          "atleast": "Выберите хотя бы один билет"
        } 
      }
    };
  })();
</script>

Виджет списка событий

<script type="text/javascript"
        defer="defer"
        data-data-timepad-customized="АЙДИ_ИЗ_ВАШЕГО_КОДА"
        data-timepad-widget-v2="event_list"
        src="//timepad.ru/js/tpwf/loader/min/loader.js">
  (function() {
    return {
      "buttonTexts": {
        "free": "Зарегистрироваться",
        "paid": "Купить билет"
      }
    };
  })();
</script>

Локализация

Виджет регистрации (event_register) поддерживает локали. От нас доступна только одна дополнительная локаль — английская. Локаль виджета автоматически устанавливается равной локали события (эти настройки вы можете найти на первом шаге редактирования события).

Локаль представляет из себя набор строк на русском языке и их замен для целевой локали. Используются они двумя способами:

  • Все совпадающие строки автоматически заменяются в шаблонах;
  • Код может напрямую обращаться к локализуемым строкам по принципу gettext.
Будьте внимательны, добавляя новые строки в локаль. Автоматическая замена слишком коротких и часто встречающихся строк может привести к неожиданным эффектам. В частности, ТаймПэд не проверяет, является ли слово, которое вы заменяете, частью более длинного слова.

Вы можете как добавить свою локаль, так и переопределить используемую виджетом локаль в настройках, как в примере ниже. Обратите внимание — технически локаль меняется перед отрисовкой виджета с помощью вызова функции (в данном случае — handleTWFrouted) по событию preRoute. Название функции может быть любым, главное — привязать ее к правильному событию. preRoute — всегда preRoute.

<script type="text/javascript">
    var handleTWFrouted = function (e) {
        if (e.isInitial) {
            // Создаём клингонскую локаль
            this._locales['tlh'] = {
              "Пожалуйста, проверьте правильность заполнения выделенных полей.": "DubelmoHchugh wIv yotlh correctness check.",
              "Выберите тип билетов": "chaw' Segh wIv"
            };

            // Чистим кеш
            delete this.localizedTpls['tlh'];

            // Выставляем клингонскую локаль
            this.settings.locale = "tlh";
            this.switchLocale('tlh');
        } 
    }
</script>   

<a href="http://org13.timepad.ru/event/АЙДИ_СОБЫТИЯ/" data-twf-placeholder="yes">Перейти к заказу билетов</a>
<script type="text/javascript"
        defer="defer"
        data-data-timepad-customized="АЙДИ_ИЗ_ВАШЕГО_КОДА"
        data-twf2s-event--id="АЙДИ_СОБЫТИЯ"
        data-timepad-widget-v2="event_register"
        src="//timepad.ru/js/tpwf/loader/min/loader.js">
    (function() {
        return {
            "bindEvents": {
                "preRoute": "handleTWFrouted"
            }
        };
    })();
</script>

Вы также можете переопределить локаль (на одну из стандартных, en или ru) в настройках в коде вставки:

<a href="http://org13.timepad.ru/event/АЙДИ_СОБЫТИЯ/" data-twf-placeholder="yes">Перейти к заказу билетов</a>
<script type="text/javascript"
        defer="defer"
        data-data-timepad-customized="АЙДИ_ИЗ_ВАШЕГО_КОДА"
        data-twf2s-event--id="АЙДИ_СОБЫТИЯ"
        data-timepad-widget-v2="event_register"
        src="//timepad.ru/js/tpwf/loader/min/loader.js">
    (function() {
        return {
            "locale": "en"
        };
    })();
</script>

Где взять оригинальные локали

На данный момент существует только локаль для виджета регистрации на событие. Ее актуальная версия находится в YAML файле по адресу https://timepad.ru/js/tpwf/widgets/src/event_register/locales/en.yaml