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 :

Langage du site avec langue par défaut


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Langage du site avec langue par défaut
    Bonjour je n'ai pas vraiment trouver la bonne section donc je poste ici:

    Je m'explique sur mon probleme:
    J'ai donc un site qui va etre multi langue a l'aide d'un choix par un menue , il change une variable dans la base de donnée.

    Cette variable et commandee par la langue du navigateur ,le souci et que je ne peut plus changer la langue via le menue et bref plus rien ne marche ...

    voila le changement de variable via la langue du navigateur:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if (!isset($lg)) 
    {
    	$lg = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
    	$lg = strtolower(substr(chop($lg[0]),0,2));
     
    	if($lg == "fr")
    		mysql_query("UPDATE accueilV2 SET langue = '1' WHERE ID='1' ") or die(mysql_error());
    	else
    		mysql_query("UPDATE accueilV2 SET langue = '3' WHERE ID='1' ") or die(mysql_error());
     
    }

    le navigateur et en francais ? alors la variable met le site en francais.
    Sinon elle le met en anglais

    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
     
    switch($page)
    	    {
    			case 'fr':	
    				mysql_query("UPDATE accueilV2 SET langue = '1' WHERE ID='1' ") or die(mysql_error());
    				header("Location: index.php");
    				exit;
    				break;
    			case 'en':	
    				mysql_query("UPDATE accueilV2 SET langue = '2' WHERE ID='1' ") or die(mysql_error());
    				header("Location: index.php");
    				exit;
    				break;
    			case 'de':	
    				mysql_query("UPDATE accueilV2 SET langue = '3' WHERE ID='1' ") or die(mysql_error());
    				header("Location: index.php");
    				exit;
    				break;


    ca c'est la modification de la variable via le menue

    donc la variable et donner soit par le navigateur par default soit par le menue car la variable la modification de langue via lg (langue par default du navigateur) ne peut se produire qu'une fois (via isset)

    Donc voila j'aimerai en gros savoir comment definir une langue par defau qui puisse etre enssuite modifier par le menue .

    Merci beaucoup .

  2. #2
    Membre éprouvé
    Citation Envoyé par CaZaE Voir le message
    J'ai donc un site qui va etre multi langue a l'aide d'un choix par un menu , il change une variable dans la base de donnée.
    Je n'ai pas lu la totalité de ton message ni ton script, mais cette phrase me choque :
    Ta base de données est commune à tous les utilisateurs
    Donc, si quelqu'un choisit l'anglais, tu mets l'anglais dans ta base. La personne suivante choisit le français, qui sera mis dans ta base, et dès lors l'Anglais verra les pages en français et remettra l'anglais. Le Français pas content rechangera la langue en français et les deux quittent ton site qui change de langue sans leur demander leur avis.

    La langue ne doit pas être une donnée dans la base, mais une donnée liée à l'utilisateur, donc par exemple en session

  3. #3
    Nouveau Candidat au Club
    C'est justement ça que je voudrais éviter c'est pour ça que j'aimerai avoir une solution un style de variable de session ou quelque chose comme ça...

  4. #4
    Membre régulier
    Pourquoi ne pas utiliser un cookie ?

  5. #5
    Nouveau Candidat au Club
    Le soucis c'est que j'aimerai qu'il y est le moin de chose qui traine sur le pc de l'utilisateur.

    Une variable de session serai t'elle capable d'acomplir cette tache?

  6. #6
    Expert éminent
    Bien sur

    Pour enregistrer une variable dans la session de l'utilisateur :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    $_SESSION['langue'] = $lg;


    et pour la récupérer :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset($_SESSION['langue'])) {
        //là tu travail avec le résultat, exemple :
        $lang = $_SESSION['langue'];
    }


    N'oublie pas session_start() sur chaque page où tu veux utiliser les sessions...
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...