xslt 2.0 месяца на французском или немецком языке - PullRequest
0 голосов
/ 06 апреля 2011

Я использую xslt fn: formate-dateTime (), чтобы получить текущую дату и время, для английского все отлично.

Но каждый раз, когда я пытаюсь получить название месяца на разных языках (fr, de и т. Д.), Я просто получаю текущую дату и время с [Language: en] спереди и не могу получитьназвание месяца на этом языке.

Дата создания: [Язык: ru] 06 / апрель / 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 голосов
/ 07 апреля 2011

На самом деле эта информация о саксонцах немного устарела (как и информация по 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 и зарегистрировав его в Конфигурации.

0 голосов
/ 06 апреля 2011

С 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 - язык; этот класс должны предоставить методы для выполнения локализация.

...