Русские месяцы средствами 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="'Apr'"/>
</xsl:call-template>


1 апреля 2017 г.