breadcrumb

Хлебные крошки с переведёнными названиями разделов.

Что добавить

Здесь не подстановка в результат, а построение цепочки:

\mrLexndr\Translate\IblockHelper::fixBreadcrumbs(
    $iblockId,
    $sectionId,
    $elementName,
    $elementUrl,
    $setTitle = true
);

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

Почему цепочку приходится строить, а не править

Крошки собирает ядро из названий разделов, и делает это до того, как в дело вступает шаблон компонента. Подставить перевод «поверх» готовой цепочки негде: к моменту, когда она доступна, названия уже в ней.

Поэтому хелпер собирает цепочку сам, с самого начала и на нужном языке.

Где это вызывать

В том месте, где страница знает раздел и элемент: обычно result_modifier.php детальной страницы или шаблон раздела.

Заголовок окна ставится тем же вызовом — это удобно, но если заголовок у вас уже формируется своим кодом, передайте пятым аргументом false, иначе два механизма будут спорить, и победит тот, что выполнился позже.

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

Названия разделов берутся из языковых полей UF_NAME_<язык>, которые создаёт синхронизация. Раздел, у которого поле пустое, останется на базовом языке — перевода просто нет.

Проверить, что переведено, а что нет, удобно на вкладке «Статистика» экрана Обслуживание.