我正在使用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上运行
答案 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。