提交 c63229e5 authored 作者: Sergey Safarov's avatar Sergey Safarov 提交者: Mike Jerris

FS-9805: Created script to compare XML traslation files with phrase_en.xml

上级 174a1e24
...@@ -7,6 +7,11 @@ to automatically generate or verify all the files exist for a particular ...@@ -7,6 +7,11 @@ to automatically generate or verify all the files exist for a particular
language. If you are capable of recording each language please do so and language. If you are capable of recording each language please do so and
contribute them to the project. As phrases are added, the files will need to be contribute them to the project. As phrases are added, the files will need to be
updated for the respective phrase_xx.xml file. updated for the respective phrase_xx.xml file.
make_checks.sh - script to compare phrase_en.xml with other language xml files.
Script output contans prompt elements with attributes:
translated - value 'false' or not displayed;
transpated-to - tranlation value if exists;
more-then-one-translation - displayed if exist two or more for given wav file.
How can you contribute? How can you contribute?
......
#!/bin/sh
SAXON_JAR=/usr/share/java/saxon9he.jar
XML=$1
if [ ! -f "$SAXON_JAR" ]; then
echo "Please update 'SAXON_JAR' varaiable value to location of SAXON jar"
exit -1
fi
if [ -z "$XML" ]; then
echo "Error: Please enter xml file name that must be ckecked."
echo "Exmple: make_checks.sh phrase_es_ES.xml > comparison_result.xml"
exit -1
fi
java -jar "$SAXON_JAR" -xsl:make_checks.xslt -t "$XML"
<?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>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论