Bonjour,
Je suis en train de fabriquer un formulaire xml xsl, en différentes langues.
le tout étant séparé en 3 fichiers :
formulaire.xsl
formulaire.xml
labels.xml
formulaire.xsl
formulaire.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dc="http://purl.org/dc/elements/1.1/"> <xsl:variable name="thelang" select="string('fr')"/> <xsl:output method="html" version="4.0" encoding="UTF-8" indent="yes" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" doctype-system="http://www.w3.org/TR/html4/loose.dtd" /> <xsl:template name="gln_form"> <xsl:param name="locale" /> <xsl:param name="key" /> <xsl:value-of select="document('labels.xml')//locale[@xml:lang=$locale]/label[@key=$key]" /> </xsl:template> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head></head><body> <xsl:apply-templates select="//applicant/dynamicfield-0/field"> <xsl:with-param name="nomenclature" select="//nomenclature/ldm" /> <xsl:with-param name="id">ldm</xsl:with-param> <xsl:with-param name="class">field</xsl:with-param> <xsl:with-param name="size">1</xsl:with-param> <option value="1"> <xsl:call-template name="gln_form"> <xsl:with-param name="locale" select="$thelang" /> <xsl:with-param name="key" select="string('ARB')" /> </xsl:call-template> </option> <option value="2"> <xsl:call-template name="gln_form"> <xsl:with-param name="locale" select="$thelang" /> <xsl:with-param name="key" select="string('FIN')" /> </xsl:call-template> </option> <option value="3"> <xsl:call-template name="gln_form"> <xsl:with-param name="locale" select="$thelang" /> <xsl:with-param name="key" select="string('CEE')" /> </xsl:call-template> </option> </xsl:apply-templates> </body> </html> </xsl:template> </xsl:stylesheet>
labels.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="formulaire.xsl" type="text/xsl"?> <nomenclature> <ldm> <item name="ARB" value="1"/> <item name="FIN" value="2"/> <item name="CEE" value="3"/> </ldm> <nomenclature> <applicant> <dynamicfield-0><field name="ldm" type="ENUM" value=""/></dynamicfield-0> </applicant>
je ne comprends pas la manière de passer les paramètres pour le changement de langue pour les listes de type « select ».
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?xml version="1.0" encoding="UTF-8"?> <labels> <locale xml:lang="fr"> <label key="ARB">pain</label> <label key="FIN">eau</label> <label key="CEE">noix</label> </locale> <locale xml:lang="en"> <label key="ARB">bred</label> <label key="FIN">water</label> <label key="CEE">nuts</label> </locale> </labels>
Après plusieurs essais, le label ne change jamais et le label de la « key » n’est jamais remplacée.
le résultat reste invariablement
Quelqu'un pourrait-il m'expliquer ce qu'il manque à mon code pour que la "key" du label soit remplacée par le texte correspondant?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <select size="1" id="ldm" class="field" name="ldm"> <option value=""></option> <option value="1">ARB</option> <option value="2">FIN</option> <option value="3">CEE</option> </select>
Thx
zwaldo
Partager