String.Format («Ваш запрос {0} с заполнителями {1}», theQuery, results.Count) Эквивалент в XSLT - PullRequest
5 голосов
/ 12 ноября 2010

Есть ли в XSLT функция, эквивалентная строковому формату?

Я работаю на многоязычном сайте в umbraco.Я не знаю, какие языки понадобятся, но, как бы то ни было, один язык может упорядочить слова по-разному, например

Английский "Ваш запрос" Дункан "соответствует 5 результатам".мог бы перевести слово в слово в «5 найденных результатах« Дункана »запроса».

По этой причине наличие в моем переводе umbraco элемента «Ваш запрос», «соответствует» и «результаты» не представляется возможным.Если бы я сделал это пользовательским элементом управления для C #, я бы попросил переводчика предоставить элемент словаря, например "Ваш запрос '{0}' соответствует {1} результатам".

Ответы [ 2 ]

5 голосов
/ 12 ноября 2010

Есть ли эквивалентная функция формат строки в XSLT?

Это близкий аналог в XSLT :

Запись словаря имеет следующий формат:

<t>Your query "<query/>" matched <nResults/> results</t>

Преобразование (соответствующее string.format()) очень просто:

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text"/>

  <xsl:param name="pQuery" select="'XPath and XSLT'"/>
  <xsl:param name="pNumResults" select="3"/>

 <xsl:template match="query">
  <xsl:value-of select="$pQuery"/>
 </xsl:template>

 <xsl:template match="nResults">
  <xsl:value-of select="$pNumResults"/>
 </xsl:template>
</xsl:stylesheet>

и выдает нужный, правильный результат :

Your query "XPath and XSLT" matched 3 results
0 голосов
/ 12 ноября 2010

Вы можете расширить свой XSLT пользовательской функцией: http://our.umbraco.org/wiki/reference/xslt/extend-your-xslt-with-custom-functions.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...