Problème De Changement De Langue

8 posts in this topic

Posted · Report post

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 ?

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

 

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

Share this post


: post
Share on other sites

Posted · Report post

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.

Share this post


: post
Share on other sites

Posted · Report post

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;
}

Share this post


: post
Share on other sites

Posted · Report post

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é.

Share this post


: post
Share on other sites

Posted · Report post

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.

Share this post


: post
Share on other sites

Posted · Report post

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 ?

Share this post


: post
Share on other sites

Posted · Report post

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

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

Twitter Advisto ecommerce

Facebook PEEL Shopping