FAIRE UN SITE MULTILINGUE (ARRAY) + COOKIE

bthivent Messages postés 49 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 26 janvier 2005 - 13 nov. 2004 à 15:16
cs_lanner Messages postés 131 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 8 avril 2015 - 30 sept. 2008 à 23:16
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/27547-faire-un-site-multilingue-array-cookie

cs_lanner Messages postés 131 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 8 avril 2015
30 sept. 2008 à 23:16
salut, definir une langue par defaut si l'on ne veux pas clicker il y a moyen ?
kmimi Messages postés 1 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 14 août 2008
14 août 2008 à 14:04
Merci pour ce code et ses corrigés, qui marche très bien.
est-il possible de ne pas avoir 2 pages:page=fr et page=en
mais le chargement se fait sur le même page c'est à dire index
merci
pblake Messages postés 2 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 20 avril 2006
20 avril 2006 à 13:33
quel est le code qui permet de conserver la langue choisie par exemple sur la page d'accueil sur toutes les autres pages d'un site ?
tonio2004 Messages postés 1 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 3 mai 2005
3 mai 2005 à 15:13
est il possible d'appliquer cette méthode à l'asp?
cs_Kevin007 Messages postés 40 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 octobre 2006
4 janv. 2005 à 19:15
PS ::::: Omigo:
N'utilise pas " alt="" />.

Honte à moi lol :D

Mais plutôt :

<?php
$language = ( isset ( $_COOKIE[ 'monsite_lang' ] ) ) ? $_COOKIE[ 'monsite_lang' ] : 'default_language';
?>
" alt="" />
cs_Kevin007 Messages postés 40 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 octobre 2006
4 janv. 2005 à 19:11
Tu peux remplacer cette partie du code modifiée par Anthomicro :

<?php
if(!isset($_GET['lang']) OR empty($_GET['lang']))
{
echo 'Erreur, aucune langue n\'a été choisie...';
}
else
{
setcookie('monsite_lang',$_GET['lang']);
header('Location: accueil.php');
}
?>

par :

<?php
if(!isset($_GET['lang']) || empty($_GET['lang']) || !file_exists($_GET['lang']))
{
echo 'Erreur, aucune langue n\'a été choisie...';
}
else
{
setcookie('monsite_lang',$_GET['lang']);
header('Location: accueil.php');
}
?>

Voilà, je n'ai pas essayé, mais cela devrait marcher.

PS : Je n'ai pas utilisé OR comme Anthomicro par question d'habitude...
Voilà, A+
opingo Messages postés 5 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 4 janvier 2005
4 janv. 2005 à 17:01
danger comment ça ?
c'est risqué risqué ou négligeable ?
quelle autre méthode pourrait être utilisée?
cs_Kevin007 Messages postés 40 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 octobre 2006
3 janv. 2005 à 22:27
De rien :D
Mais il y a 'danger' si j'applique la méthode que j'ai "décrit" plus haut...
opingo Messages postés 5 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 4 janvier 2005
3 janv. 2005 à 20:17
merci bien ;)
cs_Kevin007 Messages postés 40 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 octobre 2006
3 janv. 2005 à 20:15
opingo -> Bien sur :

" alt="" />
opingo Messages postés 5 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 4 janvier 2005
3 janv. 2005 à 19:02
Bonsoir à tous et merci pour ata source que j'ai réussi à faire fonctionner, ça roule.

J'ai une question, ou plutôt une suggestion ( teintée d'espoir que tu la suive et fasse une petite évolution dans ton code afin de le compléter ) :

Est-il possible également de procéder au chargement d'une image par un autre afin de traduire aussi les graphiques du site comme les boutons ?

@+ et bonne année
cs_Kevin007 Messages postés 40 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 octobre 2006
21 déc. 2004 à 15:21
Il serait bon de rajouter un contrôle pour voir si le fichier existe, non ?
Car si je fais : choix_lang.php?lang=np, ça va enregistrer un cookie avec np comme langue et inclure un fichier qui n'existe pas...
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
13 nov. 2004 à 19:01
Salut :-)

Bon bah on va rabacher les mêmes commentaires, à savoir ceci :

<?
?>

On met TOUJOURS <?php pour des raisons de portabilité, c'est mieux.

Ensuite les

$lang array("welcome"> "Bienvenue",
"text1" => "Mon texte 1",
"text2" => "Mon texte 2",
);

inutile de mettre tout entre doubles quotes, les simples suffisent :

$lang array('welcome'> 'Bienvenue',
'text1' => 'Mon texte 1',
'text2' => 'Mon texte 2'
);


<?
include('lang_fr.php'); // include('lang_en.php') si vous voulez la langue anglaise.
echo $lang["welcome"] . "
" . $lang["text1"] . "
" . $lang["text2"];
?>


Bon bah même chose :
<?php
include 'lang_fr.php';

echo $lang['welcome'],'
',$lang['text1'],'
',$lang['text2'];

?>

Ensuite

<?
if(!$_GET["lang"])
{
echo "Erreur, aucune langue n'a été choisie...";
}
else
{
setcookie("monsite_lang",$_GET["lang"]); // on enregistre un cookie qui s'éffacera a la fermeture de la page. Si vous avez choisi langue française, alors $_GET["lang"] aura comme valeur "fr"...
header( "Location: accueil.php");
}
?>

à remplacer par

<?php
if(!isset($_GET['lang']) OR empty($_GET['lang']))
{
echo 'Erreur, aucune langue n\'a été choisie...';
}
else
{
setcookie('monsite_lang',$_GET['lang']);
header('Location: accueil.php');
}
?>

Je pense avoir tout dit...

a +
bthivent Messages postés 49 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 26 janvier 2005 3
13 nov. 2004 à 15:16
Postez vos comentaires :D
Si vous recontrez une erreur, merci de me le faire savoir
Rejoignez-nous