Gestion des alias sur un site multilingue

  • Posts: 121
  • Thank you received: 18
  • Hikashop Business
2 years 4 weeks ago #345995

-- HikaShop version -- : 4.6.2
-- Joomla version -- : 4.2.3
-- PHP version -- : 7.4.25
-- Browser(s) name and version -- : Brave 1.39.111

Bonjour,

en faisant l'import des produits en deux langues je me suis aperçu que dans la langue traduite le champ alias était identique au champ nom du produit.

Par exemple si le nom du produit est RED TOTO l'alias sera RED TOTO (voir capture écran).
Le système conserve les espaces et ne met pas de tirets de séparation pour avoir ceci -> red-toto
J'ai pourtant bien identité au moment de l'import les champs
product_name|en-GB contenant RED TOTO
et product_alias|en-GB contenant red-toto

De même si je corrige le champ alias pour mettre à la main red-toto alors à l'enregistrement il met red-toto à l'identique dans le champ nom du produit.

Ce qui a posé problème jusqu'à ce que je définisse à la main dans la langue traduite les URLs canoniques de chaque fiche produit pour pouvoir accéder correctement aux produits dans le listing des produits côté frontend.

Qu'en pensez-vous ?

Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
2 years 4 weeks ago #346014

Bonjour,

Le système de traduction natif à HikaShop (sans utilisation de Falang) utilise le système d'override de traductions de Joomla.
Dans un fichier de traduction, les traductions se présentent ainsi:
CLEF_DE_TRADUCTION="Texte de la traduction"
Il n'est pas possible d'avoir plusieurs lignes avec la même clé de traduction.
Lorsque vous avez le texte "TOTO ROUGE" dans le nom du produit (colonne product_name du CSV), le système va sauvegarder les traductions du nom avec la clé TOTO_ROUGE. Et si vous avez l'alias du produit avec "toto-rouge" (colonne product_alias dans le CSV), alors la clé de traduction sera aussi TOTO_ROUGE pour les traductions de l'alias. Et c'est là que vous avez un conflit.
D'ailleurs, vous aurez le même souci avec un produit avec le nom "test" et un autre produit avec le nom "Test", car cela ferait aussi la même clé de traduction.

Vous avez deux solutions ici:
- vous faites en sorte que les clés de traduction qui seront générées pour le nom et l'alias soient différentes, en utilisant au moins un caractère alphanumérique différent entre les deux textes.
- vous activez l'option "Clés de traduction non-latines" de la configuration HikaShop. Dans ce cas, les clés qui seront générées seront des hashs ( fr.wikipedia.org/wiki/Fonction_de_hachage ) du texte initial. Ainsi, "TOTO ROUGE" et "toto-rouge" auront une clé de traudction totalement différente qui évitera le souci. Par contre, notez qu'avec cette option, les traductions déjà renseignées dans HikaShop seront perdues. Elles seront toujours dans le fichier de traduction, mais le système ne les verra plus vu qu'il cherchera des traductions avec des clés en mode "hash".

Last edit: 2 years 4 weeks ago by nicolas.
The following user(s) said Thank You: easyconnect83

Please Log in or Create an account to join the conversation.

  • Posts: 121
  • Thank you received: 18
  • Hikashop Business
2 years 4 weeks ago #346015

Merci beaucoup pour les précisions apportées.
Je comprends mieux pourquoi j'ai observé ce résultat.
Et effectivement j'ai oublié de préciser que c'était en mode traduction native par HikaShop ... et non une extension tierce

L'utilisation de la fonction de hachage est intéressante.

Merci!

Please Log in or Create an account to join the conversation.

  • Posts: 121
  • Thank you received: 18
  • Hikashop Business
2 years 4 weeks ago #346017

Je pense à une chose concernant le nom des déclinaisons de produits.
Il est possible d'avoir des noms de déclinaisons identiques pour différents produits parents.
Dans ce cas cela va aussi poser problème car il risque d'y avoir une clé de traduction similaire.

Pour revenir sur la solution n°2 après activation du hash il suffit de réimporter le fichier avec l'ensemble des traductions.

Please Log in or Create an account to join the conversation.

Time to create page: 0.062 seconds
Powered by Kunena Forum