This is an old revision of the document!
Для склонения числительных обычно применяется подшаблон следующего вида, для использования в него необходимо вставить варианты требуемого для склонения слова:
<xsl:template name="declension1"> <xsl:param name="number" /> <xsl:variable name="nominative"> <xsl:text>слово</xsl:text> </xsl:variable> <xsl:variable name="genitive_singular"> <xsl:text>слова</xsl:text> </xsl:variable> <xsl:variable name="genitive_plural"> <xsl:text>слов</xsl:text> </xsl:variable> <xsl:variable name="last_digit"> <xsl:value-of select="$number mod 10"/> </xsl:variable> <xsl:variable name="last_two_digits"> <xsl:value-of select="$number mod 100"/> </xsl:variable> <xsl:choose> <xsl:when test="$last_digit = 1 and $last_two_digits != 11"> <xsl:value-of select="$nominative"/> </xsl:when> <xsl:when test="$last_digit = 2 and $last_two_digits != 12 or $last_digit = 3 and $last_two_digits != 13 or $last_digit = 4 and $last_two_digits != 14"> <xsl:value-of select="$genitive_singular"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$genitive_plural"/> </xsl:otherwise> </xsl:choose> </xsl:template>
Как использовать:
<xsl:variable name="count" select="2" /> <!-- Выводим --> <xsl:value-of select="$count" /> <xsl:text> </xsl:text> <xsl:call-template name="declension1"> <xsl:with-param name="number" select="$count"/> </xsl:call-template>
Результат:
2 слова
Страницу создал Максим Засорин 27.09.16 в 15:23
Discussion