translate in drupal 8: a new era in translation has begun
TRANSCRIPT
TM
TRANSLATE IN DRUPAL 8 A new era in translation has begun
Christian López Espínola “penyaskito”[email protected]
TM
TM
Deep commitment to Drupal1.30,000+ Lingotek Translation
module downloads2.80+ Drupal events 3.Continuous connector
development1.Been around since Drupal 6
2.Developing D8 module
3.Monthly releases
TM
AGENDA
1. Challenge2. Solution3. Drupal 7 Landscape4. Drupal 8 Landscape5. Building on top of D8: our module6. About Lingotek
TM
MULTILINGUAL WEBSITE CHALLENGE
1. As an international organization, you need to translate your content (web, documents, software) to successfully expand globally
2. However, your content is constantly being changed and updated
3. Legacy tools and processes for managing translation lack the speed and agility to prevent translation from becoming a bottleneck
4. As a result, translations constantly lag behind the rate at which new content is created
TM
DRUPAL 7 LANDSCAPE
TM
TROUBLE SPOTS IN DRUPAL 7 TRANSLATION
1.Many things not translatable in core
2.English was the only true source language
TM
Drupal 7 Multilingual Landscape
TM
Drupal 7 Taxonomy Translation: i18n vs. Entity Translation
1.Both Young2.Both Active3.Who Wins?
TM
Menu Translation
TM
FAN FAVORITE: FIELD COLLECTIONS
1.Fun to set up
2.Easy to work with
3.Notoriously fragile to translate
TM
EASIEST WAY TO MAKE D7 MULTILINGUAL-READY
1.Use Lingotek Translation2.Use the following drush commands:
1.drush dl lingotek 2.drush en lingotek
3.https://www.drupal.org/project/lingotek
TM
DRUPAL 8 LANDSCAPE
aitiba ajeverson AjitS akahn akejohaakoe akozma akshay.swnt22 Alan D. Alan Evans alansaviolobo alarcombe alberto56 Albert Volkman alduya alerquealexanderpas alexh58 alexkb alexpott Alex UA alexweber alex_b Alice Heaton alimac alippai almaudoh aloyrAlumei alvar0hurtad0 alweb amateescu amitaibu amitgoyal amontero amourow anarcat anavarre ancampandrei.dincu andrejsmuzikovs andremolnar Andrew Schulman andyceo andymartha andypost andythomnzaneek animelion ankitgarg annikaC anrikun Antti J. Salminen Anybody ardas areke arianek aries arkestraarlinsandbulte Aron Novak aroq ars- artem.aryan Artusamak arunaseva asb aschiwi AshishK-dupe ashutoshsnghashwinikumar askibinski aspilicious attiks attila.fekete aturetta August1914 Aunion axel.rutz ayelet_Cr a_thakura_webb b0unty babasse05 babruix badrange balagan balintcsaba balintk bannorb BarisW barrapontobasvanderveen batigolix bbinkovitz bechtold beejeebus bendev benjf benjifisher benjy BenK bensemmel Berdirberetta627 BeyersdorferTJ bforchhammer bfroehle biro.botond bisonbleu bjaspan blackdog bleen18 bluemindsBMDan Bodo Maass bojanz Bojhan Bojhan.core Boobaa bookmarvel boran borisbaldinger boris sondaghbotanic_spark bowersox boztek brantwynn brianV BrightBold BrockBoland bserem bshaffer bsherwood Buratino42bwinett c-c-m c4doug c31ck c960657 CaDyMaN caktux calliandra cam8001 Carl Johan carsonevans Carsten Müllercarwin casey catch cbiggins cburschka ceardach cesarmiquel cha0s chakrapani Charles Belov charmi cheops90chr.fritsch chrisbloomfield chrischinchilla Chris Dart chrishks chrisjlee chrispomeroy ChristianAdamski Christopher James Francis Rodgers chx cilefen cirage cjoy CKoch clashar claudinec Claudis claudiu.cristea clemens.tolboomCMS Dude Cogax colan colbol cordoval corvus_ch cosmicdreams Cottser Countzero cpelham cpj craychee Crellcrispiatico crotown csakiistvan csc4 csg cshuangtw cs_shadow cweagans cwgordon7 Cyberschorsch CyberwolfCyclodex czigor dado Daemon_Byte daffie dagmar dagmita dags damiankloip DamienMcKenna Damien Tournouddanielnolde danillonunes DanPir danylevskyi das-peter dasjo dasrecht Dave.Ingram Dave Cohen Dave Reiddavid.lukac davidhernandez David Hernández David Latapie David Lesieur David Strauss David_Rothsteindawehner dboulet dcam dclavain dcmistry dcmouyard dcrocks dddave deepakaryan1988 delmarr DeNelodenjell derek.deraps derEremit dermario desbeers develCuy deveshpal Devin Carlson devuo DickJohnson diego21dileepmaurya dimaro diqidoq disasm dixon_ djdevin DjebbZ djevans dlu dman Dmitriy.trt DmitryDrozdik dobrzynsdocker dodorama dokumori donquixote douggreen dpearceMN dpi Dragan Eror drewish Dries drifter droetkerdropcube dropfen droplet drubage drunken monkey drupalninja99 drupleg dsnopek dtarc DuaelFr dudycz duelljdurifal Dustin@PI dutchyoda DuttonMa dvinegla dww dysrama Désiré e0ipso e2thex earnie eaton ebeyrent ebrowetEc1ipsis echoz EclipseGc edmoran edrupal edward_or effulgentsia eftimitac ehegedus eigentor ekes el7cosmoselachlan elcuco eleisoncruz elfur Eli-T Elijah Lynn EllaTheHarpy emanuelrighetto emarchak emma.maria eojthebraveepari.siva er.pushpinderrana ericduran ericski Eric_A ershov.andrey esbenvb eshta estoyausente eugenesia euleEvanDonovan Everett Zufelt evolvingweb ezeedub ezra-g Fabianx fabpot fabsor fago fakingfantastic falcon03Fannon fastangel fenda fgm Fidelix fietserwin filijonka FiNeX fjd Fleshgrinder floretan FMB fmizzell foopangFrancescoQ Frando Frank Ralf fran seva franskuipers franz Freso fubhy fureigh fwalch g3r4 gabriel.achille Gabriel Radic Gaelan gaele gagarine garphy Garrett Albright gaspaio gaurav.goyal gaurav26570 gauravkhambhala gausartsgbentley geerlingguy geertvd generalredneck geoffreyr george.echim Georgii Gerhard Killesreiter giorgio79 GiorgosKgloob gnuget gobilo gobinathm good_man googletorp gpapadongonas Grayside greenc greenSkin greg.1.andersonGreg Boggs greggles Greg Sims grisendo guillaumev gumanist gusgsm1 guygg guy_schneerson gvso gyuhyonh3rj4n Hadi Farnoud hairqles Hanno hansfn hardy99 harrrrrrr hass Haza hbblogger heather heddn hefox Heinehejazee helenkim hellolindsay henribergius herom heyrocker hinikato HnLn holist holly.ross.drupal holtzermann17 hpzhron84 hswong3i hudo hussainweb Hydra iamEAP ianthomas_uk ibullock IceCreamYou2 icseh. idebr idflood ifrikifux Ignacio Sánchez iliphil iMiksu indytechcook InternetDevels intuited IshaDakota itarato ivanchaer ivanjaros Ivan Zugec izmeez izus j.somers j0rd Jacine jackhutton JacobSanford jagalbraith jair Jake081 Jalandhar jamesharvjamesliu78 jamiehollern jamiezeidler janoka janusman japicoder jaredsmith javisr jayboodhun JayMN Jaypan Jazajbrown jcisio jdanthinne jeanfei Jeff Burnz Jeffrey C. jefkin Jelle_S jeni_dc jenlampton jepSter jerdavis jerdnas JeroenJeroenT jesperjb jessebeach jessehs jgSnell jhedstrom jherencia jhodgdon jibran jimyhuang JirkaRybkajiv_e jjcarrion jlbellido jlscott jmauro8ac jmesam jmmarquez jmolivas jnicola joachim joates Jody Lynn joelpittetjoewatkins johanv JohnAlbin John Bickar johnheaven johnish johnv jojonmaster JonMcL Jon Pugh joris.verschuerenJose Reyero joshi.rohit100 joshua.boltz JoshuaRogers jpd4nt jrglasgow jsbalsera jstoller jthorson juankvillegasjuhovh JuliaKM julien JulienD junedkazi jvieille jvns jwilson3 k4v kalabro kalman.hosszu karengreen KarenS KarmenKartagis katbailey kathyh kbasarab kbentham KCarlile kcouch keith.smith keopx kevee Kevin Morse kfritsche kgoelkholloway kid_icarus kika kiliweb killerpoke [email protected] killua99 kim.pepper Kiphaas7 klausi klonoskmharrell knalstaaf kompressaur konstantin.komelin KRaisor kreatIL KrisBulman Kristen Pol kristiaanvandeneyndekristink2 krlucas kscheirer ksenzee kurt.iverson lahoosascoots lambic langworthy lanthaler larowlan LarsKramerlarsmw Lars Toomre LAsan laura.johnson lauriii lazysoundsystem LeeHunter leenwebb leeotzu Leeteq legaudinierlegolasbo Leksat Lendude leonrenkema leschekfm Les Lim Letharion LewisNyman lhangea Liam McDermott Liam Morland likin lilou linclark LinL liquidcms lisarex LittleViking litwol lixiphp lmeurs loganfsmyth lokapujya lokeoke LoMolonelyrobot longwave lostkangaroo lotyrin LoveCharge lpalgarvio lslinnet lsmith77 lucascaro lucaschain luismagrLukas von Blarer lund.mikkel Luxian lvbeck lydie m1r1k maciej.zgadzaj MacMladen Mac_Weber maggo magico maijsMalerio manningpete MantasK manu4543 Manuel Garcia marcel66 Marc Hannaford marcingy marco marcoscanomarcus7777 marcushenningsen marcusx marcvangend marfillaster mariancalinro mark.labrecque markcarver markieMarkusDBX markus_petrux Mark_L6n marthinal martin107 martin_q maryedith mas0h mashermike matasonMathieuSpil matsbla matt2000 MattDanger mattyoung Maune mauzeh mavimo maxchock maxterner23 maxtoretembyrnes mcrittenden mdrummond mducharme MegaChriz memoo merlinofchaos mesr01 meyertox mfb mgiffordmglaman mgriego mhagedon MHLut MichaelCole michaelfavia michaellenahan michaelmol Michelle michlis micnapmikeryan mikewink mikey_p mikispeed mikl Mile23 minff mioan Mirabuck mirocow miro_dietiker mitchell mitronmitrpaka mitsuroseba Mixologic mjohnq3 mjreich mkapst mlecha mlehner616 mlncn mmilano moe4715 mondrakemon_franco mooffie mortendk moshe weitzman mparker17 mpdonadio mpg mr.baileys mr.york mradcliffe mrded mrfMrHaroldA mrjmd mrP mrsinguyen msonnabaum mstrelan mtift mtomaizy mustafau MustangGB mvc my-familymyforgedoteu n3or nadavoid nagwani NancyDru natuk naught101 naveenvalecha naveko NaX naxoc nbz neclimdulnedjo neetu morwani nerdstein nevergone nevets ngocketit nicholosophy nick_schuch Nick_vh nicu nicxvannikhilasrani nikhilsukul nikkubhai Niklas Fiekas niko- NITEMAN Nitesh Sethia nkschaefer nod_ Nomes NonProfitnonsie NotNotCow no_angel no_commit_credit no_longer_active_13 nvinayvinay nyirocsaba nyleve101 oadaehoheller olli omar omercioglu omers OnkelTem opi oresh oriol_e9g orlitzky oussema Outi Owen Barton pameeelaPancho Paracetamol parasite ParisLiakos parthipanramesh Pasqualle patrickd paularmand Paul Broon paulmckibbenpbuyle pcambra pdrake Pedro Lozano pedrop pefferen penyaskito perusio peximo pflame pfrenssen phiitphilbar philipnorton42 philipz pillarsdotnet Pinolo pixelite pixelwhip piyuesh23 pjbaert pjonckiere pkiralyplach Plascual plopesc pmackay pmelab podarok Pol pounard pp pplantinga PrabhuG prajaankit Prashant.cprashantgoel prateek479 pratik60 prodosh psynaptic purabkharat pwieck pwolanin qgil quicksketch quietoneracheldrupal rachel_norfolk rachit_gupta rahul.shinde rahuldolas123 RajeevK Rajesh Ashok rajneeshb rak2008rameshbabu.g ramlev Ranko rasskull ravi.khetri rbayliss rbosscher rbunch rdickert rdrh555 realityloop redndaheadreglogge renat rfay rhabbachi ricardoamaro rickmanelius rickvug rkjha rli rlmumford robertdbailey robertgarrigosRoberto Gerola Robin Millette Robin Monks RobLoach robmc RobW rocket_nova roderik rodrigoaguileraRodrigoBalest ronald_istos rooby RoySegall rpayanm rpsu rszrama rteijeiro rudiedirkx rudivanes Rumato ruplrusso79 rvilar rwt ry5n ryanissamson Ryan Weal rych sahain saki007ster salvis Sam152 sandipmkhairnarsandykadam saravananr971 sardara savithac Sborsody Schnitzel scor sdboyer sdelbosc SeanBannister
D8’s Huge Multilingual Dev Effort
TM
LANGUAGEBase services for all
modules dealing with data. Not just multilingual.
INTERFACEInterface translation has built-in update feature, improved
usability.
CONTENTField translation in built-in API for all entities. Content
translation module provides user
interface.
CONFIGCommon
configuration system handles blocks,
views, field settings. Unified translation.
! 8 é (
TM
LANGUAGE !Base services for all modules dealing with data. Not just multilingual.
I
TM
Language IS STEP ONE
TM
NODES
é
TERMS"
USERS!
ALIASES#
VIEWS$
SITE INFO
%
LANGUAGE SELECTOR NOT ALWAYS EXPOSED
........&
Language ASSIGNMENT
TM
FLEXIBLE Language SETUP
TM
Language VISIBILITY
BLOCKS CAN SHOW/HIDE BASED ON LANGUAGE
VIEWS ALREADY HAS LANGUAGE FILTERING FEATURES FOR CONTENT LISTS
DRUPAL BUILT-IN PAGES ARE CONVERTED TO VIEWS
TM
Language SELECTION
TM
NAME TRANSLITERATION
TM
ENGLISH CAN BE DELETED
TM
DELETE ENGLISH FLEXIBLE SELECTION
BLOCK VISIBILITY VIEWS
FLEXIBLE CONFIG WIDER ASSIGNMENT
FIRST IN INSTALLER
I
!LANGUAGE
Base services for all modules dealing with data. Not just multilingual.
TM
II
8INTERFACE TRANSLATION
Interface translation has built-in update feature, improved usability.
TM
AUTOMATED TRANSLATION
DOWNLOADS &UPdates
TM
CENTRALIZED TRANSLATION FILE
LOCATION
TM
CUSTOMization TRACKING
Customized translations are tracked
May be protected from community translation overwrites
import will not time out, reads in pieces
TM
WHOLE NEW INTERFACE
TM
TRANSLATE TO ENGLISH
TM
TRANSLATE TO ENGLISH WHOLE New INTERFACE
CUSTOM translation tracked Centralized file dir
auto-download separate module
8INTERFACE TRANSLATION
Interface translation has built-in update feature, improved usability.
II
TM
III
CONTENT TRANSLATION é
Field translation in built-in API for all entities. Content translation module provides user interface.
TM
ALL CONTENT ENTITIES ARE SUPPORTED
TM
Entities
Content
NODES users
comments TERMS
contact messages
menu items
CONTENT ENTITIES?
TM
INTEGRATED CONFIGURATION
TM
TRANSLATIOn INTERFACE
TRANSLATION TABS ON CONtent
add translations for each language
possible to take different source language
Can edit “all language” values with permission
TM
UPGRADE MIGRATION PATH
IN THE WORKS
TM
CORE SEARCH AND API HAS LANGUAGE SUPPORT
TM
NODE ACCESS API HAS LANGUAGE SUPPORT
TM
NODE ACCESS API SUPPORTED Search index as separate
Search APIs updated FOR ALL content entities
PER BUNDLE + FIELD + SUB-FIELD properties TODO
MIGRATION PATH
éCONTENT TRANSLATION
Field translation in built-in API for all entities. Content translation module provides user interface.
III
TM
IV
CONFIG TRANSLATION (
Common configuration system handles blocks, views, field settings. Unified translation.
TM
Entities
Content
NODES users
comments TERMS
contact messages
menu items
CONFIGURATION
views
vocabularies
CONTACT CATEGORIES
FIELDS
SITE INFO
USER MAILS
OTHERS
PATH ALIASES
MENUS
CONFIG VS. CONTENT
TM
LANGUAGE TRACKED ON EACH CONFIG FILE
TM
LANGUAGE OVERRIDES STORED WITH CONFIG
TM
FOR SHIPPED CONFIGURATION
TM
LOCALIZE.d.o INTEGRATION IN the
works
TM
FOR ANY CONFIGURATION
TM
FULL TRANSLATION MODULE standard translation tabs
config overrides works for any config
SHIPPED CONFIg translated
(CONFIG TRANSLATION
Common configuration system handles blocks, views, field settings. Unified translation.
IV
TM
LANGUAGEBase services for all
modules dealing with data. Not just multilingual.
INTERFACEInterface translation has built-in update feature, improved
usability.
CONTENTField translation in built-in API for all entities. Content
translation module provides user
interface.
CONFIGCommon
configuration system handles blocks,
views, field settings. Unified translation.
! 8 é (
TM
GET INVOLVED
WEBSITEdrupal8multilingual.org TWiTTERtwitter.com/d8mi TRANSLATE DRUPAL 8 localize.drupal.org
t
!
!
DRUPAL 7 VS. DRUPAL 8
Language Interface Content Config
L I NOG
ET
K LINGOTEK
TM
CONTENT ENTITIES TRANSLATABILITY
DEMO (see https://github.com/penyaskito/customslider)
TM
FIELD TRANSLATABILITY
DEMO (see https://github.com/penyaskito/customslider)
TM
CONFIG TRANSLATION DEMO
(see https://github.com/penyaskito/customslider)
TM
+
TM
+
TM
+
TM
+
TM
+
TM
+
TM
+
TM
+
TM
+
TM
1.Content entities translation support
2.Configuration translation support (experimental)
3.Feature parity with Drupal 7 planned for end of year
+ STATUS
TM
ABOUT LINGOTEK
Generally, companies aren’t Drupal web sites.
They have Drupal web sites… and a whole lot more.
CONTENTTRANSLATORS
TECHNOLOGY
Our technology & services
INSIDE INTEGRATION
34
Workflow FlexibilityChoose the right workflow for each content type
35
Human Resource Marketing/Sales Development Support
THE TRANSLATION NETWORK
Multilingual Content Storage
The Enterprise No Longer Has to Translate in Silos
Why Enterprises Love Lingotek
Human Resource Marketing/Sales Development Support
THE TRANSLATION NETWORK
Multilingual Content Storage
The Enterprise No Longer Has to Translate in Silos
Why Enterprises Love Lingotek
The Enterprise No Longer Has to Translate in Silos
Human Resource Marketing/Sales Development Support
THE TRANSLATION NETWORK
Why Enterprises Love Lingotek
Multilingual Content Storage
THE TRANSLATION NETWORK
DevZone
Lingotek Enterprise Translation Management System
Native Modules Machine
Translation
Translation Memory
Terminology Management
Project Management
Security
Multilingual Content Storage
Integrations Integrators Technology Partners Custom Apps
60+ 40+
How We Solve The Problem
DEVZONE.LINGOTEK.COM
DRUPAL CUSTOMERS
DRUPAL PARTNERS
TM
images usedhappy cats http://fc04.deviantart.net/fs70/f/2011/326/e/8/orange_kittens_by_duallygirl178-d4gyesq.jpg
house of cards http://upload.wikimedia.org/wikipedia/commons/thumb/3/36/MiniHouseOfCards.jpg/1280px-MiniHouseOfCards.jpg
cat fight http://upload.wikimedia.org/wikipedia/commons/c/cb/Fighting_kittens-1340.jpg
ice berg http://upload.wikimedia.org/wikipedia/commons/a/ac/Iceberg.jpg
D8 landscape slides: Gábor Hojtsy