Methode avec session de gettext dropin

Résolu/Fermé
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018 - Modifié par squaria le 1/12/2016 à 21:03
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018 - 2 déc. 2016 à 20:27
Bonjour,

Je ne suis pas expérimenté sur PHP alors je demande de l'aide à ce qui si connaisse mieux que moi. Pour mon site je voudrais faire une version anglaise et française que j'ai presque terminé mais j'ai encore un problème:

donc j'ai bien les deux versions lorsque je clique sur fr_FR ou en_US :



mais lorsque je change de page la langue ce mes en français automatiquement alors que le defaut locale de dropin est en_US.

bon voila mon code :

session_start();
error_reporting(E_ALL | E_STRICT);

// define constants
define('PROJECT_DIR', realpath('./'));
define('LOCALE_DIR', PROJECT_DIR .'/locale');
define('DEFAULT_LOCALE', 'en_US');

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

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

$locale = DEFAULT_LOCALE;
if(isset($_POST['lang']))
{
 $locale = $_POST['lang'];
 $_SESSION['lang'] = $_POST['lang'];
}
else if(isset($_GET['lang']))
{
 $locale = $_GET['lang'];
 $_SESSION['lang'] = $_GET['lang'];
}
else if(isset($_SESSION['lang']))
{
 $locale = $_SESSION['lang'];
}

// gettext setup
putenv("LC_MESSAGES=$locale.utf8");
T_setlocale(LC_MESSAGES, $locale.".utf8");
// 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);

foreach($supported_locales as $l) {
 print "<a href=\"?lang=$l\">$l</a>";
}

7 réponses

jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
2 déc. 2016 à 00:42
Bonjour,

Déjà, essaye de remplacer ce code :
if(isset($_POST['lang']))
{
 $locale = $_POST['lang'];
 $_SESSION['lang'] = $_POST['lang'];
}
else if(isset($_GET['lang']))
{
 $locale = $_GET['lang'];
 $_SESSION['lang'] = $_GET['lang'];
}
else if(isset($_SESSION['lang']))
{
 $locale = $_SESSION['lang'];
}


par :
$locale = isset($_POST['lang']) ? $_POST['lang'] : (!empty($_GET['lang']) ? $_GET['lang']: (!empty($_SESSION['lang']) ? $_SESSION['lang']: "en_US"));


et au cas où, n'hésites pas à faire du debug pour voir ce que contiennent tes variables
par exemple :
echo "<br>POST:<br>";
print_r($_POST);
echo "<br>GET:<br>";
print_r($_GET);
echo "<br>SESSION:<br>";
print_r($_SESSION);


Et puis, tu parles de "changer" de page...
Assures toi bien que tes sessions sont bien démarrées sur chacune de tes pages php.
0
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
2 déc. 2016 à 09:50
bon j'ai fait tout ce que vous m'avez dit donc voilà ce que ça donne :

sur la page d'accueil lors de la première connexion :
POST:
Array ( )
GET:
Array ( )
SESSION:
Array ( )

et lorsque je change de page :
POST:
Array ( )
GET:
Array ( [lang] => fr_FR )
SESSION:
Array ( )

En sachant que lorsque je change de page le href est comme ça : <?php print "href=\"join.php?lang=$l\"" ?>
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649 > squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
2 déc. 2016 à 09:54
Et quand tu rechanges de page après ?
0
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
2 déc. 2016 à 10:33
quand je rechange de page sa reste en français :

POST:
Array ( )
GET:
Array ( [lang] => fr_FR )
SESSION:
Array ( )

--
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
2 déc. 2016 à 10:37
En même temps ta variable GET est en FR ... donc normal que tu reste en Français...
Tu as quoi dans l'URL ?
0
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
2 déc. 2016 à 11:14
?lang=fr_FR évidemment mais ce que je ne comprends pas c'est pourquoi sa ce mes en fr alors que le défaut locale est en_US

--
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
2 déc. 2016 à 11:32
Le défault est en local .. mais ton URL contient lang=fr_FR .... donc il prend la variable qui se trouve en GET.
Si ton URL ne contenait pas cette variable LA il prendrait le default..
0
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
Modifié par squaria le 2/12/2016 à 12:35
a priori d'après ce que j'ai compris il faut que je le change comme ça :
foreach($_SESSION['lang'] as $l) {
 print "<a href=\"?lang=$l\">$l</a>";
}


mais j'ai ça :
notice: Undefined index: lang in /home/colabawa/public_html/site/localisation.php on line 27

Warning: Invalid argument supplied for foreach() in /home/colabawa/public_html/site/localisation.php on line 27
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649 > squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
2 déc. 2016 à 12:50
Utilises donc les outils de debogage de ton navigateur et fais un clic-droit sur tes liens (dans la page affichée par ton navigateur) pour voir le code source généré de ceux ci.
Tu verras ensuite ce que ça donne.

Et.. tu ne m'a pas répondu sur le contenu de l'url dans ton navigateur lorsque tu cliques sur un des ces liens....
0
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
2 déc. 2016 à 13:05
je peux rien faire sur smartphone pour l'instant donc je vous réponds quand j'aurais accès à mon ordinateur ^^
0
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
Modifié par squaria le 2/12/2016 à 16:40
Voila ce que ça donne :
<br />
<b>Notice</b>:  Undefined index: lang in <b>/home/colabawa/public_html/site/localisation.php</b> on line <b>27</b><br />
<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>/home/colabawa/public_html/site/localisation.php</b> on line <b>27</b><br />
<br>POST:<br>Array
(
)
<br>GET:<br>Array
(
    [lang] => en_US
)
<br>SESSION:<br>Array
(
)
<html>
<head>
    
    <!--Méthode de décodage du texte-->
    <meta charset="utf-8">
    
    <!-- import la feuille de style (fichier d'apparence du site)-->
    <meta name="viewport" content="width=device-width, maximum-scale=1"/>
    <link rel="stylesheet" href="style/style.css" />
    
<link rel="stylesheet" href="style/mobile.css"/>
    
    <!--Titre écrit sur l'onglet du navigateur-->
    <title>Colabaware | Home</title>

</head>

<body>
    
        <!--Import les blocks de structuration de la page en externe-->
<!--block du haut servant a mettre le titre principale, le logo, et la bannière-->
<header>

    <div class="element_header" id="pre_header">

        <img src="images/logo.png" alt="logo" class="el_pre_header" />

        <!--titre principal-->
        <h1 class="el_pre_header" id="h1_header">WELCOME TO<br />CoLab-AWARE !</h1>

    </div>


    <div class="element_header" id="join_us">
        <h2 class="el_join_us">MUlTIDISCIPLINARY REASEARCH LAB ON COLLECTIVE AWARENESS</h2>
        <a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>16</b><br />
href="join.php?lang=" class="button el_join_us">
            JOIN US        </a>
    </div>

</header>

<!--block dans le header servant a la navigation des diferentes pages (menu de navigation)-->
<nav>

    <ul id="menu">
        <li class="separateur_nav" id="nav_pc"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>27</b><br />
href="index.php?lang=" class="nav" id="home"><span class="nav_size">HOME</span></a>
            <ul class="niveau2">
                <li class="subnav" id="subnav_who"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>29</b><br />
href="who.php?lang=" ><span class="submenu_items">WHO ?</span></a></li>
                <li class="subnav"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>30</b><br />
href="where.php?lang="><span class="submenu_items">WHERE ?</span></a></li>
                <li class="subnav"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>31</b><br />
href="what.php?lang="><span class="submenu_items">WHAT ?</span></a></li>
                <li class="subnav"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>32</b><br />
href="how.php?lang="><span class="submenu_items">HOW ?</span></a></li>
                <li class="subnav"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>33</b><br />
href="which.php?lang="><span class="submenu_items">WHICH START ?</span></a></li>
            </ul>
        </li>
        <li class="separateur_nav"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>36</b><br />
href="join.php?lang=" class="nav"><span class="nav_size">JOIN US</span></a></li>
        <li class="separateur_nav"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>37</b><br />
href="inspiration.php?lang=" class="nav"><span class="nav_size">INSPIRATION</span></a></li>
        <li class="separateur_nav"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>38</b><br />
href="contact.php?lang=" class="nav"><span class="nav_size">CONTACT</span></a></li>
    </ul>

    <input type="checkbox" id="nav-trigger" class="nav-trigger" />
    <label for="nav-trigger"></label>

    <div id="navigation">
        <input type="checkbox" class="arrow_mob" id="arrow_mob" style="display:none;" />
        <label for="arrow_mob">↕</label>
        <a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>47</b><br />
href="index.php?lang="><span class="submob_items">HOME</span></a>
        <div id="niveau2_mob">
            <li class="submob_items"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>49</b><br />
href="who.php?lang="><span> WHO ?</span></a></li>
            <li class="submob_items"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>50</b><br />
href="where.php?lang="><span> WHERE ?</span></a></li>
            <li class="submob_items"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>51</b><br />
href="what.php?lang="><span> WHAT ?</span></a></li>
            <li class="submob_items"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>52</b><br />
href="how.php?lang="><span> HOW ?</span></a></li>
            <li class="submob_items"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>53</b><br />
href="which.php?lang="><span> WHICH START ?</span></a></li>
        </div>

        <li class="submob_items"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>56</b><br />
href="join.php?lang="><span>JOIN US</span></a></li>
        <li class="submob_items"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>57</b><br />
href="inspiration.php?lang="><span>INSPIRATION</span></a></li>
        <li class="submob_items"><a <br />
<b>Notice</b>:  Undefined variable: l in <b>/home/colabawa/public_html/site/header.php</b> on line <b>58</b><br />
href="contact.php?lang="><span>CONTACT</span></a></li>
    </div>


Mais en fait je voudrais surtout que la variable soit en SESSION et non en GET

et une image pour comprendre le probleme que ça m'a mis en changeant le foreach :
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
2 déc. 2016 à 17:12
Bon...
l'éditeur de code de CCM bug...
Il remplace de simples quotes par des doubles..
voici ce que tu devrais avoir :


0
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
Modifié par squaria le 2/12/2016 à 17:25
Bon du coup on revient au point de départ : quand je vais sur les liens de ma nav il me rajoute ?lang=fr_FR alors que moi je voudrai la langue qu'il a sélectionnée sur toutes les pages jusqu’à ce qu'il ferme le lien faire avec des sessions entre autre et non des gets et que la langue de base soit en_US

Je voudrai surtout savoir pourquoi lorsque je clique sur un lien il me rajoute forcement ?lang=fr_FR alors que $l contient en_US et fr_FR
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649 > squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
2 déc. 2016 à 17:52
Je voudrai surtout savoir pourquoi lorsque je clique sur un lien il me rajoute forcement ?lang=fr_FR alors que $l contient en_US et fr_FR

C'est bien là le souci.
Et c'est bien pour ça que je voudrais que tu me montres le code généré avec le "nouveau" code source de tes pages.
0
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
2 déc. 2016 à 17:58
voila le code source :
<a href='?lang=en_US' rel="nofollow noopener noreferrer" target="_blank">en_US</a><a href='?lang=fr_FR' rel="nofollow noopener noreferrer" target="_blank">fr_FR</a><br>POST:<br>Array
(
)
<br>GET:<br>Array
(
)
<br>SESSION:<br>Array
(
)
<html>

<head>

    <meta charset="utf-8">

    <link rel="stylesheet" href="style/style.css" />
    <!--Pour mobile-->
    <meta name="viewport" content="width=device-width" />
    <link rel="stylesheet" href="style/mobile.css" />

        <title>
            Colabaware | Join        </title>

</head>

<body>

    <!--block du haut servant a mettre le titre principale, le logo, et la bannière-->
<header>

    <div class="element_header" id="pre_header">

        <img src="images/logo.png" alt="logo" class="el_pre_header" />

        <!--titre principal-->
        <h1 class="el_pre_header" id="h1_header">WELCOME TO<br />CoLab-AWARE !</h1>

    </div>


    <div class="element_header" id="join_us">
        <h2 class="el_join_us">MUlTIDISCIPLINARY REASEARCH LAB ON COLLECTIVE AWARENESS</h2>
        <a href="join.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank" class="button el_join_us">
            JOIN US        </a>
    </div>

</header>

<!--block dans le header servant a la navigation des diferentes pages (menu de navigation)-->
<nav>

    <ul id="menu">
        <li class="separateur_nav" id="nav_pc"><a href="index.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank" class="nav" id="home"><span class="nav_size">HOME</span></a>
            <ul class="niveau2">
                <li class="subnav" id="subnav_who"><a href="who.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank"><span class="submenu_items">WHO ?</span></a></li>
                <li class="subnav"><a href="where.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank"><span class="submenu_items">WHERE ?</span></a></li>
                <li class="subnav"><a href="what.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank"><span class="submenu_items">WHAT ?</span></a></li>
                <li class="subnav"><a href="how.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank"><span class="submenu_items">HOW ?</span></a></li>
                <li class="subnav"><a href="which.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank"><span class="submenu_items">WHICH START ?</span></a></li>
            </ul>
        </li>
        <li class="separateur_nav"><a href="join.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank" class="nav"><span class="nav_size">JOIN US</span></a></li>
        <li class="separateur_nav"><a href="inspiration.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank" class="nav"><span class="nav_size">INSPIRATION</span></a></li>
        <li class="separateur_nav"><a href="contact.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank" class="nav"><span class="nav_size">CONTACT</span></a></li>
    </ul>

    <input type="checkbox" id="nav-trigger" class="nav-trigger" />
    <label for="nav-trigger"></label>

    <div id="navigation">
        <input type="checkbox" class="arrow_mob" id="arrow_mob" style="display:none;" />
        <label for="arrow_mob">↕</label>
        <a href="index.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank"><span class="submob_items">HOME</span></a>
        <div id="niveau2_mob">
            <li class="submob_items"><a href="who.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank"><span> WHO ?</span></a></li>
            <li class="submob_items"><a href="where.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank"><span> WHERE ?</span></a></li>
            <li class="submob_items"><a href="what.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank"><span> WHAT ?</span></a></li>
            <li class="submob_items"><a href="how.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank"><span> HOW ?</span></a></li>
            <li class="submob_items"><a href="which.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank"><span> WHICH START ?</span></a></li>
        </div>

        <li class="submob_items"><a href="join.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank"><span>JOIN US</span></a></li>
        <li class="submob_items"><a href="inspiration.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank"><span>INSPIRATION</span></a></li>
        <li class="submob_items"><a href="contact.php?lang=fr_FR" rel="nofollow noopener noreferrer" target="_blank"><span>CONTACT</span></a></li>
    </div>

</nav>


et voila le code de header :
<header>

    <div class="element_header" id="pre_header">

        <img src="images/logo.png" alt="logo" class="el_pre_header" />

        <!--titre principal-->
        <h1 class="el_pre_header" id="h1_header"><?php echo _("WELCOME TO<br />CoLab-AWARE !"); ?></h1>

    </div>


    <div class="element_header" id="join_us">
        <h2 class="el_join_us"><?php echo _("MUlTIDISCIPLINARY REASEARCH LAB ON COLLECTIVE AWARENESS"); ?></h2>
        <a <?php print "href=\"join.php?lang=$l\"" ?> class="button el_join_us">
            <?php echo _("JOIN US"); ?>
        </a>
    </div>

</header>

<!--block dans le header servant a la navigation des diferentes pages (menu de navigation)-->
<nav>

    <ul id="menu">
        <li class="separateur_nav" id="nav_pc"><a <?php print "href=\"index.php?lang=$l\"" ?> class="nav" id="home"><span class="nav_size"><?php echo _("HOME"); ?></span></a>
            <ul class="niveau2">
                <li class="subnav" id="subnav_who"><a <?php print "href=\"who.php?lang=$l\"" ?> ><span class="submenu_items"><?php echo _("WHO ?"); ?></span></a></li>
                <li class="subnav"><a <?php print "href=\"where.php?lang=$l\"" ?>><span class="submenu_items"><?php echo _("WHERE ?"); ?></span></a></li>
                <li class="subnav"><a <?php print "href=\"what.php?lang=$l\"" ?>><span class="submenu_items"><?php echo _("WHAT ?"); ?></span></a></li>
                <li class="subnav"><a <?php print "href=\"how.php?lang=$l\"" ?>><span class="submenu_items"><?php echo _("HOW ?"); ?></span></a></li>
                <li class="subnav"><a <?php print "href=\"which.php?lang=$l\"" ?>><span class="submenu_items"><?php echo _("WHICH START ?"); ?></span></a></li>
            </ul>
        </li>
        <li class="separateur_nav"><a <?php print "href=\"join.php?lang=$l\"" ?> class="nav"><span class="nav_size"><?php echo _("JOIN US"); ?></span></a></li>
        <li class="separateur_nav"><a <?php print "href=\"inspiration.php?lang=$l\"" ?> class="nav"><span class="nav_size"><?php echo _("INSPIRATION"); ?></span></a></li>
        <li class="separateur_nav"><a <?php print "href=\"contact.php?lang=$l\"" ?> class="nav"><span class="nav_size"><?php echo _("CONTACT"); ?></span></a></li>
    </ul>

    <input type="checkbox" id="nav-trigger" class="nav-trigger" />
    <label for="nav-trigger"></label>

    <div id="navigation">
        <input type="checkbox" class="arrow_mob" id="arrow_mob" style="display:none;" />
        <label for="arrow_mob">↕</label>
        <a <?php print"href=\"index.php?lang=$l\"" ?>><span class="submob_items"><?php echo _("HOME"); ?></span></a>
        <div id="niveau2_mob">
            <li class="submob_items"><a <?php print "href=\"who.php?lang=$l\"" ?>><span><?php echo _(" WHO ?"); ?></span></a></li>
            <li class="submob_items"><a <?php print "href=\"where.php?lang=$l\"" ?>><span><?php echo _(" WHERE ?"); ?></span></a></li>
            <li class="submob_items"><a <?php print "href=\"what.php?lang=$l\"" ?>><span><?php echo _(" WHAT ?"); ?></span></a></li>
            <li class="submob_items"><a <?php print "href=\"how.php?lang=$l\"" ?>><span><?php echo _(" HOW ?"); ?></span></a></li>
            <li class="submob_items"><a <?php print "href=\"which.php?lang=$l\"" ?>><span><?php echo _(" WHICH START ?"); ?></span></a></li>
        </div>

        <li class="submob_items"><a <?php print "href=\"join.php?lang=$l\"" ?>><span><?php echo _("JOIN US"); ?></span></a></li>
        <li class="submob_items"><a <?php print "href=\"inspiration.php?lang=$l\"" ?>><span><?php echo _("INSPIRATION"); ?></span></a></li>
        <li class="submob_items"><a <?php print "href=\"contact.php?lang=$l\"" ?>><span><?php echo _("CONTACT"); ?></span></a></li>
    </div>

</nav>


Donc apriori pour firefox $l = ?lang=fr_FR
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649 > squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
2 déc. 2016 à 18:07
Dans le premier code :
<a href='?lang=en_US' rel="nofollow noopener noreferrer" target="_blank">en_US</a><a href='?lang=fr_FR' rel="nofollow noopener noreferrer" target="_blank">fr_FR</a

Donc c'est ok visiblement.

A quoi correspond ton deuxième code ? (le "header" ) ??
Comment initialises tu la variable $l dans ce code là ????
0

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

Posez votre question
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
2 déc. 2016 à 18:16
Le code dans index.php

<?php require "localisation.php"; ?>
<html>
<head>
    
    <!--Méthode de décodage du texte-->
    <meta charset="utf-8">
    
    <!-- import la feuille de style (fichier d'apparence du site)-->
    <meta name="viewport" content="width=device-width, maximum-scale=1"/>
    <link rel="stylesheet" href="style/style.css" />
    
<link rel="stylesheet" href="style/mobile.css"/>
    
    <!--Titre écrit sur l'onglet du navigateur-->
    <title>Colabaware | Home</title>

</head>

<body>
    
        <!--Import les blocks de structuration de la page en externe-->
<?php include("header.php"); ?>
<div id="block_home">
<section id="section_home">
    
    <h1 id="h1_home">PROTOTYPE 0.1</h1>
    <p id="p_home"><!--Mettre en strong --><?php echo _("A multidisciplinary research laboratory to accelerate the benefits of collective consciousness in the service of humanity, through renewed collaboration at work."); ?> </p>

</section>
<aside>
    <img src="images/#" alt="Profil" />
    <p>Valerie Castaignede <br />
        Job : coaching / </p>
</aside>
</div>

<?php include("footer.php"); ?>
</body>
</html>


J'ai separer les blocks header et footer et vu que sur chaque page avant le code j'ai fait un require et que $l est déclarer dans le fichier localisation sa marche.
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
2 déc. 2016 à 18:20
OK
Donc on va essayer de remettre ça au clair...

Dans ton index.php tu inclus (via un require mais peut importe) le fichier header.php
<?php include("header.php"); ?>

Jusque là ok.

Où se trouve le fichier "localisation" ?
A quel moment l'inclus tu dans tes pages ? dans le header ??

que contient exactement ce fichier header.php ?
0
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
Modifié par squaria le 2/12/2016 à 18:30
et bien tout en haut tu ne le voit pas ?
<?php require "localisation.php"; ?>


c'est enervant je ne peux plus ajouter d'image sur CCM

et pour le header tu remonte les messages et tu vas a "et voila le code de header : "

et je me répète mes bon c'est pas grave j'ai mis a variable $l sur tout les href :
<?php print "href=\"join.php?lang=$l\"" ?>
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
Modifié par jordane45 le 2/12/2016 à 18:36
c'est enervant je ne peux plus ajouter d'image sur CCM

Si .. tu peux toujours.. mais uniquement si tu REPONDS au lieu de juste mettre des COMMENTAIRES

par contre je pense savoir où j'ai commis une erreur...
Je n'ai pas remis en SESSION la variable
//on récupère la variable de langue en POST ou en GET ou en SESSION
$locale = isset($_POST['lang']) ? $_POST['lang'] : (!empty($_GET['lang']) ? $_GET['lang']: (!empty($_SESSION['lang']) ? $_SESSION['lang']: DEFAULT_LOCALE));
//On assigne cette variable de langue en SESSION
$_SESSION['lang'] = $locale;

Cordialement, 
Jordane                                                                 
0
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
Modifié par squaria le 2/12/2016 à 18:41
Ok sa a changer j'ai sa maintenant dans le test quand je vais une première fois sur le site :
POST:
Array ( )
GET:
Array ( )
SESSION:
Array ( [lang] => en_US )

et quand je change de page avec le header :
POST:
Array ( )
GET:
Array ( [lang] => fr_FR )
SESSION:
Array ( [lang] => fr_FR )

Mais du coup toujours le ?lang=fr_FR qui ce met lorsque je change de page
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
2 déc. 2016 à 18:51
Si il se met bien vu que tu l'as dans le GET...
0
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
Modifié par squaria le 2/12/2016 à 19:06
d'après ce que j'ai compris il faut enlever le GET pour n'avoir que la SESSION
bon lorsqu'il y a ?lang=en_US sa met :
POST:
Array ( )
GET:
Array ( [lang] => en_US )
SESSION:
Array ( [lang] => en_US )

et quand je change de page sa met :
POST:
Array ( )
GET:
Array ( [lang] => fr_FR )
SESSION:
Array ( [lang] => fr_FR )

Pourquoi alors qu'il y a une session maintenant l'url du site ne reste pas en ?lang=en_US sa me rend fout !
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
2 déc. 2016 à 19:19
d'après ce que j'ai compris il faut enlever le GET pour n'avoir que la SESSION
bon lorsqu'il y a ?lang=en_US sa met :

Le retirer de quoi ???


Pourquoi alors qu'il y a une session maintenant l'url du site ne reste pas en ?lang=en_US sa me rend fout !

Lorsque tu change de page tu cliques sur un lien.... ce lien contient quoi ? lang=us ou lang=fr ?? ou pas du tout de lang=
car c'est bien là qu'il faut retirer le GET ... c'est dans l'URL des pages que tu veux ouvrir...

par exemple :
<li class="submob_items"><a <?php print "href=\"who.php?lang=$l\"" ?>><span><?php echo _(" WHO ?"); ?></span></a></li>

doit devenir
<li class="submob_items"><a <?php print "href=\"who.php\"" ?>><span><?php echo _(" WHO ?"); ?></span></a></li>
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649 > jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024
2 déc. 2016 à 19:20
ou au pire .. tu remplaces pour ces liens là la variable $l par la variable $locale
0
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018
2 déc. 2016 à 19:34
oh merci ça marche ! mais maintenant j'aimerai changer ça :


en ça :


Qui corespond à ça:
foreach($supported_locales as $l) {
 print "<a href='?lang=".$l."' rel="nofollow noopener noreferrer" target="_blank">FRENCH</a>";
 print "<a href='?lang=".$l."' rel="nofollow noopener noreferrer" target="_blank">ENGLISH</a>";
}


Mais sans que ça ce dédouble ^^
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
2 déc. 2016 à 19:52
En réalité .. tu ne sais pas du tout ce que tu fais hein ?
Tu copies/colles du code sans comprendre ce qu'il fait .... non ????

Bref....

tu peux faire ça :
$supported_locales = array(array('text'=>'English','var'=>'en_US'),array('text'=>'French','var'=> 'fr_FR'));

foreach($supported_locales as $l) {
 print '<a href="?lang='.$l['val'].'" rel="nofollow noopener noreferrer" target="_blank">'.$l['text'].'</a>';
}
0
squaria Messages postés 85 Date d'inscription dimanche 6 novembre 2016 Statut Membre Dernière intervention 27 août 2018 > jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024
2 déc. 2016 à 20:27
Non c'est juste que j'ai du mal a comprendre le système logique de php sinon j'ai trouvé l'erreur c'est pas val mais var bien essayer ^^ Sinon un GRAND merci a toi pour m'avoir aidé autant je te revaudrait ça !
0