Упростить создание и сопровождение мультиязычных сайтов

Рейтинг: 5.9346  
На голосовании
Предложил Шерлок Холмс 27.10.2011 01:24:37

Упростить создание и сопровождение мультиязычных сайтов

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

Сейчас приходится городить такие костыли:
while ($arElement = $db_elements->GetNext())
{
   // Переводим все свойства на нужный язык (выбираем нужный вариант перевода)
   $arElement = CVidiLib::TranslateToLanguage($arElement, $arLangProps, $arLangParams);     
...

Хотелось бы иметь штатный механизм, чтобы было АПИ и чтобы компоненты "понимали" какие многоязычные свойства выбирать и показывать на сайте.
---
В модуле подписки у подписчика нельзя выбрать на каком языке он хочет получать подписку. Желательно чтобы полписчик был один, и рубрика подписки одна (так проще управлять) а в параметрах подписчика добавить поле "язык подписки", и при рассылке отправлять ему письмо на том языке, который он выбрал.

---
Чтобы создать веб-форму на нескольких языках приходится или создавать несколько веб-форм (по одной для каждого языка) или писать в названии вопроса варианты ответов через раздилетиль:
ФИО|ПІБ|Name
Почему-бы не сделать чтобы штатно можно было задавать перевод для вопросов веб-формы и для ответов веб-формы. Было бы очень удобно.

---
Переключение на другой язык. Удобно чтобы мы остались на той-же странице (например, на новости) но на другой языковой версии (с русской на украинскую, или на английскую). Нужно добавить в поставку компонент "переключатель языков" который бы учитывал что такая новость существует и что на неё можно переключиться (чтобы не генерировать ссылки на 404 страницы если перевода новости нет).

---
Напоминание о том, что после создания страницы на одном языке нужно еще зайти в другую языковую версию и там создать страницу. Часто редактор добавляет одну страницу или новость, и забывает что еще нужно создать аналогичную страницу для перевода. Идеальный вариант - чтобы он сразу в одном окне при создании или изменении страницы мог редактировать все языковые варианты этой страницы.

---
Возможность брать константу LANGUAGE_ID не из настроек сайта, а из папки сайта или из домена (например, если мы в папке /en/ то сразу принимать что язык сайта английский, или если на поддомене ua.some-site.com то понимать что язык сайта украинский. Необходимости создавать дополнительный сайт для этого совсем нет, можно просто создать для этого сайта правило по которому определять константу LANGUAGE_ID.

Рейтинг: 0  
Шаклеин Сергей 27.10.2011 09:07:37
Насчет  "В каталогах:" я с вами не согласен, там есть фаил откуда грузятся языки это удобно. а вот с формами в некотором смысле вы правы, но иногда лучше для разных языков разные формы.
Вообще языки я думаю во всем устраивают.
Рейтинг: 0  
Шерлок Холмс 27.10.2011 10:17:31
Насчет  "В каталогах:" я с вами не согласен, там есть фаил откуда грузятся языки это удобно.

Речь шла не о языковых файлах, а о свойствах инфоблока, которые имеют перевод (навзание, детальный текст, и тд).


Вообще языки я думаю во всем устраивают.
Сейчас языковая система хорошо подходит для идеологии когда для каждого языка создается отдельный сайт, местами совсем разный.

Но практика создания украинских сайтов показывает что часто сайт должен иметь несколько языковых версий (русскую, украинскую, английскую) которие имеют идентичную структуру, только разный перевод. Для таких сайтов в Битриксе не очень удачно подготовлен механизм.