Forum GraphWeather

Forum d'aide GraphWeather
Nous sommes actuellement le Mer Mai 08, 2024 7:28 am

Le fuseau horaire est UTC+1 heure




Publier un nouveau sujet Répondre au sujet  [ 4 message(s) ] 
Auteur Message
MessagePublié: Lun Nov 29, 2010 6:20 am 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mer Fév 04, 2009 11:34 am
Message(s) : 92
Bonjour, bonsoir @ tous.
Petit problème soumis à la sagacité des gourous.

Sachant que l'on peut modifier l'affichage d'une xlm de par un paramètre de sa xsl.
Ex: <xsl:param name="lang">fr</xsl:param>
Puis son test dans:
<xsl:if test="$lang='fr'">Bonjour</xsl:if><xsl:if test="$lang='en'">Hello</xsl:if>

Cela affichera bonjour ou hello en fonction de la valeur du param lang à fr ou en.

No problem, j'ai testé, cela marche super et permet d'avoir les statistiques en différentes langues.

Zherrrr grôôôsss problem: :cry: Comment dynamiquement (langue du navigateur client) ou
encore mieux manuellement (clic sur un bouton) affecter la valeur de ce param... :?:
Je veux dire changer fr, en, de ou es...
That is the question :?:

Si d'aventure on pouvait en profiter pour également convertir les valeurs des °C, Mb, Km/h
en °F, inch, mph ce serait super, super get get... :wink:

En bref, ya k, fo kon... :wink:

Bonjour journée ou bonne nuit @ tous.

-= weather =-

_________________
Image
.......... updated each 30 minutes .........
Logiciels: VWStation: 14.0p87 | GW : 2.0.281b | VWSql : 2.0 | WXsim : ?????
FTPGetter : 3.19.0.83 | StartWatch : 1.1.1.144 | AdvancedTaskScheduler : 1.5b0446
OS: Windows XP SP2 | Station VantagePro 2 ventilée, UV, RadSol, LinkPro IP


Haut
 Profil  
Répondre en citant  
MessagePublié: Lun Nov 29, 2010 7:31 pm 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mar Août 22, 2006 8:38 am
Message(s) : 3145
Localisation : 34410 Sérignan - Languedoc
Bonjour Weather,
Sachant qu'il est possible d'utiliser du javascript à l'intérieur du xsl, voici une idée de solution :
Créer un cookie à partir de PHP/JavaScript dans MyGWstat.php qui te servira de variable globale
Modifier chaque fichier XSL avec ta méthode en utilisant la valeur du cookie comme paramètre pour le test.
weather a écrit:
<xsl:if test="$lang='fr'">Bonjour</xsl:if><xsl:if test="$lang='en'">Hello</xsl:if>

et ensuite, faire une traduction complète du fichier XSL et la mettre à l'intérieur de chacune de tes balises "if".
ex :<xsl:if test="$lang='fr'">tout le xsl traduit dans la langue choisie</xsl:if>

Maintenant en ce qui concerne les unités impériales, je ne vois pas d'autre solution que de lancer une seconde instance de GW qui travaillera avec ces unités, (Les XSL pourront bien sûr être repris intégralement, s'il existe des français, italiens... assez fous pour vouloir la météo en Fahrenheit, in-hg et autres !) travailler chacun des champs pour le modifier est difficilement envisageable.
En espérant que ces idées te seront utiles.
Pourras-tu me dire si tu obtiens des résultats probants ?
Bonne soirée

Jean


Haut
 Profil  
Répondre en citant  
MessagePublié: Lun Nov 29, 2010 10:10 pm 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mer Fév 04, 2009 11:34 am
Message(s) : 92
Merci JTURLIER,
J'avais déjà pensé à une solution de ce genre, mais j'avoue ne pas trop aimer les cookies.
Je viens donc de trouver une solution en php, qui bien qu'un peu lourde, fonctionne.
Un site multilingue comprend quasiment toujours 'fr', 'en, 'es' etc; dans son url, c'est mon cas.
A l'entrée du site, le visiteur est dirigé vers la partie correspondant à la langue de son navigateur.
Il peu cependant changer la langue affichée par simple clic sur un drapeau.
Grace à:
Code :
    $mdk = getenv("HTTP_REFERER"); 
j'obtiens l'url complète de la fenêtre parente
(mes stats son dans un object), celle ci comprenant soit 'fr' soit 'en', il m'est facile d'actionner un script en fonction.
La solution que j'ai pour l'instant est d'ouvrir et écrire dans le fichier ...xsl et cela fonctionne OK.
Code :
      $mdk = getenv("HTTP_REFERER");    // get full url of parent page
      $file = '../gw/'.$period.'.xsl';  // actual .xsl file called
      $str=implode("\n",file($file));
      $fp=fopen($file,'w');             // open .xsl file with write permission
      if(stristr($mdk, '/fr/') === FALSE) {    // if url does not contain /fr/...
      $str=str_replace('"lang">en','"lang">fr',$str); }
      else {
      $str=str_replace('"lang">fr','"lang">en',$str); }   
      fwrite($fp,$str,strlen($str));

Problème:
Si plusieurs visiteurs sont au même instant sur la même page et changent de langue en même temps,
il va y avoir "bagarre..." :evil:

Si une solution plus soft existe, merci de me la communiquer.

Dans l'autre domaine. Novice en xsl, j'ignorais que l'on pouvait y inclure
du javascript, cette info, m'ouvre de nouveaux horizons, merci... :wink:
Je suppose qu'il est donc possible en début de chaque ...xsl d'appeler un
fichier javascript, lequel pourra effectuer toute les conversions d'unités
nécessaires et les afficher sous conditions.

Me trompe-je :?:

Merci pour l'aide et les précieuses infos.

Bonjour, bonne nuit @ tous.

-= weather =-

_________________
Image
.......... updated each 30 minutes .........
Logiciels: VWStation: 14.0p87 | GW : 2.0.281b | VWSql : 2.0 | WXsim : ?????
FTPGetter : 3.19.0.83 | StartWatch : 1.1.1.144 | AdvancedTaskScheduler : 1.5b0446
OS: Windows XP SP2 | Station VantagePro 2 ventilée, UV, RadSol, LinkPro IP


Haut
 Profil  
Répondre en citant  
MessagePublié: Mar Nov 30, 2010 7:10 am 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mar Août 22, 2006 8:38 am
Message(s) : 3145
Localisation : 34410 Sérignan - Languedoc
Bonjour,
si tu veux la langue du browser il suffit que tu la récupères dans HTTP_USER_AGENT, mais je reste sur ma positon, faire ça en PHP n'est pas une trop bonne solution, ou alors, tu mets tu fais un peu d'AJAX pour récupérer tes XSL !
weather a écrit:
Si plusieurs visiteurs sont au même instant sur la même page et changent de langue en même temps,
il va y avoir "bagarre..."

Les risques de contention entre utilisateurs simultanés sont nuls, parce que le serveur retourne une page HTML complète au client, et il passe ensuite au suivant.
La solution du JS avec des cookies, bien que tu ne les aimes pas est moins mauvaise, si le client ne les accepte pas il a la langue par défaut et le serveur lui envoie les XSL complets avec toutes les langues. (Si tu crées des cookies de session, ils ne restent pas et tout le traitement est réalisé chez l'utilisateur au lieu de pénaliser ton serveur, et ça perso je m'en préoccupe étant donné que je suis mon propre hébergeur et que le serveur dans le garage n'est pas une grosse machine !)
Pour le changement d'unités, il va falloir que tu traites chacun des champs, ce n'est pas réellement un pb, mais une très grosse opération de code.
Bonne journée et bon amusement !

Jean


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 4 message(s) ] 

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 44 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Recherche de:
Aller vers :  
POWERED_BY
Traduction et support en françaisHébergement de site