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 :

Redirection fonction langue du navigateur


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Redirection fonction langue du navigateur
    Bonjour j'aimerais faire pour un site une redirection vers le site anglais (à la base = français) J'ai fait comme ceci

    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
    <?php
    $accept_language = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
    $lang = $accept_language[0];
    echo $lang;
    switch ($lang)
    {
        case 'en-US':
        case 'en':
            echo 'En';
    		header("location: ./en/");
            break;
        default:
            echo 'Fr';
    		header("location: ./fr/");
    }
    ?>
    Ça fonctionne bien!!!

    1-Mais est ce que c'est une bonne méthode...et
    2-est ce que ca serait possible de faire un choix par la personne sur quel site ou être dirigé au lieu d'y aller directement? Dans le sens de:

    "Nous avons détecté l'utilisation de l'anglais...blabla est ce que vous voulez être redirigé vers le site anglais...."


    Voilà merci pour les info

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    1/ En tout début de fichier :
    Code php : 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
    <?php session_start();
    // Langues du site
    $langue_array = array('fr','en');
    // Initialisation de la langue
    if (empty($_SESSION['Langue'])) {
    	$Langue_accept = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
    	$Langue_accept = strtolower(substr(chop($Langue_accept[0]),0,2));
    	if(in_array($Langue_accept, $langue_array)){
    		$_SESSION['Langue'] = $Langue_accept;
    	} else {
    		$_SESSION['Langue'] = 'fr';
    	}
    //	header('location: ./'.$_SESSION['Langue'].'/');
    }
    // Récupération de la langue (Formulaire)
    if (!empty($_POST['choixlangue'])) {
    	$_SESSION['Langue'] = $_POST['choixlangue'];
    //	header('location: ./'.$_SESSION['Langue'].'/');
    }
    ?>
    2/ Formulaire : Choix Langue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!-- Formulaire : Choix Langue -->
    <form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>" onchange="submit();">
    	<select name="choixlangue">
    <?php 	foreach($langue_array as $lang){ ?>
    	<option value="<?php echo $lang; ?>"<?php if($_SESSION['Langue']==$lang) echo ' selected="selected"'; ?>><?php echo $lang; ?></option>
    <?php 	} ?>
    	</select>
    	<noscript><input type="submit" value="OK"/></noscript>
    </form>
    Dès que $_SESSION['Langue'] est défini, tu en fais ce que tu veux.

    Si par exemple tu as des fichiers qui dépendent de la langue :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include('fichier-'.$_SESSION['Langue'].'.php'); ?>
    Dernière modification par Invité ; 23/08/2013 à 09h24.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/08/2013, 20h59
  2. Redirection suivant langue du navigateur
    Par Mister Paul dans le forum Langage
    Réponses: 2
    Dernier message: 23/11/2010, 16h19
  3. Detecter la langue du navigateur avec redirection
    Par xunil2003 dans le forum Langage
    Réponses: 6
    Dernier message: 21/11/2010, 19h05
  4. Réponses: 0
    Dernier message: 13/08/2010, 12h35

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