Налаштування мультимовності Drupal

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.
Розробка та обслуговування будь-яких видів сайтів:
Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування мультимовності Drupal
Середня
~3-5 робочих днів
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Налаштування мультиязичності Drupal

Drupal — одна з найкращих CMS для мультиязичних сайтів. Підтримка перекладів вбудована в ядро: перекладаються контент, конфігурація, інтерфейс адміністрування, меню, блоки, таксономічні терміни.

Необхідні модулі (всі в ядрі)

drush en language locale content_translation config_translation -y
drush cr
  • language — базовий модуль мов
  • locale — переклад інтерфейсу
  • content_translation — переклад контенту (нод, таксономій, блоків)
  • config_translation — переклад конфігурації (лейбли полів, типи контенту)

Додавання мов

Конфігурація → Мови → Додати мову. Drupal автоматично завантажує переклади інтерфейсу з drupal.org.

Налаштування URL-паттерна: Конфігурація → Мови → Detection and selection:

  • URL prefix: uk/, en/ — рекомендується
  • Domain: uk.site.com, site.com — для великих мультиязичних сайтів

Включення перекладу для типу контенту

Конфігурація → Content language → вибрати тип контенту → включити переклад кожного поля окремо.

Або програмно:

// Включити Content Translation для всіх полів типу 'article'
$config = \Drupal::configFactory()->getEditable('language.content_settings.node.article');
$config->set('third_party_settings.content_translation.enabled', TRUE)->save();

Створення перекладу через API

use Drupal\node\Entity\Node;

// Завантажити оригінальну ноду (англійська)
$node = Node::load(42);

// Додати переклад
if (!$node->hasTranslation('uk')) {
    $translated = $node->addTranslation('uk', [
        'title' => 'Заголовок українською',
        'body'  => ['value' => '<p>Текст українською</p>', 'format' => 'full_html'],
        'status' => 1,
    ]);
    $translated->save();
}

Twig: відображення з урахуванням мови

{# Отримати поточну мову #}
{% set current_lang = language.getId() %}

{# Посилання переключення мов (використовуйте Views Language Switcher замість цього) #}
{% for language in languages %}
    <a href="{{ path('<current>', {}, {'language': language}) }}"
       hreflang="{{ language.getId() }}"
       {% if language.getId() == current_lang %}class="active"{% endif %}>
        {{ language.getName() }}
    </a>
{% endfor %}

Переклад конфігурації

Лейбли полів, описи типів контенту, текст кнопок — перекладаються через Конфігурація → Переклади. Або через експорт:

drush config:export
# Відредагувати locale/*.po файли
drush locale:import uk /path/to/uk.po

Меню та блоки

Кожен пункт меню перекладається окремо через Структура → Меню → [меню] → Edit → Translate. Блоки: Структура → Розміщення блоків → [блок] → Translate.

URL-алиаси для перекладів

Pathauto створює алиаси для кожного перекладу окремо: /about (en), /uk/про-нас (uk). Налаштування: Конфігурація → Pathauto → шаблони включають [node:language].

hreflang для SEO

Drupal автоматично додає <link rel="alternate" hreflang="..."> для всіх перекладів через модуль Metatag:

composer require drupal/metatag
drush en metatag -y

Терміни

Базова настройка мультиязичності для 2–3 мов із перекладом типів контенту та інтерфейсу — 2–3 дні. Повна мультиязична конфігурація з URL-паттернами, hreflang та меню — 4–5 днів.