Jump to content

Recommended Posts

Bonjour,

J'ai overridé la classe CustomerFormatter pour ajouter plusieurs champs personnalisés au formulaire d'inscription dans la fonction getFormat(). Par exemple :

$format['website'] = (new FormField())
    ->setName('website')
    ->setType('text')
    ->setLabel($this->translator->trans(
        'Website2', [], ''
    ))
    ->setRequired(true);


Le champs custom remonte bien dans mon formulaire et fonctionne correctement :
705923950_Capturedcrande2019-04-0812-14-42.png.fc7a29b5d35c9f64bc08d26ad6825030.png

Au début j'avais laissé en paramètre le domaine `Shop.Forms.Labels` mais la trad ne remonte pas en BO.
J'ai relu la doc, puis, en tombant sur ce commentaire, j'ai donc supprimé le domaine pour laisser vide. J'ai vidé le cache mais le terme reste introuvable en BO.

1094423008_Capturedcrande2019-04-0812-14-28.thumb.png.8b8ae6ee63cc6a05b9db42d91252c0ad.png

Avez-vous une idée de comment ajouter des champs custom dans un override de classe native qui soient traduisibles en BO ?

Share this post


Link to post
Share on other sites

Tu ne passes pas le domaine en 3eme argument.

Ca devrait être 

$this->translator->trans('Website2', [], 'Shop.Forms.Labels')

 

Share this post


Link to post
Share on other sites

C'est bien la première chose que j'ai essayé ;) Mais seuls les champs officiellement traduits depuis Crowdin apparaissent dans les fichiers de trad .xlf du domaine correspondant et donc en BO, pas les champs custom.

Si j'ai supprimé le domaine dans l'exemple, c'est que cela s'est avéré utile pour certains.

En fait il s'agit d'un bug non résolu de PrestShop : https://github.com/PrestaShop/PrestaShop/issues/12300

Un workaraound a été proposé :

  • Créer les champs à traduire directement en base dans la table ps_translations (en retirant les points du domaine, par exemple "Admin.Actions" devient "AdminAction")
  • Supprimer les fichiers de cache du dossier /var/cache/<env>/translations
  • Recharger la page des traductions, elles doivent apparaître traduites


Donc faute de mieux, c'est comme ça que je fais pour l'instant...

Edited by Klemart3D (see edit history)

Share this post


Link to post
Share on other sites

OK.

Vous avez essayé avec un domaine générique justement ?

Je ne sais plus exactement dans quel contexte mais j'avais résolu des situations du même type en utilisant "Admin.Global" sur un projet.

Share this post


Link to post
Share on other sites

Oui, j'ai essayé pas mal d'options avant d'entamer ce thread : domaine global existant (avec 1, 2 ou 3 niveaux), domaine inexistant (mais il ne se créé pas), domaine générique de transition 'messages' ou pas de domaine du tout mais rien ne fonctionne sur PS 1.7.5, les champs ne remontent pas en BO.  Il se peut que sur une version antérieure de PS (1.7.2 ou 1.7.3) le fait de passer par un domaine global fonctionnait j'ai ce souvenir également, mais cela ne semble plus être le cas dans la dernière version...

Share this post


Link to post
Share on other sites

Je me doutais un peu que vous aviez essayé tout ça.

Je pense qu'il n'y a pas de solution que celle de contournement que vous avez trouvé, au moins temporairement. 

Le système de traduction de PS 1.7 c'est vraiment le gros point noir. Autant ils ont avancé sur plein de trucs autant je pense que les trads ne fonctionneront jamais correctement à 100%.

Share this post


Link to 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

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More