Skip to content

Commit

Permalink
Translate missing messages for language to new message file. Improve …
Browse files Browse the repository at this point in the history
…tei2readme.xsl.
  • Loading branch information
jhellingman committed Feb 21, 2018
1 parent 290adce commit a584d2f
Show file tree
Hide file tree
Showing 3 changed files with 98 additions and 4 deletions.
85 changes: 85 additions & 0 deletions messages2messages.xsl
@@ -0,0 +1,85 @@
<xsl:transform
xmlns:msg="http://www.gutenberg.ph/2006/schemas/messages"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xd="http://www.pnp-software.com/XSLTdoc"
version="1.0"
exclude-result-prefixes="msg xd">

<xsl:output
doctype-system="http://www.gutenberg.ph/2006/schemas/messages"
method="xml"
encoding="UTF-8"/>

<xd:doc type="stylesheet">
<xd:short>TEI stylesheet to review translations in our localization xml-files.</xd:short>
<xd:detail> </xd:detail>
<xd:author>Jeroen Hellingman</xd:author>
<xd:copyright>2011, Jeroen Hellingman</xd:copyright>
</xd:doc>

<xsl:param name="srclang" select="'en'"/>
<xsl:param name="destlang" select="'es'"/>

<xsl:strip-space elements="*"/>

<xsl:template match="/">
<msg:repository
xmlns:msg="http://www.gutenberg.ph/2006/schemas/messages"
version="1.0">

<msg:messages xml:lang="{$destlang}">
<xsl:apply-templates select="//msg:message" mode="missing"/>
</msg:messages>
</msg:repository>
</xsl:template>


<xsl:template match="msg:message" mode="missing">
<xsl:if test="lang($srclang)">
<xsl:variable name="name" select="@name"/>
<xsl:if test="not(//msg:message[@name=$name and lang($destlang)])">
<msg:message name="{$name}">
<xsl:text>[</xsl:text>
<xsl:apply-templates mode="cp"/>
<xsl:text>]</xsl:text>
</msg:message>
</xsl:if>
</xsl:if>
</xsl:template>


<xsl:template match="msg:message" mode="review">
<xsl:if test="lang($srclang)">
<xsl:variable name="name" select="@name"/>
<xsl:variable name="value" select="."/>
<xsl:variable name="translation" select="//msg:message[@name=$name and lang($destlang)]"/>

<msg:message name="{$name}">
<xsl:choose>
<xsl:when test="$translation">
<xsl:apply-templates select="$translation" mode="cp"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>[</xsl:text>
<xsl:apply-templates select="$value" mode="cp"/>
<xsl:text>]</xsl:text>
</xsl:otherwise>
</xsl:choose>
</msg:message>
</xsl:if>
</xsl:template>


<xsl:template match="*" mode="cp">
<xsl:copy>
<xsl:apply-templates mode="cp"/>
</xsl:copy>
</xsl:template>


<xsl:template match="msg:param" mode="cp">
<msg:param name="{@name}"/>
</xsl:template>


</xsl:transform>
1 change: 1 addition & 0 deletions messages2po.pl
Expand Up @@ -5,3 +5,4 @@

system ("$saxon2 messages.xml $xsldir/messages2po.xsl > messages.po");
system ("$saxon2 messages.xml $xsldir/messages2csv.xsl > messages.csv");
system ("$saxon2 messages.xml $xsldir/messages2messages.xsl > messages-with-missing.xml");
16 changes: 12 additions & 4 deletions tei2readme.xsl
Expand Up @@ -72,7 +72,10 @@
</xsl:template>

<xsl:template match="availability">
<xsl:text>| Availability | </xsl:text><xsl:value-of select="normalize-space(.)"/><xsl:text> |&lf;</xsl:text>
<xsl:if test="f:isValid(.)">
<xsl:variable name="availability"><xsl:apply-templates mode="availability"/></xsl:variable>
<xsl:text>| Availability | </xsl:text><xsl:value-of select="normalize-space(string($availability))"/><xsl:text> |&lf;</xsl:text>
</xsl:if>
</xsl:template>

<xsl:template match="item" mode="keywords">
Expand All @@ -92,15 +95,20 @@
<xsl:template match="note" mode="descriptions">
<!-- Filter out empty descriptions and our template default placeholder -->
<xsl:if test="f:isValid(.)">
<xsl:text>| Description | </xsl:text><xsl:value-of select="normalize-space(.)"/><xsl:text> |&lf;</xsl:text>
<xsl:variable name="description"><xsl:apply-templates mode="availability"/></xsl:variable>
<xsl:text>| Description | </xsl:text><xsl:value-of select="normalize-space(string($description))"/><xsl:text> |&lf;</xsl:text>
</xsl:if>
</xsl:template>

<xsl:template match="*"/>

<xsl:template match="xref" mode="#default descriptions availability">
<xsl:text>[</xsl:text><xsl:value-of select="."/><xsl:text>]</xsl:text>
<xsl:text>(</xsl:text><xsl:value-of select="@url"/><xsl:text>)</xsl:text>
</xsl:template>

<xsl:template match="text()">
<xsl:value-of select="normalize-space(.)"/>
<xsl:template match="text()" mode="#default descriptions availability">
<xsl:value-of select="."/>
</xsl:template>

<xd:doc>
Expand Down

0 comments on commit a584d2f

Please sign in to comment.