← Prev in month ← Prev in thread

Call for testers: xliffRoundTrip Tool upgrade to XLIFF 1.2

From
<>
Date
2009-05-16T00:04:21+00:00
ID
Thread
Call for testers: xliffRoundTrip Tool upgrade to XLIFF 1.2
Title: Message

Hello,

 

I've finally begun 
updating my open source xliffRoundTrip Tool. I'm asking for testing help. First, 
(1) if you have time, please read the explanation of what I've done, and comment 
on whether you think I'm on the right track. Second, (2) if you have even more 
time, please volunteer to let me send you a compiled version of my new program, 
give it a try (test it with some of your samples), and let me know if you think 
I'm on the right track. Third, (3) if you have even more time, and are 
comfortable compiling source code, please volunteer to let me send you my new 
source code, compile it, give it a try (test it with some of your samples), and 
let me know if you think I'm on the right track. If you volunteer to do either 
(2) or (3), I will include a list of known bug fixes in the works, so you 
don't waste your time commenting on them.

 

As for timing, 
anyone interested in helping at level (1) can do so starting now, by reading the 
rest of my note. By mid-next-week (maybe May 20) I'll be ready to send compiled 
beta test versions to those who are interested in helping at level (2). And if 
you're interested in testing at level (3), I hope to have my source code 
somewhat presentable by early June.

 

If you don't have 
any time, that's understandable. If you have time to do at least (1), please 
read on.

 

Hopefully many of 
you already know that the xliffRoundTrip Tool works like 
this:

 

- begin with any 
well-formed XML source file* - push the "XML to XLIFF" button, and get an XLIFF 
file

- translate the 
target strings

- push the "XLIFF to 
XML" button, and get an identical translated XML file

 

* (at the moment 
non-namespaced XML source works better - but I hope to handle namespaces in the 
next version as well)

 

Here's the track I'm 
taking. The 
first modest goal is to update the xliffRoundTrip Tool to use XLIFF 
1.2 instead of 1.1 (if I'm going to ask tool makers to keep up-to-date with 
current XLIFF versions, the least I can do is keep my tool up-to-date). The 
second goal is to incorporate a minimalist approach. i.e., embed the 
XML source file structure in the XLIFF header (unfortunately I 
cannot embed XML in the skl element, so it must be embedded into the closest 
extensible place in the header, which is adjacent to the skl). The third goal is 
to modify (and debug) the GUI a little bit; pretty it up. Future goals 
include adding support for ITS, xml:tm, and to make a DITA-specific 
version.

 

Here's how far I've 
gotten with my update.

 

Start with any 
well-formed XML, like this:

(intentionally used 
a file with very exaggerated nesting, and mixed content)

 

<rooty 
sort="o12345">
 <just_wrappin id="gabbagabbahey">
  
<intro_para id="kickoutthejams">And here's <icon src="my-pic.png" 
alt="hello" /> some <b>text <i>that has</i> some 
nested</b> texts.</intro_para>
  
<wrapped_wrapper2>
   
<just_wrappin3>
    <mixed>And here's some 
more
      
<wrap4>
       
<inner_wrap5>
        <p 
id="allalongthewatchtower">Hello 
world.</p>
        <p1>It's 
just a beautiful day.</p1>
       
</inner_wrap5>
       
<one_out>Loose text</one_out>
      
</wrap4>
    </mixed>
   
</just_wrappin3>
  
</wrapped_wrapper2>
 </just_wrappin>
</rooty>

 

Push the "XML 
to XLIFF" button, and get this:

 

<xliff 
xmlns="urn:oasis:names:tc:xliff:document:1.2" 

        
xmlns:xmrk="urn:xmarker" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

        
xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2          
xliff-core-1.2-strict.xsd     
urn:xmarker      xmarker.xsd" 
version="1.1">
  <file datatype="plaintext" source-language="en" 
original="rooty">
   <header>
     
<xmrk:nest>
      <rooty 
xmlns="urn:xmarker" sort="o12345" 
xmarker_idref="rooty-0">
        
<just_wrappin id="gabbagabbahey" 
xmarker_idref="just_wrappin-1">
         
<intro_para id="kickoutthejams" 
xmarker_idref="intro_para-2">
           
<icon src="my-pic.png" alt="hello" 
xmarker_idref="icon-3"/>
           
<b 
xmarker_idref="b-4">
            
<i 
xmarker_idref="i-5"/>
           
</b>
         
</intro_para>
         
<wrapped_wrapper2 
xmarker_idref="wrapped_wrapper2-6">
           
<just_wrappin3 
xmarker_idref="just_wrappin3-7">
            
<mixed 
xmarker_idref="mixed-8">
              
<wrap4 
xmarker_idref="wrap4-9">
               
<inner_wrap5 
xmarker_idref="inner_wrap5-10">
                 
<p id="allalongthewatchtower" 
xmarker_idref="p-11"/>
                 
<p1 
xmarker_idref="p1-12"/>
               
</inner_wrap5>
               
<one_out 
xmarker_idref="one_out-13"/>
              
</wrap4>
            
</mixed>
           
</just_wrappin3>
         
</wrapped_wrapper2>
        
</just_wrappin>
      
</rooty>
     </xmrk:nest>
   
</header>
   <body>
     
<group id="d0e1axmarkrooty-0">
      <group 
id="d0e2bxmarkjust_wrappin-1">
        
<trans-unit 
id="intro_para-2">
         
<source>And here's <x id="icon-3"/> some <g id="b-4">text 
<g id="i-5">that has</g> some nested</g> 
texts.</source>
         
<target>And here's <x id="icon-3"/> some <g id="b-4">text 
<g id="i-5">that has</g> some nested</g> 
texts.</target>
        
</trans-unit>
        <group 
id="d0e13bxmarkwrapped_wrapper2-6">
         
<group 
id="d0e14bxmarkjust_wrappin3-7">
           
<trans-unit 
id="mixed-8">
            
<source>And here's some 
more
              
<g 
id="wrap4-9">
               
<g 
id="inner_wrap5-10">
                 
<g id="p-11">Hello 
world.</g>
                 
<g id="p1-12">It's just a beautiful 
day.</g>
               
</g>
               
<g id="one_out-13">Loose 
text</g>
              
</g>
            
</source>
            
<target>And here's some 
more
              
<g 
id="wrap4-9">
               
<g 
id="inner_wrap5-10">
                 
<g id="p-11">Hello 
world.</g>
                 
<g id="p1-12">It's just a beautiful 
day.</g>
               
</g>
               
<g id="one_out-13">Loose 
text</g>
              
</g>
            
</target>
           
</trans-unit>
         
</group>
        
</group>
      
</group>
     </group>
   
</body>
  </file>
</xliff>

 

Translate the target 
strings, like this:

 

<body>
     <group 
id="d0e1axmarkrooty-0">
      <group 
id="d0e2bxmarkjust_wrappin-1">
        
<trans-unit 
id="intro_para-2">
         
<source>And here's <x id="icon-3"/> some <g id="b-4">text 
<g id="i-5">that has</g> some nested</g> 
texts.</source>
         
<target>Amw sviv'h <x id="icon-3"/> hlnv <g id="b-4">gvcg 
<g id="i-5">gszg szh</g> hlnv mvhgvw</g> 
gvcgh.</target>
        
</trans-unit>
        <group 
id="d0e13bxmarkwrapped_wrapper2-6">
         
<group 
id="d0e14bxmarkjust_wrappin3-7">
           
<trans-unit 
id="mixed-8">
            
<source>And here's some 
more
             
<g 
id="wrap4-9">
               
<g 
id="inner_wrap5-10">
                 
<g id="p-11">Hello 
world.</g>
                 
<g id="p1-12">It's just a beautiful 
day.</g>
               
</g>
               
<g id="one_out-13">Loose 
text</g>
              
</g>
            
</source>
            
<target>Amw sviv'h hlnv 
nliv
              
<g 
id="wrap4-9">
               
<g 
id="inner_wrap5-10">
                 
<g id="p-11">Hvool 
dliow.</g>
                 
<g id="p1-12">Ig'h qfhg z xvzfgrufo 
wzb.</g>
               
</g>
               
<g id="one_out-13">Lllhv 
gvcg</g>
              
</g>
            
</target>
           
</trans-unit>
         
</group>
        
</group>
      
</group>
     </group>
   
</body>

 

Press the XLIFF 
to XML button, and get this

 

<rooty 
xmlns:xmrk="urn:xmarker" xmlns:xlf="urn:oasis:names:tc:xliff:document:1.2" 
sort="o12345">
 <just_wrappin id="gabbagabbahey">
  
<intro_para id="kickoutthejams">Amw sviv'h <icon src="my-pic.png" 
alt="hello"/> hlnv <b>gvcg <i>gszg szh</i> hlnv 
mvhgvw</b> gvcgh.</intro_para>
  
<wrapped_wrapper2>
   
<just_wrappin3>
    <mixed>Amw sviv'h hlnv 
nliv
      
<wrap4>
       
<inner_wrap5>
        <p 
id="allalongthewatchtower">Hvool 
dliow.</p>
        <p1>Ig'h 
qfhg z xvzfgrufo wzb.</p1>
       
</inner_wrap5>
       
<one_out>Lllhv gvcg</one_out>
      
</wrap4>
     </mixed>
    
</just_wrappin3>
   
</wrapped_wrapper2>
 </just_wrappin>
</rooty>

 

Believe it or not, 
upgrading to XLIFF 1.2 was not as trivial as one might expect. In order to 
support the embedded skl file, a separate XML schema is required (because we 
have the processContents="strict" set in the schema - I personally think we 
should set it to "skip" or "lax" for XLIFF 2.0).

 

Anyway, please let 
me know if you'd like to help me test.

 

Thanks,

 

Bryan
← Prev in month ← Prev in thread