Поддержка мультиязычности в компонентах инфоблоков

Рейтинг: 8.0385  
На голосовании
Предложил Шерлок Холмс 07.12.2013 00:16:46

Поддержка мультиязычности в компонентах инфоблоков

Ни для кого не секрет, что большинство сайтов делают мультиязычность для каталогов с помощью дополнительных свойств. Это удобно, так как элемент (с его ценой, картинкой, сортировкой) добавляется один раз, а языкозависимые параметры задаются через дополнительные свойства:
PROPERTY_EN_NAME
PROPERTY_EN_DETAIL_TEXT
...
и тд.

Идея в том, чтобы в стандартных компонентах
bitrix:catalog.element
bitrix:catalog.section
bitrix:catalog.section.list

bitrix:catalog.top
bitrix:news.list
bitrix:news.detail


реализовать поддержку мультиязычности, и в зависимости от константы LANGUAGE_ID и языка по умолчанию, выбирать в $arResult те или иные свойства элемента в качестве основных.


А так же добавить поддержку выборки нужных свойств перевода на уровне API инфоблоков.

Рейтинг: 6.2188  
Грищук Максим 10.12.2013 13:25:10
Не знаю почему минусуют.

Но должен быть штатный механизм языковости.
Рейтинг: 0.1833  
Морковкин Никита 12.12.2013 00:53:46
Грищук Максим, минусуют за предложенную реализацию наверное.
Вышеописанное можно и в result_modifier сделать.
Рейтинг: 0.7549  
Шерлок Холмс 12.12.2013 01:14:57
Вышеописанное можно и в result_modifier сделать.
Да, и сео-свойства можно сделать через result_modifier, и так и мучались с этим лет 5 пока не ввели в штатный функционал это.

Это должно быть на уровне ядра, а не на уровне костылей. Это ШТАТНЫЙ функционал, который ДОЛЖЕН быть в современном продукте. Чтобы "из коробки" любой человек мог сделать себе мультиязычный сайт на Битриксе.
Рейтинг: -1.2832  
Гречушников Максим 16.08.2016 11:15:32
для "не каталога товаров" мы делаем 2 копии сайта в / и в /en папках стандартными средствами битрикса.
информацию инфоблоков на примере новостей держим в разных инфоблоков для каждой версии сайта.
для каталога товаров дублируем свойства под разные языки.

проблем не вижу.
Рейтинг: 0  
Маджугин Александр 06.09.2018 11:58:50
Проблема в том, что это должно быть реализовано на уровне модели, а не контроллера и значит в API, а не в коде компонентов. Реализация поддержки этого в компонентах - дурной дизайн. Так делать нельзя.
И не надо про SEO - это совсем другое.
А реализация мультиязычности на уровне API это слишком огромная задача и она кстати могла быть реализована при переходе к D7, но увы.
Ждали 5 лет. Еще подождем.
Может в D8?