IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Retrouver variable de langue


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 6
    Points
    6
    Par défaut Retrouver variable de langue
    Bonjour,

    J'ai un petit problème pour retrouver les variables de langue en javascript alors que j'ai défini celles ci en PHP

    Voilà comment je défini en PHP, ceci est fait pour la traduction avec gettext et je me demandais s'il était possible de retrouver la langue avec javascript ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    setlocale(LC_ALL, $lang);
    putenv('LANG='.$lang);
    putenv('LANGUAGE='.$lang);
    bindtextdomain($textdomain, 'l10n');
    bind_textdomain_codeset($textdomain,"UTF-8");
    textdomain($textdomain);
    Merci pour votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    tu veux dire sniffer la langue du navigateur ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    langue=(navigator.language)? navigator.language : navigator.userLanguage

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Non, ça ne marche pas ça, j'ai deux drapeaux sur mon appli, et a chaque fois que je clique dessus je change les variables d'environnement en fr_FR ou en_GB etc ..

    Le problème c'est qu'en javascript ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    langue=(navigator.language)? navigator.language : navigator.userLanguage
    Me renvoie toujours fr ... (que je sois en francais ou anglais)

    On peut pas récupérer directement les variables d'environnement en javascript ?

    Sinon je devrais passer la langue direct au script en PHP

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    heu j'ai pas du comprendre ton besoin alors ...

    qu'entends tu pas que ke sois en français en anglais ...

    moi je parle là des options du navigateur ...
    tu modifies le paramètrage de ton navigateur pour le mettre en anglais et il te retournera bien la bonne langue en

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    moi je parle là des options du navigateur ...
    tu modifies le paramètrage de ton navigateur pour le mettre en anglais et il te retournera bien la bonne langue en
    Ca se fait comment en PHP ?

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    rappel ;..
    php est interprété coté serveur ...
    javascript coté client

    si tu veux coté serveur la langeu du browser il faut demander à javascript de passer la valeur à php ...

  7. #7
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Bon alors je vais recadrer les choses,

    Je mets mes infos de langues comme dit plus haut en PHP c'est à dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    setlocale(LC_ALL, $lang);
    putenv('LANG='.$lang);
    putenv('LANGUAGE='.$lang);
    bindtextdomain($textdomain, 'l10n');
    bind_textdomain_codeset($textdomain,"UTF-8");
    textdomain($textdomain);
    donc côté serveur on est d'accord. En PHP il y a pas de problèmes, les traductions sont bien faites en fonction du drapeau sur lequel je clique.

    c'est à dire que je fais pour etre en français :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    setlocale(LC_ALL, 'fr_FR');
    putenv('LANG='.'fr_FR');
    putenv('LANGUAGE='.'fr_FR');
    ou en anglais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    setlocale(LC_ALL, 'en_GB');
    putenv('LANG='.'en_GB');
    putenv('LANGUAGE='.'en_GB');
    Le problème étant que j'ai des petits scripts javascript côté client qui envoient des messages de type alert ou confirm etc..
    Je veux traduire les phrases qui sont dans ces différentes box, donc je me suis fait une fonction de traduction javascript, reste que je voudrais savoir si je peux récupérer les variables de langues (LANG ou LANGUAGE) définies en PHP, ou si il faut que je passe la variable $lang de PHP à javascript

    Je connais pas trop javascript et avant de passer des arguments, je voulais savoir si une méthode permettait de le faire plus simplement

    En espèrant que ca soit plus clair

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    oui donc simple transmission de variable à javascript ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script type="text/javascript">
    lang="<?php echo $lang; ?>";
    </script>
    du coup coté js tu as la langue dans la variable javascript lang ...

    ensuite un swicth ou un test sur lang pour afficher le bon alert

    Perso j'aurais simplement transmis un array des messages de psui php vers js.
    et du coup plus de langue à tester coté js les alert se feront avec le contenu de l'array passé par PHP

  9. #9
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    J'ai fait un .js externe pour que ça soit bien fait et je veux pas mettre du PHP au milieu, sinon je crois que je vais passer la variable $lang au script et faire ma petite fonction de traduction js maison ou comme tu le dis passer le tableau de traduction.

    En tout cas merci pour ta patience et ta rapidité à répondre.

    Juste pour ma culture, le navigator.language de javascript, il fait appel à quoi, aux paramètres navigateur ? Genre sur Firefox, outils -> options -> contenu -> langues ?

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    oui par le param language de navigator ...


    et pour ton js externe pourquoi tu ne colle pas du php dedans ???

  11. #11
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Je préfère séparer pour la lisibilité et $lang je peux pas l'avoir comme ça vu la structure de l'appli

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    je ne vois pas pourquoi tu ne pourrais pas avoir $lang dasn ton javascript externe !!!
    vu qu'il est appelé sur la page ...

  13. #13
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    parce que $lang est défini par une fonction PHP qui n'est pas appelée sur toutes les pages donc pas accessible tout le temps

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    et ?

    un test php sur le contenu et un echo de la variable

    comme ça la page chez le client ne reçoit que le code js necessaire

  15. #15
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    première chose
    en fait ton fichier externe dois etre un fichier php


    genre fichier externalJS.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    switch($lang){
    case('fr') : echo 'ArrayAlertes=new Array("bonjour","erreur");';
                     break;
    case('en') : echo 'ArrayAlertes=new Array("Hello","error");';
                      break;
    }
    dans le head de la page principale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type='text/javascript' src="externalJS.php"></script>
    et ensuite un simple alert dans le code sera fait dans la bonne langue


  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    arf je m'étais trompé de post :red:

  17. #17
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Non mais c'est bon j'ai fait à ma manière et ça marche

    Je traduis avec gettext en php et envoie le texte traduit au script javascript en paramètre, vu que j'ai 3 alerts à traduire c'est pas un problème

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Variable de langue pour appli multilangue
    Par paladice dans le forum Débuter
    Réponses: 4
    Dernier message: 09/04/2013, 14h02
  2. Retrouver Variable avec une chaine String
    Par jojo86 dans le forum Langage
    Réponses: 6
    Dernier message: 06/05/2012, 10h17
  3. [2.x] Variable session (langue)
    Par Adraesh dans le forum Symfony
    Réponses: 1
    Dernier message: 27/02/2012, 11h03
  4. (JARIVPA) Variable de langue et chemin relatif
    Par Legumanleguman dans le forum Flash
    Réponses: 3
    Dernier message: 11/05/2007, 22h58
  5. [POO] Retrouver une variable d'instance de classe
    Par stailer dans le forum Langage
    Réponses: 1
    Dernier message: 18/02/2006, 10h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo