freeswitch/docs/phrase/make_checks.xslt

61 lines
2.4 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
<xsl:template match="/">
<xsl:variable name="master_xml">
<xsl:copy-of select="document('phrase_en.xml')/*"/>
</xsl:variable>
<xsl:variable name="current_xml">
<xsl:copy-of select="*"/>
</xsl:variable>
<xsl:apply-templates select="$master_xml" mode="checkElements">
<xsl:with-param name="current_xml" select="$current_xml/*"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="en" mode="checkElements">
<xsl:param name="current_xml"/>
<xsl:copy>
<xsl:attribute name="translated-to" select="name($current_xml)"/>
<xsl:apply-templates select="@*|node()" mode="#current">
<xsl:with-param name="current_xml" select="$current_xml/*"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="prompt" mode="checkElements">
<xsl:param name="current_xml"/>
<xsl:variable name="translation"
select="$current_xml[@filename=current()/@filename]/@phrase"/>
<xsl:copy>
<xsl:apply-templates select="@*" mode="#current"/>
<xsl:choose>
<xsl:when test="count($translation)=0">
<xsl:attribute name="translated" select="false()"/>
</xsl:when>
<xsl:when test="@phrase = $translation">
<xsl:attribute name="translated" select="false()"/>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="translated-to" select="$translation[1]"/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="count($translation) > 1">
<xsl:attribute name="more-then-one-translation" select="true()"/>
</xsl:if>
</xsl:copy>
</xsl:template>
<xsl:template match="@*|node()" mode="checkElements">
<xsl:param name="current_xml"/>
<xsl:copy>
<xsl:apply-templates select="@*|node()" mode="#current">
<xsl:with-param name="current_xml" select="$current_xml/*"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>