J'ai pas dit $_SESSION['$lang'], j'ai dit $_SESSION['lang'].
J'ai pas dit $_SESSION['$lang'], j'ai dit $_SESSION['lang'].
T'es sur que ça gène l'absence de; ? Je vois pas en quoi c'est obligatoire en fin de code et après un echo si y'a rien après. J'ai pas testé mais là comme ça ça me gène pas en tout cas.Envoyé par GregPeck
Php c'est pas javascript... on ferme toujours les instructions avec le ; ... si javascript est plutot cool avec ça ça n'en reste pas moins une erreur de programation... .. .
@ tchaOo°
De toute façon je le fais dans mes scripts, là c'était pour l'exemple. C'est pas un grand mot erreur de programmation quand même ?
je place ceci dans chaque page?Envoyé par kankrelune
au fait merci de votre patience
Bah le mieux c'est d'essayer de piger ce que tu fais.
Tu veux qu'une page P soit affichée soit en English soit en Français. Bon. Il va bien falloir choisir non ? Et il va bien falloir une variable pour déterminer le choix ,non? Si !
Donc chaque page à afficher va avoir besoin d'une variable lui disant dans quelle langue elle doit être affichée. Donc cette variable doit être soit tout le temps présente dans la session soit tout le temps présente dans le lien. Mais une fois que tu l'as récupéré dans le lien, tu as plus besoin de faire la première partie.
Ah mon avis pour savoir quelle langue ajouter dans le lien il faudrait faire, une fois avoir afficher la première variable en fonction du choix du form (récupéré via $_GET[] donc):
et ça dans l'url du lien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (isset($fr)) {echo"$fr";} else {echo"$ang;}
@ psychoBob... non ce n'est pas un grand mot... même si ça marche il ne faut pas prendre de mauvaises habitudes... oublier le point à la fin de la phrase est une erreur de grammaire même si tout le monde comprend la phrase... .. .
Le truc c'est que ?> remplace le ; donc si tu fais...
ça passe mais si tu fais...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php echo 'test'; echo 'pwet' ?>
Ca plante... .. .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php echo 'test' echo 'pwet'; ?>
@ clovis200... tu met le code d'inclusion du fichier de language dans un fichier inclu par toutes les pages (genre header.php) et tu modifie tous les liens... c'est une façon de faire mais ce n'est pas forcement la plus simple vu qu'il faut modifier tous tes liens et formulaires... mais je crois que psychoBob a très bien résumé la chose... .. .
@ tchaOo°
La vache, heureusement que tu me l'as dis kankrelune ! lolça passe mais si tu fais...
Ca plante... .. .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php echo 'test' echo 'pwet'; ?>
La solution de psychoBob est de loin la meilleur...
Je ne parle pas de l'oublie de ;
Certe, ce scriptEnvoyé par psychoBobest sympa g bien aime sauf que moi je choisi l'anglais exemple je veux qui reste dans toute les pages
Code : Sélectionner tout - Visualiser dans une fenêtre à part &lang=<?php echo $lang;?>
Je pense que c'est mieux en même temps il risque de s'embrouiller avec les sessions, il va avoir le problème des id dans l'url etc....
Envoyé par clovis200
j'ai édité mon poste au dessus, relis.
**edit**
Tiens :
Faut tester mais ça me semble un peu du bricolage, perso j'aurais choisi les session. Enfin si ça fonctionne...Ah mon avis pour savoir quelle langue ajouter dans le lien il faudrait faire, une fois avoir afficher la première variable en fonction du choix du form (récupéré via $_GET[] donc):
Code :
if (isset($fr)) {echo"$fr";} else {echo"$ang";}
et ça dans l'url du lien.
bon ca y est la je suis isset je isset mdrrrrrrrrr dans l'url mais bon je recupere la variable de ma page decide-lang.php :ensuite je fais un require de cette page dans ma page index.php jusque la tout ce traduit , bon je clique sur un lien vers produits.php et la g de nouveau du francais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php if ($_GET['lang']=='fr'){ // si la langue est 'fr' (français) on inclut le fichier fr-lang.php include('/lang/fr-lang.php'); } else if ($_GET['lang']=='en'){ // si la langue est 'en' (anglais) on inclut le fichier en-lang.php include('lang/en-lang.php'); } else { // si aucune langue n'est déclarée on inclut le fichier fr-lang.php par défaut include('lang/fr-lang.php'); } ?>
Je te l'ai dit au dessus.
Tu affiches une fois en anglais ou français selon la variable. Mais après ta variable, puisqu'elle n'est pas en session, elle a DISPARU.
Donc les autres pages se réaffichent en français. Donc tu DOIS la transmettre à chaque page.
Si tu le fais en session c'est auto, si tu le fais dans l'url, tu dois écrire SOIT $ang SOIT $fr dans le texte des liens de la page qui réceptionne la variable. Ce afin que la variable soit de nouveau transmise à la page visitée en cliquant sur un lien.
Pour ce faire tu testes la variable qui vient d'être réceptionnée et tu réaffiches la même dans l'url.
Maintenant si le gars tappes une url dans la barre de navigation ou fait un retour, hop plus de variable t'auras la page par défaut, sauf si tu passes par un cookie ou une session.
**edit**
Vraiment le coup de la variable dans l'url c'est bidon, y'a les deux cas que je viens d'écrire, les formulaires et tout... le visiteur qui choisit anglais va sans arrêt se retrouver avec une page par défaut en français. Le mieux c'est la session et le cookie, quand il revient hop il est en anglais auto si tout ce passe bien.
le truc de la session j'aime bien sauf que je ne parviens pas a la mettre a execution avec ce que g
Envoyé par psychoBob
Moi c'est à ça que je pense... si l'internaute n'accepte pas les cookie ça risque d'être la merde... .. .
Bah non... pas s'il modifi manuellement ses liens ou fait ob_start('une_fonction'); après je suis comme toi je préfère l'idée des sessions mais ça dépend de ce que Clovis veut faire... .. .Vraiment le coup de la variable dans l'url c'est bidon, y'a les deux cas que je viens d'écrire, les formulaires et tout... le visiteur qui choisit anglais va sans arrêt se retrouver avec une page par défaut en français.
@ tchaOo°
ok t fin merci alors voici le script contenu dans la page nomme decide-lang.php :
a savoir que les pages -lang.php contiennent les define TXT
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php if ($_GET['lang']=='fr'){ // si la langue est 'fr' (français) on inclut le fichier fr-lang.php include('/lang/fr-lang.php'); } else if ($_GET['lang']=='en'){ // si la langue est 'en' (anglais) on inclut le fichier en-lang.php include('lang/en-lang.php'); } else { // si aucune langue n'est déclarée on inclut le fichier fr-lang.php par défaut include('lang/fr-lang.php'); } ?>
voici le debut de la page index.php en francais avec les echos 'define' txtet le debut de la page produits :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?php include('cms/admin/db_common.php'); $db->connect(); $query="SELECT item_name,item_id,item_pic,item_comment,rc_id from cms_shop_items WHERE item_new=1"; $db->query($query); $num=$db->num_rows(); $db->seek(rand(0,--$num)); $db->next_record(); require('decide-lang.php'); ?>qui ont des liens qui se multiplis dans al meme page donc il me faut un variable de session pour la langue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <? include_once('cms/admin/db_common.php'); include_once('cms/admin/functions.inc.php'); $c=get_param('c'); if (!$c) $c=4; $query="SELECT a.category,b.category FROM cms_shop_cat a, cms_shop_cat b WHERE a.cat_id=b.parentid AND b.cat_id=".tosql($c); $db->query($query); $db->next_record(); $catparent=$db->f(0); $catname=$db->f(1); require("decide-lang.php"); ?>
au fait get_param est un variable de sesion, je ne peux pas l'integrer dedans? car je crains que ton script fasse defaut avec la session deja existante ou bien?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager