Bonjour,

Je suis entrain de traduire mon site. J'aimerai quand je clique sur une langue de traduire le contenu du champ que je récupère en fonction de la langue choisie . Ce contenu est récupéré dynamiquement dans la base de données. J'ai un champ pour chaque langue par exemple : description_produit_fr, description_produit_gb, description_produit_es.

Mon problème est que le contenu que je récupère en base de données ne change quand je change de langue.

Ci-dessous mon code :

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
 
$langues = array("FR", "GB", "ES");
 
    foreach ($langues as $langue) {
        if (isset($_SESSION['langue']) && !empty($_GET['page'])) {
            if (in_array($_GET['page'], $langues)) {
                $_SESSION['langue'] = $_GET['page'];
                $langue = $_SESSION['langue'];
            } else if (in_array($_SESSION['langue'], $langues)) {
                $langue = $_SESSION['langue'];
            } else {
                $langue = "FR";
            }
        }
    }
 
// Requete
$sql = " SELECT produit_id,  produit_description_{$langue} FROM produit ORDER BY date DESC ";
$req = $db->prepare($sql);
$req->execute() or die(print_r($db->errorInfo()));
$data = $req->fetch(PDO::FETCH_ASSOC);
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
24
25
 
<!-- Liens navigations pour changer de langues -->
 
<div class="nav-lang">
                    <?php if (!isset($_SESSION['langue'])) { ?>
                        <div class="div-lg"><a class="lang" href="siteAccueil.php?lg=GB<?php if (!empty($_GET['page'])) { echo '&page='.$_GET['page']; } ?>">GB</a></div>
                        <div class="div-lg"><a class="lang" href="siteAccueil.php?lg=ES<?php if (!empty($_GET['page'])) { echo '&page='.$_GET['page']; } ?>">ES</a></div>
                    <?php } else {
                        if ($_SESSION['langue'] == 1) { ?>
                            <div class="div-lg"><a class="lang" href="siteAccueil.php?lg=GB<?php if (!empty($_GET['page'])) { echo '&page=' . $_GET['page']; } ?>">GB</a></div>
                            <div class="div-lg"><a class="lang" href="siteAccueil.php?lg=ES<?php if (!empty($_GET['page'])) { echo '&page=' . $_GET['page']; } ?>">ES</a></div>
                        <?php } else if ($_SESSION['langue'] == 2) { ?>
                            <div class="div-lg"><a class="lang" href="siteAccueil.php?lg=FR<?php if (!empty($_GET['page'])) { echo '&page=' . $_GET['page']; } ?>">FR</a></div>
                            <div class="div-lg"><a class="lang" href="siteAccueil.php?lg=ES<?php if (!empty($_GET['page'])) { echo '&page=' . $_GET['page']; } ?>">ES</a></div>
                        <?php } else { ?>
                            <div class="div-lg"><a class="lang" href="siteAccueil.php?lg=FR<?php if (!empty($_GET['page'])) { echo '&page=' . $_GET['page']; } ?>">FR</a></div>
                            <div class="div-lg"><a class="lang" href="siteAccueil.php?lg=GB<?php if (!empty($_GET['page'])) { echo '&page=' . $_GET['page']; } ?>">GB</a></div>
                        <?php }
                    } ?>
</div>
 
<!-- Affichage de la description d'un produit récupérée en bd -->
<div class="content">
        <div class="row"><?=$data['produit_description_'.$langue];?></div>
</div>
Mon souci ce que je n'arrive pas à traduire les contenus qui sont récupérés en base de données. Quelqu'un peut m'aider.

Merci par avance !