Bonjour à tous,
Totalement novice en xsl, je fais face à une petit (gros...) pb.
Ma xxx.xsl traite différentes xxx.xml que je ne contrôle pas dans la mesure où ils sont générés par un logiciel tiers
J'essaye de localiser des strings ( 'en'/'fr' ) depuis le xxx.xsl.
J'utilise donc un param xsl: <xsl:param name="lang">en</xsl:param> que je modifie dynamiquement par php, no pb jusque là.
Dans la xxx.xsl j'utilise une cinquante de :
<xsl:if test="$lang='en'">Outside humidity</xsl:if><xsl:if test="$lang='fr'">Humidité ext.</xsl:if> par exemple.

Lors du premier chargement, no pb cela s'affiche en 'fr' ou 'en' et si je clique sur un drapeau de change de langue cela fonctionne parfaitement.

Problème si je charge un nouvel xxx.xml traité par le même xxx.xsl tout revient en français même si le param est toujours à 'en'.

On en vient à la question: Comment forcer le xxx.xsl à effectuer TOUS les
<xsl:if test à CHAQUE chargement de la feuille xxx.xsl. ???

J'ai testé avec :
<xsl:attribute name="onLoad">alert('coucou c'est nous!');</xsl:attribute>

et j'obtiens l'alerte à chaque fois, mais PAS le trigger des <xsl:if test

Solution please...!!!

Merci beaucoup very much...

Cordialement @ tous.

PS: bravo à tous les responsables de ce super site que je viens de découvrir.

Eléments du code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" encoding="ISO-8859-1"/>
<xsl:template match="/">
<xsl:apply-templates select="statistics"/></xsl:template>
<xsl:template name ="statistics" match="statistics">
<xsl:param name="lang">en</xsl:param>
 
::::::::
 
<xsl:if test="$lang='en'">Statistics </xsl:if><xsl:if test="$lang='fr'">Statistiques </xsl:if>