breadcrumb
Хлебные крошки с переведёнными названиями разделов.
Что добавить
Здесь не подстановка в результат, а построение цепочки:
\mrLexndr\Translate\IblockHelper::fixBreadcrumbs(
$iblockId,
$sectionId,
$elementName,
$elementUrl,
$setTitle = true
);
Хелпер строит цепочку навигации штатными средствами ядра, подменяет имена разделов переводом из языковых полей, добавляет элемент и — если пятый аргумент оставлен включённым — ставит заголовок окна.
Почему цепочку приходится строить, а не править
Крошки собирает ядро из названий разделов, и делает это до того, как в дело вступает шаблон компонента. Подставить перевод «поверх» готовой цепочки негде: к моменту, когда она доступна, названия уже в ней.
Поэтому хелпер собирает цепочку сам, с самого начала и на нужном языке.
Где это вызывать
В том месте, где страница знает раздел и элемент: обычно result_modifier.php
детальной страницы или шаблон раздела.
Заголовок окна ставится тем же вызовом — это удобно, но если заголовок у вас
уже формируется своим кодом, передайте пятым аргументом false, иначе два
механизма будут спорить, и победит тот, что выполнился позже.
Если переводятся не все разделы
Названия разделов берутся из языковых полей UF_NAME_<язык>, которые создаёт
синхронизация. Раздел, у которого поле пустое, останется на базовом языке —
перевода просто нет.
Проверить, что переведено, а что нет, удобно на вкладке «Статистика» экрана Обслуживание.