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

Langage PHP Discussion :

Detecter la langue du navigateur avec redirection


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut Detecter la langue du navigateur avec redirection
    Bonjour,

    Je voudrais savoir comment deteter la langue du navigateur et rediriger l'utilisateur celon la langue. il doit y avoir au total 6 langue, Français, Anglais, allemand, Espagnole, Italien, Néerlandais.

    dans mon fichier index j'ai mis ceci a la racine du site :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php 
    if (!isset($Langue)) { 
      if(isset($HTTP_ACCEPT_LANGUAGE)){
      $Langue = explode(",",$HTTP_ACCEPT_LANGUAGE); 
      $Langue = strtolower(substr(chop($Langue[0]),0,2)); }
    else 
      $Langue="fr";
    } 
    header("Location: /index.php?Langue=$Langue"); 
     
    ?>
    sur mon site j'ai :
    /langue/an/index_an.php
    /langue/an/index_an.php
    /langue/al/index_al.php
    /langue/fr/index_fr.php
    /langue/es/index_es.php
    /langue/it/index_it.php
    /langue/Ne/index_ne.php
    Je ne comprend pas :
    1/ comment prendre en compte les 6 langues.
    2/ Comment dire de rediriger celon le pays
    3/ Comment indiquer que la langue par default est l'anglais

    Merci.

  2. #2
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    T'utilises mal ta variable d'environnement et la chaîne de redirection n'est pas bonne :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    if (!isset($Langue)) {
      if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
      $Langue = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
      $Langue = strtolower(substr(chop($Langue[0]),0,2)); }
    else
      $Langue='en';
    }
    header('Location: /langue/' . $Langue . '/index_' . $Langue . '.php');
    ?>
    Au passage, pour éviter des recherches inutiles de variable à traduire, utilise plutôt ' que " pour définir tes chaînes.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut
    Bonsoir,

    merci , mais je ne comprend pas commment les utilisateurs d'un autre pays non definie comme par exemple l'arabe, chinoi, yougoslave, etc.. vont pouvoir aller par default sur l'anglais (langue par default)

    /langue/en/
    voici le code actuellement sur la page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    if (!isset($Langue)) {
      if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
      $Langue = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
      $Langue = strtolower(substr(chop($Langue[0]),0,2)); }
    else
      $Langue="dgfszdgfsdg";
    }
    header('Location: /langue/' . $Langue . '/index_' . $Langue . '.php');
    ?>
    Si je rajoute ceci a la fin du code et remplace dans le code precedent else par elseif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?PHP
    } else {    
    header('Location: /langue/' . $Langue_default . '/index_' . $Langue_default . '.php');
    }
     
    ?>
    Et defini la langue par default étant l'anglais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Langue_default = "en";
    Quand pensez vous

    Merci.

  4. #4
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    Tu n'as juste qu'à rajouter un traitement supplémentaire pour vérifier que $Langue pondu par mes modifs rentre bien dans ta liste. Si non, tu les balances sur l'anglais en écrasant $Langue par 'en'.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut
    Re,

    Quand vous dite la liste il s'agit bien de Et voici la liste (exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     $Langue= array (
    				  'De' => 'allemagne',
    				  'En' => '«anglais»', 
    				  'Fr' => 'français');
    Excusé moi, mais je ne comprend toujour pas comment balancer un visiteur du pays arabe ou chinois par exemple sur l'anglais par default en écrasant $Langue par 'en'.

    Y a un truc que je ne comprend pas ?.

    Merci.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut
    Au final voila le code , je n'ai pas pu le testé d'apres vous es ce correct

    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
     
    <?php
    $Langue_default = "En";
     
    if (!isset($Langue)) {
      if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
      $Langue = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
      $Langue = strtolower(substr(chop($Langue[0]),0,2)); }
    else
      $Langue= array (
    				  'De' => 'Allemagne',
    				  'Es' => 'Espagne',
    				  'En' => '«Anglais»', 
    				  'Fr' => 'Français',
    				  'IT' => 'Italie',
    	              'Nl' => 'Pays-Bas_neerlande'); 
     
    }
    header('Location: langue/' . $Langue . '/accueil.php');
    { 
      header('Location: langue/' . $Langue_default . '/accueil.php'); 
    } 
     
    ?>
    Merci.

Discussions similaires

  1. Redirection fonction langue du navigateur
    Par Invité dans le forum Langage
    Réponses: 1
    Dernier message: 23/08/2013, 08h54
  2. Detection Navigateur et redirection
    Par jeromelabbe0649 dans le forum Langage
    Réponses: 5
    Dernier message: 25/01/2012, 23h35
  3. Redirection suivant langue du navigateur
    Par Mister Paul dans le forum Langage
    Réponses: 2
    Dernier message: 23/11/2010, 16h19
  4. [JSP] Récupérer la langue du navigateur sans js
    Par Snivel dans le forum Struts 1
    Réponses: 2
    Dernier message: 31/03/2006, 17h56
  5. Détecter l'activation de Javascript avec des JSP
    Par TonioLeRital dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 10/11/2005, 09h31

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