THELIA Forum

Welcome to the THELIA support and discusssion forum

Offline


Bonjour,

Un bug que je rencontre aussi bien en local que sur hébergement distant : la traduction du front office saute après la première utilisation du nettoyage du cache.
Impossible de rétablir le français en front, même après dés/activation des langues, passage tout en anglais puis tout en français, suppression manuelle du contenu du dossier cache, etc.
J'avais même réinstallé Thelia une première fois pensant à une fausse manip, mais il s'avère que seul le clear cache est en cause.

Pour illustrer :

2k2DdnTl.jpg

Je ne peux pas me permettre de tout traduire à la main dans le code... Alors que faire ?

Merci pour votre aide.

Thelia :  2.3.4
PHP : 7.0.24
Hébergement : XAMPP + Yulpa.io

Last edited by fujitsuDev (23-11-2017 10:22:05)

Offline


Quelle est la langue par défaut du site dans le back-office (configuration -> Langues et URLs) ?

Que se passe-t-il si tu accès à ton site avec http://tonsite.com/?lang=fr_R


CQFDev | Sites, boutiques, modules, développement et intégration pour Thelia 1 et 2

Offline


J'ai bien toujours le paramètre ?lang=fr_FR dans l'URL.
L'unique langue permise et configurée par défaut est bien le français :


8Qpb2Cpl.jpg


Et c'est qui encore plus étrange, c'est ce qui se passe lorsque je sélectionne l'option "Utiliser strictement la langue demandée" : toutes mes catégories et produits disparaissent (alors qu'il ont été saisis pour l'option française) !

J'avais même essayé de remplacer le contenu du fichier de traduction en_US par le contenu fr_FR, sans effet.

Last edited by fujitsuDev (23-11-2017 10:33:01)

Offline


Il me semble avoir eu ce problème, où la traduction FR n'était pas chargée. As tu des erreurs dans log/log-thelia.txt ?


CQFDev | Sites, boutiques, modules, développement et intégration pour Thelia 1 et 2

Offline


Il y a effectivement un problème relatif à l'application du langage qui ressort partout : https://pastebin.com/mXWJzMEX

Offline


Tu travaillerais plus confortablement en mode développement: https://forum.thelia.net/viewtopic.php?id=11787

(je pense en particulier à cette erreur de syntaxe : {if $pse_count > 1 or $pse_count = 1})


CQFDev | Sites, boutiques, modules, développement et intégration pour Thelia 1 et 2

Offline


Oui, c'est vrai, je n'y pense pas à chaque fois... Car la plupart du temps je n'en ai pas besoin et c'est plus rapide sans.

J'ai d'ailleurs ouvert un autre sujet à propos de cette fameuse condition if : https://forum.thelia.net/viewtopic.php?id=12753

Merci wink

Last edited by fujitsuDev (23-11-2017 12:37:58)

Offline


C'est {if $pse_count > 1 or $pse_count == 1}), et pas {if $pse_count > 1 or $pse_count = 1})

En mode dev, tu vois les erreurs de syntaxe.


CQFDev | Sites, boutiques, modules, développement et intégration pour Thelia 1 et 2

Offline


Oui, je me suis rendu compte de ma super grosse erreur bien assez vite et j'ai ensuite corrigé, mais le problème ne venait pas que de là...
Mais bon, pas le sujet ici, c'est là : https://forum.thelia.net/viewtopic.php?pid=73669

Merci smile

Offline


Et ce bug de traduction semble même m'empêcher d'activer un module que j'utilisais pourtant sans problème sur mon ancienne installation (avant de rencontrer le bug de traduction) : LocalPickup
Pas cool sad

Last edited by fujitsuDev (23-11-2017 16:28:03)

Offline

Offline


Autant pour moi, même si l'erreur affichée évoquait bien encore un problème de langue, il semble que cela était encore dû à problème de cache.
Je commence à comprendre (oui, il faut le temps parfois) qu'il faut presque à chaque fois aller supprimer à la main le cache dev/prod, le faire depuis le back office ne suffit pas manifestement.

C'est normal d'ailleurs que le cache:clear ne fasse pas bien sont boulot ?
C'est un problème hérité de Symfony (parce que j'ai aussi eu le problème avec quelques fois) ?

Last edited by fujitsuDev (23-11-2017 16:55:11)

Offline


Bonjour,

J'aimerais savoir : avez-vous identifié ce problème de traduction après nettoyage du cache ? Est-il prévu un correctif ?
Ce n'est pas pour mettre la pression, mais si ce n'est pas le cas, je dois basculer sur une version antérieur qui ne rencontre pas ce problème.

Merci !

Offline


Dans ton layout.tpl, as-tu bien la déclaration {default_translation_domain domain='fo.nom_de_ton_template'}, et non pas {default_translation_domain domain='fo.default'} ?

Idem dans includes/addedToCart.html et ajax/order-delivery-module-list.html


CQFDev | Sites, boutiques, modules, développement et intégration pour Thelia 1 et 2

Offline


Ok, problème identifié et résolu. Cela m'avait manifestement échappé...

Un grand merci pour l'aide !

Petite suggestion en passant, puisque le nom du dossier parent est et doit être le nom du template, pourquoi donc ne pas identifier le nom du template de façon dynamique directement selon le nom du dossier parent ?

Quelque chose comme ça :
- Depuis layout.tpl : 'fo'.basename(dirname(__DIR__));
- Depuis includes/addedToCart.html & ajax/order-delivery-module-list.html : 'fo'.basename(dirname(__DIR__, 2));

Offline


Ça ne marche pas tout à fait comme ça, on ne peut pas utiliser directement basename(dirname(__DIR__)) dans un template.

Il faudrait que quelqu'un se dévoue pour écrire un guide là-dessus...


CQFDev | Sites, boutiques, modules, développement et intégration pour Thelia 1 et 2