The Multilingual Makeover: A side-by-side comparison of Drupal 7 and Drupal 8 Aimee Degnan & Kristen Pol answers@hook42.com
Hello! answers@hook42.com answers@hook42.com
We are… Hook 42 hook42.com / @hook42inc Aimee Degnan Kristen Pol CEO / Architect CTO / Architect 8 years Drupal 12 years Drupal aimee@hook42.com kristen@hook42.com @aimeeraed @kristen_pol D8 Multilingual Sites D7 Multilingual Sites answers@hook42.com answers@hook42.com
Who are you? Builder? Developer? Drupal All the roles? PM? Veteran? Drupal Newbie? Themer? Multilingual? Drupal Intermediate? answers@hook42.com
Which Drupal do you use? answers@hook42.com answers@hook42.com
Here are the four pillars of multilingual. Lang nguage e Content ntent Inter nterface e Conf nfig answers@hook42.com answers@hook42.com
Let’s talk language… answers@hook42.com answers@hook42.com
What is language? ISO-639-1 ISO-639-1(-) (-)(ISO-3166-1) (ISO-3166-1) lang code lang de(-) (-)(region code de) • fr = French • fr-BE = French (Belgium) • fr-CA = French (Canada) • fr-CH = French (Switzerland) • fr-FR = French (France) • fr-LU = French (Luxembourg) • fr-MC = French (Monaco) answers@hook42.com answers@hook42.com
What are the similarities? Add, edit, and remove languages Pre-con fi gured languages Custom language support (e.g. fr-FR) Associate content with language Detection and selection options* URL Session User Browser *Default (D7) / Selected (D8) answers@hook42.com answers@hook42.com
What are the di ff erences? D7 D8 Afterthought L Language fi rst! J Language module Locale module Split from Locale module Language in installer Removable English Translatable English URL detection enabled Admin language Better browser detection Better admin UX Enhanced views support … answers@hook42.com answers@hook42.com
Language is an afterthought in D7! answers@hook42.com answers@hook42.com
Language is fi rst in D8! answers@hook42.com answers@hook42.com
Language answers@hook42.com answers@hook42.com
Let’s talk interface… answers@hook42.com answers@hook42.com
What is the interface? Text (strings) coming from modules and themes echo t(‘ echo t(‘Drupa palCon rocks!’); rocks!’); echo $this->t(‘ echo $this->t(‘Drupa palCon rocks!’); rocks!’); answers@hook42.com answers@hook42.com
What are the similarities? “t” function: t() / $this->t() Import process Export process Use community translations from localize.drupal.org answers@hook42.com answers@hook42.com
What are the di ff erences? D7 D8 Modules: SEVERAL Module: ONE Interface Translation (locale) Locale Automatic updates Localization Update String Overrides Replaces Localization Update Admin Language Translatable English Replaces String Overrides Admin language Replaces Admin Language Better translate page answers@hook42.com answers@hook42.com
Handling interface strings in D7 is cumbersome. answers@hook42.com answers@hook42.com
Handling interface strings in D8 is more e ffi cient. answers@hook42.com answers@hook42.com
Interface answers@hook42.com answers@hook42.com
Let’s talk about content… answers@hook42.com answers@hook42.com
What is content in D7? Nodes Comments Users Taxonomy terms Custom entities (e.g. Commerce Products) answers@hook42.com answers@hook42.com
What is content in D8? Same as D7 content plus… Blocks Menu items Contact messages Custom content entities answers@hook42.com answers@hook42.com
What are the similarities? Translate tab D7 Entity Translation = D8 Content Translation answers@hook42.com answers@hook42.com
What are the di ff erences? D7 D8 Hunt and peck One con fi g page to rule them all Modules: LO LOTS! Modules: ONE Content Translation Internationalization Content Translation • Multilingual Settings Inline editing • Synchronize Block visibility Translations • … Fallback per entity Entity Translation Title answers@hook42.com answers@hook42.com
You get carpal tunnel in D7. answers@hook42.com answers@hook42.com
D8 has one settings form to rule them all. answers@hook42.com answers@hook42.com
Content answers@hook42.com answers@hook42.com
Let’s talk about con fi g... answers@hook42.com answers@hook42.com
What is con fi g? Contact categories Content type settings (e.g. help text) Fields Menus Roles Site info User mails Views (e.g. more link) Vocabularies Anything that’s not “interface” or “content”… answers@hook42.com answers@hook42.com
What are the similarities? Not much! answers@hook42.com answers@hook42.com
What are the di ff erences? D7 D8 Inconsistent handling Uni fi ed con fi g page Modules: LOTS Module: ONE ONE Transliteration Con fi g Translation Menu Translation Language in each Block Languages YML fi le (CMI) Path Translation Contact Translation Taxonomy Translation Variable Translation Internationalization Views … answers@hook42.com answers@hook42.com
Con fi g translation in D7 is inconsistent. answers@hook42.com answers@hook42.com
Con fi g translation in D8 has translate tab. answers@hook42.com answers@hook42.com
Con fi g translation has uni fi ed page in D8. answers@hook42.com answers@hook42.com
Con fi g answers@hook42.com answers@hook42.com
Let’s talk extensions… answers@hook42.com answers@hook42.com
Here are some extensions. Search Media SEO Analytics Lingotek Translation Management Tool answers@hook42.com answers@hook42.com
Here is a real D7 example. 28 community multilingual modules 2 custom multilingual modules 12* multilingual patches admin_language language_domains entity_translation language_fallback i18n locale i18n_block metatag_hre fl ang i18n_string path_alias_force i18n_taxonomy title i18n_translation transliteration i18n_variable variable, variable_realm, variable_store i18nviews webform_localization l10n_update xmlsitemap_domain, xmlsitemap_i18n tmgmt and friends answers@hook42.com
What if D8? 18 out of 23 community multilingual modules are handled by core! 1 is in contrib / 5+ are in TBD admin_language language_domains (TBD) entity_translation language_fallback (contrib) i18n locale i18n_block metatag_hre fl ang i18n_string path_alias_force (TBD) i18n_taxonomy title i18n_translation transliteration i18n_variable variable, variable_realm, variable_store i18nviews webform_localization l10n_update xmlsitemap_domain (TBD), xmlsitemap_i18n (TBD) tmgmt+friends (TBD) answers@hook42.com
A total of 38+ D7 multilingual-related contrib modules are handled or obsoleted by D8 core! answers@hook42.com answers@hook42.com
WOW! Drupal 8 is sleek and powerful! admin_language I18n metatag_hre fl ang i18n_block entity_translation stringoverrides* i18n_contact fallback_language title i18n_ fi eld _negotation i18n_forum translation_helpers i18n_menu i18n_contrib translation_overview i18n_node i18n_entityreference translation_table i18n_path i18n_hre fl ang i18n_redirect transliteration* i18n_menu_select i18n_select i18n_references Variable i18n_string i18nviews i18n_sync variable_realm l10n_install i18n_taxonomy variable_store i18n_translation webform_localization* l10n_update i18n_user i18n_variable answers@hook42.com
Help build a better Drupal. You can make a You can make a di di fff erence :) answers@hook42.com answers@hook42.com
How can you learn more? • Groups.drupal.org: internationalization & translations • Drupal.org Forums: translations • IRC: #drupal-i18n • Drupal.org docs • Multilingual Guide • i18n How To • D8MI • drupal.org/project/multilingual_demo • drupal8multilingual.org • @d8mi answers@hook42.com
Any questions? answers@hook42.com answers@hook42.com
THANKS! THANKS! Have more questions? Email us at: answers@hook42.com Thanks to Joe & Genevieve for the art! answers@hook42.com answers@hook42.com
Join us for Sprints ¡ ¡ Friday, ¡May ¡13 ¡at ¡the ¡ConvenDon ¡Center ¡ First-‑Time ¡Sprinter ¡Workshop ¡-‑ ¡9am-‑12pm ¡in ¡Room ¡271-‑273 ¡ Mentored ¡Core ¡Sprint ¡-‑ ¡9am-‑6pm ¡in ¡Room ¡275-‑277 ¡ General ¡Sprints ¡-‑ ¡9am-‑6pm ¡in ¡Room ¡278-‑282 ¡ answers@hook42.com
So How Was It? - Tell Us What You Think Evaluate this session – https://events.drupal.org/neworleans2016/sessions/multilingual- makeover-side-side-comparison-drupal-7-and-drupal-8 Thanks! answers@hook42.com
Recommend
More recommend