Making the Mul-lingual Web work: with Open Standards and - - PowerPoint PPT Presentation

making the mul lingual web work with open standards and
SMART_READER_LITE
LIVE PREVIEW

Making the Mul-lingual Web work: with Open Standards and - - PowerPoint PPT Presentation

Making the Mul-lingual Web work: with Open Standards and CMS Bryan Schnabel bschnabel@bschnabel.com @bryanschnabel A few things about me Content


slide-1
SLIDE 1

Making ¡the ¡Mul-lingual ¡Web ¡work: ¡ with ¡ ¡Open ¡Standards ¡and ¡CMS ¡

Bryan ¡Schnabel ¡ bschnabel@bschnabel.com ¡ @bryanschnabel ¡

slide-2
SLIDE 2

A ¡few ¡things ¡about ¡me ¡

  • Content ¡Management ¡Architect ¡at ¡Tektronix ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

(TrisoD, ¡Drupal, ¡. ¡. ¡. ¡) ¡

  • Chair ¡OASIS ¡XLIFF ¡TC ¡(

hIps://www.oasis-­‑open.org/commiIees/tc_home.php? wg_abbrev=xliff) ¡

  • Creator ¡of ¡xliffRoundTrip ¡tool ¡(

hIp://sourceforge.net/projects/xliffroundtrip ¡/) ¡

  • Creator ¡of ¡DITA-­‑XLIFF ¡plugin ¡for ¡DITA ¡OT ¡(

hIp://sourceforge.net/projects/ditaxliff/files/ ¡) ¡

  • (modest) ¡Contributor ¡to ¡XLIFF ¡Tools ¡Drupal ¡Module ¡

(hIp://drupal.org/project/xliff ¡) ¡

slide-3
SLIDE 3

Our ¡good ¡fortune ¡today ¡. ¡. ¡. ¡

The ¡creator ¡of ¡the ¡XLIFF ¡Tools ¡module, ¡Gábor ¡ Hojtsy ¡is ¡here ¡with ¡us ¡today. ¡ ¡

slide-4
SLIDE 4

Mul-lingual ¡Web ¡needs ¡ mul-lingual ¡content ¡

slide-5
SLIDE 5

My ¡use ¡cases ¡ ¡

¡

  • Web ¡CMS: ¡Drupal ¡
  • Component ¡CMS ¡(CCMS): ¡TrisoD ¡
slide-6
SLIDE 6

Proprietary ¡solu-ons ¡vs. ¡open ¡ standards-­‑based ¡solu-ons ¡

  • Drupal ¡

– Out ¡of ¡the ¡box ¡(or ¡core) ¡transla-on ¡( hIp://drupal.org/documenta-on/modules/ transla-on) ¡vs. ¡ – Transla-on ¡using ¡the ¡XLIFF ¡Tools ¡module ¡( hIp://drupal.org/project/xliff) ¡

  • TrisoD ¡

– Out ¡of ¡the ¡box ¡(good, ¡but ¡not ¡XLIFF) ¡transla-on ¡vs. ¡ – Transla-on ¡using ¡DITA-­‑XLIFF ¡Roundtrip ¡plugin ¡ (hIp://sourceforge.net/projects/ditaxliff/files/ ¡) ¡

slide-7
SLIDE 7

Drupal: ¡Transla-on ¡Core ¡Module ¡

hIp://drupal.org/documenta-on/modules/transla-on ¡

¡

slide-8
SLIDE 8

Translator ¡logs ¡in ¡(assuming ¡proper ¡permissions ¡and ¡access) ¡ ¡

slide-9
SLIDE 9

Clicks ¡the ¡“Translate” ¡tab ¡

slide-10
SLIDE 10

Picks ¡the ¡transla-on ¡language ¡

slide-11
SLIDE 11

Translate ¡ sub-tle, ¡good ¡ Translate ¡details ¡

  • tle, ¡good ¡

What ¡is ¡all ¡of ¡ this? ¡I’m ¡ confused ¡ Ah, ¡Unique ¡ Name ¡must ¡ mean ¡German ¡ name, ¡I’ll ¡ translate ¡this ¡ BOOM! ¡Just ¡ blew ¡up ¡every ¡ node ¡of ¡this ¡ content ¡type! ¡ Oh, ¡and ¡I’m ¡ accidentally ¡adding ¡ German ¡to ¡the ¡ Japanese ¡page ¡

slide-12
SLIDE 12

Pros ¡and ¡Cons ¡of ¡using ¡Drupal ¡out ¡of ¡ the ¡box ¡transla-on ¡

  • Advantages: ¡

– Transla-on ¡can ¡be ¡nimble ¡

  • Disadvantages: ¡

– Translator ¡is ¡not ¡using ¡Computer ¡Aided ¡ Transla-on ¡(CAT) ¡tool ¡ – No ¡clear ¡way ¡to ¡leverage ¡Transla-on ¡Memory ¡ (TM) ¡ – Translator ¡needs ¡access ¡to ¡Drupal ¡Admin ¡interface ¡ – Translator ¡needs ¡Drupal ¡training ¡ – Translator ¡can ¡easily ¡do ¡harm ¡to ¡web ¡site ¡

slide-13
SLIDE 13

Transla-ng ¡Drupal ¡with ¡XLIFF ¡

hIp://drupal.org/project/xliff ¡ ¡ (my ¡company’s ¡last ¡version ¡ hIp://drupal.org/node/881620#comment-­‑7041716 ¡) ¡

slide-14
SLIDE 14

Fundamental ¡difference ¡the ¡XLIFF ¡ Tools ¡module ¡brings ¡

  • All ¡Drupal ¡steps ¡are ¡done ¡by ¡a ¡Drupal ¡

administrator ¡

  • Translator ¡does ¡all ¡his/her ¡work ¡in ¡CAT ¡tools ¡
slide-15
SLIDE 15

Drupal ¡Admin ¡picks ¡the ¡XLIFF ¡module ¡

slide-16
SLIDE 16

Selects ¡the ¡node ¡type ¡to ¡translate ¡

slide-17
SLIDE 17

Exports ¡the ¡nodes ¡to ¡XLIFF ¡

slide-18
SLIDE 18

Saves ¡the ¡XLIFF ¡file ¡locally ¡

slide-19
SLIDE 19

Post ¡processing ¡is ¡usually ¡necessary ¡

¡<trans-­‑unit ¡id="field_warranty-­‑13"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<source>One-­‑year ¡Warranty</source> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<target>One-­‑year ¡Warranty</target> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ </trans-­‑unit> ¡ ¡ ¡ ¡ ¡ ¡ ¡ <trans-­‑unit ¡id="field_inventory_status-­‑15"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<source>Ac-ve</source> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<target ¡state="final ¡>Ac-ve</target> ¡ </trans-­‑unit> ¡

For ¡example, ¡transla-ng ¡"inventory ¡ status" ¡would ¡corrupt ¡the ¡Drupal ¡

  • database. ¡We ¡apply ¡automated ¡post ¡

processing ¡that ¡adds ¡the ¡‘state="final"’ ¡ aIribute ¡to ¡protect ¡that ¡field ¡

slide-20
SLIDE 20

XLIFF ¡sent ¡to ¡LSP ¡

slide-21
SLIDE 21

LSP ¡leverages ¡TM ¡and ¡translates ¡the ¡XLIFF ¡

slide-22
SLIDE 22

Translate ¡only ¡desired ¡text ¡

¡<trans-­‑unit ¡id="field_warranty-­‑13"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<source>One-­‑year ¡Warranty</source> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<target> ¡1-­‑Jahres-­‑Garan-e ¡</target> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ </trans-­‑unit> ¡ ¡ ¡ ¡ ¡ ¡ ¡ <trans-­‑unit ¡id="field_inventory_status-­‑15"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<source>Ac-ve</source> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<target ¡state="final ¡>Ac-ve</target> ¡ </trans-­‑unit> ¡

slide-23
SLIDE 23

XLIFF ¡sent ¡back ¡to ¡content ¡owner ¡

slide-24
SLIDE 24

In ¡some ¡cases, ¡non-­‑content ¡text ¡ strings ¡require ¡addi-onal ¡processing ¡

For ¡example, ¡in ¡Drupal, ¡menu ¡strings ¡are ¡not ¡typically ¡ processed ¡in ¡the ¡Drupal ¡XLIFF ¡module ¡ These ¡strings ¡are ¡stored ¡as ¡“Portable ¡Object” ¡(PO) ¡files ¡

slide-25
SLIDE 25

Drupal ¡admin ¡navigates ¡to ¡the ¡ Translate ¡interface ¡

slide-26
SLIDE 26

Exports ¡the ¡menu ¡PO ¡file ¡

slide-27
SLIDE 27

Saves ¡the ¡PO ¡file ¡locally ¡

slide-28
SLIDE 28

This ¡provides ¡a ¡non-­‑XLIFF ¡method ¡to ¡ translate ¡the ¡menu ¡text ¡

Post ¡processing ¡can/should ¡be ¡done ¡ to ¡transform ¡the ¡PO ¡files ¡to ¡XLIFF ¡files ¡

#: ¡item:1195:-tle ¡ msgid ¡"Home ¡" ¡ msgstr ¡"" ¡ ¡ #: ¡item:19232:-tle ¡ msgid ¡"About ¡Us" ¡ msgstr ¡"" ¡ ¡ #: ¡item:19250:-tle ¡ msgid ¡"Service" ¡ msgstr ¡"" ¡ <trans-­‑unit ¡id="d_16"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<source>Home</source> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<target>Home</target> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ </trans-­‑unit> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ <trans-­‑unit ¡id="d_20"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<source>About ¡Us</source> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<target>About ¡Us</target> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ </trans-­‑unit> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ <trans-­‑unit ¡id="d_24"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<source>Service</source> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<target>Service</target> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ </trans-­‑unit> ¡ Note: ¡This ¡is ¡not ¡part ¡of ¡the ¡XLIFF ¡Tools ¡module; ¡we ¡custom-­‑built ¡this ¡for ¡our ¡workflow ¡

slide-29
SLIDE 29

LSP ¡translates ¡Drupal ¡PO ¡XLIFF, ¡then ¡ returns ¡translated ¡XLIFF ¡

slide-30
SLIDE 30

Transform ¡translated ¡XLIFF ¡to ¡PO ¡

#: ¡item:1195:-tle ¡ msgid ¡"Home" ¡ msgstr ¡"Startseite" ¡ ¡ #: ¡item:19232:-tle ¡ msgid ¡"About ¡Us" ¡ msgstr ¡"Über ¡uns" ¡ ¡ #: ¡item:19250:-tle ¡ msgid ¡"Service" ¡ msgstr ¡"Service" ¡ <trans-­‑unit ¡id="d_16"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<source>Home</source> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<target> ¡Startseite</target> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ </trans-­‑unit> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ <trans-­‑unit ¡id="d_20"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<source>About ¡Us</source> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<target> ¡Über ¡uns</target> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ </trans-­‑unit> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ <trans-­‑unit ¡id="d_24"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<source>Service</source> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<target>Service</target> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ </trans-­‑unit> ¡

slide-31
SLIDE 31

Import ¡the ¡translated ¡PO ¡file ¡

slide-32
SLIDE 32

The ¡site ¡is ¡translated ¡

slide-33
SLIDE 33

Pros ¡and ¡Cons ¡of ¡using ¡open ¡standards ¡ and ¡the ¡XLIFF ¡tools ¡module ¡

  • Advantages: ¡

– Translator ¡uses ¡CAT ¡tool ¡ – TM ¡is ¡easily ¡leveraged ¡ – No ¡need ¡for ¡translator ¡to ¡access ¡to ¡Drupal ¡Admin ¡ interface ¡ – No ¡need ¡for ¡translator ¡to ¡have ¡Drupal ¡training ¡ – Mi-gated ¡risk ¡to ¡web ¡site ¡

  • Disadvantages: ¡

– Transla-on ¡can ¡be ¡less ¡nimble ¡

slide-34
SLIDE 34

Component ¡Content ¡Management ¡ System ¡(CCMS) ¡

  • Some-mes ¡the ¡content ¡is ¡owned ¡by ¡the ¡Web ¡

CMS, ¡but ¡. ¡. ¡. ¡

  • Increasingly ¡it ¡is ¡owned ¡by ¡the ¡CCMS ¡
slide-35
SLIDE 35

DITA ¡and ¡CCMS ¡

  • The ¡strength ¡of ¡a ¡CCMS ¡is ¡its ¡ability ¡to ¡manage ¡

rich ¡topics ¡

  • The ¡open ¡standard ¡for ¡topic-­‑base ¡authoring ¡is ¡

DITA ¡

  • With ¡DITA, ¡transla-ng ¡a ¡“document” ¡oDen ¡

means ¡transla-ng ¡hundreds, ¡thousands, ¡ millions ¡of ¡files ¡

slide-36
SLIDE 36

For ¡example, ¡our ¡datasheets ¡are ¡ managed ¡in ¡our ¡CCMS ¡

slide-37
SLIDE 37

They ¡are ¡made ¡up ¡of ¡many ¡topics ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ (205 ¡in ¡this ¡example) ¡

slide-38
SLIDE 38

Under ¡the ¡covers, ¡topics, ¡maps, ¡images ¡ live ¡in ¡the ¡repository ¡

slide-39
SLIDE 39

Transla-ng ¡TrisoD ¡DITA ¡using ¡out ¡

  • f ¡the ¡box ¡features ¡
slide-40
SLIDE 40

Pick ¡the ¡“publica-on” ¡

slide-41
SLIDE 41

Assign ¡language(s) ¡

slide-42
SLIDE 42

Ini-ate ¡ transla-on ¡

Select ¡Language ¡for ¡ transla-on ¡cycle ¡ Add ¡metadata ¡ Click ¡“OK” ¡

slide-43
SLIDE 43

Generate ¡ transla-on ¡ report ¡

slide-44
SLIDE 44

Push ¡transla-on ¡

slide-45
SLIDE 45

Next ¡steps ¡

  • A ¡zip ¡file ¡with ¡all ¡(100s, ¡1000s, ¡1000000s) ¡DITA ¡files ¡arrives ¡on ¡the ¡
  • server. ¡
  • Send ¡the ¡zip ¡file ¡to ¡the ¡LSP. ¡
  • Make ¡sure ¡your ¡transla-on ¡agency ¡does ¡NOT ¡modify ¡the ¡filenames ¡

nor ¡the ¡DITA ¡structure. ¡Only ¡the ¡content ¡can ¡be ¡translated. ¡

  • When ¡the ¡transla-ons ¡come ¡back, ¡unzip ¡them ¡and ¡put ¡on ¡the ¡
  • server. ¡
  • Import ¡translated ¡topics, ¡maps, ¡pictures ¡into ¡TrisoD. ¡
slide-46
SLIDE 46

100, ¡1000, ¡1000000 ¡DITA ¡files ¡sent ¡to ¡ LSP; ¡translated; ¡returned ¡

slide-47
SLIDE 47

Pros ¡and ¡Cons ¡of ¡using ¡out ¡of ¡the ¡box ¡ ¡

  • Advantages: ¡

– CCMS ¡skillfully ¡manages, ¡tracks, ¡audits, ¡complex ¡set ¡of ¡ files ¡and ¡languages ¡ – CCMS ¡*knows* ¡how ¡many ¡topics ¡per ¡master ¡map ¡are ¡ translated ¡to ¡which ¡languages ¡

  • Disadvantages: ¡

– LSP ¡must ¡manage ¡100s, ¡1000s, ¡1000000 ¡files ¡per ¡ transac-on ¡ – LSP ¡must ¡know ¡DITA ¡ – LSP ¡manages ¡the ¡conversion ¡of ¡DITA ¡to ¡and ¡from ¡CAT ¡ tool ¡

slide-48
SLIDE 48

XLIFF ¡and ¡the ¡DITA-­‑XLIFF ¡OT ¡ Plugin ¡for ¡CCMS ¡

hIp://sourceforge.net/projects/ditaxliff/ files/ ¡

slide-49
SLIDE 49

Note ¡about ¡the ¡DITA-­‑XLIFF ¡plugin ¡and ¡

  • ur ¡integra-on ¡with ¡TrisoD ¡
  • I ¡wrote ¡the ¡DITA-­‑XLIFF ¡plugin ¡for ¡the ¡DITA ¡

Open ¡Toolkit ¡as ¡an ¡open ¡source, ¡standalone ¡

  • We ¡adapted ¡it ¡to ¡work ¡with ¡TrisoD, ¡and ¡

augmented ¡its ¡integra-on ¡with ¡Visual ¡Studio ¡

slide-50
SLIDE 50

We’ve ¡added ¡our ¡“TrisoD ¡Publishing ¡ Assistant” ¡custom ¡applica-on ¡

  • Pick ¡the ¡

publica-on ¡part ¡ number ¡ ¡

  • Generate ¡an ¡

XLIFF ¡of ¡all ¡ topics, ¡maps ¡and ¡ images ¡

  • Add ¡a ¡PFD ¡file ¡to ¡

the ¡transla-on ¡ package ¡ The ¡writer ¡ essen-ally ¡follows ¡ the ¡same ¡steps ¡as ¡

  • ut-­‑of-­‑the-­‑box. ¡ ¡

¡ But ¡now ¡an ¡XLIFF ¡ shows ¡up ¡instead ¡of ¡ DITA ¡files. ¡

slide-51
SLIDE 51

1 ¡XLIFF ¡file ¡(not ¡100, ¡1000, ¡1000000 ¡ DITA ¡files) ¡sent; ¡translated; ¡returned ¡

slide-52
SLIDE 52

Pros ¡and ¡Cons ¡of ¡using ¡XLIFF ¡plugin ¡

  • Advantages: ¡

– LSP ¡manages ¡an ¡XLIFF ¡file, ¡not ¡100, ¡1000, ¡1000000 ¡DITA ¡files ¡ – LSP ¡does ¡not ¡need ¡to ¡know ¡DITA ¡ – XLIFF ¡opens ¡na-vely ¡in ¡CAT ¡tools ¡(enabling ¡nimble ¡workflow ¡ and ¡leveraging ¡of ¡TM) ¡ – CCMS ¡(s-ll) ¡skillfully ¡manages, ¡tracks, ¡audits, ¡complex ¡set ¡of ¡ files ¡and ¡languages ¡ – CCMS ¡(s-ll) ¡*knows* ¡how ¡many ¡topics ¡per ¡master ¡map ¡are ¡ translated ¡to ¡which ¡languages ¡

  • Disadvantages: ¡

– Complexity ¡of ¡plumbing ¡the ¡plugin ¡to ¡CCMS ¡is ¡nontrivial ¡

slide-53
SLIDE 53

Thank ¡you ¡

Bryan ¡Schnabel ¡ bschnabel@bschnabel.com ¡ @bryanschnabel ¡ ¡