[xsl] how to do i18n with parameter substitution

Subject: [xsl] how to do i18n with parameter substitution
From: George James <GeorgeJ@xxxxxxxxxxxxxxx>
Date: Wed, 23 Mar 2005 02:55:40 -0000
I have a template that does language substitution for text strings.  I want
to extend this to be able to pass in a variable number of parameter values
that get substituted into placeholder in each language string.

The current template looks something like this:

  <xsl:template name='i18n'>
    <xsl:param name='caption'/>
test='document("phrases.xml")/phrases/phrase/target[../@key=$caption and
select='document("phrases.xml")/phrases/phrase/target[../@key=$caption and
lang($language)]' />
        <xsl:copy-of select='$caption' />

I have a phrases.xml document that looks like this:

<phrase key='Client not on file'>
 <target xml:lang='en'>Client number <p1/> not on file. Priority:
 <target xml:lang='de'>Prioritdt: <p2/>. Klient Nr. <p1/> nicht auf

How can I extend my template so that will take as input something like the

<caption key='Client not on file'>
 <p1 value='123456'/>
 <p2 value='99'/>

and produce one of the following strings, depending on the language:
Client number 123456 not on file. Priority: 99
Prioritdt: 99. Klient Nr. 123456 nicht auf Akte.

Can anyone help me with this?

Current Thread