У цій статті я розповім вам як за чверть години зробити ваш сайт багатомовним.
Отже. що б зробити контент мультимовним в Drupal 7 у нас є два способи:
1) Модуль Internationalization і його підмодулі
2) Модуль Entity Translation + модуль Title
Їх ми зараз і розглянемо.
підготовка
Перед тим як щось робити потрібно додати на сайт додатковий мову. Зробити це можна на сторінці "admin / config / regional / language / add".
І включити його на сторінці: "admin / config / regional / language"
Також потрібно вибрати спосіб визначення мови, я вважаю за краще брати його з URL. В налаштуваннях можна вказати з якої частини URL брати мову (префікс або піддомен), за замовчуванням стоїть префікс.
"Admin / config / regional / language / configure"
перший спосіб
Модуль Internationalization з'явився ще в D6, з його допомогою можна переводити різні типи контенту. Ми розглянемо його на прикладі перекладу нод, тому що вони складають більшу частину всього контенту.
установка модуля
Для установки і включення модуля скористаємося зручним інструментом - drush.
"Drush dl i18n"
"Drush en -y i18n"
Оскільки ми збираємося перекладати Ноди, необхідно включити подмодуль.
"Drush en -y i18n_node"
Модуль включений і готовий до роботи.
Налаштування Content type
В налаштуваннях мультимовності вибираємо відповідні вам параметри.
Як бачимо, в списку полів з'явилося нове поле пов'язане з вибором мови.
Заповнюємо поля, вибираємо потрібну мову і зберігаємо.
Тепер на сторінці редагування Ноди з'явилася нова вкладка Translate.
На сторінці перекладу нам пропонують вибір, додати новий переклад (1) або задати іншу існуючу ноду як переклад (2). Оскільки готового перекладу у нас немає, ми його будемо додавати.
Відкриваються форма створення Ноди, тільки мова в ній уже заданий і поле відключено.
Думаю, що цей спосіб не найкращий, так як відбувається дублювання контенту.
Тому ми розглянемо другий спосіб, який дозволяє уникнути цього.
другий спосіб
установка модулів
"Drush dl title entity_translation"
"Drush en -y title entity_translation"
Налаштування модуля
На сторінці "admin / config / regional / entity_translation" можна вибрати які типи entity будуть переводитися.
Налаштування Content type
Далі в списку полів потрібно замінити Title на звичайне поле (це дозволяє модуль Title), щоб його можна було переводити.
Тепер потрібно вибрати поля, які можна буде перевести (Title обраний за замовчуванням)
На сторінці "admin / structure / types / manage /% CT_name% / fields /% field_name%" необхідно включити Field translation.
Створення і переклад Ноди
Створення Ноди нічим не відрізняється від створення в першому способі, просто заповнюємо поля і вибираємо мову. Якщо залишити "Language neutral", то переказ не буде доступний.
На сторінці редагування щойно створеної Ноди з'являється вкладка Translate.
Там можна подивитися на які мови нода вже переведена і перевести на інші доступні.
У підсумку ми маємо одну ноду з двома варіантами перекладу.
англійська: