Xpoint
   [напомнить пароль]

Учесть флективность

Метки: [без меток]
2010-10-29 14:04:53 [обр] walek[досье]

Друзья, подскажите пожалуйста, как красиво и самое главное правильно в XSLT учесть флективность.

Пример.
В зависимости от количества указанных ссылок в ноде, нужно учитывать склонение слова.
В ноде содержится цифра <count>128<count>, соответсвенно нужно отображать 128 ссылок, окончание -ок, если в ноде 71, то отображаем 71 ссылка, окончание -ка и т. д.

Я сделал хитро, поскольку вид окончания зависит от последней цифры, то и рассматриваем только последнюю цифру в числе. Это я сделал. Но не могу придумать как сделать сравние, неужели нет ничего более правильного кроме:

<xsl:variable name="okonch">
      <xsl:choose>
         <xsl:when test="$first = 0">ок</xsl:when>
         <xsl:when test="$first = 1">ка</xsl:when>
         <xsl:when test="$first = 2">ки</xsl:when>
         <xsl:when test="$first = 3">ки</xsl:when>
         <xsl:when test="$first = 4">ки</xsl:when>
         <xsl:when test="$first = 5">ок</xsl:when>
         <xsl:when test="$first = 6">ок</xsl:when>
         <xsl:when test="$first = 7">ок</xsl:when>
         <xsl:when test="$first = 8">ок</xsl:when>
         <xsl:when test="$first = 9">ок</xsl:when>
      </xsl:choose>
   </xsl:variable>
ссыл<xsl:value-of select="$okonch" />

?

В okonch заходит число.
Спасибо.

спустя 2 часа 38 минут [обр] Филипп Ткачев(0/112)[досье]
С xsl никогда не работал, но если внутри test допустимы выражения, то тогда можно упростить
<xsl:when test="$first > 1 and $first < 5">ки</xsl:when>
<xsl:when test="$first = 1">ка</xsl:when>
<xsl:when test="$first > 4">ок</xsl:when>
спустя 4 часа 50 минут [обр] Алексей Полушин(0/231)[досье]
Про XSLT не скажу, но "11 ссылка" - это не по русски
спустя 2 дня 6 часов [обр] walek[досье]
Lynn «Кофеман», огромное спасибо!
Powered by POEM™ Engine Copyright © 2002-2005