Site multilingue avec les sessions

cs_rastagnol Messages postés 59 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 25 octobre 2007 - 8 oct. 2004 à 16:37
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013 - 8 juin 2006 à 06:20
bonjour !
je souhaiterais faire un site multilingue avec les sessions mais je ne sais pas trop comment m'y prendre.
mon index est une page ou on peut choisir francais ou anglais
puis sur mon site les images et les textes changent selon la langue selecionnée!

merci de votre aide et de vos conseils

21 réponses

LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
8 oct. 2004 à 17:56
Yo,

celui ci est fait avec cookie, adapte le avec une session, trés simple.

http://www.phpdebutant.org/article107.php

Laurent
http://phpsources.net
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 oct. 2004 à 19:20
Salut ;-)

Pour les images tu crées par exemple deux répertoires ayant le même contenu (sauf en ce qui concerne le texte des images, mais il faut que les images aient le même nom). Par exemple ces deux répertoires :

fr;en (pour français, english)

Ensuite lorsques tu souhaites afficher tes images tu prends un code du style :

<?php

if(isset($_SESSION[

echo '';

?>

a ++

http://www.vulgarisation-informatique.com : entraide, dépannage et vulgarisation informatique
0
cs_rastagnol Messages postés 59 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 25 octobre 2007
9 oct. 2004 à 00:22
...j'ai compris pour les images . mais pas pour les textes : le tuto de phpdebutant est un peu different ...non?
je suis d'accord qu'il faille appeler un fichier de vocablulaire mais avec les sessions je ne vois pas comment faire.

merci de votre aide
0
cseagle Messages postés 99 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 5 août 2009
9 oct. 2004 à 10:03
Salut,

A mon avis tu enregistre le choix du visiteur dans une variable session :

exemple :
Il choisit français =>

if (!isset($_SESSION['langue'])) {
    if (isset($_GET['langue'])) {
        $_SESSION['langue'] = $_GET['langue'];
        $langue = $_SESSION['langue'] ;
        $_SESSION['rep_langue'] = "$langue";
    } else {
        $_SESSION['langue'] = "valeur par défaut";
        $langue = $_SESSION['langue'] ;
        $_SESSION['rep_langue'] = "$langue";
    }
} else {
    Ce que tu veux qui se passe si la variable de session langue est définie
}


Pas testé mais ça doit être un truc du genre
0

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

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
9 oct. 2004 à 13:35
N'oublie pas le session_start() au début.

a ++

http://www.vulgarisation-informatique.com : entraide, dépannage et vulgarisation informatique
0
cs_rastagnol Messages postés 59 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 25 octobre 2007
9 oct. 2004 à 16:45
ok !
mais comment appeler les textes?
0
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
9 oct. 2004 à 18:42
Slt

Ben en général on met les textes dans des tables :-)

if ($_SESSION['langue'] == 'fr' )
{
$cat = 'fr';
mysql_query("SELECT texte,cat FROM tatable WHERE cat='$cat'");
}

Laurent
http://phpsources.net
0
cs_rastagnol Messages postés 59 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 25 octobre 2007
10 oct. 2004 à 15:02
...mais je peux pas tout mettre dans des tables
ex: G plein de formulaires sur mon site, je peux pas mettre
nom :
name :
adresse :
adress :

veuillez selectionner ...
please select ...
...etc ..etc...
dans des tables.

non?
0
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
10 oct. 2004 à 19:55
Yo,

Tu fais autant de fichier que ta de langues, et tu mets tes variables dans ces fichiers. Bien sur elle ont le meme nom mais pas le meme contenu et t'apel le fichier selon la langue.

ex:

france.inc
$bonjour = 'bonjour';
$aurevoir= 'au revoir';

anglais.inc
$bonjour = 'hello';
$aurevoir= 'good bye';

italien.inc
$bonjour = 'ciao';
$aurevoir= 'ciao';

@++
Laurent
[htpp://phpsources.net htpp://phpsources.net]
0
cs_rastagnol Messages postés 59 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 25 octobre 2007
11 oct. 2004 à 11:25
... et ca risque pas de me poser des problemes d'apeller des medias, qui ont le meme nom selon la langue, au niveau de la memoire cache de l'utilisateur?
ex :si l'utilisateur ouvre le site en fr, tombe sur une premiere page qui appelle intro.swf
puis l'utilisateur va sur la version anglaise qui appelle ce meme swf.mais en anglais
sa machine ne risque pas d'ouvrir intro.swf en fr (qui est est en cache)?
0
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
11 oct. 2004 à 11:39
Slt à toi,

"tombe sur une premiere page qui appelle intro.swf
puis l'utilisateur va sur la version anglaise qui appelle ce meme swf.mais en anglais"

Fait 2 swf differents avec 2 noms distints et c'est tout!!

Pour conclure: 1 site multilangue c'est + long à programmer et faut l'accepter :o)

Bon courage!!
Laurent
http://phpsources.net
0
cs_rastagnol Messages postés 59 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 25 octobre 2007
11 oct. 2004 à 11:57
derniere question... comment faire ma page index avec mes deux boutons-images.fr et us.j'imagine que ce plus simple C de faire un formulaire qui renvoie les valeurs fr en us puis sur ma premiere page faire :
$_SESSION['fr']=$_POST['fr'];
$_SESSION['us]=$_POST['us'];

mais je ne vois pas trop comment faire ce formulaire avec deux boutons images

aussi si sur la page d'accueil( apres l'index), on a d'ecrit bienvenue ou welcome
je vais simplement faire un echo $texte_de_bienvenue; ...j'ai un peu de mal a comprendre le principe

merci de ton aide
0
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
11 oct. 2004 à 12:04
Yo,

Perso je ferais comme ca:

france
italie
anglais

Laurent
http://phpsources.net
0
cs_rastagnol Messages postés 59 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 25 octobre 2007
11 oct. 2004 à 12:10
ok ! tout simplement !!!

et si sur la page d'accueil( apres l'index), on a d'ecrit bienvenue ou welcome
je vais simplement faire un echo $texte_de_bienvenue? ...j'ai un peu de mal a comprendre le principe
0
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
11 oct. 2004 à 12:16
donc basiquement

if ($lg == fr){
include("france.inc");
}

if ($lg == italie){
include("italie.inc");
}

et les variables $texte_de_bienvenue et autres dans tes fichiers restent les memes.

Laurent
http://phpsources.net
0
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
11 oct. 2004 à 12:23
remoi,

c'est juste pour te dire que l'histoire des sessions ici n'a pas grand interrer, sauf si ta pleins de popup ou scripts externes, mais basiquement j'en vois pas trop l'interet dans un site multilangue. Ce sont tes petits drapeaux qui redirigent.

Voili voilou

Laurent
http://phpsources.net
0
cs_rastagnol Messages postés 59 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 25 octobre 2007
11 oct. 2004 à 12:28
hein? je comprends pas, là?
tu passerais tout en post ou par des cookies?
0
cs_rastagnol Messages postés 59 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 25 octobre 2007
11 oct. 2004 à 12:33
je ne comprends pas ... comment tu procederais?
0
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
11 oct. 2004 à 12:46
Pour résumer

Quand tu rentre sur ton site, si tu veux pointer sur l'anglais par exemple:

if (empty($lg)) {$lg = 'anglais';} // si $lg est vide

// si fr
if ($lg == fr){
$cat = 'fr';
include("france.inc");
}

si italie
if ($lg == italie){
$cat = 'italie';
include("italie.inc");
}

si anglais
if ($lg == anglais){
$cat = 'anglais';
include("anglais.inc");
}

Pour l'apel, changer de langue, tu le fait avec des drapeaux

drapeaux france
drapeaux italie
drapeaux anglais

puis sur tes pages par exemple:

<titre>$texte_de_bienvenue<titre> // fichier *.inc
// et les tables::
mysql_query("SELECT texte,cat FROM tatable WHERE cat='$cat'");

Laurent
http://phpsources.net
0
clovismaj Messages postés 4 Date d'inscription mercredi 7 juin 2006 Statut Membre Dernière intervention 8 juin 2006
7 juin 2006 à 23:43
Hello,

Pas mal, je te proposerais aussi ceci, je me suis cherche pour avoir une simplicite, ex tu as l'index, avec appelle anglais :[produits.php?lang=en English] et francais: [index.php Francais]en haut de lapage index.php tu mets ceci : <?
session_start();
 include_once('decide-lang.php')

page decide-lang.php, tu emt ceci :  

<?php
   if(!isset($_SESSION['user_language']))
  $_SESSION['user_language'] = 'fr';


if(isset($_GET['lang']))
   $_SESSION['user_language'] = $_GET['lang'];


if(is_file('lang'.DIRECTORY_SEPARATOR.$_SESSION['user_language'].'-lang.php'))        
    include('lang'.DIRECTORY_SEPARATOR.$_SESSION['user_language'].'-lang.php'); 
        else
            include('lang'.DIRECTORY_SEPARATOR.'fr-lang.php'); 


dans un dossier lang tu emt deux fichier un fr-lang et l'autre en-lang.php avec des define... ex define('TXT_ACCUEIL_INDEX', 'Bienvenue !');  et des echo ACCUEIL_INDEX' la ou tu veux du text

Clovis
0
Rejoignez-nous