---
title: 'Drupal 8 локализация логотипа'
url: 'https://graker.ru/news/2018/01/22/drupal-8-logo-lang'
language: ru
type: post
author: 'Роман Грачев'
published: '2018-01-22T10:50:00+03:00'
updated: '2018-01-22T10:52:15+03:00'
categories:
  - Программирование
  - Друпальчики
---

# Drupal 8 локализация логотипа

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

Если исходить из того, что лого выводится в блоке *Site branding*, то вопрос решается вот таким небольшим кодом, размещенным в файле темы `mytheme.theme`:

```
/**
 *
 * hook_preprocess_block()
 *
 * @param array $variables
 */
function mytheme_preprocess_block(&$variables) {
  if ($variables['plugin_id'] == 'system_branding_block') {
    // определяем язык
    if (\Drupal::languageManager()->getCurrentLanguage()->getId() == 'ru') {
      $logo_name .= 'logo.svg';
    } else {
      $logo_name .= 'logo-en.svg';
    }
    $variables['site_logo'] = '/themes/mytheme/' . $logo_name;
  }
}
```

Файлы с логотипами, соответственно, хранятся в `/themes/mytheme/logo.svg` и `/themes/mytheme/logo-en.svg`. А если на странице несколько блоков с разными лого (например, в хедере и футере), различать их можно, проверяя содержимое `$variables['elements']['#id']`.
