SlideShare une entreprise Scribd logo
1  sur  21
DrupalCIS 2013
Многоязычные сайты
на Drupal 8
Катя Маршалкина, Licel LLC
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
DrupalCIS 2013
Для кого этот доклад*
Для тех, кто делает сайты на нескольких языках
Для тех, кто делает одноязычные сайты на любом языке
кроме английского (на русском)
Для тех, кто пишет код
1
2
3
* Для тех, кто интересуется Drupal 8
• Сам определит и установит ваш язык
• Сам скачает переводы установщика
• Сам создаст базу
• Сам скачает переводы ядра и контрибов
Первое, что вы видите, скачав Drupal 8 / Spark 8
DrupalCIS 2013
Модули из коробки
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, …
l10n_update в ядре
DrupalCIS 2013
Функция t()
• Не нужны, get_t(), st(), $t. Просто t().
• Реализовано как сервис string_translation:
– CustomStrings
– FileTranslation
– StaticTranslation
– LocaleTranslation
DrupalCIS 2013
Английский
• Английский можно удалять, если не нужен
• Можно менять язык по умолчанию с английского на любой другой
(без риска всё сломать)
• Английский можно переводить на английский (stringoverrides в ядре)
DrupalCIS 2013
Определение текущего языка
DrupalCIS 2013
Определение текущего языка из URL
DrupalCIS 2013
Контент
Drupal 7 Drupal 8
• Content Translation
(translation)
• Entity Translation
(entity_translation)
• Content Translation
(content_translation)
• Content Translation deprecated
(translation)
Content Translation (D8)
• Все сущности (content entities) поддерживаются
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;
DrupalCIS 2013
Content Translation (D8)
• Property Translation API для НЕ-полей (title, status, created, …)
Drupal 7 Drupal 8
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
DrupalCIS 2013
Перевод конфигурации
Интерфейс
Configuration
Translation
Контент
• Название сайта
• Словари
• Типы материалов
• Названия полей
• Rules
• Настройки Views
• Настройки блоков
• Роли пользователей
• …
Contrib: https://drupal.org/project/config_translation
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: 'Лучшие материалы за неделю.'
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
DrupalCIS 2013
Итого
• Множественные улучшения в интерфейсе
• Переход на Field Level перевод контента
• Удобные API для работы с полями и переводами
• Универсальная система перевода любых конфигураций
• Централизованное хранение переводов (files/translations)
• Множество полезных функций в ядре
(transliteration, admin_language, l10n_update и т.д.)
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

Contenu connexe

Similaire à Multilingual Drupal 8

Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор БогатырёвОбзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор БогатырёвMinsk PHP User Group
 
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.Alex Barkov
 
Тарас Цюпер - Мультиязычность в Drupal 8
Тарас Цюпер - Мультиязычность в Drupal 8Тарас Цюпер - Мультиязычность в Drupal 8
Тарас Цюпер - Мультиязычность в Drupal 8LEDC 2016
 
Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.DrupalForumZP2012
 
Создаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровожденияСоздаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровожденияOvadiah Myrgorod
 
Дмитрий Киселев - DrupalSib 2015
Дмитрий Киселев - DrupalSib 2015Дмитрий Киселев - DrupalSib 2015
Дмитрий Киселев - DrupalSib 2015DrupalSib
 
Drupal: система для быстрой и комфортной разработки web-сайтов
Drupal: система для быстрой и комфортной разработки web-сайтовDrupal: система для быстрой и комфортной разработки web-сайтов
Drupal: система для быстрой и комфортной разработки web-сайтовAlex Barkov
 
Чингис Саднанов. Drupal как платформа
Чингис Саднанов. Drupal как платформаЧингис Саднанов. Drupal как платформа
Чингис Саднанов. Drupal как платформаi20 Group
 
Андрей Юн Удобная разработка Drupal проекта. Полезные модули
Андрей Юн Удобная разработка Drupal проекта. Полезные модулиАндрей Юн Удобная разработка Drupal проекта. Полезные модули
Андрей Юн Удобная разработка Drupal проекта. Полезные модулиAlbina Tiupa
 
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...Andriy Yun
 
Профессиональная разработка в суровом Enterprise
Профессиональная разработка в суровом EnterpriseПрофессиональная разработка в суровом Enterprise
Профессиональная разработка в суровом EnterpriseAlexander Granin
 
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в DrupalDrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в DrupalDrupalSPB
 
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в DrupalLviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в DrupaldeWeb
 
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфіка
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфікаОлена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфіка
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфікаLEDC 2016
 
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...Viktor Likin
 
Dcmi v likin kyiv 2013
Dcmi v likin kyiv 2013Dcmi v likin kyiv 2013
Dcmi v likin kyiv 2013Viktor Likin
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...IT-Portfolio
 

Similaire à Multilingual Drupal 8 (20)

Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор БогатырёвОбзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
 
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
 
Тарас Цюпер - Мультиязычность в Drupal 8
Тарас Цюпер - Мультиязычность в Drupal 8Тарас Цюпер - Мультиязычность в Drupal 8
Тарас Цюпер - Мультиязычность в Drupal 8
 
Drupal Vs Other
Drupal Vs OtherDrupal Vs Other
Drupal Vs Other
 
Tdd php
Tdd phpTdd php
Tdd php
 
Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.
 
Создаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровожденияСоздаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровождения
 
Дмитрий Киселев - DrupalSib 2015
Дмитрий Киселев - DrupalSib 2015Дмитрий Киселев - DrupalSib 2015
Дмитрий Киселев - DrupalSib 2015
 
Drupal: система для быстрой и комфортной разработки web-сайтов
Drupal: система для быстрой и комфортной разработки web-сайтовDrupal: система для быстрой и комфортной разработки web-сайтов
Drupal: система для быстрой и комфортной разработки web-сайтов
 
Чингис Саднанов. Drupal как платформа
Чингис Саднанов. Drupal как платформаЧингис Саднанов. Drupal как платформа
Чингис Саднанов. Drupal как платформа
 
Андрей Юн Удобная разработка Drupal проекта. Полезные модули
Андрей Юн Удобная разработка Drupal проекта. Полезные модулиАндрей Юн Удобная разработка Drupal проекта. Полезные модули
Андрей Юн Удобная разработка Drupal проекта. Полезные модули
 
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
 
DLR Hosting
DLR HostingDLR Hosting
DLR Hosting
 
Профессиональная разработка в суровом Enterprise
Профессиональная разработка в суровом EnterpriseПрофессиональная разработка в суровом Enterprise
Профессиональная разработка в суровом Enterprise
 
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в DrupalDrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
 
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в DrupalLviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
 
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфіка
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфікаОлена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфіка
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфіка
 
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
 
Dcmi v likin kyiv 2013
Dcmi v likin kyiv 2013Dcmi v likin kyiv 2013
Dcmi v likin kyiv 2013
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
 

Multilingual Drupal 8

  • 1. DrupalCIS 2013 Многоязычные сайты на Drupal 8 Катя Маршалкина, Licel LLC
  • 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. DrupalCIS 2013 Для кого этот доклад* Для тех, кто делает сайты на нескольких языках Для тех, кто делает одноязычные сайты на любом языке кроме английского (на русском) Для тех, кто пишет код 1 2 3 * Для тех, кто интересуется Drupal 8
  • 4. • Сам определит и установит ваш язык • Сам скачает переводы установщика • Сам создаст базу • Сам скачает переводы ядра и контрибов Первое, что вы видите, скачав Drupal 8 / Spark 8
  • 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, …
  • 8. DrupalCIS 2013 Функция t() • Не нужны, get_t(), st(), $t. Просто t(). • Реализовано как сервис string_translation: – CustomStrings – FileTranslation – StaticTranslation – LocaleTranslation
  • 9. DrupalCIS 2013 Английский • Английский можно удалять, если не нужен • Можно менять язык по умолчанию с английского на любой другой (без риска всё сломать) • Английский можно переводить на английский (stringoverrides в ядре)
  • 12. DrupalCIS 2013 Контент Drupal 7 Drupal 8 • Content Translation (translation) • Entity Translation (entity_translation) • Content Translation (content_translation) • Content Translation deprecated (translation)
  • 13. Content Translation (D8) • Все сущности (content entities) поддерживаются
  • 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. DrupalCIS 2013 Content Translation (D8) • Property Translation API для НЕ-полей (title, status, created, …) Drupal 7 Drupal 8
  • 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. DrupalCIS 2013 Перевод конфигурации Интерфейс Configuration Translation Контент • Название сайта • Словари • Типы материалов • Названия полей • Rules • Настройки Views • Настройки блоков • Роли пользователей • … Contrib: https://drupal.org/project/config_translation
  • 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. 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. DrupalCIS 2013 Итого • Множественные улучшения в интерфейсе • Переход на Field Level перевод контента • Удобные API для работы с полями и переводами • Универсальная система перевода любых конфигураций • Централизованное хранение переводов (files/translations) • Множество полезных функций в ядре (transliteration, admin_language, l10n_update и т.д.)
  • 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