xslt 2.0个月的法语或德语名称

时间:2011-04-06 18:40:20

标签: xslt tomcat xslt-2.0 apache-fop saxon

我正在使用xslt fn:formate-dateTime()来获取当前的日期和时间,对于英语,它可以正常工作。

但每当我尝试用不同语言(fr,de等)获取月份名称时,我只会在前面的[语言:en]中获取当前日期和时间,并且无法获得月份名称那种语言。

创建日期:[语言:en] 06 / April / 2011

这是我的代码,有人可以告诉我这里我做错了什么。

<xsl:value-of select="format-dateTime(current-dateTime(),
                                      '[D01]/[MNn]/[Y0001]',
                                      ’de’,
                                      ’AD’,
                                      ’DE’)"/>

或者

<xsl:value-of select="format-dateTime(current-dateTime (),
                                      '[D01]/[MNn]/[Y0001]',
                                      ’fr’,
                                      ’AD’,
                                      ’FR’)"/>

我正在使用Saxon 9和Fop 1.0在tomcat 7上运行

2 个答案:

答案 0 :(得分:0)

来自http://www.w3.org/TR/xslt20/#lang-cal-country

  

一组语言,日历和   支持的国家   日期格式化功能是   实现定义。当任何一个   这些参数被省略或是一个   空序列   实现定义的默认值   使用。

     

如果后备表示使用了   不同的日历   请求,输出字符串必须是   前缀为[Calendar: X],其中X   标识实际使用的日历。   字符串Calendar应该是   使用请求的语言进行本地化   如果可供使用的话。如果是后备   表示使用不同的   请求的语言,   输出字符串应该以前缀为前缀   [Language: Y]其中Y表示   实际使用的语言。字符串   Language可能已在本地化   依赖于实现的方式。如果一个   价值的特定组成部分   无法在请求中输出   格式,应该输出   该组件的默认格式。

来自http://www.saxonica.com/documentation/functions/intro/format-dateTime.xml

  

使用格式格式化日期   由图片串控制。如果   没有指定语言,值是   取自当前的Java语言环境。如果   语言(明确提供或   默认的)不是“en”,而是   系统试图找到一个名为的类   net.sf.saxon.number.Numberer_XX   XX是语言;这个班   必须提供执行的方法   定位。

答案 1 :(得分:0)

实际上关于撒克逊的信息有点过时(http://www.saxonica.com/documentation/extensibility/localizing.xml的信息 - 令人尴尬)。

但我们需要知道您正在使用哪种特定的Saxon版本:它在9.1到9.2之间变化,而在Home Edition和Professional Edition之间则有所不同。在当前版本9.3中,对de和fr等多种常用语言的支持可以通过Saxon-PE和Saxon-EE“开箱即用”获得,但必须使用Saxon-HE从源代码手动配置,通过编写LocalizerFactory并将其注册到Configuration。