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 :

Langue automatique + changement par drapeau


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Langue automatique + changement par drapeau
    Bonjour à tous,

    J'ai un petit soucis sur un script PHP que j'essaie de faire.
    Je vous explique:
    Je voudrais que le visiteur soit redirigé automatiquement sur le site de son pays (à savoir http://fr.monsite.com pour le francais et http://monsite.com pour l'anglais).
    Mais qu'il puisse également changer de langue via un drapeau en haut.
    Par exemple je suis francais, je suis donc redirigé vers http://fr.monsite.com mais hop je veux voir la version anglaise.
    J'arrive à faire les deux mais pas à les combiner(soit rediriger le visiteur et donc il est bloqué dans sa propre langue ou qu'on puisse cliquer sur le drapeau mais dans ce cas la il ne sera pas redirigé au départ de sa visite).
    Je ne sais pas si je suis très clair?
    Je pense qu'il faut que j'utilise une session mais je galère un peu ca faisait un moment que j'avais pas codé et je suis un peu perdu.
    Merci beaucoup d'avance pour votre aide!

    En gros c'est truc comme ca je pense:
    Page index.php EN
    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
     
    session_start();
    // si pas de langue choisi par le drapeau, début de visite
    if($_SESSION['lang'] == "")
    {
    $lang = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
    // c'est un frenchi
    if( $lang[0] == "fr")
    header('Location: http://fr.monsite.com/');
    }
    // une langue est choisie par le drapeau, le fr
    else if($_SESSION['lang'] == "fr")
    {
    header('Location: http://fr.monsite.com/');
    }
    // une langue est choisie par le drapeau, l'anglais
    else if($_SESSION['lang'] == "en")
    {
    header('Location: http://monsite.com/');
    }
    et donc l'inverse pour l'index.php FR

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bon enfait, c'était tout simple, il a juste fallu que je fasse une pause et que je mange et j'ai réussi tout de suite après.
    Voilà s'il y en a que ca peut intéresser(c'est pas optimisé pour le moment mais ca fonctionne):

    index.php partie EN
    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
     
    <?php
    // on lance la session
    session_start();
     
    // langue par défaut du visiteur
    $default_lang = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
    // on récupère que les deux premiers caractères pour que ca fonctionne sur tous les navigateurs
    $default_lang[0] = substr($default_lang[0], 0, 2);
     
    // si la langue par défaut est francais et pas d'élément dans le GET on redirige vers le fr
    if($default_lang[0] == "fr" && $_GET['lang'] == "" && $_SESSION['lang'] != "en")
    header('Location: http://fr.monsite.com/');
     
    // sinon si un élément dans le get, à savoir en
    else if($_GET['lang'] == "en")
    {
    $_SESSION['lang'] = "en";
    }
    ?>
    pour index.php partie FR, évidemment c'est la meme chose juste en inversant les langues!

  3. #3
    Membre éprouvé Avatar de Shuty
    Homme Profil pro
    Ingénieur en développement
    Inscrit en
    Octobre 2012
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur en développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 630
    Points : 1 174
    Points
    1 174
    Par défaut
    A titre d'information, la redirection peut être faire via un htaccess, c'est parfois moins lourd.
    Agence web Dim'Solution, créateur de solutions numériques
    Sites internet, ecommerce, logiciels, applications mobiles, référencement (SEO), plugin Prestashop, Magento, WordPress, Joomla!...

    Cours de trading gratuit | Envoyer des sms gratuitement | Envoyer des fax gratuitement | Plateforme de Fax à l'international

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Ah oui en effet c'est mieux je pense.
    Par contre du coup est ce que c'est faisable parce que je peux rien mémoriser dans le htaccess?
    Si le visiteur est anglais mais veux quand même voir la version française il ne pourra pas car il sera toujours redirigé vers le .com non?! Je suis obligé d'utiliser une session?!
    Merci pour l'info!!!

  5. #5
    Membre éprouvé Avatar de Shuty
    Homme Profil pro
    Ingénieur en développement
    Inscrit en
    Octobre 2012
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur en développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 630
    Points : 1 174
    Points
    1 174
    Par défaut
    Tu peux mémoriser en session mais si tu veux offrir un meilleur confort aux usagés, favorise également les cookies.
    Agence web Dim'Solution, créateur de solutions numériques
    Sites internet, ecommerce, logiciels, applications mobiles, référencement (SEO), plugin Prestashop, Magento, WordPress, Joomla!...

    Cours de trading gratuit | Envoyer des sms gratuitement | Envoyer des fax gratuitement | Plateforme de Fax à l'international

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour tes réponses Shuty!
    Je vais utiliser les cookies, c'est la meilleure solution en effet.
    Petite question du coup a propos des cookies, je vois maintenant sur pleins de site, ils demandent si on accepte les cookies. C'est devenue obligatoire de le signaler aux visiteurs?

Discussions similaires

  1. Réponses: 30
    Dernier message: 17/11/2012, 16h42
  2. VBA Changement par clic successif de couleur de cellules
    Par paulonouch dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 05/05/2008, 09h07
  3. Changer la langue automatique à la réception focus
    Par saidm dans le forum VB 6 et antérieur
    Réponses: 26
    Dernier message: 02/12/2007, 21h14
  4. Bug du clavier qui change de langue automatiquement
    Par Oceliane dans le forum Access
    Réponses: 2
    Dernier message: 13/06/2007, 15h00
  5. [HTML] changer le codage de langue de IE par html
    Par elbissat dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 29/12/2006, 15h57

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