sale.order.ajax
Оформление заказа.
Здесь ничего добавлять не нужно
Страница переводится сама, через два штатных события компонента. Это единственный случай в разделе, где вызов в шаблон не вписывают.
Почему так: у компонента оформления заказа события есть, и они дают доступ к данным до вывода. У корзины таких событий нет, поэтому там — строка в шаблоне.
Два события, а не одно
Первое срабатывает при обычной сборке страницы.
Второе — при пересборке данных без перезагрузки: когда покупатель меняет способ доставки, компонент пересчитывает заказ и отдаёт новые данные в браузер. Без второго обработчика подписи после такой смены возвращались бы к русским, и выглядело бы это как случайный сбой.
Поэтому при проверке обязательно смените способ доставки, не перезагружая страницу, и убедитесь, что подписи остались на языке. Это ровно тот случай, который проще всего пропустить.
Что переводится
Названия платёжных систем, служб доставки, свойств заказа и типов плательщиков.
Ядро хранит их одним текстом на все языки — отдельного поля под перевод там нет. Поэтому они переносятся в словарь и переводятся как обычные фразы: Платёжные системы и доставки.
Если подписи не переводятся
- Названия собраны в словарь? Кнопка «Собрать названия магазина» на экране Обслуживание. Нажимать её надо после того, как завели или переименовали способ оплаты или доставки;
- фразы переведены? Они в словаре, ищутся по префиксу
SYS_; - обработчики на месте? Эти два события регистрируются, только если установлен модуль магазина. Проверить — на экране Проверка стенда.
Свой код оформления заказа
Если заказ собирается не штатным компонентом, названия отдают хелперы фасада:
paySystemName(), deliveryName(), orderPropName(), personTypeName(),
measureName(). Каждый принимает идентификатор сущности и возвращает название
на языке страницы.