THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline


Hello,

Je rencontre un autre petit problème sur Thelia au niveau du changement de la langue locale du site, si je suis sur l'accueil et que je clique sur EN par exemple, ma page est bien rechargé avec les langues EN, de même pour FR mais si je suis sur une autre page, l'url possède bien un paramètre '?lang=fr' mais cela ne change strictement rien sur le contenu, la langue ne se change pas.

Merci d'avance

Offline


Bonjour,
utilisez-vous une version de Thelia antérieure à la 2.2.1 ou à la 2.1.7 ?

Offline


Oui, je suis actuellement en 2.1

Offline


La solution serait de mettre à jour en 2.1.7, où un problème de langue dans l'url a été résolu. Sinon essayez avec "?lang=fr_FR" dans votre url.

Offline


Déjà fait, cela ne règle pas le problème, le plus étonnant est que çà fonctionne sur l'accueil mais pas les autres pages ...

Offline


Ce problème est bien corrigé depuis la 2.1.7 avec cet ajout :

            // If we have a "lang" parameter, whe have to check if the found URL has the proper locale
            // If it's not the case, find the rewritten URL with the requested locale, and redirect to it.
            if (null ==! $requestedLocale = $request->get('lang')) {
                if (strlen($requestedLocale) > 2) {
                    $requestedLang = LangQuery::create()->findOneByLocale($requestedLocale);
                } else {
                    $requestedLang = LangQuery::create()->findOneByCode($requestedLocale);
                }

                if (null !== $requestedLang) {
                    if ($requestedLang->getLocale() != $rewrittenUrlData->locale) {
                        $localizedUrl = $urlTool->retrieve(
                            $rewrittenUrlData->view,
                            $rewrittenUrlData->viewId,
                            $requestedLang->getLocale()
                        )->toString();
                        $this->redirect($urlTool->absoluteUrl($localizedUrl), 301);
                    }
                }
            }