just photo

Drupal 6. Включаем мультиязычность

Julia 08/01/2009

Теперь, когда мы переехали на Drupal 6, можно заняться и включением мультиязычности,
т.е. перевод не только интерфейса, но возможность перевода контента, таксономии и меню в нашем случае на английский.

И опять расскажу очень коротко об основных этапах и, конечно, ссылки.

Модули,

которые нам понадобятся:
- Модуль Locale (ядро Drupal);
- Модуль Content translation (ядро Drupal);
- Модуль Internationalization (i18n)
- Модуль Translation table

Видеокасты:

А теперь этапы настройки:

  1. Перевод контента

    Включаем модуль ядра Content translation.
    Его настройки и как с ним работать читаем тут:
    http://drupal.org/handbook/modules/translation.

    (Считаю, что модуль locale скорее всего уже включен и загружен русский язык, так как изначально сайт был на русском)

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

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

  2. Перевод Меню.

    Устанавливаем модуль Internationalization

    Есть два способа локализации меню, описание которых см. тут http://drupal.org/node/275705.
    Я выбрала первый как наиболее простой и подходящий для нашего сайта.

    Т.е. для тех страниц в меню, которые являются обычными нодами (т.е. не списки или что-то еше):
    1. захожу в настройки меню этого пункта и выбираю в списке языков русский
    2. затем добавляю страницу с английским переводом и на странице редактирования этого английского нода указываю название для английского меню.

    Все остальные ссылки в меню - просто прохожу и по их настройкам и указываю их язык.

  3. Переходим к Блокам.

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

  4. Views

    Для views строки переводятся через общий механизм перевода строк,
    т.е. создаете views целиком на английском (внимание! именно на английском), а затем идете в admin/build/translate/search и переводите то, что нужно.

    Однако сейчас поддерживаются для перевода только следующие поля:
    title, header, footer и field names
    изменение ситуации (хотя думаю в большинстве случаев хватит и того что есть уже) см. тут Integration with other contributed modules

    Если ваш view должен быть в меню,
    просто укажите это в настройках этого списка
    (название меню здесь пишется на английском!),
    а затем как и все остальное просто переведите эту строку.

    Чтобы в списке показывать только ноды текущего языка, добавьте фильтр i18n: Content negotiation.

  5. Taxonomy

    Для того, чтобы перевести термины и словари, включите мультиязычность для каждого словаря, для которого нужен перевод,
    на странице настроек словаря - /admin/content/taxonomy/edit/vocabulary/[vid]

    Здесь несколько вариантов:
    "Translation mode:

    • None. No multilingual options for this vocabulary.
    • Localize terms. Terms are common for all languages, but their name and description may be localized.
    • Per language terms. Different terms will be allowed for each language and they can be translated.
    • Set language to vocabulary. The vocabulary will have a global language and it will only show up for pages in that language.

    For localizable vocabularies, to have all terms available for translation visit the translation refresh page."

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

  6. Информация о сайте

    Перевод таких переменных как название сайта, миссия, слоган и т.п. (site name, mission, slogan...),
    которые находятся на странице Информации о сайте, делается с помощью включения "мультиязычных переменных".

    В файле template.php добавляем:

    <?php
    /**
    * Multilingual settings
    *
    * This is a collection of variables that can be set up for each language when i18n is enabled.
    * These are the basic ones for Drupal core, but you can add your own here.
    */
    $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',
    );
    ?>

    Теперь идем на соответствующую страницу админки,
    и переключая язык сайта, указываем нужные значения переменных.

Еще ссылки

И в завершении, две основные ссылки на документацию на drupal.org:

P.S.
В дополнение.

Так как при переносе сайта часто возникает желание что-нибудь переделать и улучшить, часто это касается именно таксономии. Поэтому для работы с таксономией скорее всего Вам понадобятся модули, которые помогут массово обновить термины.

  • Модуль Views Bulk Operations
    для обновления терминов для нескольких нодов сразу.
    Возможно следующие операции:
    - Add the selected terms
    - Replace existing terms with selected ones
    - Replace terms within same vocabulary
    - Delete selected terms

    Во вложении view для массового обновления терминов нодов (не забудьте, что для него нужен модуль Views Bulk Operations)

  • Модуль Taxonomy Manager для массового изменения самих терминов и словарей. Модуль дает возможность с помощью ajax делать с терминами все что угодно - массовое перемещение любое, удаление, добавление, объединение, а также быстрое переименование, изменение описания и т.д.

Русский перевод

Где взять русский перевод модулей? - http://drupaler.ru/translate/languages/ru/export.

А также очень полезное дополнение к основным переводам -
Фиксы множественных чисел и месяцов.

ВложенияРазмер
admin_nodes_view.txt3.63 Кбайт
тэги:

А какже заиметь две версии

А какже заиметь две версии названия, слогана и миссии сайта для англ и русской версии сайта? через обычный перевод интерфейса чтото никак :(

Скажите, а как перевести

Скажите, а как перевести название сайта на мультиязычном сайте?

Про перевод информации о

Про перевод информации о сайте дописала в пост

6.Информация о

6.Информация о сайте

template.php

заменить

на settings.php

Подскажите, пожалуйста, как

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

Отправить новый комментарий

Содержимое этого поля хранится скрыто и не будет показываться публично.
  • Адреса страниц и электронной почты автоматически преобразовываются в ссылки.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Автоматический перевод строки.
  • Вы можете публиковать код, размещая его в <code>...</code> (generic) или в <?php ... ?> (раскрашенный PHP).

Дополнительная информация о настройках форматирования