Bonjour à tous,
je suis en train de développer un site web multilingue (via gettext) de vente en ligne.
Lors du changement de langue l'utilisateur click sur le drapeau correspondant ce qui submit en post vers un contrôler qui lui procède au changement de la variable $_SESSION['lang'] avant de redirigé vers l'index.
Le changement s'effectue bien correctement dans le contrôler mais ma vue a systématiquement besoin d’être refresh manuellement pour prendre en compte ce changement de langue.
header.php
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <img src='view/image/logo.png' alt=''> <ul id="menu" class="nav-main"> <li><a href="#nogo"><?php echo _("Accueil"); ?></a></li> <li class="list"><a href="#">Produit</a> <ul class="nav-sub"> <li><a href="#nogo">Histoire</a></li> <li><a href="#nogo">Composition</a></li> <li><a href="#nogo">Bénéfice</a></li> <li><a href="#nogo">Animaux</a></li> </ul> </li> <li class="list"><a href="#">Temoignages</a> <ul class="nav-sub"> <li><a href="#nogo">Publications Scientifiques</a></li> <li><a href="#nogo">Publications Presse</a></li> <li><a href="#nogo">Temoignage Client</a></li> </ul> </li> <li class="list"><a href="#">Special Chevaux</a> <ul class="nav-sub"> <li><a href="#nogo">Commandez</a></li> </ul> </li> <li><a href="#nogo">Commandez</a></li> <li><a href="#nogo">AccesPro</a></li> </ul> <div id="langue"> <form method="get" action="controleur/changeLangue.php"> <input name="us" type="image" onclick="submit;" src="view/image/drapeau/us.png" alt="l"> <input name="fr" type="image" onclick="submit;" src="view/image/drapeau/fr.png" alt=""> <input name="es" type="image" onclick="submit;" src="view/image/drapeau/es.png" alt=""> <input name="de" type="image" onclick="submit;" src="view/image/drapeau/de.png" alt=""> <input name="nl" type="image" onclick="submit;" src="view/image/drapeau/nl.png" alt=""> <input name="pt" type="image" onclick="submit;" src="view/image/drapeau/pt.png" alt=""> <input name="it" type="image" onclick="submit;" src="view/image/drapeau/it.png" alt=""> <input name="jp" type="image" onclick="submit;" src="view/image/drapeau/jp.png" alt=""> <input name="kr" type="image" onclick="submit;" src="view/image/drapeau/kr.png" alt=""> <input name="ru" type="image" onclick="submit;" src="view/image/drapeau/ru.png" alt=""> <input name="cn" type="image" onclick="submit;" src="view/image/drapeau/cn.png" alt=""> <input name="ph" type="image" onclick="submit;" src="view/image/drapeau/ph.png" alt=""> </form> </div>
changeLangue.php
localization.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php session_start(); print_r($_GET); if (isset($_GET['us_x'])) { $_SESSION['lang'] = 'en_US'; } if (isset($_GET['fr_x'])) { $_SESSION['lang'] = 'fr_FR'; } $url = $_SERVER['DOCUMENT_ROOT'] . 'Haarlem/index.php?p=test2'; include ($_SERVER['DOCUMENT_ROOT'] . 'Haarlem/localization.php'); header("Location: $url"); ?>
Avez-vous une idée de comment résoudre ce problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <?php define('PROJECT_DIR', realpath('./')); define('LOCALE_DIR', PROJECT_DIR . '/locale'); define('DEFAULT_LOCALE', 'fr_FR'); require_once ($_SERVER['DOCUMENT_ROOT'] . 'Haarlem/lib/gettext/gettext.inc'); $supported_locales = array('en_US', 'fr_FR', 'de_DE', 'it_IT', 'nl_NL', 'es_ES', 'pt_PT', 'kr_KR', 'jp_JP', 'ru_RU', 'gr_GR', 'cn_CN', 'ph_PH'); $encoding = 'UTF-8'; print_r($_SESSION['lang']); // gettext setup T_setlocale(LC_MESSAGES, $_SESSION['lang']); // Set the text domain as 'messages' $domain = 'traduction'; 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"); ?>
Cordialement.
PS: Cela fait juste 1 semaine que je fais du PHP, si vous remarquez des erreurs dans le code hésité pas a me le faire remarquer.
Partager