Как сделать многоязычный сайт на Друпал 6

Делаю многоязычный сайт на друпал.

Первым делом включаю нужные мне модули: Locale и Content Translation. Модули идут из коробки.

Следом доставляю дополнительные модули для поддержки многоязычности. Начать нужно как минимум с i18n. В admin/build/modules появится раздел Multilaguage в котором следует включить модули, которые должны пригодится. Для меня это на первый взгляд все, кроме Poll aggregate и Profile translation.

Затем правлю settings.php для поддержки многоязычности базовых переменных сайта:

$conf['i18n_variables'] = array(
// Site name, slogan, mission, etc..
'site_name',
'site_slogan',
'site_mission',
'site_footer',
'anonymous',
// Different front page for each language
'site_frontpage',
// Primary and secondary links
'menu_primary_links_source',
'menu_secondary_links_source',
// Contact form information
'contact_form_information',
// For theme variables, read more below
'theme_settings',
'theme_garland_settings',
);

Следом добавляю языки, на которых будет говорить мой сайт. Это Английский (основной, уже есть), Немецкий и Французский. Языки добавляются на странице админки admin/settings/language.

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

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

Создаю многоязычный контент. Для девелоперской версии вполне сгодится метод google translate.

Иду в блоки и включаю блок переключателя языков.

И тут меня ждала засада: блок ну ни как не хотел работать как я ожидал - переключал куда угодно и как угодно.

Попутно вылезли дикие глюки с путями в pathauto. Долгое гугление и пляски с бубном ничего толкового не дали, пока я не решился переключится на одну из стандартных тем. И о чудо - всё заработало.

Алгоритм создания многоязычного сайта на Drupal

  1. Качаю модуль Internationalization
  2. Правлю settings.php (см. выше)
  3. Иду в /admin/build/modules и включаю модули Core->Content translation, Core->Locale, Multilanguage->чего там мне нужно для сайта
  4. Добавляю языки в /admin/settings/language/add
  5. Настраиваю метод выборки контента и показ многоязычных ссылок /admin/settings/language/i18n
  6. Конфигурирую метод, которым Друпал будет определять, как работать с многоязычностью в /admin/settings/language/configure
  7. Настраиваю типы контента до нужной мне многоязычности в /admin/content/types/list
  8. При необходимости подкручиваю вьюсы и блоки
  9. Включаю блок переключения языков (/admin/build/block/list), при необходимости подкручиваю тему напильником
  10. Создаю многоязычный контент
  11. Наслаждаюсь сайтом

Важно!

Если ваш сайт с недефолтным английским языком, то очень похоже, что все cck'и нужно создавать переключившись в интерфейсе (блок переключения языка) на дефолтный язык и в нём уже всё колбасить. А потом переводить на нужный язык. А лучше всегда делайте дефолтный английский и будет меньше седины на висках.

Смотреть комментарии и скриншоты к статье.

Автоматизация импорта переводов для Друпал 6 и 7

Есть очень классный модуль для обоих версий Drupal, который автоматически импортирует нужные переводы для нужных языков и модулей.

Брать тут: l10n_update

Читать ещё про многоязычный сайт на Drupal:

Сделал сайт на одном языке, но для панели управления которого требуется несколько языков - свой для каждого пользователя.

Решение записываю в блог что-бы было проще потом воспроизводить.


Как вывести многоязычный views на Drupal без дупов многоязычного контента.


RSSAdd to Google

Обсуждение:

  • Автор: (Анонимус)
  • Тема: Перевод строк
  • В статье не рассматривался вопрос перевода Логотипа, слогана, названия сайта. Только упоминается наличие переменных, но перевести мне их не дают.

    Остальное супер! справился с переводом за несколько минут. Пойду искать как перевести название и слоган.

  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • Для перевода значений, указанных $conf['i18n_variables'] (название, слога, миссия и т.д.) достаточно перейти в соответствующий раздел настроек друпал на нужном языке.
    Т.е. отредактировать например миссию сайта переключившись поочерёдно на все языки сайта.
    Если всё настроено правильно, то рядом с многоязычными полями друпал будет писать что-то типа "This is a multilingual variable."
    PS: Спасибо за оценку

  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Перевод Views
  • Создал Views, а он не переводится.

    Перевожу материал, кот. входит в вьювс - все валится в кучу и не реагирует на переключения языка.

    Как переводить вьюхи?

  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • Тема: Перевод Views
  • С переводом Views'ов всё пока не работает на 100% - некоторые поля переводятся только с помощью лома и какой-то матери (как минимум таксономийные).
    Что касается раскладывания по кучам материалов, которые выводят вьюсы, то тут помогут фильтры.
    Добавляем фильтр Node translation: Language и в него ставим галочки типа Current user's language или какие там нам нужны для полного счастья. И сразу будут отброшены материалы не из текущего языка сайта.
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Перевод Views
  • >... Current user's language

    Ларчик просто открывался, оказывается.

    Спасибо большое!

    P.S. Только что обратил внимание на наличие статьи "Многоязычный views на Drupal", - как всегда все ответы уже есть заранее. Ну разве что она была только-что написана ;)

  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Меню!
  • Меню Вы переводите через Translate interface?
    admin/build/translate

  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • Тема: Перевод меню в Drupal
  • Меню перевожу в каждой ноде в каждом из языков в разделе Menu settings.
    Как вариант можно и через Translate interface.
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Перевод меню в Drupal
  • > ...в каждой ноде в каждом из языков в .. Menu settings.

    У меня такой вариант почему-то не работает.
    Хотя код:
    $conf['i18n_variables'] = array(
    ...// Primary and secondary links
    'menu_primary_links_source',
    'menu_secondary_links_source',...

    ); в settings.php вставил.

    Ну да если можно через Translate interface, то пока ладно.

  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Многоязычность
  • Дмитрий здравствуйте!
    Спасибо, все получается с сайтом переводом на два языка английский и русский, но имеется проблема у меня.
    Если я захожу с главной на каком либо языке, к примеру, на русской версии, то все хорошо если иду по ссылкам по одном языке, не переходя английскую версию. Но если я перехожу на другой язык на какой нибудь внутренней странице любой, кроме главной странице, то здесь облом: флажок перехода показывает ссылку до преобразования т.е в адресе присутствует nod/3 и т.п. А я все адреса поменял, нод в адресе выходит и соответственно..
    Как устранить чтобы не было проблем с переходом туда-сюда. Может нельзя переименовывать в чистые ссылки? Смотрел примеры буржуев у них на сайтах не ЧПУ, а ноды остались в адресах.
    Друпал 6.19
  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • Тема: Многоязычность. Ссылки в блоке переключения языка.
  • Добрый.
    Попробуйте сменить тему (например Garland) - очень похоже, что в теме живёт обработчик ссылок, который некорректно их хавает для нетекущего языка. Если вылечится - значит искать эту функцию в теме и изводить/переписывать.
    Если не поможет - то подобная кака иногда вызывалась модулем или custom breadcrumbs или menu breadcrumbs - точно не вспомню. Попробуйте отстрелить эти модули на тестовом сайте и посмотреть чего получится.
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Многоязычность. Ссылки в блоке переключения языка.
  • Спасибо за быстрый ответ. Пробовал Гарланд, пока не помогает:то-же самое.
    custom breadcrumbs таких модулей нет, но пытаюсь отключить лишние модули-то-же не помогает.
    Версия 6.19 там нет модуля Content, поэтому CCK translation не могу включить.
    Views translation то-же нет где включить .
    После всяких манипуляций чищу кэш на всякий случай.
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Многоязычность. Ссылки в блоке переключения языка
  • Разобрался сам, все пошло, чуть мозг не сломал.
    Заковыка была в том, что плохо читал или просмотрел или недопонял, то что страница делается одна на основном языке, а из нее путем перехода на этой-же странице имеется вкладка справа сверху перевод на другие языки... Спасибо
    Единственно пока непонятно, для своего языка надо иметь пункт меню на своем языке т.е. надо создавать?? или проще-сейчас далее буду экперементировать.
  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • Тема: Многоязычное меню
  • При переводе материала при желании его можно добавить в меню на соответствующем языке.

  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Все понятно преподнесено
  • У вас самая понятная статья. Спасибо!
  • Отправлено:
  • Автор: Анонимус
  • У меня нигде нет ссылок для перевода материала на другой язык. Я подозреваю что должно быть как то так:
    http://drupal-translation.com/content/creating-translations
    Но у меня нет подобных ссылок-закладок.

  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • Скорее всего не включена одна из галочек для поддержки многоязычности. Как вариант возможность перевода может не появляться пока не выбран языка для основной страницы материала.
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Не переводится весь сайт
  • Спасибо за статью! Очень полезная.
    Вот только сделала все как нужно, но кнопка переключения языка работает только непосредственно на какой-то странице с материалом. А весь контент и меню не переводится. Как можно решить эту проблему?
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Замечательная статья!
  • Меню переводится в admin/build/translate/search, надо ввести русскоязычную строку (название меню), затем запустить поиск и найденную строку изменить (ввести текст перевода). И сохранить. У меня все получилось с полпинка - Дмитрию огромное спасибо! См. http://tdocs.su, если не лень.

  • Отправлено:
  • Автор: (Анонимус)
  • Тема: Красивые лики
  • Спасибо за статью.
    Хочу добиться одинаковых линков для страниц при изменении языка (сайт/ru/faq => сайт/en/faq)
    подключил path в синонимах прописывал в одном языке faq - язык английский в другом faq - язык русский. Язык преключается, первый линк - норм, второй линк - сайт/node/1
  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • Если обе страницы доступны по своим адресам, то скорее всего проблема в теме - попробуйте поменять на дефолтную и если глюк исчезнет, то в template.php вашей темы искать проблемную функцию
  • Отправлено:
  • Автор: (Анонимус)
  • Тема: начал править settings.php
  • Начал править settings.php Открыл файл вставил вашу телегу. Залил обратно на сайт. Он у меня вернулся к этапу установки друпал. Т.е весь сайт слетел. Помогите что делать дальше. Я не знаю PHP и но мультиязычный сайт очень нужен.
  • Отправлено:
  • Автор: Dmitrii Varvashenia
  • Странное поведение - очень похоже на то, что друпал не видит этот файл - проверьте settings.php на предмет прав доступа к нему на чтение.
  • Отправлено:

Как вам материальчик? *



















Тема:

Мысль:

Как звать-то:

Почта:

PS: Комментарии публикуются только после проверки модератором.

PPS: E-mail'ы не публикуются.

* обязательные поля