Multilingue et url rewriting

3 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour,

J'essaie sans succès d'utiliser la "fonction changement de langue" avec un url rewriting.

L'exemple concret est de consulter ma fiche produit en version française : achat/cat-categorie-1/produit-1.html

Et je voudrais par le fait de cliquer sur le drapeau anglais, consulter directement cette même page en anglais sans retourner à la page d'accueil du site.

J'ai essayer avec le lien suivant dans la page haut.php :

<a href="<?php echo $actuelle; ?>?langue=en" title="English version"><img src="<?=$wwwroot?>/lib/flag/gb.gif" alt="English version" border="0" width="18" height="12"></a>

avec la valeur suivante dans mon fichier info.inc.php :

$actuelle = "http://".$_SERVER["HTTP_HOST"]."".$_SERVER["REQUEST_URI"];

Mais aucun changement, je retombe bien sur ma page mais la session de ma langue n'est pas remplacée par la nouvelle.

Avez-vous une solution ?

Earthworm

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

J'essaie sans succès d'utiliser la "fonction changement de langue" avec un url rewriting.

L'exemple concret est de consulter ma fiche produit en version française : achat/cat-categorie-1/produit-1.html

Et je voudrais par le fait de cliquer sur le drapeau anglais, consulter directement cette même page en anglais sans retourner à la page d'accueil du site.

J'ai essayer avec le lien suivant dans la page haut.php :

<a href="<?php echo $actuelle; ?>?langue=en" title="English version"><img src="<?=$wwwroot?>/lib/flag/gb.gif" alt="English version" border="0" width="18" height="12"></a>

avec la valeur suivante dans mon fichier info.inc.php :

$actuelle = "http://".$_SERVER["HTTP_HOST"]."".$_SERVER["REQUEST_URI"];
Mais aucun changement, je retombe bien sur ma page mais la session de ma langue n'est pas remplacée par la nouvelle. Avez-vous une solution ? Earthworm
Bonjour à tous, j'ai trouvé une solution, peut-être pas la meilleure mais jusqu'à maintenant la seule qui fonctionne correctement ! ;) A mon avis, le problème venait du fait que la variable langue "passait mal" quand on était dans une page incluant déjà des variables cachées par l'url rewriting (id, catid,...) La voici pour l'exemple de la page produit_details.php : Insérer dans la page achat/produit_details.php sous :
if (empty($_GET['id'])) {

	header("Location: $wwwroot");

	die;

}
et avant
$prod = charge_produit(intval($_GET['id']));
le code suivant :
# Vérification si demande de changement de langue et si besoin : affectation de la nouvelle langue

	if(ereg("langue=en",$_SERVER["REQUEST_URI"])) {

	unset($_SESSION['langue']);

	$_SESSION['langue']="en";

	} elseif(ereg("langue=fr",$_SERVER["REQUEST_URI"])) {

	unset($_SESSION['langue']);

	$_SESSION['langue']="fr";

	}
Dans la page modeles/defaut/haut.php, voici le code du lien vers la page en langue différente :
<a href="<?php echo $_SERVER['SCRIPT_URI'];?>?langue=en" title="English version"><img src="<?=$wwwroot?>/lib/flag/gb.gif" alt="English version" border="0" width="18" height="12"></a>

Mon code fonctionne pour PEEL Immo et PEEL Premium < 5, mais je suppose que pour la 5 et supérieure, il n'y a pas de souci.

Vous aurez remarqué que je supprime la session en cours avant de changer pour la nouvelle, peut-être pas nécessaire mais je préfère être sûr.

Si vous avez des solutions de simplification de code, je suis preneur. :mellow:

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour à tous,

j'ai trouvé une solution, peut-être pas la meilleure mais jusqu'à maintenant la seule qui fonctionne correctement ! :(

A mon avis, le problème venait du fait que la variable langue "passait mal" quand on était dans une page incluant déjà des variables cachées par l'url rewriting (id, catid,...)

La voici pour l'exemple de la page produit_details.php :

Insérer dans la page achat/produit_details.php sous :

if (empty($_GET['id'])) {

	header("Location: $wwwroot");

	die;

}
et avant
$prod = charge_produit(intval($_GET['id']));
le code suivant :
# Vérification si demande de changement de langue et si besoin : affectation de la nouvelle langue

	if(ereg("langue=en",$_SERVER["REQUEST_URI"])) {

	unset($_SESSION['langue']);

	$_SESSION['langue']="en";

	} elseif(ereg("langue=fr",$_SERVER["REQUEST_URI"])) {

	unset($_SESSION['langue']);

	$_SESSION['langue']="fr";

	}
Dans la page modeles/defaut/haut.php, voici le code du lien vers la page en langue différente :
<a href="<?php echo $_SERVER['SCRIPT_URI'];?>?langue=en" title="English version"><img src="<?=$wwwroot?>/lib/flag/gb.gif" alt="English version" border="0" width="18" height="12"></a>

Mon code fonctionne pour PEEL Immo et PEEL Premium < 5, mais je suppose que pour la 5 et supérieure, il n'y a pas de souci.

Vous aurez remarqué que je supprime la session en cours avant de changer pour la nouvelle, peut-être pas nécessaire mais je préfère être sûr.

Si vous avez des solutions de simplification de code, je suis preneur. ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping