Русские месяцы средствами XSLT

Материал из Umicms
Версия от 11:12, 2 марта 2014; Stexe (обсуждение | вклад) (Новая страница: « category:Вопросы и уроки разработки сайтов на UMI.CMS category:Верстка в XSLT '''Задача:''' Средствам…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Задача: Средствами XSLT выводить названия месяцев на русском языке.

Реализация: Напишем шаблон, в котором на основе принятого трех-символьного обозначения месяца, будет выводиться полное название месяца на русском:

<xsl:template name="ru_month">
      <xsl:param name="month_eng"/>

      <xsl:variable name="translating"             select="string('Jan6ЯнварьFeb7ФевральMar4МартApr6АпрельMay3МайJun4ИюньJul4ИюльAug6АвгустSep8СентябрьOct7ОктябрьNov6НоябрьDec7Декабрь')"/>
            
      <xsl:variable name="string_after" 
                    select="substring-after($translating, $month_eng)"/>
      <xsl:variable name="count" select="number(substring($string_after, 1, 1))"/>

      <xsl:value-of select="substring($string_after, 2, $count)"/>
</xsl:template>

Данный шаблон принимает параметр «month_eng» – трех-символьное обозначение месяца на английском. В переменной «translating» содержится перевод названия каждого месяца и его количество символов.

Пример: Вызовем шаблон и передадим ему в качестве параметра текущий месяц.

<xsl:call-template name="ru_month">
	<xsl:with-param name="month_eng" select="document('udata://system/convertDate/now/(M)')/udata"/>
</xsl:call-template>