bien voila mon blem. je travaille sur un site monté en majorité a partir du tuto de grafikart sur la décomposition de site en php. ensuite pour rendre le site multilingue j'ai suivi son tuto sur l’internationalisation. il marche jai traduit entierement mon site mais voila je tranmet les parametre de langue q'en url, elle traduit bien la page mais ne garde pas ce parametre pour tout le site. je sais kil faut utiliser les session donc jai ecrit ceci dans mon fichier index,
code: <?php
session_start();
define("WEBROOT","/Saar/");

require 'localisation.php';

if(isset ($_GET"lang"]))
{
$_SESSION'lang']=$_GET"lang"];
}
else {
$_SESSION'lang']="fr_FR";
}

if(!isset($_GET"p"]))
{
$_GET"p"]="acceuil";
}
if(!file_exists("contenu/".$_GET"p"].".php"))
{
$_GET"p"]="404";
}
ob_start();
include"contenu/".$_GET"p"].".php";
$contenu = ob_get_contents();
ob_end_clean();
include 'template.php';
?>

et pour le fichier localisation sensé diriger les langues:
<?php
// define constants
define('PROJECT_DIR', realpath('./'));
define('LOCALE_DIR', PROJECT_DIR .'/locale');
define('DEFAULT_LOCALE', 'fr_FR');

require_once('lib/gettext/gettext.inc');

$supported_locales = array('en_US','fr_FR');
$encoding = 'UTF-8';

$locale = (isset($_SESSION'lang']))? $_SESSION'lang'] : DEFAULT_LOCALE;

// gettext setup
T_setlocale(LC_MESSAGES, $locale);
// Set the text domain as 'messages'
$domain = 'trad';
bindtextdomain($domain, LOCALE_DIR);
// bind_textdomain_codeset is supported only in PHP 4.2.0+
if (function_exists('bind_textdomain_codeset'))
bind_textdomain_codeset($domain, $encoding);
textdomain($domain);

header("Content-type: text/html; charset=$encoding");
?>

jai créé deux boutons anglais et français dont voit le code:

<a href="<?php echo $_SERVER'PHP_SELF'] ?>?lang=en_US"></a> pour l'anglais et:
<a href="<?php echo $_SERVER'PHP_SELF'] ?>?lang=fr_FR"></a> pour le français.

ca ne marche pas: le site n'est pas traduit il na garde pas les paramètres et et recharge la page d'accueil. help please!

1 réponse


Grafikart
Réponse acceptée
if(isset ($_GET"lang"])){
    $_SESSION'lang']=$_GET"lang"];
}else {
    $_SESSION'lang']="fr_FR";
}

Suivant ce qu'on lit ici si ya aucun GET lang il remet en fr_FR. Ton problème vient surement de là. Je te laisse trouver la solution à partir de là :)