Problème De Changement De Langue

8 messages dans ce sujet

Posté(e) · Signaler ce message

J'ai un problème de changement de langue du français vers l'anglais, mais seulement en page d'accueil. 

Le lien sur le drapeau anglais indique la page d'accueil en français, donc je reviens toujours sur la page d'accueil en français.

Sur les autres pages pas de problème.

De l'anglais vers le français pas de problème non plus.

 

D'où cela peut-il provenir ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

 

Quelle version de PEEL utilisez-vous ? Utilisez-vous un sous domaine, ou la boutique est-elle dans un sous dossier ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Merci de votre réponse.

J'utilise Peel Shopping 6 en Premium. La boutique est à la racine du site, et je n'utilise pas de sous domaine. A moins qu'il y ait un réglage à effectuer au niveau de l'hébergement et que je n'ai pas effectué.

Il faut dire que j'ai déménagé la boutique d'un nom de domaine vers un autre, il y a quelques mois, en passant aussi vers un autre hébergeur, cela a pu se passer dans la manœuvre.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

 

Vous pouvez remplacer la fonction get_current_url_in_other_language de votre version par la même fonction dans la version actuelle (fichier lib\fonctions\fonctions.php) :

/**
 * Ce module de gestion des URL dans d'autres langues doit être compatible avec l'URL Rewriting si activé
 * il faut partir de REQUEST_URI et non pas de PHP_SELF
 *
 * @param mixed $this_lang
 * @return
 */
function get_current_url_in_other_language($this_lang)
{
	$this_url_lang = $_SERVER['REQUEST_URI'];
	if (!empty($_GET['langue'])) {
		$original_lang = $_GET['langue'];
		$this_url_lang = str_replace(array('&langue=' . $_GET['langue'], '?langue=' . $_GET['langue'].'&', '?langue=' . $_GET['langue'], 'langue=' . $_GET['langue']), array('', '?', '', ''), $this_url_lang);
	} elseif (!empty($_SESSION['session_langue'])) {
		$original_lang = $_SESSION['session_langue'];
	} else {
		$original_lang = $this_lang;
	}

	$original_lang = strtolower($original_lang);

	if (!is_module_url_rewriting_active() || (!empty($GLOBALS['get_lang_rewrited_wwwroot'][$this_lang]) && !empty($GLOBALS['langs_array_by_wwwroot'][$GLOBALS['get_lang_rewrited_wwwroot'][$this_lang]]) && count($GLOBALS['langs_array_by_wwwroot'][$GLOBALS['get_lang_rewrited_wwwroot'][$this_lang]]) > 1)) {
		// Comme le chemin pour une page dans cette langue n'est pas spécifique, alors on doit préciser la langue quand on veut changer de page
		// Il ne faut pas compter les GET pour savoir si on rajoute ? ou &, car les GET peuvent venir du décodage de l'URL Rewriting => il faut regarder uniquement REQUEST_URI
		if (String::strpos($this_url_lang, '?') === false) {
			$this_url_lang .= '?';
		} else {
			$this_url_lang .= '&';
		}
		$this_url_lang .= 'langue=' . $this_lang;
	}
	if (defined('IN_404_ERROR_PAGE')) {
		// Si on est sur une URL qui n'existe pas, il ne faut pas créer de liens dans d'autres langues vers cette URL
		$this_url_lang = '/';
	}
	if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
		$this_url_lang = 'https://' . $_SERVER['HTTP_HOST'] . $this_url_lang;
	} else {
		$this_url_lang = 'http://' . $_SERVER['HTTP_HOST'] . $this_url_lang;
	}
	$this_url_lang = str_replace($GLOBALS['wwwroot'], $GLOBALS['wwwroot_main'], $this_url_lang);
	if (!empty($GLOBALS['get_lang_rewrited_wwwroot'][$original_lang])) {
		$this_url_lang = str_replace($GLOBALS['get_lang_rewrited_wwwroot'][$original_lang], $GLOBALS['wwwroot_main'], $this_url_lang);
	} else {
		$this_url_lang = str_replace($GLOBALS['wwwroot_main'] . '/' . $original_lang, $GLOBALS['wwwroot_main'], $this_url_lang);
	}
	if (defined('USER_SUBDOMAIN') && $GLOBALS['detected_wwwroot'] != $GLOBALS['wwwroot']) {
		// URL du type http://xxxx.domain.com/x.html  => on veut retiter les xxx et les remettre après
		$subdomain_array = explode('.', $_SERVER['HTTP_HOST']);
		$subdomain = $subdomain_array[0];
		$this_url_lang = str_replace(array('http://' . $_SERVER['HTTP_HOST'], 'https://' . $_SERVER['HTTP_HOST']), $GLOBALS['wwwroot_main'], $this_url_lang);
	}
	if (!empty($GLOBALS['get_lang_rewrited_wwwroot'][$this_lang])) {
		$this_url_lang = str_replace($GLOBALS['wwwroot_main'], $GLOBALS['get_lang_rewrited_wwwroot'][$this_lang], $this_url_lang);
	}
	if (!empty($subdomain) && $subdomain != 'www' && $subdomain != $original_lang) {
		// On remet le sous-domaine si nécessaire
		$this_url_lang = str_replace(array('://', 'www.'), array('://' . $subdomain . '.', ''), $this_url_lang);
	}
	return $this_url_lang;
}

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Merci, avec un peu de retard, pour votre réponse. J'ai fait le changement mais rien ne se passe. Le drapeau anglais de la page d'accueil en français (qui est la page d'accueil du site) affiche toujours l'URL de la page d'accueil en français.

Je vais aussi chercher de mon côté.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Je pense que c'est un problème de réécriture d'URL, parce que l'URL de l'accueil en anglais termine toujours par ?langue=en , que je sois en réécriture d'URL ou non.

Lorsque je désactive la réécriture d'URL le drapeau anglais de la page d'accueil indique bien http://kimonos-d-ako.com/?langue=en, mais quand j'active la réécriture ?langue=en disparait sans autre mention et la page d'accueil reste sur le français.

 

D'autre part, quand je reviens sur la page d'accueil en anglais à partir d'une autre page c'est possible, mais l'URL se termine systématiquement par ?langue=en, donc la réécriture d'URL ne fonctionne pas pour la page d'accueil en anglais. Par contre pour les autres pages pas de problème.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Je crois avoir trouvé la source du problème.

J'ai téléchargé tous mes fichiers et la base de donnée chez un autre hébergeur (que j'avais quitté pour divers raisons, mais chez qui j'ai néanmoins toujours mon espace qui n'est pas encore arrivé à échéance). Chez eux tout fonctionne parfaitement, ainsi que Wordpress.

Je suis revenu à mon hébergeur actuel et toujours le même problème.

J'ai donc vérifier les FAQ de cet hébergeur pour voir s'il ne mentionnait pas le problème.

Je suis tombé sur cette information qui explique bien des choses, car depuis quelques modifications pour Wordpress cela fonctionne :

 

Pour info nous ne supportons que les CMS installé a partir de cpanel => softaculous , sans plugins ou composants tiers , et qui sont freeware ou avec une licence valide .

 

Pour Wordpress j'ai pu faire les modifications nécessaires mais pour ma boutique PEEL je ne sais pas ce qu'il faut faire.

Auriez-vous une idée ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Finalement, n'ayant pas trouvé les réponses pour résoudre le problème, j'ai changé d'hébergeur. Et tout fonctionne correctement.

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