THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

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


OpenStudio Toulouse

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 ?


OpenStudio Toulouse

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


OpenStudio Toulouse

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.


OpenStudio Toulouse

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


C'est à dire ? Que se passe-t-il exactement ?


OpenStudio Toulouse

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 son 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 (06-03-2018 15:08:58)

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


OpenStudio Toulouse

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


OpenStudio Toulouse

Offline


Bonjour,
Pour infos, ça servira aux ânes comme moi, j'ai eu aussi ce problème de traduction qui ne fonctionnait pas, c'est simplement que j'avais noté la variable comme ceci dans layout.tpl : default_translation_domain domain='fo.myDefault' au lieu de {default_translation_domain domain='fo.mydefault'}... J'avais respecté la casse de mon dossier de squelette frontends : myDefault/

Last edited by laphototheque (03-03-2018 18:01:39)

Offline


Je confirme : il semblerait qu'il faille éviter toute majuscule (au début, au milieu.... partout) dans un nom de template, sous peine d'avoir des problèmes de traduction.