我有一个XSL样式表,用于格式化给定语言环境中的日期。当我从Oxygen运行样式表时,输出是德语符合预期。当我使用saxon9he或xproc的命令行时,输出是英文的。我希望用德语代替它。
来源(任何源文件都可以)source.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<root/>
XSL文件transformation.xsl
:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<foo>
<xsl:value-of select="format-date(current-date(),'[FNn]','de',(),())"/>
</foo>
</xsl:template>
</xsl:stylesheet>
和XProc文件(showdate.xpl
):
<?xml version="1.0" encoding="UTF-8"?>
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc"
xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0">
<p:input port="source" sequence="false">
<p:document href="source.xml"/>
</p:input>
<p:output port="result" sequence="true">
<p:empty/>
</p:output>
<p:xslt>
<p:input port="stylesheet">
<p:document href="transformation.xsl"/>
</p:input>
<p:input port="parameters">
<p:empty/>
</p:input>
</p:xslt>
<p:store href="out.xml"/>
</p:declare-step>
这是我从Mac终端运行xproc文件的方式:
export CLASSPATH=...../lib/calabash.jar:....../lib/saxon9he.jar
java com.xmlcalabash.drivers.Main showdate.xpl
结果如下:
<?xml version="1.0" encoding="UTF-8"?>
<foo>[Language: en]Thursday</foo>
而我想要
<?xml version="1.0" encoding="UTF-8"?>
<foo>Donnerstag</foo>
如何获得我想用xproc / calabash获得的结果?
答案 0 :(得分:0)
@topskip是正确的。 Oxygen使用Saxon EE,它支持多种语言的本地化支持(Saxon PE也是如此)。
Saxon HE(默认情况下使用Calabash)没有开箱即用的本地化支持,因此英文输出。尽管如此,显然还有一种方法可以在Saxon HE中配置本地化 - 请参阅Saxon documentation。