Site bilingue

Résolu
Rente Messages postés 129 Date d'inscription   Statut Membre Dernière intervention   -  
Rente Messages postés 129 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je code un site bilingue (fr/all)
si vous avez une méthode qui fonctionne, je suis prenneur, mais là je taff sur "une version personnelle"...
en gros sur la page d'acceuil j'ai mi deux liens vers la même page, chacun de ces liens transmet une variable $langue
sur la page d'après, j'affiche par un echo la variable (pour vérifier quelle soit bien transmise)
ensuite je fais un if pour un echo allemand et un else pour un echo francais...
mais ca ne fonctionne pas... j'ai mal codé??

echo $_GET['langue'];

if($langue="francais")
{
echo "<p>francais</p>";
echo $_GET['langue'];
}

else
{
echo "<p>allemand</p>";
echo $_GET['langue'];
}



merci de m'aider...@ bientot
A voir également:

1 réponse

macgawel Messages postés 664 Date d'inscription   Statut Membre Dernière intervention   89
 
Bonjour.

Question bête... Il y a quoi dans ta variable $langue ?
Parce que là, tu ne sembles pas l'affecter :-P
0
Rente Messages postés 129 Date d'inscription   Statut Membre Dernière intervention   7
 
question bête, peu être, mais pas sans interet....
voici le lien qui crée et donne la valeur de ma variable :
<p><a href ="presentation_ecole.php?langue=francais">Accédez au site en Francais</a></p>
ce lien est sur l'index, il donne accès à la page contenant les echo ci-dessus...
0
macgawel Messages postés 664 Date d'inscription   Statut Membre Dernière intervention   89 > Rente Messages postés 129 Date d'inscription   Statut Membre Dernière intervention  
 
Oui, mais dans le code que tu donnes :
echo $_GET['langue'];

if($langue="francais")
{
echo "<p>francais</p>";
echo $_GET['langue'];
} 

Tu ne donnes pas de valeur à ta variable $langue.
Tu peux vérifier ce qu'elle vaut en faisant un echo $langue; avant ton test...

(En plus tu effectues une affactation, pas un test. Il faut tester if($langue == "francais") !)

Soit tu prends directement la valeur envoyée if($_GET['langue'] == "francais").
Soit (plus fiable) tu affectes ta variable :
$langue=$_GET['langue'];
Et, après d'éventuelles vérifications, tu peux l'utiliser dans ton code...

0
Rente Messages postés 129 Date d'inscription   Statut Membre Dernière intervention   7 > macgawel Messages postés 664 Date d'inscription   Statut Membre Dernière intervention  
 
bhen l'url (dans ce cas) lui donne la valeur "francais"
et avant de faire le if, je faisait un echo pour voir si la valeur été transmise ou pas, et ca, ca marche.
ensuite, j'ai rajouté un = dans le test, et j'ai affecté ma variable.
ca donne ca (et ca fonctionne) (à priori):

$langue=$_GET['langue'];

echo $_GET['langue'];

if($langue=="francais")
{
echo "<p>le texte affiché est en francais</p>";
echo $_GET['langue'];
}

else
{
echo "<p>le texte affiché est en allemand</p>";
echo $_GET['langue'];
}

bon, par contre je débute en php (et en html je suis pas très bon non plus) donc ya peu être plus facile, et moins "bizarre"... mais bon j'ai pensé à ca pour faire un site bi-lingue.

de plus si tu peux m'expliquer ca (ou me confirmer)
$langue=$_GET['langue']; ca sert à récupérer le contenu de ma variable crée par l'url et de le mettre dans une nouvelle variable appartenant à la page..?
(oui ca marche, mais je sais pas pourquoi...)
0
macgawel Messages postés 664 Date d'inscription   Statut Membre Dernière intervention   89 > Rente Messages postés 129 Date d'inscription   Statut Membre Dernière intervention  
 
En fait, quand tu envoies des variables à une page, que ce soit par GET (dans l'URL) ou par POST (via formulaire), la page récupère un tableau contenant les variables (je schématise un peu, mais bon...).

Quand on va à l'adresse http://www.monsite/mapage.php?langue=francais, en réalité on ouvre la page mapage.php (ou plutôt, le serveur va exécuter le script mapage.php), en passant les variables dans un tableau $_GET.

Mais la variable $langue n'existe pas.
A toi de créer cette variable, et de lui donner la valeur $_GET['langue'].

Dans l'idée, le principe est correct...
Histoire de critiquer un peu :
- Il faut prévoir le cas où il n'y a pas de paramètre passé (http://www.monsite/mapage.php).
Dans ce cas, $_GET['langue'] n'est pas défini, et tu risques un message d'erreur.
Solution :
// Langue par défaut
$langue = 'francais';
if ( isset ($_GET['langue']) ) {
   $langue = $_GET['langue'];
}

- Il faut "filtrer" les paramètres que tu récupère, on ne sait jamais... En général, il y a une sécurité au niveau des serveurs.

- Tu risques d'avoir des problèmes si un jour tu veux mettre aussi ton site en anglais (ou autre). Ou en tout cas, ça risque de vite devenir lourd.

Si tu envisages de passer un jour en multilangues, tu pourrais faire quelque chose comme ça :
// On crée un tableau qui contient les langues
// Tu peux en mettre autant que tu veux :-)
$Tlangues = Array('francais', 'allemand', 'anglais');
// Par défaut, on est en français
$langue = $Tlangues[0];
// Si on a envoyé quelque chose dans l'URL
// ET que ce quelque chose est dans le tableau
// On affecte la langue 
if ( isset ( $_GET['langue'] ) && in_array ( $_GET['langue'], $Tlangues ) ) {
  $langue = $_GET['langue'];
}

0
Rente Messages postés 129 Date d'inscription   Statut Membre Dernière intervention   7 > macgawel Messages postés 664 Date d'inscription   Statut Membre Dernière intervention  
 
C'est pour dire que j'ai réussit à faire le site, en gros, j'ai utilisé des sessions avec une seule variable 'langue'
et ca marche, ya des tests à faire pour vérifier si la variable existe déjà, si elle est dans l'url, ou si ya rien...
en gros c'est ca...
j'ai mis un pti lien qui permet de changer la langue en redirigeant vers la même page avec la variable opposée...

voila, si tu veux les détails... demandes moi le code.
Merci, @ bientot
0