sale.order.ajax

Оформление заказа.

Здесь ничего добавлять не нужно

Страница переводится сама, через два штатных события компонента. Это единственный случай в разделе, где вызов в шаблон не вписывают.

Почему так: у компонента оформления заказа события есть, и они дают доступ к данным до вывода. У корзины таких событий нет, поэтому там — строка в шаблоне.

Два события, а не одно

Первое срабатывает при обычной сборке страницы.

Второе — при пересборке данных без перезагрузки: когда покупатель меняет способ доставки, компонент пересчитывает заказ и отдаёт новые данные в браузер. Без второго обработчика подписи после такой смены возвращались бы к русским, и выглядело бы это как случайный сбой.

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

Что переводится

Названия платёжных систем, служб доставки, свойств заказа и типов плательщиков.

Ядро хранит их одним текстом на все языки — отдельного поля под перевод там нет. Поэтому они переносятся в словарь и переводятся как обычные фразы: Платёжные системы и доставки.

Если подписи не переводятся

  1. Названия собраны в словарь? Кнопка «Собрать названия магазина» на экране Обслуживание. Нажимать её надо после того, как завели или переименовали способ оплаты или доставки;
  2. фразы переведены? Они в словаре, ищутся по префиксу SYS_;
  3. обработчики на месте? Эти два события регистрируются, только если установлен модуль магазина. Проверить — на экране Проверка стенда.

Свой код оформления заказа

Если заказ собирается не штатным компонентом, названия отдают хелперы фасада: paySystemName(), deliveryName(), orderPropName(), personTypeName(), measureName(). Каждый принимает идентификатор сущности и возвращает название на языке страницы.