[an error occurred while processing this directive]
<!-- Category:
instruction -->
<xsl:message
terminate = "yes" |
"no">
<!-- Content: template
-->
</xsl:message>
Инструкция xsl:message
посылает сообщение, причем способ отправки зависит от XSLT процессора. Содержимое инструкции xsl:message
является шаблоном. xsl:message
обрабатывается путем подстановки его содержимого в создаваемый XML фрагмент. Этот XML фрагмент является содержимым посылаемого сообщения.
Замечание: XSLT процессор может реализовывать элемент xsl:message
, открывая окно с предупреждением, либо делая запись в log-файле.
Если атрибут terminate
имеет значение yes
, то после посылки сообщения XSLT процессор должен завершить обработку. Значением по умолчанию является no
.
Одним из удобных способов локализации состоит в том, чтобы поместить локализованную информацию (текст сообщения и прочего) в некий XML документ, который станет для стиля дополнительным входным файлом. Предположим к примеру что сообщение для языка L
помещено в XML-файл resources/L.xml
в следующем формате:
<messages> <message name="problem">A problem was detected.</message> <message name="error">An error was detected.</message> </messages>
В этом случае для локализации сообщений стиль может использовать следующий прием:
<xsl:param name="lang" select="en"/> <xsl:variable name="messages" select="document(concat('resources/', $lang, '.xml'))/messages"/> <xsl:template name="localized-message"> <xsl:param name="name"/> <xsl:message> <xsl:value-of select="$messages/message[@name=$name]"/> </xsl:message> </xsl:template> <xsl:template name="problem"> <xsl:call-template name="localized-message"/> <xsl:with-param name="name">problem</xsl:with-param> </xsl:call-template> </xsl:template>
Назад | Содержание | Вперед
[an error occurred while processing this directive]