[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Parameters in localized messages
Thanks for the hints! I think the solution to my problem will be something like: Having a messages.xml with: <messages> <message name="msgContact" lang="en">Please contact <param name="personalName"/> for details.</message> <message name="msgContact" lang="nl">Neem contact op met <param name="personalName"/> voor details.</message> </messages> A doc.xml with: <content/> and a xsl stylesheet with: <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:variable name="lang" select="'en'"/> <xsl:variable name="messages" select="document ('messages.xml')"/> <!-- THIS REQUIRES XSLT 2.0 --> <xsl:template match="content"> <xsl:variable name="params"> <params> <param name="personalName">Jeroen</param> </params> </xsl:variable> <xsl:call-template name="formatMessage"/> <xls:with-param name="id" select="msgContact"/> <xls:with-param name="params" select="$params"/> </xsl:call-template> </xsl:template <xsl:template name="formatMessage"> <xsl:param name="name"/> <xsl:param name="params"/> <xsl:apply-templates select="$messages/messages/message [@lang=$lang && @name=$name]" mode="formatMessage"> <xls:with-param name="params" select="$params"/> </xsl:apply-templates> </xsl:template> </xls:template match="param" mode="formatMessage"> <xsl:param name="params"/> <xsl:value-of select="$params/params/param[@name=current ()/@name]"/> <xsl:template> <xsl:template match="*" mode="formatMessage"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates mode="formatMessage"/> </xsl:copy> </xsl:template> </xsl:stylesheet> Jeroen.
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|