Problème avec url site bilingue

Fermé
m.cort Messages postés 2 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 5 mai 2009 - 4 mai 2009 à 23:02
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 5 mai 2009 à 15:28
Bonjour,

Je suis entrain de faire un site français, allemand en php. La structure de mon site et comme cela: page index.php avec un include "header", un include "menu", un include "footer" et une pseudo frame pour afficher mes différentes pages.

j'utilise la programmation ci-dessous pour selectionner la langue:

<?php
// Choix de la langues fr ou de
$langue="fr"; /* valeur par défaut */

if (isset($_GET["langue"]) && !empty($_GET["langue"]) && $_GET['langue'] == "de" ){
$langue = "de";
}

if ( $langue == "de" )
include "de/accueil_de.php";
else if ($langue == "fr" )
include "fr/accueil_fr.php";
?>

J'ai créé des fichiers .php dans des dossiers séparés (fr et de) pour aller chercher mes textes en français ou en allemand.

Le problème que j'ai c'est que quand je veux changer de langue, j'ai un lien qui me ramène toujours à ma page index.php (index.php?langue=fr ou index.php?langue=de).

Est-ce que quelqu'un pourrait m'aider et m'expliquer comment faire pour rester sur la même page mais en changeant de langue. Par exemple si je suis la page index.php?page=gs&langue=fr et que je clique sur le drapeau Allemand, il faudrait que j'arrive sur la page index.php?page=gs&langue=de.

Si je tape dans la barre du navigateur les adresses des pages manuellement, ça fonctionne très bien mais c'est juste pour automatiser tout ça où j'ai un problème.

Merci pour vos réponses
A voir également:

2 réponses

pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
4 mai 2009 à 23:09
Déjà ton code seraot un petit peu mieux comme ça :
<?php
// Choix de la langues fr ou de
$langue="fr"; /* valeur par défaut */

if ( isset($_GET["langue"]) && $_GET['langue'] == "de" ){
  $langue = "de";
}

include ( "$langue/accueil_$langue.php" );
?>
Pour ton problème, il suffit que tu génères un lien qui corresponde à la page actuelle. Je m'explique : sur chaque page, à la place de ton code
<a href="accueil.php?langue=de"><img src="drapeau_allemagne.png" /></a>
tu mets plutôt
<a href="<?php$_SERVER['REQUEST_URI']?>?langue=de"><img src="drapeau_allemagne.png" />
0
m.cort Messages postés 2 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 5 mai 2009
5 mai 2009 à 15:03
Hello, merci pyschopathe d'avoir été aussi rapide!!!

J'utilise la programmation ci-dessous pour mes pseudo frame. le problème avec $_SERVER['REQUEST_URI'], c'est que j'ai toujours ma page index.php?langue=de comme url. Je devrai avoir l'url index.php?page=exemple&langue=de pour que je reste sur la même page mais en français si je clique pour changer de langue.

<?php
define("PATH", "./pages/");
// Tableau contenant les pages autorisées
$tableau = glob(PATH . "*.inc.php");
if (isset($_GET["page"]) && in_array(PATH . $_GET["page"] . ".inc.php", $tableau)) {
$pageInclude = PATH . $_GET["page"] . ".inc.php";
}
else {
$pageInclude = PATH . "accueil.inc.php";
}
include $pageInclude;
?>

Est-ce que tu vois ce que je veux dire et as-tu une idée comment faire apparaitre les différentes pages dans l'url?
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
5 mai 2009 à 15:28
Voui, je comprends, je rectifie :
<a href="<?php$_SERVER['REQUEST_URI'].'?'.$_SERVER['QUERY_STRING']?>?langue=de"><img src="drapeau_allemagne.png" />
Ca devrait le faire ! Au pire, fais un affichage du contenu de $_SERVER et récupère ce qui t'intéresse :
echo '<pre>';
print_r( $_SERVER );
echo '</pre>';
0