Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Multilingual Drupal 8

1,409 views

Published on

Слайды доклада «Многоязычные сайты на Drupal 8» для DrupalCamp СНГ 2013.
http://drupalcis.org/node/72

Катя Маршалкина, Licel LLC
24.08.2013

Published in: Technology
  • Login to see the comments

Multilingual Drupal 8

  1. 1. DrupalCIS 2013 Многоязычные сайты на Drupal 8 Катя Маршалкина, Licel LLC
  2. 2. DrupalCIS 2013 Вместо предисловия… DrupalCamp Kyiv 2013 7 докладов про Drupal 8, материалы доступны в сети camp13.drupal.ua Портирование модулей с Drupal 7 на Drupal 8 Константин Комелин, Катя Маршалкина CLI.GS/D8CX-13 DrupalConf Moscow 2011 Многоязычность в Drupal 7, Катя Маршалкина tinyurl.com/DRUPAL-LANG-2011 @kalabro marshalkina@licel.ru twitter.com/kalabro dgo.to/@kalabro 1 2 3 4
  3. 3. DrupalCIS 2013 Для кого этот доклад* Для тех, кто делает сайты на нескольких языках Для тех, кто делает одноязычные сайты на любом языке кроме английского (на русском) Для тех, кто пишет код 1 2 3 * Для тех, кто интересуется Drupal 8
  4. 4. • Сам определит и установит ваш язык • Сам скачает переводы установщика • Сам создаст базу • Сам скачает переводы ядра и контрибов Первое, что вы видите, скачав Drupal 8 / Spark 8
  5. 5. DrupalCIS 2013 Модули из коробки
  6. 6. DrupalCIS 2013 Интерфейс vs Контент Интерфейс ? Контент • t() • format_plural() • watchdog() • @Translation • Twig (trans, plural) Примеры: • 'Save content' • '@count comments' То, что можно скачать при помощи l10n_update. • Ноды • Термины таксономии • Комментарии • Пользователи • … • Название сайта • Словари • Типы материалов • Названия полей • Rules • Настройки Views • Настройки блоков • Роли пользователей • … i18n, i18n_block, i18n_node, i18n_string, i18n_field, i18nviews, rules_i18n, path_breadcr umbs_i18n, …
  7. 7. l10n_update в ядре
  8. 8. DrupalCIS 2013 Функция t() • Не нужны, get_t(), st(), $t. Просто t(). • Реализовано как сервис string_translation: – CustomStrings – FileTranslation – StaticTranslation – LocaleTranslation
  9. 9. DrupalCIS 2013 Английский • Английский можно удалять, если не нужен • Можно менять язык по умолчанию с английского на любой другой (без риска всё сломать) • Английский можно переводить на английский (stringoverrides в ядре)
  10. 10. DrupalCIS 2013 Определение текущего языка
  11. 11. DrupalCIS 2013 Определение текущего языка из URL
  12. 12. DrupalCIS 2013 Контент Drupal 7 Drupal 8 • Content Translation (translation) • Entity Translation (entity_translation) • Content Translation (content_translation) • Content Translation deprecated (translation)
  13. 13. Content Translation (D8) • Все сущности (content entities) поддерживаются
  14. 14. DrupalCIS 2013 Content Translation (D8) • Field Level (метод переводимых полей) • Методы – getTranslation() – getUntranslated() – getTranslationLanguages() – addTranslation() – hasTranslation() – и т.д. // Drupal 7 (bad practice) $value = $entity->field_foo[LANGUAGE_NONE][0]['value']; // Drupal 8 $value = $entity->field_foo->value;
  15. 15. DrupalCIS 2013 Content Translation (D8) • Property Translation API для НЕ-полей (title, status, created, …) Drupal 7 Drupal 8
  16. 16. DrupalCIS 2013 Entities Fieldable EntityNG (DX) Why: deployment, unification Idea: ctools exportables Implementation: plugins + yml new Content Entities Config Entities Examples: Nodes Taxonomy terms Users Comments Files Menu Links … Examples: Block instances Vocabularies User roles Views Menus Display Modes Image Styles … Источник: CLI.GS/D8CX-13, слайд 23
  17. 17. DrupalCIS 2013 Перевод конфигурации Интерфейс Configuration Translation Контент • Название сайта • Словари • Типы материалов • Названия полей • Rules • Настройки Views • Настройки блоков • Роли пользователей • … Contrib: https://drupal.org/project/config_translation
  18. 18. DrupalCIS 2013 Перевод конфигурации File: sites/default/files/config_#HASH#/active/locale.config.ru.views.view.frontpage.yml display: default: display_options: empty: area_text_custom: content: 'Пока нет никаких материалов.' header: area_text_custom: content: 'Лучшие материалы за неделю.'
  19. 19. DrupalCIS 2013 Перевод конфигурации name: 'Smells like Drupal 8' mail: marshalkina8@licel.ru slogan: 'Демо для DrupalCIS 2013' page: 403: '' 404: '' front: node admin_compact_mode: '0' weight_select_max: '100' langcode: ru slogan: 'DrupalCIS 2013 Demo' system.site.yml locale.config.en.system.site.yml
  20. 20. DrupalCIS 2013 Итого • Множественные улучшения в интерфейсе • Переход на Field Level перевод контента • Удобные API для работы с полями и переводами • Универсальная система перевода любых конфигураций • Централизованное хранение переводов (files/translations) • Множество полезных функций в ядре (transliteration, admin_language, l10n_update и т.д.)
  21. 21. DrupalCIS 2013 Drupal 8 Multilingual Initiative — http://www.drupal8multilingual.org/ Change records for Drupal core — https://drupal.org/list-changes Спасибо за внимание! Катя Маршалкина marshalkina@licel.ru licel.ru

×