Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/08/2006, 16h14   #1
Futur Membre du Club
 
Inscription : août 2005
Messages : 66
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 66
Points : 15
Points : 15
Par défaut [Cookies] détection de la langue du visiteur + cookie

Salut!
Malgré tous les nombreux cours et tutoriels tous plus complets et intéressants les uns que les autres, je n'ai pas trouvé comment faire...
j'ai vu le concept des cookies et de la récupération de la version du navigateur, mais pour l'appliquer à mon cas, c'est un autre problème!!!
Donc mon besoin c'est de passer mon site en multilangue.
Pour cela, il me faut:
1. détecter la langue du navigateur de mon visiteur
2. le rediriger sur la page correspondante fr, us ou autre
3. si le visiteur choisit d'aller malgré tout sur une autre version (présence de liens), je voudrais stocker l'info ds un cookie pour afficher cette version lors de ses autres visites
Pourriez-vous m'aider SVP?
Merci d'avance!
RobinNono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2006, 22h46   #2
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
tu devrais regadrer tu coté de $_SERVER['HTTP_ACCEPT_LANGUAGE']
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 11h09   #3
Futur Membre du Club
 
Inscription : août 2005
Messages : 66
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 66
Points : 15
Points : 15
OK merci Omura c gagné pour le point 1!
si vous avez des idées pour les autres, n'hésitez pas!!!
RobinNono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 11h27   #4
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
Je pense pas qu'il y ai 36 solutions, la plus simple a mes yeux serait de
- créer un dossier 'language' par exemple
- dans le dossier il y a des les fichier langue du type :
lang_fr.php
Code :
1
2
3
      $lang = array();
      $lang['welcome_text'] = 'Bonjour';
      ...
lang_en.php
Code :
1
2
3
      $lang = array();
      $lang['welcome_text'] = 'Welcome';
      ...
- tu inclut ce fichier en fonction de la langue
- (option : laisser le choix à l'utilisateur de choisir sa langue qd même)
- dans tes script au lieu d'ecrire
Code :
1
2
3
...
echo 'Bonjour';
...
tu écrit :
Code :
1
2
3
...
echo $lang['welcome_text'];
...
si tu travaille avec des fonction ou des classe n'oublie pas de faire un global $lang;


Pour ton point 3) soit tu peux utiliser les cookies
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 15h07   #5
Futur Membre du Club
 
Inscription : août 2005
Messages : 66
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 66
Points : 15
Points : 15
en fait je vais carrément utiliser MySQL pour y mettre tous mes textes et leurs traductions associées.
Mais ça revient au même que la soluce que tu me proposes
Oui je voudrais utiliser les cookies mais j'ai encore du mal à comprendre comment vérifier l'existence du cookie en question et ensuite lire les infos qu'il contient. J'ai bien vu la méthode SetCookie mais il me semble qu'elle permet seulement d'enregistrer un cookie et non pas de le lire, non?
Merci pour ton aide
RobinNono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 16h32   #6
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
pour les cookies tu va devoir te passer mde mon aide car je n'y connaît rien lol

Par contre je ne pense pas que mettre dans dans une db soit une bonne solution.
Imagine toute les requêtes que tu va devoir faire a chaque fois qu'un utilisateur veux afficher une page. N'oublie pas aussi que ça va alourdir sensiblement ta base de donnée et aussi que ta base de données peut avoir quelques problème technique ce qui te rendre des message erreur a chaque mot.

Tu devrais re réfléchir à la manière dont tu va implémenter tout ça
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 17h33   #7
Membre du Club
 
Inscription : juillet 2006
Messages : 85
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 85
Points : 55
Points : 55
Bonjour,

Ecrire un cookie avec une durée de vie assez longue :

Code :
1
2
3
4
<?
$duree = 365*24*60*60; // 1 an en secondes !
setcookie("langage","fr",time()+$duree);
?>
Lire le cookie

Code :
$value = $_COOKIE["langage"];
Bonne chance...
Attilius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 18h57   #8
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
utilise plutot les '...' au lieu des "..."

teste l'existance des cookies car moi par exemple je les supprime apres 1 semaine
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 10h58   #9
Futur Membre du Club
 
Inscription : août 2005
Messages : 66
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 66
Points : 15
Points : 15
Merci à tous pour votre aide!!!
Attilius, est-ce que tu saurais comment tester l'existence d'un cookie?
RobinNono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 11h09   #10
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Citation:
Envoyé par RobinNono
Merci à tous pour votre aide!!!
Attilius, est-ce que tu saurais comment tester l'existence d'un cookie?
Si lui ne le sait pas la le sait
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h46.


 
 
 
 
Partenaires

Hébergement Web