Как осуществляется перевод динамическоой информации на другой язык?
| Цитата |
|---|
| Как осуществляется перевод динамическоой информации на другой язык?, |
Для управления динамической информацией на нескольких языках существует по сути два теоретических варианта решения проблемы:
1. создание полностью независимых объектов на каждом языке (когда каждый объект хранится в отдельной строке базы данных)
2. выделение языкозависимых свойств объектов в отдельные структуры и одновременный ввод описаний на нескольких языках (для каждого объекта создается две таблицы, для основных свойств, и для свойств, зависящих от языка)
В истории нашей компании мы разрабатывали разные варианты каталогов. Раньше мы были сторонниками второго вариант. В частности, в системе арендуемых магазинов все описания вынесены в дополнительные структуры, и ввод осуществляется сразу на нескольких языках.
Но практика внесла коррективы. Оказалось, что никто из клиентов не использовал такие возможности и, по сути, создавали полностью различные каталоги, как по структуре, так и по описаниям.
Причина этого не в том, что клиенты не хотят делать единый каталог и пользоваться возможностями продукта. А в том, что фактически товары для западных рынков имели разные названия, разные модификации, разную ценовую политику, часто и разные фотографии и т.д. В большинстве своем в компаниях западными каталогами и вообще продажами занимаются разные сотрудники и отделы, знающие язык и аудиторию. Т.е. клиенты строили западные каталоги для другой аудитории не оборачиваясь на русский рынок.
И в целом, это совершенно правильно и понятно.
Технический аспект реализации второго метода. Для выборки языкозависимых свойств из вспомогательных структур необходимо использовать SQL подзапросы. Это уменьшает производительность системы и делает затруднительным использование малых баз данных, которые достаточно популярны, а именно MySQL (вычисление подзапросов переносится на клиентскую часть, падает производительность, ухудшается масштабирование).
Учитывая все выше сказанное, в продукте «Битрикс: Управление сайтом 3.0» нами реализована первая модель.
Это значит, что для создания каталога на другом языке вы должны будете или скопировать его вместе со всеми описаниями и фотографиями, или должны будете создать и вести его полностью независимо от другого каталога.
Нам кажется, что этот вариант работы обеспечивает большее соответствие реальным бизнес моделями компаний.
Битрикс — многоязычность

При покупке любой редакции «Управление сайтом» вы получаете возможность создать 2 сайта. Производители CMS рассчитывали на то, что для большинства корпоративных сайтов и интернет-магазинов будет жизненно необходимо наличие англоязычного зеркала. Однако это не всегда так, чаще всего второй сайт остается незанятым.
Что ж, настало время создать этот второй сайт. Но для начала нужно определится, как будет реализована многосайтовость, есть 2 варианта: многоязычность первого типа, когда языковые сайты располагаются друг относительно друга на одном домене, но в разных папках (например в корневой папке русская версия сайта, а в папке /en/ — зеркало на английском языке); многосайтовость второго типа, когда языковые сайты располагаются на разных доменах или поддоменах. Чаще всего для создания зеркала на английском языке используют первый вариант многосайтовости.
Опишу по пунктам что нужно сделать, чтобы для имеющейся в наличии русской версии вашего корпоративного сайта вы могли быстро создать его английскую копию.
1. Создайте папку /en/ и дайте ей права на запись вебсервера. Можно ее просто создать через панель управления Битрикс.
2. Добавьте новый сайт для английской версии здесь — /bitrix/admin/site_admin.php?lang=ru&set_default=Y
Я приведу скриншоты настроек для русской и английской версии.
4. Нужно перевести на английский текст в этих файлах.
5. Далее требуется перевести компоненты
— для компонентов, использующих инфоблоки (это компоненты, имеющие в своем названии iblock, catalog), нужно создать инфоблоки для английского зеркала и привязать их к соответствующим компонентам в англ. версии.
— для ваших компонентов требуется переделать шаблоны вывода, чтобы они использовали специальные файлы с переводами слов, а не выводили слова напрямую. Для всех компонентов, поставляемых с Битрикс это уже сделано разработчиком CMS.
Что нужно сделать, чтобы ваш компонент стал многоязычным?
1. В коде компонента component.php и в шаблонах компонента необходимо заменить вывод русских слов на функцию GetMessage.
Например, если у вас в коде component.php есть такое:
требуется сделать так:
А если у вас в шаблоне есть вывод русских слов например такие:
Для шаблона компонента (файл template.php) файлы переводов лежат в папке шаблона компонента в папке lang/ru/ и lang/en/
соответственно, в эти файлы нужно добавить:
На этом создание английского зеркала сайта закончено.
Многоязычный сайт на «Битрикс: настройка языкового меню
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
| Источник: |
В предыдущей заметке «Многоязычный сайт на «Битрикс»: первые шаги» мы рассказали, как приступить к настройке многоязычного сайта. Описали добавление языков и настройку переключения в публичной части. В этом статье мы расскажем, как создать и настроить меню для многоязычного сайта. Итак:
1. Скопируйте шаблон для последующей кастомизации
Найдите действующий шаблон сайта по адресу /bitrix/templates/, и скопируйте его в новую папку.
Допустим, вы использовали шаблон /bitrix/templates/mysite/
Его надо будет скопировать в папку /bitrix/templates/mysite_lang/
2. Поменяйте описание нового шаблона
Найдите файл описания по адресу /bitrix/templates/mysite_lang/description.php
3. Настройте условие переключения
Зайдя в «Настройки сайта», найдем новый шаблон и зададим ему условие переключения языка, добавив код
4. Создайте новые типы меню
В настройках модуля в разделе «Управление структурой», создайте языковые типы для меню top и left.
5. Измените типы меню в «шапке» и «подвале»
Найдите по адресу /bitrix/templates/mysite_lang/ файлы header.php и footer.php. Отредактируйте их код, заменив на новый:
IncludeComponent(«bitrix:menu», «horizontal_multilevel», array(
«ROOT_MENU_TYPE» => «top_la»,
«MENU_CACHE_TYPE» => «N»,
«MAX_LEVEL» => «3»,
«CHILD_MENU_TYPE» => «left_la»,
«USE_EXT» => «Y»,
«DELAY» => «N»,
«ALLOW_MULTI_SELECT» => «N»
),
false
);?>
6. Создайте копии файлов меню на локальном языке
В нужных местах структуры сайта создайте файлы
И переведите их на локальный язык. В нашем случае на белорусский.
Если же речь идет о корпоративном сайте, то в его социальном шаблоне необходимо изменить ID. Для этого найдите условие
7. Разложите по папкам
Сайт должен отдавать контент и на русском, и на белорусском? Тогда контент на национальных языках надо разместить по отдельным папкам, допустим:
— Новости
— Услуги
— Сотрудники
— Навіны
— Паслугі
— Супрацоўнікі


