Drupal: Многоязычный сайт

Сегодня включал в своем сайте поддержку контента на многих языках. Сделано это ради одного-единственного текста - по поводу моего плугина Version для NSIS (Nullsoft Scriptable Install System) http://faq1c.gorbunov.ru/node/13 ну и на перспективу - чтобы знать.

Так вот, на момент написания этого текста сайт мой сделан на CMF ( или CMS? ) Drupal версии 6.

В ядре Drupal 6 кое-какой функционал для организации переводов имеется, но только самый базовый. После включения входящего в ядро Drupal 6 модуля "Content Translation" сайт начал добавлять в URL после имени домена "/ru/" или "/en/", но возможности иметь несколько разноязычных версий содержимого сайта так и не появилось.

Слазил на сайт http://drupal.org, там в статьях про многоязычные сайты первым делом рекомендовали поставить модуль i18n, что я и сделал, затем поставил к этому модулю русификацию взятую с сайта http://drupaler.ru. Вот эти статьи:
http://drupal.org/handbook/modules/translation
http://drupal.org/project/select_translation
http://drupal.org/node/275705

Не помогло. Нашел множество текстов. Читал. Вот они:
http://cristobal-junta.livejournal.com/44916.html
http://viju.tvercity.net/ru/weblog/entry08-jan-2009-Drupal-i18n
http://shaman.asiadata.ru/node/172

В общем то все довольно просто. Помимо включения входящего в ядро модуля "Content Translation" нужно еще включить в настройках каждого типа материалов (node type) что "поддержка многоязычности разрешена с переводами". После этого в материалах (node'ах) этого типа появляется закладка "Перевод" (Translate).

Переведенная нода (переведенный материал) - это новая нода (новый материал). Между ними есть взаимные ссылки, только и всего. Разработчику нужно еще заботиться (включая и настраивая модуля из пакета модулей i18 и другие модуля) о том что правильно отображать на сайте меню, сами ноды (материалы) и пр. Иначе они двоят (для двух языков - русского и английского). Кроме того, раз уж переведенная нода (материал, node) является самостоятельным материалом (нодой, node), то и связанные с нодой (node, материалом) поля модуля CCK, прикрепленные к ней файлы и пр. также придется раздвоить.

Ну его, решил я. Не стал разбираться в дальнейшем и отключил поддержку многоязычности. Ради одной-единственной node (ноды, материала) проще многоязычность реализовать вручную.

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

Компьютерные вопросы: 
2002-2012 ©