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 :

PHP et cookies : site multilingue


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut PHP et cookies : site multilingue
    Bonjour,

    étant débutant en php je me tourne vers vous, j'ai mon site en français qui va devenir multilingue prochainement et pour ça j'ai choisi, de créer quelque colonne supplémentaire dans ma BDD, en effet beaucoup d'élément ne change pas selon la langue. J'ai crée mon menu déroulant permettant le choix de la langue. Lorsqu'un utilisateur arrivera la première fois sur le site, aucun cookie n'étant détecté je souhaite mettre l'anglais en défaut. Après selon le choix de l'utilisateur (bouton du menu déroulant) je souhaite que la langue choisi soit enregistrer dans les cookies.

    En gros, je veux que :

    Si l'utilisateur n'a pas de cookie : la langue par défaut est anglais, si il y en a récupérer la langue choisi.

    ça peut paraître simple, mais si quelqu'un pouvais me donner une solution concrète adaptable à ma situation je suis preneur.

    Par avance merci.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Tu peut tester le cookie comme tu teste une variable normale, sauf que c'est un élément de tableau. Donc si veux qu'en absence de cookie la langue soit en anglais tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lang = isset($_COOKIE["lang"]) ? $_COOKIE["lang"] : 'en';
    Sinon normalement on détecte plutôt la langue du navigateur (donc la langue du visiteur), et si elle ne fait pas partie des langues traduites on met en anglais.

  3. #3
    Invité
    Invité(e)
    Par défaut
    J'ai traiter finalement mon problème de cette façon je pense que cela se rapproche de ta solution,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php  
     
      if(!empty($_COOKIE['langue']))
      {   
        $langue = $_COOKIE['langue'];    
      }
     else {
    	 $langue = 'en';	 
     }
     
    ?>

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Oui ma solution en développé serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php  
     
      if(isset($_COOKIE['langue']))
      {   
        $langue = $_COOKIE['langue'];    
      }
     else {
    	 $langue = 'en';	 
     }
    ?>
    et la différence entre !empty et isset c'est que !empty rejettera également les valeurs '' ou 0 ou le booléen false.
    J'avais utilisé les opérateurs ternaires qui permettent d'écrire des conditions simples sur une seule ligne de façon condensée.

    Cela dit si la récupération du cookie échoue, avant de mettre en anglais du ferais mieux de détecter la langue du navigateur. Ainsi à la première visite, même sans cookie, le visiteur verra sa langue préférée si elle est traduite et sinon la langue par défaut.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ok merci pour l'explication, je vais faire ça du coup

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Pour détecter la langue du navigateur ce post peut t'aider.

Discussions similaires

  1. [Cookies] Site multilingue et sessions
    Par franc3 dans le forum Langage
    Réponses: 6
    Dernier message: 20/03/2007, 00h17
  2. Réponses: 4
    Dernier message: 28/09/2006, 20h20
  3. [PHP/DB] site multilingue choix txt/DB ??
    Par speedev dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/07/2006, 08h22
  4. [Cookies] Site PHP multilangue
    Par RobinNono dans le forum Langage
    Réponses: 4
    Dernier message: 15/05/2006, 13h47
  5. [Cookies] problème avec site multilingue
    Par lacfab dans le forum Langage
    Réponses: 13
    Dernier message: 30/12/2005, 23h10

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