search.page
Результаты поиска.
Что добавить
result_modifier.php шаблона компонента:
\mrLexndr\Translate\IblockHelper::substituteSearchResults($arResult);
Хелпер берёт перевод по идентификатору элемента и меняет заголовок и сниппет.
Записи чужих модулей — форума, обычных страниц — и записи разделов он не трогает. Пустой перевод базовый текст не затирает. На базовом языке не делает ничего.
Почему это отдельная задача
Индексная запись у элемента одна. Штатный индексатор кладёт в неё все свойства, помеченные как участвующие в поиске, включая языковые. Поэтому английский запрос элемент находит — и это работает само, без вызовов.
А вот заголовок и сниппет в выдаче собираются из базовых NAME и
PREVIEW_TEXT. Без подмены посетитель английской версии находит нужный товар и
видит его русское название.
То есть без хелпера поиск работает наполовину: находит, но показывает не то.
Что нужно, чтобы находилось
Языковые свойства должны участвовать в поиске. Новое языковое свойство наследует эту настройку от исходного при создании. Языковые поля разделов создаются участвующими в поиске — но если у вас остались поля, созданные старой версией модуля, проверьте настройку у них.
Индекс должен быть пересобран после создания свойств и после перевода. Модуль индексацией поиска не управляет — это штатный механизм Битрикса.
Подробнее про поиск — Поиск по языкам.