Названия и подсказки свойств

У свойства инфоблока одно поле названия на все языки — ядро перевода не предусматривает. Поэтому перевод живёт в словаре, под служебным кодом вида SYS_IBPROP_<ID>_NAME.

Как вывести

IblockHelper::propertyName($propertyId, $arProperty['NAME']);
IblockHelper::propertyHint($propertyId, $arProperty['HINT']);
IblockHelper::propertyFilterHint($propertyId, $sectionId, $default);

Вторым аргументом передавайте то, что уже есть в массиве свойства. Оно покажется, пока перевода нет, и сэкономит запрос к базе.

На базовом языке хелперы возвращают его же и словарь не спрашивают вовсе.

Подсказка умного фильтра: два уровня

У подсказки фильтра приоритет такой же, как у настроек умного фильтра в ядре: подсказка раздела сильнее общей подсказки свойства.

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

Варианты списков — отдельная история

Подписи вариантов свойства-списка переводятся сами, при первом переводе элементов этого инфоблока на этот язык. Дальше результат помнится на пару «инфоблок и язык».

Значения элементов при этом не переводятся, а копируются по совпадению XML_ID: один и тот же вариант в разных языках — это одна запись справочника с разными подписями, а не два разных значения.

Перевод вариантов не запускается, если вы переводите только разделы или только SEO-шаблоны: там списков нет.

В форме редактирования

При включённом зеркале языка подписи полей формы подменяются теми же переводами. Сервер отдаёт браузеру карту «свойство — подпись», а клиент меняет только текст в ячейке подписи, не трогая значки и ссылки рядом с ним. См. Зеркало языка.

Почему это не поле в базе

Соблазн добавить свойству колонку NAME_EN понятен. Но это таблица ядра, и дописывать в неё колонки — значит расходиться с платформой навсегда: любое обновление Битрикса может её переопределить.

Словарь даёт то же самое без вмешательства в чужие таблицы, а конвенция кодов позволяет по коду понять, чьё это имя, и найти фразы удалённого свойства разбором, а не глазами.