search.page

Результаты поиска.

Что добавить

result_modifier.php шаблона компонента:

\mrLexndr\Translate\IblockHelper::substituteSearchResults($arResult);

Хелпер берёт перевод по идентификатору элемента и меняет заголовок и сниппет.

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

Почему это отдельная задача

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

А вот заголовок и сниппет в выдаче собираются из базовых NAME и PREVIEW_TEXT. Без подмены посетитель английской версии находит нужный товар и видит его русское название.

То есть без хелпера поиск работает наполовину: находит, но показывает не то.

Что нужно, чтобы находилось

Языковые свойства должны участвовать в поиске. Новое языковое свойство наследует эту настройку от исходного при создании. Языковые поля разделов создаются участвующими в поиске — но если у вас остались поля, созданные старой версией модуля, проверьте настройку у них.

Индекс должен быть пересобран после создания свойств и после перевода. Модуль индексацией поиска не управляет — это штатный механизм Битрикса.

Подробнее про поиск — Поиск по языкам.