如何使用 Saxon HE 10.2 设置语言数据?
How to set language data with Saxon HE 10.2?
如何使用 Saxon HE 10.2 正确设置语言数据?我需要 XSLT 处理器输出当前日期和用德语写出的月份名称,例如 21. Oktober 2020
。不幸的是,处理器输出
[Language: en]21. October 2020
。
Saxon PE 提供开箱即用的所需输出。
这是我的 XSLT 代码:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="3.0">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:value-of select="format-dateTime(current-dateTime(), '[D]. [MNn] [Y]', 'de', (), ())"/>
</xsl:template>
</xsl:stylesheet>
测试XML源代码文件是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<root/>
在Linux,我运行java -cp $xsltProc $class -s:source.xml -xsl:stylesheet.xslt -o:result
.
$xsltProc
是文件 saxon-he-10.2.jar
.
的路径
$class
是 net.sf.saxon.Transform
.
任何帮助将不胜感激。
要“开箱即用”地支持德语日期格式,您需要 Saxon-PE 或更高版本。
如果你想要 Saxon-HE,你可以编译 class net.sf.saxon.option.local.Numberer_de
的开源代码并在配置中注册它:
configuration.setLocalizerFactory(new LocalizerFactory() {
public Numberer getNumberer(String language, String country) {
if (lang.equals("de")) {
return new Numberer_de();
} else {
...
}
});
我尝试使用原始问题中的示例文件执行以下操作,但从未调用配置。
我认为需要以某种方式注册配置?
final Configuration config = new Configuration();
/**/ config.setLocalizerFactory(new LocalizerFactory() {
public Numberer getNumberer(final String language, final String country) {
if (language.equals("de")) {
return Numberer_de.getInstance();
} else {
return null;
}
}
});
Transform.main(new String[] {
"-s:source.xml",
"-xsl:stylesheet.xslt",
"-o:result.txt"
});
如何使用 Saxon HE 10.2 正确设置语言数据?我需要 XSLT 处理器输出当前日期和用德语写出的月份名称,例如 21. Oktober 2020
。不幸的是,处理器输出
[Language: en]21. October 2020
。
Saxon PE 提供开箱即用的所需输出。
这是我的 XSLT 代码:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="3.0">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:value-of select="format-dateTime(current-dateTime(), '[D]. [MNn] [Y]', 'de', (), ())"/>
</xsl:template>
</xsl:stylesheet>
测试XML源代码文件是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<root/>
在Linux,我运行java -cp $xsltProc $class -s:source.xml -xsl:stylesheet.xslt -o:result
.
$xsltProc
是文件 saxon-he-10.2.jar
.
的路径
$class
是 net.sf.saxon.Transform
.
任何帮助将不胜感激。
要“开箱即用”地支持德语日期格式,您需要 Saxon-PE 或更高版本。
如果你想要 Saxon-HE,你可以编译 class net.sf.saxon.option.local.Numberer_de
的开源代码并在配置中注册它:
configuration.setLocalizerFactory(new LocalizerFactory() {
public Numberer getNumberer(String language, String country) {
if (lang.equals("de")) {
return new Numberer_de();
} else {
...
}
});
我尝试使用原始问题中的示例文件执行以下操作,但从未调用配置。
我认为需要以某种方式注册配置?
final Configuration config = new Configuration();
/**/ config.setLocalizerFactory(new LocalizerFactory() {
public Numberer getNumberer(final String language, final String country) {
if (language.equals("de")) {
return Numberer_de.getInstance();
} else {
return null;
}
}
});
Transform.main(new String[] {
"-s:source.xml",
"-xsl:stylesheet.xslt",
"-o:result.txt"
});