The following XSLT template shows how to format to currency amount in and English and French format.
Note that the third argument in format-number() refers to the name of the <xsl:decimal-format> element:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" />
<xsl:decimal-format name="french" decimal-separator="," grouping-separator=" "/>
<xsl:template name="FormatAmount">
<xsl:param name="amount"/>
<xsl:param name="language"/>
<xsl:param name="show-dollar-sign">false</xsl:param>
<xsl:variable name="dollar-sign">
<xsl:if test="$show-dollar-sign = 'true' ">$</xsl:if>
</xsl:variable>
<xsl:choose>
<xsl:when test="$language = 'english' ">
<xsl:value-of select="concat($dollar-sign, format-number($amount, '#,##0.00'))"/>
</xsl:when>
<xsl:when test="$language = 'french' ">
<xsl:value-of select="concat(format-number($amount, '# ##0,00', 'french'), ' ', $dollar-sign)"/>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>