Site muòtilangue

cs_faby38 Messages postés 32 Date d'inscription lundi 23 mai 2005 Statut Membre Dernière intervention 20 juillet 2005 - 20 juin 2005 à 09:50
cs_faby38 Messages postés 32 Date d'inscription lundi 23 mai 2005 Statut Membre Dernière intervention 20 juillet 2005 - 20 juin 2005 à 15:07
Bonjour,
Je suis actuellement en train de creer un site en 4 langues. Pour cela, je recupere la langue choisie par l'utilisateur dans la page d'accueil et je lui envoie un cookie qui va memoriser cette langue. J'utilise ce choix pour faire afficher les autres pages dans la bonne langue.
Dans une des pages j'ai la boucle suivante :

<?php


define('LangDefaut','it');
define('SQLLangDefaut','it');


if(array_key_exists('$lang', $_GET)) $LaLang=$_GET['$lang']; else $LaLang=LangDefaut;
switch ($LaLang){
case 'fr': $SQLLang='fr';
break;
case 'de': $SQLLang='ted';
break;
case 'en': $SQLLang='ing';
break;
case 'it': $SQLLang='it';
break;
default : $SQLLang=SQLLangDefaut;
$LaLang=LangDefaut;


}//end switch
$ChaineSQL="SELECT casa_id, foto1, citta, descri_{$SQLLang} AS description FROM $table ORDER BY citta";
$rs=mysql_query($ChaineSQL) or die('Houston, nous avons un problème');



while ($val=mysql_fetch_array($rs)){
echo "";
echo "(Rif :", $val["casa_id"], ")" ;
echo $val["citta"];
echo cut($val['description'],100,' '), ' (Segue) ';
}//wend
?>

Cette boucle recupere dans la base de donnees, la description dans la bonne langue suivant la langue enregistree. J'ai un probleme car la description qui est recupere est toujours celle de la langue par defaut, elle ne prend pas en compte le $_GET['$lang']. Comment cela est possible?

Merci.


Faby

10 réponses

superbaloo78 Messages postés 87 Date d'inscription vendredi 29 août 2003 Statut Membre Dernière intervention 19 mai 2006
20 juin 2005 à 10:22
Le cookie ne se recupere pas par la commande $_GET mais par $_COOKIE de
plus si ton utilisateur n'accepte pas les cookies ?? tu fais comment ??
Le mieux est d'integrer une variable session avec la langue de
l'utilisateur comme ca il n'y vera que du feu !



Pour les sessions c'est $_SESSION['lang'] = 'fr' (pour la definir) et $lang = $_SESSION['lang'] pour connaitre le contenu



Superbaloo
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 juin 2005 à 10:37
hello,



if(array_key_exists('$lang', $_GET)) $LaLang=$_GET['$lang']; else $LaLang=LangDefaut;

switch ($LaLang){

case 'fr': $SQLLang='fr';

break;

case 'de': $SQLLang='ted';

break;

case 'en': $SQLLang='ing';

break;

case 'it': $SQLLang='it';

break;

default : $SQLLang=SQLLangDefaut;

$LaLang=LangDefaut;



$LaLang=$_GET['$lang'] => tu es sur de ton ecriture la...?

Ce que je veux dire c'est :

<?php

$lang = 'bla';

$tab['bla'] = 'test';

echo $tab['$lang'];

?>



Ceci ne fonctionnera pas. $lang entre quotes ne sera pas interprete, donc ne vaudra pas 'bla'.

En plus je ne pige pas la logique de ton truc.

Tu cherches dans ton tableau $_GET une clef qui soit egale au contenu
d'une variable $lang. Ok...j'aurais pense que cette variable contienne
'fr', ou 'en' par exemple. Ensuite, tu mets la VALEUR du tableau
$_GET['$lang'] (sachant que ta clef, la, n'aura pas la valeur de ta
variable $lang...ta clef restera la chaine '$lang'...), a une autre
variable. Quelle est la valeur de cet index de ton tableau...? Pourquoi
ne pas utiliser directement la clef ?

J'aurais plutot vu un truc du genre $_GET['langue'] = 'fr' par exemple.

Enfin, LangDefaut est bien une constante...?
0
cs_faby38 Messages postés 32 Date d'inscription lundi 23 mai 2005 Statut Membre Dernière intervention 20 juillet 2005
20 juin 2005 à 10:57
Aurais tu un exemple de code pour que je voye exactement comment recuperer le choix de la langue?


Faby
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 juin 2005 à 11:02
Bah non ca depend comment tu fais ton compte lol.
Soit tu passes ca dans l'url, et c#est dans $_GET, soit tu mets ca dans un cookie, et c'est $_COOKIE. Ou une session, et c'est dans $_SESSION...etc.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
20 juin 2005 à 13:39
"if(array_key_exists('$lang', $_GET)) $LaLang=$_GET['$lang']; else $LaLang=LangDefaut;"

Un " if ( isset($_GET['lang']) ) {

$LaLang = $_GET['lang'];

else

$LaLang = LangDefaut;

" ne serait pas mieux par hasard ? Plutot qu'un array_key_exists ? Bof, ca doit faire pareil de toute facon...
0
cs_faby38 Messages postés 32 Date d'inscription lundi 23 mai 2005 Statut Membre Dernière intervention 20 juillet 2005
20 juin 2005 à 13:57
en fait non c pas mieux parce kil me dit : Undefined index: lang !!!


Faby
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 juin 2005 à 14:00
Ben tu m'etonnes...c'est bien ce que je te disais.
0
cs_faby38 Messages postés 32 Date d'inscription lundi 23 mai 2005 Statut Membre Dernière intervention 20 juillet 2005
20 juin 2005 à 14:46
$_GET['langue'] = 'fr' tu l'aurais mis dans le if si j'ai bien compris.... je vois pas l'interet....


Faby
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 juin 2005 à 14:56
Non, c'est la structure de ton tableau qui ne me parait pas logique...
0
cs_faby38 Messages postés 32 Date d'inscription lundi 23 mai 2005 Statut Membre Dernière intervention 20 juillet 2005
20 juin 2005 à 15:07
Je suis desolee mais je ne comprends pas ce que tu veux dire!


Faby
0
Rejoignez-nous