an introduction to xliff

81
An Introduction to XLIFF The XML Localisation Interchange File Format

Upload: maeve

Post on 30-Jan-2016

73 views

Category:

Documents


0 download

DESCRIPTION

An Introduction to XLIFF. The XML Localisation Interchange File Format. Agenda. Overview of Open Standards Benefits, drawbacks and development process Survey of Localisation Standards TMS, TBX, OpenTag Overview of XLIFF 1.0 Definition, goals, and benefits of XLIFF - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: An Introduction to XLIFF

An Introductionto XLIFF

The XML Localisation Interchange File Format

Page 2: An Introduction to XLIFF

Slide 2

Agenda

• Overview of Open Standards Benefits, drawbacks and development process

Survey of Localisation Standards TMS, TBX, OpenTag

• Overview of XLIFF 1.0Definition, goals, and benefits of XLIFFBusiness Use CasesBrief history of XLIFF

• ArchitectureMain features of XLIFF 1.0

• The Real WorldExample of using XLIFFTools support for XLIFF 1.0

• Current State of AffairsXLIFF 1.1 – What’s newWork at OASIS on XLIFF

Page 3: An Introduction to XLIFF

Slide 3

Industry Standards Overview

A little bit about “Standards”…

Page 4: An Introduction to XLIFF

Slide 4

Definition of a “Standard” is...

A definition or format that has been approved by a recognized standards organization or is accepted as a de facto standard by the industry. Standards exist for programming languages, operating systems, data formats, communications protocols, and electrical interfaces*

* Definition by www.webopedia.com

Page 5: An Introduction to XLIFF

Slide 5

Standards are created by...

• Default acceptance of private specifications by the market

• Government regulation via state regulatory agency or public utility

• Formal standardisation via consensus body or committee

Page 6: An Introduction to XLIFF

Slide 6

Categories of Standards

• Units, reference, definition- temperature, weights, lengths, volumes, etc.

• Similarity - screw gauges, character sets, colour schemes, UNIX operating system

• Compatibility - API’s, UI’s, nuts and bolts, hand tools and implements, radio transmitter & radio, modem standards (v32, v34), XLIFF 1.0

• Etiquette - The IETF Internet draft Protocol Extension Protocol (PEP), designed to accommodate extensions of applications such as HTTP clients, servers and proxies, 3G

Page 7: An Introduction to XLIFF

Slide 7

Further Reading on Standards…

• The Role of Standards in Today’s Society and in the Future, Dr. Carl Cargill, Director – Corporate Standards, Sun Microsystems. Inc:http://www.house.gov/science/cargill_091300.htm

• The Business of Open-Source Software, Frank Hecker, Originally published May 1998, revised 20 June 2000: http://www.hecker.org/writings/setting-up-shop.html

• Standards Making: Behind the Scenes, Don Deutsch:http://otn.oracle.com/oramag/webcolumns/2003/opinion/deutsch_opinion.html

Page 8: An Introduction to XLIFF

Slide 8

XLIFF 1.0 Overview

A glance at the definitions, goals and benefits of the XML Localisation Interchange File Format.

Page 9: An Introduction to XLIFF

Slide 9

What is XLIFF?

• A specification

• for the lossless interchange of localizable data and its related information,

• which is tool-neutral,

• has been formalized as an XML vocabulary (document type definition),

• and features an extensibility mechanism.

Page 10: An Introduction to XLIFF

Slide 10

XLIFF TC’s Charter

“The purpose of the OASIS XLIFF TC is to define, through XML vocabularies, an extensible specification for the interchange of localization information. The specification will provide the ability to mark up and capture localizable data and interoperate with different processes or phases without loss of information. The vocabularies will be tool-neutral, support the localization-related aspects of internationalization and the entire localization process. The vocabularies will support common software and content data formats. The specification will provide an extensibility mechanism to allow the development of tools compatible with an implementer's own proprietary data formats and workflow requirements.”

Page 11: An Introduction to XLIFF

Slide 11

Why XLIFF is Needed?

Localization offers the following challenges:

• Insufficient interoperability between tools.

• Lack of support for overall localization workflow.

• Necessity of localization tools developers to deal with many formats.

• Large number of proprietary intermediate formats.

Page 12: An Introduction to XLIFF

Slide 12

Advantages – Localization Customer

• Single format for adjunct processing (e.g. quality control in terms of spell checking).

• Less dependency on vendors which are able to work with special formats.

• Tighter control on what goes to localization (Pre-filtering of what to translate or not).

• Controlled information flow (author/developer notes, item properties, etc.).

• ID-based leveraging.• All advantages of XML-based processing.

Page 13: An Introduction to XLIFF

Slide 13

Advantages – Tools Vendor

• Focus on development of core functionality rather treatment of source format.

• Allow usage of tools in new contexts.

• All advantages of XML-based processing.

Page 14: An Introduction to XLIFF

Slide 14

Advantages – Service Provider

• Single format for adjunct processing (e.g. quality control in terms of spell checking).

• Less dependency on specific localization tools.

• Controlled information flow (author/developer notes, item properties, etc.).

• Allow usage of tools in new contexts.

• All advantages of XML-based processing.

• Open and standard solution for proprietary formats.

Page 15: An Introduction to XLIFF

Slide 15

Advantages – Technology (1/2)

• For a given utility, only one implementation is necessary (e.g. not one spell checker for RTF, and another one for HTML).

• Increases usability of utilities (i.e. all formats with XLIFF filters can be used with XLIFF-enabled utilities).

Page 16: An Introduction to XLIFF

Slide 16

Advantages – Technology (2/2)

• All advantages of XML-based processing:– Use of its internationalization features.– Better interoperability and cross-platform support.– Powerful rendering options (XSL-FO, CSS).– Powerful transformation options (XSLT).– Greater integration with Web services.

• Access to existing, and often open-source, XML implementation (lower costs).

Page 17: An Introduction to XLIFF

Slide 17

Basic Use Case – without XLIFF

Tool ResourceFilters

DeveloperApplications TranslatorCustomer

SpecificTool (s)

Native File 2(e.g., JavaFiles)

Native File 1(e.g., HTML)

Native File 3(e.g., Java Properties)

Native File n

Publisher/CustomerDomain

LocalisationDomain

Page 18: An Introduction to XLIFF

Slide 18

Basic Use Case –with XLIFF

XLIFF compliant DeveloperApplications

TranslatorXLIFFCompliantEditor

XLIFF file(s) containingHTML, Java, Properties, etc translatable resources

Non XLIFF compliant DeveloperApplications

- OR -

Publisher/CustomerDomain

LocalisationDomain

Direct toXLIFF authoring

HTML

Java Properties

RC Data

Pre-processing

Page 19: An Introduction to XLIFF

Slide 19

Simple Automated Localisation Use Case

Developer Translator

GenerateXLIFF

Pseudo Translate / Test

LocalizationEngineer

XLIFF Translation Kit

Leverage

TranslationRepository

DefectReport

XLIFF Editor

Update

XLIFF Translation Kit

Translate

RequiresTranslation

100%Translated

0% Translated

100%Translated

Page 20: An Introduction to XLIFF

Slide 20

Automated Localisation with CAT Use Case

Developer Translator

GenerateXLIFF

Pseudo Translate / Test

LocalizationEngineer

XLIFF Translation Kit

100% match

TranslationRepository

DefectReport

XLIFF Editor

XLIFF Translation Kit

Translate

RequiresTranslation

100%Translated

0% Translated

100%Translated

Fuzzymatch

TranslationMemory

MachineTranslation

MachineTranslate

Update

Page 21: An Introduction to XLIFF

Slide 21

Genesis of XLIFF

• Founded: Sept 2000

• Founding Members: Novell, Oracle and Sun

• Initially named “DataDefinition” group

Page 22: An Introduction to XLIFF

Slide 22

XLIFF 1.0 Timeline

• September 2000 - DataDefinition Kickoff• December 2000 - first face to face• March 2001 - second face to face• End March 2001 - draft 1.0 spec and DTD published• June 2001 - White Paper published • December 2001 - OASIS XLIFF Technical

Committee Proposal submitted• April 2002 – XLIFF 1.0 Specification approved by

formal vote as an OASIS Committee Specification

Page 23: An Introduction to XLIFF

Slide 23

OASIS: A New Home for XLIFF

• OASIS: Organization for the Advancement of Structured Information Standards

• World’s largest independent, non-profit organization dedicated to the standardisation of XML applications and Web Services

• More than 150 member companies plus individuals

• Operates XML.ORG Registry, the open community clearinghouse of XML application schemas clearinghouse of XML application schemas

• Technical work on XML interoperability includes XML conformance and XML Registries/Repositories

• General XML technical resource

Page 24: An Introduction to XLIFF

Slide 24

Drivers Behind XLIFF

Alchemy SoftwareBowne Global SolutionsConvey SoftwareEktron, IncGlobalsightHPLotus/IBMLionbridgeLRCMoravia IT

NovellOracleMicrosoftRWS GroupSAPSDL InternationalSun MicrosystemsTektronix

Page 25: An Introduction to XLIFF

Slide 25

Present OASIS XLIFF TC

• TC Officers: – TC Chair: Tony Jewtushenko, Oracle Corporation– TC Vice-Chair: Jonathan Clark, Lionbidge– TC Secretary: Peter Reynolds, Bowne Global Solutions– TC Editor: Yves Savourel

• Current Members of TC: • Gérard Cattin des Bois, Microsoft • Doug Domeny • Mirek Driml, Moravia-IT • Milan Karásek, Moravia-IT • Mark Levins, IBM/Lotus • Christian Lieske, SAP • Mat Lovatt, Oracle • Enda McDonnell • David Pooley, SDL • John Reid, Novell• Reinhard Schaler, LRC• Bryan Schnabel, Tektronix • Shigemichi Yazawa

Page 26: An Introduction to XLIFF

Slide 26

XLIFF TC in the Community

• Shared interests with the OSCAR SIG at LISA– Segmentation and word-count.– Content markup (inline codes).

• Shared interests with the W3C i18n WG– Localization directives.– Best practices.– In the localization aspects of the W3C.

recommendations.– Web services.

Page 27: An Introduction to XLIFF

Slide 27

Architecture

A look at XLIFF’s main features and how they work together.

Page 28: An Introduction to XLIFF

Slide 28

Extract-Localize-Merge Paradigm

• Separate data related to localization from parts not related to localization.

• Merge translated data with codes at the end of the process to create the final document.

• Skeleton file is optional, so this paradigm is also optional

Page 29: An Introduction to XLIFF

Slide 29

A Birds-Eyes View

An XLIFF document can capture anything needed for a localization project:

1. Localizable objects (e.g. text strings) in source and target languages.

2. Supplementary information (e.g. glossaries, or material to recreate the original format).

3. Administrative information (e.g. workflow data).

4. Custom data (e.g. initialization information for tools).

Page 30: An Introduction to XLIFF

Slide 30

The XLIFF Document

• An XLIFF document is designed to store the extracted data related to localization.

• Each given source container (e.g. a file, a database table, and so forth) corresponds to a <file> element in XLIFF.

• Each XLIFF document can include several <file> elements.

• A whole localization project can possibly be stored in a single XLIFF document.

Page 31: An Introduction to XLIFF

Slide 31

Bilingual Model

• Each <file> element is designed to store one source language and one target language.

• The rational is that the translation of different target language is done by different people most of the time.

• However, languages in <alt-trans> element can be different. For example, proposed matches in national Portuguese when translating into Brazilian Portuguese.

Page 32: An Introduction to XLIFF

Slide 32

Localizable Objects – Overview

• XLIFF allows not only text string as localizable object but also other object types such as graphics.

• Supplementary information can be represented in a generic way through inline codes (e.g. formatting of text).

• Relationship between object can be captured (e.g. all items in a menu).

Page 33: An Introduction to XLIFF

Slide 33

Localizable Objects – Text

Extracted text goes in translation units (<trans-unit>), in a <source> element. The translation will go into a <target> element.

<trans-unit id='1' datatype='winres' resname='IDCANCEL' restype='button' coord='8;80;50;14' style='0x20000'> <source xml:lang='en'>Cancel</source> <target xml:lang='fr'>Annuler</target></trans-unit>

Page 34: An Introduction to XLIFF

Slide 34

Localizable Objects – Inline Codes (1/3)

Supplementary information for translation units (e.g. formatting, links, image references, etc.) can be encapsulated, using a set of elements (<bpt>, <ept>, <it>, and <ph>) very similar to the ones used in TMX.

<source xml:lang='en'>Text in<bpt id='1'>&lt;b></bpt>bold<ept id='1'>&;lt;/b></ept>.</source>

Page 35: An Introduction to XLIFF

Slide 35

Localizable Objects – Inline Codes (2/3)

Supplementary information can also be stored in the Skeleton; in this case, placeholders elements (<g>, <x/>, <bx/>, <ex/>), like the ones used in OpenTag, are inserted in the translation units.

<source xml:lang='en'>Text in <g id='1‘ ctype=“bold”>bold</g>.</source>

Page 36: An Introduction to XLIFF

Slide 36

Localizable Objects – Inline Codes (3/3)

XLIFF provides furthermore the general purpose element <mrk> to associate supplementary information to an arbitrary span of text.

<source>The <mrk mtype='part-of-speech' ts='adjective'>fat</mrk> cat sleeps soundly.</source>

Page 37: An Introduction to XLIFF

Slide 37

Localizable Objects – Non-Textual

Non-textual objects such as bitmap, cursor, etc. can be stored in the XLIFF document, internally or externally), using a <bin-unit> element.

<bin-unit id='1' resname='IDB_OPEN' mime-type='image/bitmap' restype='bitmap'> <bin-source> <external-file href='Open.bmp'/> </bin-source></bin-unit>

Page 38: An Introduction to XLIFF

Slide 38

Localizable Objects – Relationships

Relations between objects can be captured by the mean of the <group> element. (note: a <group> can also contain another <group>).

<group restype='menu'> <trans-unit id='1' resname='ID_OPENFILE'> <source>&amp;File...</source> </trans-unit> <trans-unit id='2' resname='ID_EXITAPP'> <source>E&amp;xit</source> </trans-unit></group>

Page 39: An Introduction to XLIFF

Slide 39

Supplementary Info – Overview

• XLIFF provides “hooks” for storing supplementary information (for example to glossaries or translation memories which should be used).

• The supplementary information can be referenced (i.e. reside outside of the document), or embedded within the document.

Page 40: An Introduction to XLIFF

Slide 40

Supplementary Info – References (1/2)

Pointers to reference material such as TMs or glossaries can be listed in the <header> of each <file> element.

...<header><reference> <external-file href="TranslationStyleGuidelines.doc" /></reference>...

Page 41: An Introduction to XLIFF

Slide 41

Supplementary Info – References (2/2)

Alternatively, the reference material can also be stored directly in the XLIFF document.

...<header><glossary> <internal-file form="text"><![CDATA["English term 1","German term 1""English term 2","German term 2"...]]></internal-file></glossary>...

Page 42: An Introduction to XLIFF

Slide 42

Supplementary Info – Skeleton (1/2)

Non-localizable parts can be references in Skeleton files, which can be referenced from within the XLIFF document.

...<header> <skl> <external-file href="JavaApp.properties.skl" uid="3d4031aa1ab"/> </skl></header>...

Page 43: An Introduction to XLIFF

Slide 43

Supplementary Info – Skeleton (2/2)

The Skeleton content can also be embedded in the XLIFF document itself.

...<header> <skl> <internal-file crc="d341e458" form="base64">PE9LRlNLTDEwMDpSRVM6OTY0MDA4MjYxPg0KI2luY2x1ZGUgInJlc291cmNlLmgiDQpJRERfRElBTE9HMSBESUFMTX01PREFMRlJBTUUgfCBXU19QpDQVBUSU9O... </internal-file> </skl></header>...

Page 44: An Introduction to XLIFF

Slide 44

Administrative Info – Overview

XLIFF provides mechanisms for capturing administrative information:

• For relating source material to XLIFF documents.

• For storing workflow data.

• For providing pre-translation entries.

• For keeping track of changes.

Page 45: An Introduction to XLIFF

Slide 45

Administrative Info – Source

First, define what is in the document, and how it relates to the source.

<?xml version="1.0" encoding="utf-8"?><xliff version="1.0"> <file original="JavaApp.properties" tool="OkapiFilter:JavaProperties" source-language="en" datatype="java" date="2002-07-25T17:13:14Z" target-language="ja"> <header>...

Page 46: An Introduction to XLIFF

Slide 46

Administrative Info – Workflow (1/2)

Simple data about the steps of the process for each <file> element can be stored in its <header> element.

...<header> <phase-group> <phase phase-name="Step-001" process-name="Extraction" tool="myTool" contact-email="[email protected]"/> </phase> </phase-group>...

Page 47: An Introduction to XLIFF

Slide 47

Administrative Info – Workflow (2/2)

Reference to the different phases can be set in the different items of the <file> element (for example: where this edit came from? etc.)

<trans-unit id='1'> <source xml:lang='en'>The text</source> <target xml:lang='fr' phase-name='Edit' >Le texte</target> <alt-trans> <target xml:lang='fr' phase-name='Trans' >Un texte</target> </alt-trans></trans-unit>

Page 48: An Introduction to XLIFF

Slide 48

Administrative Info – Pre-Leveraging

A set of proposed translation can be included for each <trans-unit> element, using the <alt-trans> element.

<trans-unit id='1'> <source xml:lang='en'>The text</source> <alt-trans quality-match='high' origin='MTsystem'> <target xml:lang='fr'>Le texte</target> </alt-trans></trans-unit>

Page 49: An Introduction to XLIFF

Slide 49

Administrative Info – Tracking Changes

Modifications made during the course of the process (translation, edit, proof, review, etc.), can also be stored using <alt-trans>.

<trans-unit id='1'> <source xml:lang='en'>The text</source> <target xml:lang='fr' phase-name='Edit' >Le texte</target> <alt-trans> <target xml:lang='fr' phase-name='Trans' >Un texte</target> </alt-trans></trans-unit>

Page 50: An Introduction to XLIFF

Slide 50

Custom Data

Use the <prop> element and the ts attribute to store user-defined information.

<trans-unit id='1' ts='ctx:23a7'> <prop-group> <prop prop-type='myType' >Some property data</prop> </prop-group> <source>Text</source></trans-unit>

Page 51: An Introduction to XLIFF

Slide 51

The Real World

A look at some concrete examples on how XLIFF can be used in localization projects.

Page 52: An Introduction to XLIFF

Slide 52

Streamlining L10n Files Exchanges

Localization Customer

LocalizationPreprocessorLocalizationPreprocessor

Pre-translatedProprietary Format File

Localization Vendor

Customer Supported

Localization Tool

INCCSV

DOCDBLANG

SHLMDB

CATCFG

.INI.TXT

ZINCDOCLANG

MSGAGENT

ICSFILXLIFF

HTML.XSL

XML

INSNLM

ASDHGFF

VBNPARA

CATXRDB

PROP.JAVA

C++

HLPRC

MCEN

XSFTFD

LDIMENU

PCT.EXE

..DLL

Localization Customer

INCCSV

DOCDBLANG

SHLMDB

CATCFG

.INI.TXT

ZINCDOCLANG

MSGAGENT

ICSFILXLIFF

HTML.XSL

XML

INSNLM

ASDHGFF

VBNPARA

CATXRDB

PROP.JAVA

C++

HLPRC

MCEN

XSFTFD

LDIMENU

PCT.EXE

..DLL

Localization Vendor

VendorLocalization Process

Localization Customer Localization Vendor

Any tools based on XLIFF Industry

Standard

INCCSV

DOCDBLANG

SHLMDB

CATCFG

.INI.TXT

ZINCDOCLANG

MSGAGENT

ICSFILXLIFF

HTML.XSL

XML

INSNLM

ASDHGFF

VBNPARA

CATXRDB

PROP.JAVA

C++

HLPRC

MCEN

XSFTFD

LDIMENU

PCT.EXE

..DLL

XLIFFLocalizationPreprocessorLocalizationPreprocessor

Page 53: An Introduction to XLIFF

Slide 53

Concrete Examples

• Before– Windows Executable file– Java Properties file

• After– Extracted Executable file in XLIFF– Extracted Java Properties file in XLIFF

Page 54: An Introduction to XLIFF

Slide 54

Benefits: Use of XML Technologies

• XSL can be used to perform many tasks on XLIFF documents, for example:– Display translatable content in Web browser.– Generate statistics (e.g. number of localizable

objects).

• Availability of many XML engines makes using XLIFF easy.– Content-related checks (e.g. that certain characters

do not appear as textual contents) can be performed with ordinary Web browsers.

Page 55: An Introduction to XLIFF

Slide 55

XML-Enabled Translation Tools

• Any XML-enabled translation tool can work with an XLIFF document, as long as the text to translate is initially copied in the <target> elements. However, this does not mean it supports all XLIFF features, but just permits translation of <target> content.

• Many tools cannot handle conditional translation (for example: <trans-unit translate="no">). Then, you need to add extra elements temporarily.

Page 56: An Introduction to XLIFF

Slide 56

Case Study – DGW+Elcano (1/2)

• IBM’s Lotus Domino Global WorkBench (DGW) version 6 is an application used to localize Domino Web applications and Notes database applications.

– The localizable text from Notes/Domino *.nsf and *.ntf formats is extracted into a Notes-based glossary application.

– DGW 6 now supports XLIFF export and import.– Translation step previously required a Notes

installation and translation in a restrictive comma-delimited text file.

Page 57: An Introduction to XLIFF

Slide 57

Case Study – DGW+Elcano (2/2)

• Elcano (Bowne Global Solutions) recently developed a Translation Web Service using XLIFF for translation content.

– Domino Global WorkBench glossary application calls directly to the Elcano Web Service.—To submit jobs for translation.

—To check job status.

—To receive translated jobs & import into glossary.

– Allows DGW 6 users fast and convenient access to efficient, high quality human translation

Page 58: An Introduction to XLIFF

Slide 58

3rd Party Tools Support for XLIFF 1.0• RWS Group (to be demo’d): Extraction Utility for RC Data and

Java Properties to XLIFF 1.1 http://dotnet.goglobalnow.net/ Various Utilities: http://www.translate.com/shared/tools

• Alchemy Software (to be demo’d) - Catalyst 6.0 – Visual XLIFF 1.1 Editor http://www.alchemysoftware.ie

• XML-Intl (to be demo’d): XLIFF Editor http://www.xml-intl.com • Heartsome (to be demo’d) XLIFF Editor:

http://www.heartsome.org• SDL International: SDLX support for XLIFF currently in

development. See http://www.sdlx.com for more information.• Trados: No direct XLIFF support, but can edit XLIFF files using

modified INI file (will demo Workbench with INI file setting)• PASS: (to be demo’d) Passolo Editor, http://www.passolo.com• Bowne Global Solutions: Elcano, Online Translation Service has a

web service based connector for XLIFF files http://elcano.bowneglobal.com

Page 59: An Introduction to XLIFF

Slide 59

More Tools Support for XLIFF 1.0• Oracle (to be demo’d): HyperHub: Internal Tool for

editing Oracle based data contained in XLIFF archives

• IBM: Domino Global Workbench Version 6 (http://www6.software.ibm.com/devcon/devcon/docs/dwkbbet6.htm)

• Sun : Internal XLIFF Editor as described in this article: http://www.sun.com/developers/gadc/technicalpublications/articles/xliff.html

• Open Source XSLT Tools: http://sourceforge.net/project/showfiles.php?group_id=42949&release_id=67485

Page 60: An Introduction to XLIFF

Slide 60

Current State of Affairs

A look at the work under way at the OASIS XLIFF TC, the future, etc.

Page 61: An Introduction to XLIFF

Slide 61

Current State of Affairs – Versions

• XLIFF version 1.0 released as an OASIS TC specification in April 2002 and is used today by various companies.

• XLIFF 1.1 was approved as Committee Specification on 20 May 2003

Page 62: An Introduction to XLIFF

Slide 62

Current State of Affairs – To Do

• Specification of canonical representation in XLIFF of some formats (e.g. Windows resources, Java properties), so all XLIFF representations are the same regardless which tool created the document.

• Translation/Localization tools that support XLIFF out-of-the-box (not just as another XML format).

• Open Source filters (e.g. to convert from Windows message catalogues to XLIFF).

Page 63: An Introduction to XLIFF

Slide 63

Overview of Changes from 1.0 -> 1.1

• Validation by Schema (XSD)

• Extending XLIFF elements, attributes, attribute values

• Embedding XLIFF in XML documents

• Changed, added or deprecated 1.0 features

Page 64: An Introduction to XLIFF

Slide 64

Validation by Schema (XSD)

• In 1.0, validation by DTD

• In 1.1, validation by XML Schema – XSD

• XSD provides better control over XML document: – Structure – structured order can be specified– Content – support for standard datatypes like

date– Semantics – can specify range of valid values

or pattern– Support for namespace

Page 65: An Introduction to XLIFF

Slide 65

Extending Elements

• Extension points in the following elements: – <header>, <group>, <tool>,

<trans-unit>, <alt-trans>, and  <bin-unit>.

• content of each custom element can be any valid XML content:– empty content, PCDATA, mixed content, and so

forth

• Custom elements defined in private namespace schema

Page 66: An Introduction to XLIFF

Slide 66

Example of Extending Elements in XLIFF

• Example of Extended XLIFF file

• Example of private namespace schema

Page 67: An Introduction to XLIFF

Slide 67

Extending Attributes

• Attributes of a namespace different than XLIFF can be included in these XLIFF elements: – <file>, <group>, <trans-unit>, <source>,

<target>, <tool>, <bin-unit>, <bin-source>, <bin-target>, <alt-trans>, <mrk>, <g>, <x/>, <bx/>, <ex/>, <bpt>, <ept>, <ph>, and <it>

• No specific location where to insert the non-XLIFF attributes

• No limit to the number of non-XLIFF attributes that can be used in an XLIFF document

Page 68: An Introduction to XLIFF

Slide 68

Example of Extending Attributes

• attributes from the XHTML vocabulary extend the <group> and <trans-unit>

• Click for Example…

Page 69: An Introduction to XLIFF

Slide 69

Extending Attribute Values

• Attributes where the list of values can be extended are the following: context-type, count-type, ctype, datatype, mtype, restype, size-unit, state, unit, priority, and purpose

• User-defined values must start with a “x-” prefix

• There is no specified mechanism to validate individual user-defined values, beyond starting with “x-”

Page 70: An Introduction to XLIFF

Slide 70

Example of Extending Attribute Values

• The following excerpt shows how the user-defined value x-for-engineer can be utilized in a document:...<group>

<context-group name='EngineersData'><context context-type='x-for-

engineers'>Data...</context></context-group>

</group> ...

Page 71: An Introduction to XLIFF

Slide 71

Validating Extensions

• Add the schemaLocation attribute of the XML schema-instance namespace to define what schemas to use to validate:

<xliff version='1.1' xmlns='urn:oasis:names:tc:xliff:document:1.1'

xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation=' urn:oasis:names:tc:xliff:document:1.1 xliff-1-1.xsd http://www.ChaucerState.ac.pg/Frm/XLFSup-v1 XLFSupv1.xsd' > ... </xliff>

Page 72: An Introduction to XLIFF

Slide 72

Embedding XLIFF

• Can embed an entire or part of an XLIFF doc in other XML doc

• XML defined by XML Schema (XSD) that includes an <any> element in the definition of the element where the XLIFF data can be inserted

Page 73: An Introduction to XLIFF

Slide 73

Example of Embedding XLIFF

• The following XSD excerpt illustrates the case of an element type dataBlockType that can contain zero, one or more XLIFF constructs after a mandatory <type> element:

...

<xsd:complexType name="dataBlockType">

<xsd:sequence>

<xsd:element name="type" type="string" minOccurs="0"/>

<xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

...

Page 74: An Introduction to XLIFF

Slide 74

Deprecated or changed 1.0

• reformat – feature changed

• tool attribute becomes tool element

• new tool-id attribute

• ts, prop / prop-group - deprecated

• header was required, now optional

• default –can specify default values for given scope

Page 75: An Introduction to XLIFF

Slide 75

Reformat

• 1.0 supported values of “yes” or “no”, which wasn’t granular enough• 1.1 supports the following values:

– “yes" = all format attributes may be changed– "no" = no format attributes may be changed...or a semicolon-delimited list of the following in any order. If an attribute is listed, it means it

may be reformatted.• coord = all 4 coords, coord-x, coord-y, coord-cx, coord-cy, font = all 3 font values, font-name, font-size,

font-weight, css-style, style, exstyle,

Example:

<trans-unit coord="#;#;183;272" font="Arial;2;normal" reformat="coord-cx;font-name">

<source>...</source> <target coord="#;#;181;272" font="System;2;normal">...</target> <alt-trans coord="#;#;183;272" font="Arial;2;normal"> <target coord="#;#;180;272" font="Arial Bold;2;normal">...</target> <target coord="#;#;185;272" font="Arial, Helvetica;2;normal">...</target> </alt-tran></trans-unit>

Page 76: An Introduction to XLIFF

Slide 76

Tool Element

• Tool attribute promoted to element in 1.1…<header>

</tool tool-name=‘Oracle HyperHub’ tool-id=‘ora-hhub-030721’ tool-company=‘Oracle Tools Group’ tool-version= ‘3.7.21’/>

</header>…

Page 77: An Introduction to XLIFF

Slide 77

New tool-id attribute

• Replaces tool attribute where it was defined

• Points to <tool> defined in <header>, linked by tool-id value

• Used in <file>, <phase>, <alt-trans>, <tool>

Page 78: An Introduction to XLIFF

Slide 78

Deprecated features

• ts, prop / prop-group , but can use private namespace extensions to customise elements, attributes, attrib values

• tool attribute deprecated, but richer feature set using <tool> element and tool-id attribute

Page 79: An Introduction to XLIFF

Slide 79

Default Attribute Value

• These attributes added to <group> so that default value can be set with scope across entire group: charclass maxbytes maxheight maxwidth minbytes minheight minwidth size-unit translate reformat

• Example, where maxwidth default set across entire group, except for trans-unit 4:

<body> <group size-unit="char" maxwidth="2000"> <trans-unit id="1">...</trans-unit> <trans-unit id="2">...</trans-unit> <trans-unit id="3">...</trans-unit> <trans-unit id="4" maxwidth="225">...</trans-unit> <trans-unit id="5">...</trans-unit> </group></body>

Page 80: An Introduction to XLIFF

Slide 80

More Information

• The XLIFF TC Web Site: http://www.xliff.org

• Presenter: – XLIFF TC Chair: Tony Jewtushenko (Oracle)

([email protected])

• Significant Contributors to this Presentation:– Christian Lieske, (SAP)

([email protected])

– Yves Savourel (RWS Group)([email protected])

Page 81: An Introduction to XLIFF

Slide 81

That’s it...

Any Questions?