2023-04-21 12:10:28 +02:00
<?xml version="1.0" encoding="UTF-8"?>
<!-- Dominique Meeùs, created 1 - 10 - 2013, version 0.9.
XSLT transformation of an Open Document Format spreadsheet in two columns
into a TMX translation memory exchange file.
Filter to install as an export filter for LibreOffice Calc. -->
<!-- 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,
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/. -->
<xsl:stylesheet version= "1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
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 -->
<xsl:output method = "xml" indent = "yes" encoding = "UTF-8" omit-xml-declaration = "no" />
2023-04-21 17:38:49 +02:00
<xsl:variable name= "headerCell" select= "//table:table/table:table-row[1]/table:table-cell" > </xsl:variable>
2023-04-21 12:10:28 +02:00
<xsl:template match= "/" >
2023-04-21 17:38:49 +02:00
<!-- Get the source and target languages from the first and second column of the first row. Code based on this answer https://forum.openoffice.org/en/forum/viewtopic.php?p=56627&sid=d4ebce191acc01d99d587fef28377db4#p56627 from the Apache Office forum -->
<xsl:variable name= "adminlang" select= "$headerCell[2]/text:p" > </xsl:variable>
<xsl:variable name= "srclang" select= "$headerCell[1]/text:p" > </xsl:variable>
<xsl:variable name= "tgtlang" select= "$headerCell[2]/text:p" > </xsl:variable>
2023-04-21 12:10:28 +02:00
<tmx version= "1.4" >
2023-04-21 17:38:49 +02:00
<header >
<xsl:attribute name= "creationtool" > ods2tmx filter</xsl:attribute>
<xsl:attribute name= "creationtoolversion" > 0.93</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:value-of> </xsl:attribute>
<xsl:attribute name= "srclang" > <xsl:value-of select= "$srclang" > </xsl:value-of> </xsl:attribute>
<xsl:attribute name= "datatype" > plaintext</xsl:attribute>
2023-04-21 12:10:28 +02:00
</header>
<body >
2023-04-21 17:38:49 +02:00
<xsl:for-each select= "//table:table-row[position()>1]" >
2023-04-21 12:10:28 +02:00
<tu >
<xsl:for-each select= "table:table-cell" >
<xsl:choose >
<xsl:when test= "position()=1" >
2023-04-21 17:38:49 +02:00
<tuv >
<xsl:attribute name= "xml:lang" > <xsl:value-of select= "$srclang" > </xsl:value-of> </xsl:attribute>
2023-04-21 12:10:28 +02:00
<seg > <xsl:value-of select= "text:p" /> </seg>
</tuv>
</xsl:when>
<xsl:when test= "position()=2" >
2023-04-21 17:38:49 +02:00
<tuv >
<xsl:attribute name= "xml:lang" > <xsl:value-of select= "$tgtlang" > </xsl:value-of> </xsl:attribute>
2023-04-21 12:10:28 +02:00
<seg > <xsl:value-of select= "text:p" /> </seg>
</tuv>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</tu>
</xsl:for-each>
</body>
</tmx>
</xsl:template>
</xsl:stylesheet>