Konverzní filtry pro Transolution XLIFF Editor - dokumentace

Verze: 0.1 Datum: 2005-08-03 Autor: Fredrik Corneliusson

Úvod

Filtry se používají pro konverzi dokumentů ze zdrojových formátů takových jako HTML nebo XML do XLIFF a zpět. Lze je libovolně konfigurovat použitím ini souborů, takže je lze přizpůsobit pro řadu dalších formátů.

  • sgml2xliff.py - Skript pro konverzi do XLIFF
  • xliff2sgml.py - Skript pro konverzi z XLIFF do původního formátu

V tuto chvíli existují v adresáři transolution/filters/filter_settings tyto ini soubory:

  • DOCBOOK (docbook.ini)
  • HTML (HTML.ini)
  • filtr pro konverzi souboru content.xml z dokumentů pro Staroffice/Openoffice. (OOffice.ini)

Filtry převádí text z dokumentů rozdělený do segmentů podle syntaxe pro XLIFF.

Tady je několik příkladů XLIFF souborů vytvořených těmito filtry: ukazkove_soubory_xliff_

Použití

Především musíte mít adresář transolution umístěn v podadresáři vaší instalace pythonu, nebo být před spuštěním v adresáři transolution. Pokud se vám podaří spustit XLIFF editor, je všechno OK. Pro nápovědu k parametrům použitým ve skriptu zadejte:

>python sgml2xliff.py -h
 použití: sgml2xliff.exe [volby] cesta_k_ini_souboru cesta_k_dokumentu
 volby:
   -h, --help                          :Vypíše nápovědu a skončí
   -e ENCODING, --encoding=ENCODING    :Nastavení kódování výchozího souboru
   -r, --recursive                     :Rekurzivní zpracování souborů.
   -f FMASK, --fmask=FMASK             :Maska pro odfiltrování názvů tmx souborů při rekurzivním zpracování.
   -l SLANG, --slang=SLANG             :Jazykové nastavení zdrojového dokumentu(ů).
   -s SKIPWORDS, --skipwords=SKIPWORDS :Soubor obsahuje slova která nemají být segmentována. Příklad: vs. Mr.
   -z, --xlz                           :Vytvoří xlz (zazipovaný balík obsahující soubor xliff a kostru výchozího dokumentu).

Tip

Pokud zdrojový soubor nemá odřádkované tagy jako např. content.xml z OO, pak je dobré vložit zalomení řádky např. za tag vymezující odstavec (</text:p>), dříve než soubor zkonvertujete do XLIFF. Pokud to neuděláte, tak se práce s editorem výrazně zpomalí, bude-li u náhledu dokumentu aktivována volba zobrazování kontextu současně se strukturou dokumentu.

Konverze do XLIFF

Příklad konverze html souboru:

>python sgml2xliff.py -z ./transolution/filters/filter_settings/html.ini ../test/test.html

Přepínač -z se používá pro vytvoření .xlz souboru (zazipovaný balík obsahující dokument XLIFF a strukturu dokumentu).

Konverze do původního formátu

>python xliff2sgml.py ../test/test.html.xlz

INI soubory

Určují jakým způsobem bude originální dokument převeden do XLIFF a jakým způsobem budou ošetřeny jeho formátovací značky.

Syntaxe INI souboru

Konfigurační INI soubor je rozdělen do několika sekcí, které jsou vždy uvozeny záhlavím s názvem příslušné "[sekce]", za kterým následují příslušná pravidla "název=hodnota".

Sekce Tags

V této sekci se definují formátovací značky, které se mají ošetřit a jak.

Syntaxe pro sekci Tags je

NAZEVTAGU=TYP,PARAMETR

NAZEVTAGU musí být ve stejné podobě, jako v původním souboru (dávejte pozor na velká a malá písmena), pokud značka (tag) obsahuje dvojtečku, tak ji musíte nahradit (v INI souboru) entitou &colon; př.

text:p => text&colon;p

TYP může nabývat pouze dvou hodnot "External" nebo "Internal". Pravidlo je takové, že pokud má být formátovací značka součástí překládaného řetězce, pak jde o typ "Internal" př.:

Tady je nějaký <b>tučný</b> text.

Pokud nechcete aby formátovací značka byla součástí překládaného segmentu, tak nastavte TYP "External". př.

<header>Toto je formátovací značka header</header>

Pokud chcete seskupit celý obsah bloku vymezeného otevírací a uzavírací značkou, ať již je typu Internal či External, tak můžete nastavit PARAMETR na Grouped. př.

<script language="javascript">
  var Open = "";
  function preload() { Open = new Image(16,16); Closed = new Image(16,16); }
</script>

Příklad sekce Tags pro výše uvedené příklady pak vypadá takto

[Tags]
b=Internal
header=External
script=External,Group

To je zhruba vše co lze použít v INI souboru v současné době. Další věci, např. přeložitelné atributy, se chystáme implementovat časem.

Sekce FilterSettings

Sekce FilterSettings má parametry, které rozeznávají pouze dva stavy. Když nastavíte hodnotu parametru KeepLineBreaks jako True tak budou při rozdělování textu do segmentů brány v potaz veškeré konce řádků. Pokud tento parametr nenastavíte, tak se budou ignorovat. Parametr DefaultTagStyle určuje, jak se má zacházet s formátovacími značkami, které nejsou ošetřeny v sekci Tags.

[FilterSettings] KeepLineBreaks=False DefaultTagStyle=External

Přeskakování slov

Čas od času se stává, že zkratky ukončené tečkou (jako např. atp.) jsou vzhodnoceny jako samostatný segment. Řešením tohoto problému je vytvoření textového souboru s řetězci, které mají být při zpracování filtrem přeskočeny (volba -s nebo --skipwords). Defaultně je k dispozici pouze velice kusý soubor s nejběžnějšími anglickými zkratkami transolution/filters/skipwords/en_skipwords.txt. Just add every abbreviation you don't want to segment after and specify it to the filter.

Docutils System Messages

System Message: ERROR/3 (<string>, line 30); backlink

Unknown target name: "ukazkove_soubory_xliff".