THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 Garder la traduction active

(08-02-2012 16:26:13)


Bonjour,
Je suis en train de mettre en place un site en français et anglais. J'ai donc installé le plugin "traduction" et mis mes drapeaux. Lorsque je suis sur la page d'accueil, tout va bien, je clique sur le drapeau anglais et hop, j'obtiens la page en anglais. En revanche, lorsque je clique pour aller sur une autre page, je ne suis plus sur les pages en anglais, mais de nouveau sur les pages en français.
Est-il possible que lorsque je clique sur mon drapeau, je garde la langue choisie tout le temps de la navigation dans les pages ?
L'URL que j'ai pour l'instant est http://www.monsite.fr/?fond=index&lang=2 (page d'accueil en anglais).
Si je clique sur une autre page, j'obtiens l'URL suivante : http://www.monsite.fr/?fond=dossier&id_dossier=2.
Il semble donc qu'il me manque l'info de langue (&lang=2) et c'est certainement pour ça que ma page est de nouveau en français.
Comment et où rajouter ce paramètre ? Quelqu'un a-t-il déjà eu ce problème ?
Merci
A.


v. 1.5.4 - v 2.3.4 - v 2.4.3

Offline


Est ce que tu as bien renseigne les champs concernes dans BO>configuration>gestion des langues?


le-bouquiniste.com                                                      tongue  plugin 1.4.x / 1.5   => valeurstock / Mailpaiement / formcontact

Offline


Oui, mais en fait, la question que je me pose, dans BO > configuration > gestion des langues, je mets http://www.monsite.fr pour le français. Et pour l'anglais ? Pour l'instant, j'ai mis la même chose : http://www.monsite.fr, mais peut-être que je dois rajouter le paramètre de langue ?


v. 1.5.4 - v 2.3.4 - v 2.4.3

Offline


J'ai essayé, dans la gestion des langues de mettre : http://www.monsite.fr/lang=2, mais ça n'a rien donné, si ce n'est une erreur de chargement de la page (message : la page n'est pas redirigée correctement).
Donc, je ne sais toujours pas comment résoudre ce problème.


v. 1.5.4 - v 2.3.4 - v 2.4.3

Offline


A force de chercher et de tourner en rond, j'ai fini par trouver un topic intéressant sur la gestion multilingue : http://thelia.net/forum/viewtopic.php?id=7900&p=1
Du coup, j'ai essayé la modif de lowcraft dans moteur.php et ça a l'air de marcher...
Evidemment, il faut modifier le moteur, mais bon, c'est déjà ça.
Donc pour résumer, j'ai rajouté, dans moteur.php à la ligne 215 (juste après "$fond = $reecriture->fond;"), le code suivant:
$lang = $reecriture->lang;
Et j'ai aussi le rewriting.
Tout ça a l'air de fonctionner (je n'ai pas traduit toutes les pages, mais sur celles qui le sont, tout va bien, je garde la langue choisie active).
Merci à tous.
A.


v. 1.5.4 - v 2.3.4 - v 2.4.3

Offline


Je crois que j'ai parlé trop vite. Grâce à la modif de Lowcraft, je garde bien la traduction active lors de la navigation, mais lorsque je clique sur le drapeau français, pour revenir à la langue française, le texte reste en anglais, même si l'URL prend bien le paramètre de langue. Il faut que je repasse par la page d'accueil pour changer la langue. En fait, je ne peux changer la langue que sur la page d'accueil. Sur les pages internes, lorsque je clique sur le drapeau, rien ne se passe.
Par exemple :
Sur la page d'accueil : URL de départ -> http://www.monsite.fr/?fond=index
Je clique sur le drapeau anglais et j'obtiens l'URL -> http://www.monsite.fr/index&lang=2 mon texte passe correctement en anglais.
Sur une page interne : URL de départ -> http://www.monsite.fr/2-ma-page.html
Je clique sur le drapeau anglais et j'obtiens l'URL -> http://www.monsite.fr/2-ma-page.html?lang=2 mais mon texte reste en français.
Et vice versa, dans les pages internes, si je clique sur le drapeau français quand je suis en anglais, ça change l'URL (http://www.monsite.fr/2-ma-page.html?lang=1) mais ça ne change pas le texte.
Que faut-il faire ?
A.


v. 1.5.4 - v 2.3.4 - v 2.4.3

Offline


En vérifiant, j'ai vu que ça fonctionnait très bien en version 1.5.0. Du coup, j'ai comparé les fichiers moteurs.php et j'ai remplacé le code

	// Définition de la langue courante
	if (empty($lang)) {
		if (isset($_REQUEST['lang']))
			$lang = lireParam('lang', 'int');
		else {
				$l = new Lang();
				$lang = $l->charger_url($_SERVER['SERVER_NAME']) ? $l->id : 1;		
		}
    }

du fichier moteur.php de la version 1.5.1
par celui-ci :

	// Définition de la langue courante
	if (empty($lang)) {
		if (isset($_REQUEST['lang']))
			$lang = lireParam('lang', 'int');
		else if (isset($_SESSION['navig']->lang))
			$lang = $_SESSION['navig']->lang;
		else
			$lang = 1;
    }

J'ai enlevé la modif de Lowcraft aussi. Et là, tout fonctionne impeccable.  A part, mais c'est moindre mal, l'URL qui reste en anglais (si on est en anglais) sur la page où on change la langue. Mais le paramètre est le bon (lang=1 pour français => texte français).
Il semble donc qu'il s'agit d'un dysfonctionnement de la version 1.5.1.
A.


v. 1.5.4 - v 2.3.4 - v 2.4.3