Названия и подсказки свойств
У свойства инфоблока одно поле названия на все языки — ядро перевода не
предусматривает. Поэтому перевод живёт в словаре, под служебным кодом вида
SYS_IBPROP_<ID>_NAME.
Как вывести
IblockHelper::propertyName($propertyId, $arProperty['NAME']);
IblockHelper::propertyHint($propertyId, $arProperty['HINT']);
IblockHelper::propertyFilterHint($propertyId, $sectionId, $default);
Вторым аргументом передавайте то, что уже есть в массиве свойства. Оно покажется, пока перевода нет, и сэкономит запрос к базе.
На базовом языке хелперы возвращают его же и словарь не спрашивают вовсе.
Подсказка умного фильтра: два уровня
У подсказки фильтра приоритет такой же, как у настроек умного фильтра в ядре: подсказка раздела сильнее общей подсказки свойства.
Общие подсказки и названия заводит сборщик — той же кнопкой, что и названия инфоблоков. А подсказки раздела администратор заводит сам там, где они нужны: сборщику неоткуда узнать, у каких разделов они должны быть.
Варианты списков — отдельная история
Подписи вариантов свойства-списка переводятся сами, при первом переводе элементов этого инфоблока на этот язык. Дальше результат помнится на пару «инфоблок и язык».
Значения элементов при этом не переводятся, а копируются по совпадению
XML_ID: один и тот же вариант в разных языках — это одна запись справочника с
разными подписями, а не два разных значения.
Перевод вариантов не запускается, если вы переводите только разделы или только SEO-шаблоны: там списков нет.
В форме редактирования
При включённом зеркале языка подписи полей формы подменяются теми же переводами. Сервер отдаёт браузеру карту «свойство — подпись», а клиент меняет только текст в ячейке подписи, не трогая значки и ссылки рядом с ним. См. Зеркало языка.
Почему это не поле в базе
Соблазн добавить свойству колонку NAME_EN понятен. Но это таблица ядра, и
дописывать в неё колонки — значит расходиться с платформой навсегда: любое
обновление Битрикса может её переопределить.
Словарь даёт то же самое без вмешательства в чужие таблицы, а конвенция кодов позволяет по коду понять, чьё это имя, и найти фразы удалённого свойства разбором, а не глазами.