Compare commits

...

15 Commits

Author SHA1 Message Date
Philippe Tourigny 0d43e565e1 Recréer la version 0.92 originale de 2020 2023-05-27 09:47:50 +09:00
Philippe Tourigny 729d6aaadf Merge branch 'filtres_TMX/fonctionnalité/dominique/code_sans_modèles' of ssh://forge.chapril.org:222/kazephil/XSLT_TAO into filtres_TMX/fonctionnalité/dominique/code_sans_modèles 2023-05-27 01:02:56 +09:00
Philippe Tourigny 398cd0f8bf Éliminer le paquet puisqu'il est publié sour la version 0.92 2023-05-27 01:01:53 +09:00
Philippe Tourigny 5ede79c124 Reprendre la version originale du texte
Reprise du texte descriptif original pour la version 0.92 trouvé sur le [site de Dominique](https://d-meeus.be/linux/TMX-filters.html).

Les ajouts et corrections sont apportées à partir de la version 0.93.
2023-05-26 17:48:54 +02:00
Philippe Tourigny 12de6b14ae Reprendre la version originale du texte
Reprise du texte descriptif original pour la version 0.92 trouvé sur le [site de Dominique](https://d-meeus.be/linux/TMX-filters.html).

Les ajouts et corrections sont apportées à partir de la version 0.93.
2023-05-26 17:37:17 +02:00
Philippe Tourigny 75f02cd14f Reprendre la version originale du texte
Reprise du texte descriptif original pour la version 0.92 trouvé sur le [site de Dominique](https://d-meeus.be/linux/TMX-filters.html).

Les ajouts et corrections sont apportées à partir de la version 0.93.
2023-05-26 17:35:14 +02:00
Philippe Tourigny bdfb3cf186 Corriger la mention de Copyright
La version 0.92 appartient entièrement à Dominique, avec la dernière modification en 2020.
2023-05-26 17:29:22 +02:00
Philippe Tourigny 0f10ebb30c Corriger la mention de Copyright
La version 0.92 appartient entièrement à Dominique, avec la dernière modification en 2020.
2023-05-26 17:28:09 +02:00
Philippe Tourigny af39bc1455 Corriger la mention de Copyright
La version 0.92 appartient entièrement à Dominique, avec la dernière modification en 2020.
2023-05-26 17:26:12 +02:00
Philippe Tourigny f1a5473e13 Ajouter le paquet JAR pour la version 0.92 2023-04-24 00:45:59 +09:00
Philippe Tourigny 0a01376a44 Améliorer la mise en page du LISEZMOI en Markdown 2023-04-22 14:51:27 +09:00
Philippe Tourigny 5907d3166e Version Markdown du LISEZMOI pour présentation en ligne 2023-04-22 14:35:18 +09:00
Philippe Tourigny c6aa93558c Remplacer le tableur par la bonne copie du fichier 2023-04-22 13:32:32 +09:00
Philippe Tourigny f4dec392be Ajouter le tableur utilisé pour tester l'exportation de TMX 2023-04-22 12:37:31 +09:00
Philippe Tourigny a1a6b813dc Ajouter la version sans modèles 2023-04-22 11:17:07 +09:00
7 changed files with 180 additions and 162 deletions

View File

@ -1,18 +1,14 @@
Le logiciel TMX-filters fournit deux filtres XSLT qui permettent douvrir des mémoires de traduction TMX dans LibreOffice (ou OpenOffice.org) Calc et surtout denregistrer des phrases alignées dans deux colonnes ou plus dun tableau.
Le logiciel TMX-filters fournit deux filtres XSLT qui permettent douvrir des mémoires de traduction TMX dans LibreOffice (ou OpenOffice.org) Calc et surtout denregistrer des phrases alignées dans deux à cinq colonnes dun tableau.
Installation : Télécharger ici le paquet TMX-filters.jar. Il doit être installé dans LibreOffice par la boîte de dialogue ordinaire de la commande Macros > Paramétrage des filtres XML… du menu Outils. (Ou directement la commande Paramétrage des filtres XML… du menu Outils dans des versions plus anciennes.) Cliquer le bouton Ouvrir le package… et naviguer jusquau paquet. (In het Nederlands, [Macros >, volgens versie] XMLfilterinstellingen… van het menu Extra. Klik Open pakket… en blader naar het pakket.) Le paquet doit impérativement avoir lextension .jar pour être reconnu, mais cest, entre autres, un fichier au format ZIP. On peut donc louvrir (au besoin en en prenant une copie renommée en .zip au lieu de .jar) et, si lon veut, y modifier les deux filtres écrits en XSL. (Merci de me communiquer des modifications intéressantes.) Il contient un fichier TMX-readme.txt en anglais. Ce logiciel, © 2013, 2020 Dominique Meeùs et 2022 Philippe Tourigny, est distribué sous licence LGPL version 3 (voir plus loin).
Installation : Télécharger ici le paquet TMX-filters.jar. Il doit être installé dans LibreOffice par la boîte de dialogue ordinaire de la commande Macros > Paramétrage des filtres XML… du menu Outils. (Ou directement la commande Paramétrage des filtres XML… du menu Outils dans des versions plus anciennes.) Cliquer le bouton Ouvrir le package… et naviguer jusquau paquet. (In het nederlands, [Macros >, volgens versie] XMLfilterinstellingen… van het menu Extra. Klik Open pakket… en blader naar het pakket.) Le paquet doit impérativement avoir lextension .jar pour être reconnu, mais cest, entre autres, un fichier au format ZIP. On peut donc louvrir (au besoin en en prenant une copie renommée en .zip au lieu de .jar) et, si lon veut, y modifier les deux filtres écrits en XSL. (Merci de me communiquer des modifications intéressantes.) Il contient un fichier TMX-readme.txt en anglais. Ce logiciel, © 2013, 2020 Dominique Meeùs, est distribué sous licence LGPL version 3 (voir plus loin).
Limitation : Pour le filtre d'exportation, il faut mettre les codes de langues dans la première rangée du tableau, avec la langue source dans la cellule A1 et les langues cibles dans chacune des colonnes suivantes. Le code fixe la première langue cible (dans la cellule B1) comme langue administrative du fichier TMX. Si vous désirez utiliser une langue administrative autre que l'une de vos langues cible, il vous faudra soit modifier le fichier TMX après l'exportation, soit le code du filtre.
Limitation : Les langues source nl-BE (néerlandais) et cible fr-BE, de-DE, en-GB, es-ES sont figées, dans cet ordre, dans le code du filtre dexportation. Cela correspond donc aux colonnes A, B, C, D, E de Calc, mais des colonnes peuvent être vides. Jai ainsi créé une mémoire néerlandais (colonne A), français (colonne B), anglais (colonne D). Pour dautres langues, il faudrait rechercher et remplacer les mentions ci-dessus avec un éditeur dans le fichier TMX exporté, ou bien modifier le filtre dexportation pour les langues habituelles pour vous. Dans lexemple ci-dessus (utilisant les colonnes A, B, D), jai marqué srclang="en-GB" et jai pu traduire avec ça de langlais vers le français. La position des langues doit donc être respectée strictement en Calc, puisque mon filtre ne laisse pas le choix, mais par contre dans la mémoire résultante, cet ordre na aucune influence. Seule compte lindication de la langue source au début du fichier.
Pour le filtre d'importation, le code suppose que toutes les entrées contiennent le même nombre de langues, dans le même ordre. Il récupère les codes de langues du fichier TMX dans le premier élément <tu> du fichier, et les utilise comme entête de colonne dans la première rangée du fichier Calc. Par conséquent, si vous importez une TMX contenant un plus grand nombre de langues dans certain éléments <tu> (comme c'est le cas dans certaines mémoires offertes par la DGT), certaines rangées contiendront des segments dans des colonnes sans entête, et certains segments aboutiront dans la colonne d'une autre langue.
Je ne suis pas un programmeur XSLT (ni autre dailleurs) et la possibilité de choisir les langues (par exemple, les marquer en ligne 1, en tête de chaque colonne) est une amélioration que je voudrais apporter, mais je ne sais pas encore comment. Si vous y connaissez plus que moi, nhésitez pas à me communiquer vos idées.
La possibilité de récupérer toutes les langues (depuis l'élément <tu> contenant le plus de sous-éléments <tuv> par exemple) et de placer chaque segment dans la bonne colonne (laissant vides celles qui n'ont pas de traduction) est une amélioration à apporter, mais n'étant que bidouilleurs plutôt que programmeurs (XSLT ou autre), nous ne savons pas encore comment. Si vous y connaissez plus que nous, nhésitez pas à nous communiquer vos idées.
Utilisation :
— Dans LibreOffice Calc, pour lire une mémoire TMX, il suffit de faire Fichier, Ouvrir…
— Pour écrire une mémoire TMX à partir de LibreOffice Calc, aligner des phrases en deux colonnes ou plus. Il faut saisir les codes de langue voulus dans chacune des colonnes de la première rangée, avec la langue source dans la première colonne et la langue qui servira de langue administrative pour le fichier TMX dans la deuxième. On obtient ces phrases en mémoire de traduction TMX en faisant simplement Enregistrer sous… et en choisissant le type de fichier TMX (qui a toutes les chances de se retrouver tout au bas dune longue liste).
Utilisation : Pour lire une mémoire TMX dans LibreOffice Calc, il suffit de faire Fichier, Ouvrir… Aligner des phrases en deux ou plus des cinq premières colonnes dans LibreOffice Calc. Il faut impérativement mettre la bonne langue dans la bonne colonne de Calc : A (nl), B (fr), C (de), D (en), E (es). On obtient ces phrases en mémoire de traduction TMX en faisant simplement Enregistrer sous… et en choisissant le type de fichier TMX (qui a toutes les chances de se retrouver tout au bas dune longue liste). Dans la mémoire obtenue, la langue source est marquée srclang="nl-BE". Il suffit daller dans le fichier corriger cette valeur dattribut vers la fin de la ligne 3 du fichier si on veut changer de langue source. On peut aussi ouvrir une mémoire TMX dans LibreOffice Calc, la corriger et la sauver.
Licence : Ce logiciel peut être utilisé sous licence LGPL version 3 ou ultérieure. On trouve sur le site mentionné ci-dessous des explications dans de nombreuses langues dont le français.
Copyright 2013, 2020, Dominique Meeùs, et 2022 Philippe Tourigny.
Copyright 2013, 2020, Dominique Meeùs.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see www.gnu.org/licenses/.

View File

@ -0,0 +1,20 @@
# TMX-filters pour _Calc_
Le logiciel TMX-filters fournit deux filtres XSLT qui permettent douvrir des mémoires de traduction TMX dans LibreOffice (ou OpenOffice.org) Calc et surtout denregistrer des phrases alignées dans deux à cinq colonnes dun tableau.
## Installation
Installation : Télécharger ici le paquet [`TMX-filters.jar`](https://d-meeus.be/linux/TMX-filters.jar). Il doit être installé dans LibreOffice par la boîte de dialogue ordinaire de la commande **Macros** > **Paramétrage des filtres XML…** du menu **Outils**. (Ou directement la commande **Paramétrage des filtres XML…** du menu **Outils** dans des versions plus anciennes.) Cliquer le bouton **Ouvrir le package…** et naviguer jusquau paquet. (In het nederlands, [Macros >, volgens versie] **XMLfilterinstellingen…** van het menu **Extra**. Klik **Open pakket…** en blader naar het pakket.) Le paquet doit impérativement avoir lextension `.jar` pour être reconnu, mais cest, entre autres, un fichier au format ZIP. On peut donc louvrir (au besoin en en prenant une copie renommée en `.zip` au lieu de `.jar`) et, si lon veut, y modifier les deux filtres écrits en XSL. (Merci de me communiquer des modifications intéressantes.) Il contient un fichier [TMX-readme.txt](https://d-meeus.be/linux/TMX-readme.txt) en anglais. Ce logiciel, © 2013, 2020 Dominique Meeùs, est distribué sous licence LGPL version 3 (voir plus loin).
## Limitation
Les langues source nl-BE (néerlandais) et cible fr-BE, de-DE, en-GB, es-ES sont figées, dans cet ordre, dans le code du filtre dexportation. Cela correspond donc aux colonnes A, B, C, D, E de Calc, mais des colonnes peuvent être vides. Jai ainsi créé une mémoire néerlandais (colonne A), français (colonne B), anglais (colonne D). Pour dautres langues, il faudrait rechercher et remplacer les mentions ci-dessus avec un éditeur dans le fichier TMX exporté, ou bien modifier le filtre dexportation pour les langues habituelles pour vous. Dans lexemple ci-dessus (utilisant les colonnes A, B, D), jai marqué `srclang="en-GB"` et jai pu traduire avec ça de langlais vers le français. La position des langues doit donc être respectée strictement en Calc, puisque mon filtre ne laisse pas le choix, mais par contre dans la mémoire résultante, cet ordre na aucune influence. Seule compte lindication de la langue source au début du fichier.
Je ne suis pas un programmeur XSLT (ni autre dailleurs) et la possibilité de choisir les langues (par exemple, les marquer en ligne 1, en tête de chaque colonne) est une amélioration que je voudrais apporter, mais je ne sais pas encore comment. Si vous y connaissez plus que moi, nhésitez pas à me communiquer vos idées.
## Utilisation
Utilisation : Pour lire une mémoire TMX dans LibreOffice Calc, il suffit de faire **Fichier**, **Ouvrir…** Aligner des phrases en deux ou plus des cinq premières colonnes dans LibreOffice Calc. Il faut impérativement mettre la bonne langue dans la bonne colonne de Calc : A (nl), B (fr), C (de), D (en), E (es). On obtient ces phrases en mémoire de traduction TMX en faisant simplement **Enregistrer sous…** et en choisissant le type de fichier TMX (qui a toutes les chances de se retrouver tout au bas dune longue liste). Dans la mémoire obtenue, la langue source est marquée `srclang="nl-BE"`. Il suffit daller dans le fichier corriger cette valeur dattribut vers la fin de la ligne 3 du fichier si on veut changer de langue source. On peut aussi ouvrir une mémoire TMX dans LibreOffice Calc, la corriger et la sauver.
## Licence
Ce logiciel peut être utilisé sous licence LGPL version 3 ou ultérieure. On trouve sur le site mentionné ci-dessous des explications dans de nombreuses langues dont le français.
Copyright 2013, 2020, Dominique Meeùs.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see www.gnu.org/licenses/.

View File

@ -1,41 +1,52 @@
Dominique Meeùs (dominique@d-meeus.be, www.d-meeus.be),
Dominique Meeùs (dominique@d-meeus.be, https://d-meeus.be),
created 30-9-2013, version 0.9.
(If my surname is not shown correctly, mind the fact that this file is encoded in UTF-8.)
(One would have written Mee&ugrave;s in old HTML entities for older charachters encodings.)
Modified 28-11-2019 as 0.91 for the position of the command
Copyright 2013 Dominique Meeùs, see below.
Modified 28-11-2019 (this readme file) as 0.91 for the position of the command
to install in new versions of LibreOffice.
Modified 21-5-2020 (the XML export filter) as 0.92 to allow five columns nl-BE, fr-BE, de-DE, en-GB, es-ES.
(Originally two columns only.)
Updated to version 0.99 on 12-9-2022 by Philippe Tourigny (kazephil@gmail.com) to reflect the addition of new functionality and changes to the limitations.
Copyright 2013 Dominique Meeùs, and 2022 Philppe Tourigny. See below.
The TMX-filters software provides two XSLT filters
This TMX-filters software provides two XSLT filters
to import or export TMX translation memories
to and from LibreOffice (or OpenOffice.org).
to and from LibreOffice (or OpenOffice.org) Calc.
Installation
============
The package TMX-filters-vx_y.jar has to be installed in LibreOffice
by the standard dialog from the menu Tools,
Macros > XML Filter Settings…
[or just XML Filter Settings… in older versions]
command Macros > XML Filter Settings…
[command directly XML Filter Settings… in older versions]
Click the button Open Package… and browse to the package.
Limitations
===========
For the export filter, enter the appropriate language code in each column of the first row. The source language must be entered in column A, and the target language in column B is used as the administrative language for the translation memory. If you wish to use an administrative language other than one of your target languages, you will have to edit either the resulting TMX file or the code of the filter.
The import filter assumes that all <tu> elements in the file have the same number of languages, in the same order, and retrieves the language code from the <tuv> elements in the first <tu>. This means that importing a TMX containing <tu> elements with more <tuv> elements than others will result in some rows having additional entries in a column without a header, and with some languages entered in the wrong column.
Feel free to e-mail us if you think of a way to improve this.
Limitation
==========
Source language nl-BE (Dutch) and targets fr-BE (French), de-DE, en-GB, es-ES
are hardcoded in the export filter.
The segments in two or more of the above languages have to be put
in the corresponding columns A (nl), B (fr), C (de), D (en), E (es) of Calc.
Some columns may stay empty.
The source language is marked srclang="nl-BE" near the end of line 3.
It suffices to change this attribute value to change the source language.
The order A (nl), B (fr), C (de), D (en), E (es) in compulsory in Calc
to have the segments correctly marked for their language.
Each segment being so marked, the order has no effect on the translation memory. Only srclang matters
For other languages you have to search and replace these attribute values in the TMX
or edit the export filter.
Feel free to e-mail me if you think of a way to improve this.
Use
===
— To read a TMX in LibreOffice Calc: File, Open…
— To produce a TMX: sentences aligned in two or more columns in LibreOffice Calc,
File, Save as… and choose type TMX (likely all the way down a long list).
— To produce a TMX sentences aligned in two columns in LibreOffice Calc,
File, Save as… (not Export…) and choose type TMX (likely all the way down a long list).
License
=======
Copyright 2013 Dominique Meeùs and 2022 Philippe Tourigny.
Copyright 2013, 2020 Dominique Meeùs.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation,
@ -44,4 +55,4 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program.
If not, see http://www.gnu.org/licenses/.
If not, see http://www.gnu.org/licenses/.

View File

@ -5,11 +5,7 @@
Filter to install as an export filter for LibreOffice Calc. -->
<!-- Dominique Meeùs, modified 21-5-2020, version 0.92.
Hardcoded languages of the columns are : nl-BE, fr-BE, de-DE, en-GB, es-ES. -->
<!-- Philippe Tourigny, modified 12-9-2022, version 0.94
Enable the filter to read the language code from the first column
in each row. Also, add a SYSTEM DOCTYPE declaration to the output
XML file.-->
<!-- Copyright 2013, 2020 Dominique Meeùs, and 2022 Philippe Tourigny@.
<!-- Copyright 2013, 2020 Dominique Meeùs.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation,
@ -26,88 +22,57 @@
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
exclude-result-prefixes="office table text">
<!-- Namespaces needed to access parts of the document -->
<!-- Version 0.94: Add a SYSTEM DOCTYPE to output -->
<xsl:output method = "xml" indent = "yes" encoding = "UTF-8"
doctype-system="tmx14.dtd" omit-xml-declaration = "no"/>
<xsl:output method = "xml" indent = "yes" encoding = "UTF-8" omit-xml-declaration = "no"/>
<xsl:template match="/">
<tmx version="1.4">
<!-- Define variables to make code easier to manage.
Cells in the first row are language code headings.
The first target language is selected as the
administrative language for the output TMX.
The first column identifies the source language. -->
<xsl:variable name="headingCell"
select="//table:table/table:table-row[1]/table:table-cell"/>
<xsl:variable name="adminlang"
select="$headingCell[2]/text:p"/>
<xsl:variable name="srclang"
select="$headingCell[1]/text:p"/>
<!-- Define the TMX header
The <xsl:attribute> element is used because variables
are not recognized if entered directly in attributes. -->
<header>
<xsl:attribute name="creationtool">TMX-export for LibreOffice</xsl:attribute>
<xsl:attribute name="creationtoolversion">0.94</xsl:attribute>
<xsl:attribute name="segtype">sentence</xsl:attribute>
<xsl:attribute name="o-tmf">application/vnd.oasis.opendocument.spreadsheet</xsl:attribute>
<xsl:attribute name="adminlang">
<xsl:value-of select="$adminlang"/>
</xsl:attribute>
<xsl:attribute name="srclang">
<xsl:value-of select="$srclang"/>
</xsl:attribute>
<xsl:attribute name="datatype">plaintext</xsl:attribute>
<header
creationtool="TMX-export for LibreOffice"
creationtoolversion="0.9"
segtype="sentence"
o-tmf="application/vnd.oasis.opendocument.spreadsheet"
adminlang="fr-BE"
srclang="nl-BE"
datatype="plaintext">
</header>
<!-- Define the TMX body
Additional templates are called to make the code
easier to modify and maintain. -->
<!-- Todo : get the language from Calc, if any, or from a dialog, if LibreOffice allows,
or from the first row
to set the srclang of the header and the xml:lang of the tuv. -->
<body>
<!-- Call the template to insert <tu> elements -->
<xsl:apply-templates select="//table:table"/>
<xsl:for-each select="//table:table-row">
<tu>
<xsl:for-each select="table:table-cell">
<xsl:choose>
<xsl:when test="position()=1">
<tuv xml:lang="nl-BE">
<seg><xsl:value-of select="text:p"/></seg>
</tuv>
</xsl:when>
<xsl:when test="position()=2">
<tuv xml:lang="fr-BE">
<seg><xsl:value-of select="text:p"/></seg>
</tuv>
</xsl:when>
<xsl:when test="position()=3">
<tuv xml:lang="de-DE">
<seg><xsl:value-of select="text:p"/></seg>
</tuv>
</xsl:when>
<xsl:when test="position()=4">
<tuv xml:lang="en-GB">
<seg><xsl:value-of select="text:p"/></seg>
</tuv>
</xsl:when>
<xsl:when test="position()=5">
<tuv xml:lang="es-ES">
<seg><xsl:value-of select="text:p"/></seg>
</tuv>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</tu>
</xsl:for-each>
</body>
</tmx>
</xsl:template>
<!-- Templates to populate the <tu> and <tuv> elements-->
<!-- Template for <tu> elements:
Loop through each row, skipping the first one. -->
<xsl:template match="table:table">
<xsl:for-each select="table:table-row">
<tu>
<xsl:apply-templates select="//table:table-row[position()>1]"/>
</tu>
</xsl:for-each>
</xsl:template>
<!-- Template for the <tuv> elements:
Loop through each cell in the row, and assign the value
of the language for that column to the xml:lang attribute.
After that, add the <seg> element and populated it with the
text in the current cell. -->
<xsl:template match="table:table-row[position()>1]">
<xsl:for-each select="table:table-cell">
<xsl:variable name="currentLang"
select="//table:table/table:table-row[1]/table:table-cell"/>
<xsl:variable name="currentColumn"
select="position()"/>
<xsl:if test="normalize-space(text:p) != ''">
<tuv>
<xsl:attribute name="xml:lang">
<xsl:value-of select="$currentLang[$currentColumn]/text:p"/>
</xsl:attribute>
<seg>
<xsl:value-of select="text:p"/>
</seg>
</tuv>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

View File

@ -4,10 +4,7 @@
XSLT transformation of a TMX translation memory exchange file
into an Open Document Format spreadsheet in two columns.
Filter to install as an import filter for LibreOffice Calc. -->
<!-- Philippe Tourigny, modified 12-9-2022, version 0.99
Allow the filter to retrieve the languages in the TMX from its
first <tu> element, and create a column for each language. -->
<!-- Copyright 2013 Dominique Meeùs, and 2022 Philippe Tourigny.
<!-- Copyright 2013 Dominique Meeùs.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation,
@ -45,76 +42,47 @@
office:version="1.0">
<office:automatic-styles>
<!-- PTable properties -->
<!-- Properties of the table -->
<style:style style:name="ta1" style:family="table" style:master-page-name="Default">
<style:table-properties table:display="true" style:writing-mode="lr-tb"/>
</style:style>
<!-- Column properties (for all languages) -->
<style:style style:name="co1" style:family="table-column">
<style:table-column-properties fo:break-before="auto" style:column-width="14.000cm"/>
<!-- Properties of the columns -->
<!-- I consider the case of a two-languages TMX -->
<!-- Todo : pass the source and target languages as attributes to the text in Calc -->
<style:style style:name="co1" style:family="table-column"><!-- source language -->
<style:table-column-properties fo:break-before="auto" style:column-width="16.000cm"/>
</style:style>
<style:style style:name="co2" style:family="table-column"><!-- target language -->
<style:table-column-properties fo:break-before="auto" style:column-width="16.000cm"/>
</style:style>
<!-- Row properties -->
<!-- All rows are set to “optimal height” -->
<!-- Properties of the rows -->
<!-- The rows are “optimal height” but do not expand for the “wrap option” of the cells -->
<style:style style:name="ro1" style:family="table-row">
<style:table-row-properties fo:break-before="auto" style:use-optimal-row-height="true"/>
</style:style>
<!-- Cell properties -->
<!-- Language code heading cells
The language codes are centered and set in bold
in the first column. -->
<style:style style:name="heading" style:family="table-cell"
style:parent-style-name="Default">
<style:table-cell-properties style:text-align-source="fix"
style:repeat-content="false" fo:wrap-option="wrap"/>
<style:paragraph-properties fo:text-align="center"/>
<style:text-properties fo:font-weight="bold"/>
<!-- Properties of the cells -->
<style:style style:name="ce1" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:wrap-option="wrap"/>
</style:style>
<!-- Style for cells with the segment text -->
<style:style style:name="ce2" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:wrap-option="wrap"/>
</style:style>
</office:automatic-styles>
<!-- Define variables used to identify the languages
In a TMX with three or more languages. All translation unit
(<tuv>) elements are assumed to contain the same number of
languages, and the first <tu> is used to identify them. -->
<!-- Todo: Identify the <tu> with the largest highest number of <tuv> elements to identify all languages in a TMX file with more languages in some <tu> elements than others. -->
<xsl:variable name="firstTU" select="tmx/body/tu[1]"/>
<xsl:variable name="numLangs" select="count($firstTU/tuv)"/>
<office:body>
<office:spreadsheet>
<table:table table:style-name="ta1">
<!-- Set the format for a number of columns equal to
the number of languages in the imported TMX file -->
<table:table-column table:style-name="co1" table:number-columns-repeated="{$numLangs}"
table:default-cell-style-name="ce2"/>
<table:table>
<!-- Format of the columns -->
<!-- How about a free number of columns ? -->
<table:table-column table:style-name="co1" table:default-cell-style-name="ce1"/>
<table:table-column table:style-name="co2" table:default-cell-style-name="ce2"/>
<!-- Fill in the language headers in the first row
The use of the "local-name()" function enables
the filter to handle older versions that use the
"lang" attribute as well as recent versions that
use the "xml:lang"` attributes -->
<table:table-row table:style-name="ro1">
<xsl:for-each select="$firstTU/tuv">
<table:table-cell table:style-name="heading">
<text:p>
<xsl:value-of select="@*[local-name()='lang']"/>
</text:p>
</table:table-cell>
</xsl:for-each>
</table:table-row>
<!-- Process the <tu> and <tuv> elements in the TMX file:
One row per tu, one column per segment in each <tuv>. -->
<!-- Process XML of the input TMX file: one row for each tu, one cell for the segment in each tuv -->
<xsl:for-each select="tmx/body/tu">
<table:table-row table:style-name="ro1">
<table:table-row>
<xsl:for-each select="tuv">
<table:table-cell>
<text:p><xsl:value-of select="seg"/></text:p>

View File

@ -0,0 +1,58 @@
Dominique Meeùs (dominique@d-meeus.be, https://d-meeus.be),
created 30-9-2013, version 0.9.
(If my surname is not shown correctly, mind the fact that this file is encoded in UTF-8.)
(One would have written Mee&ugrave;s in old HTML entities for older charachters encodings.)
Copyright 2013 Dominique Meeùs, see below.
Modified 28-11-2019 (this readme file) as 0.91 for the position of the command
to install in new versions of LibreOffice.
Modified 21-5-2020 (the XML export filter) as 0.92 to allow five columns nl-BE, fr-BE, de-DE, en-GB, es-ES.
(Originally two columns only.)
This TMX-filters software provides two XSLT filters
to import or export TMX translation memories
to and from LibreOffice (or OpenOffice.org) Calc.
Installation
============
The package TMX-filters-vx_y.jar has to be installed in LibreOffice
by the standard dialog from the menu Tools,
command Macros > XML Filter Settings…
[command directly XML Filter Settings… in older versions]
Click the button Open Package… and browse to the package.
Limitation
==========
Source language nl-BE (Dutch) and targets fr-BE (French), de-DE, en-GB, es-ES
are hardcoded in the export filter.
The segments in two or more of the above languages have to be put
in the corresponding columns A (nl), B (fr), C (de), D (en), E (es) of Calc.
Some columns may stay empty.
The source language is marked srclang="nl-BE" near the end of line 3.
It suffices to change this attribute value to change the source language.
The order A (nl), B (fr), C (de), D (en), E (es) in compulsory in Calc
to have the segments correctly marked for their language.
Each segment being so marked, the order has no effect on the translation memory. Only srclang matters
For other languages you have to search and replace these attribute values in the TMX
or edit the export filter.
Feel free to e-mail me if you think of a way to improve this.
Use
===
— To read a TMX in LibreOffice Calc: File, Open…
— To produce a TMX sentences aligned in two columns in LibreOffice Calc,
File, Save as… (not Export…) and choose type TMX (likely all the way down a long list).
License
=======
Copyright 2013, 2020 Dominique Meeùs.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program.
If not, see http://www.gnu.org/licenses/.

Binary file not shown.