Traduire les clés d'URL lors du changement de magasin

8

J'espère que l'on peut m'aider avec ce problème auquel je suis confronté.

Situation:

J'ai 1 site Web en 5 langues (par exemple example.com, example.com/it etc.)

Problème:

Maintenant, j'ai example.com/about-us et example.com/it/about-us. Évidemment, je veux que la version italienne ressemble à: example.com/it/chi-siamo.

J'ai essayé de traduire l'identifiant et de le lier dans les catégories de produits pour dire "chi-siamo". Le problème est que si vous essayez de passer à une autre langue, il faut cet identifiant.

Par exemple: je suis actuellement sur example.com/it/chi-siamo mais je veux passer à la version allemande, qui devrait être example.com/de/ueber-uns. Si je passe de l'italien à l'allemand en utilisant le changement de langue, j'obtiens: example.com/de/chi-siamo. Ce qui donne un 404 .

Quelle est la solution?

el_machine
la source

Réponses:

4

Il n'y a pas de solution. Magento ne prend pas en charge cela.

J'ai écrit un module qui vérifie l'identifiant et regarde la traduction dans la configuration, puis il fait une redirection.

Vous avez donc deux options:

  1. choisissez une langue et utilisez-la pour tout - ne traduisez pas l'url
  2. implémentez un module qui fait ce que vous voulez.

Au lieu de décrire comment faire ce module jetez un oeil sur ceci: https://github.com/klein0r/magento-language-routes

Fabian Blechschmidt
la source
2
Voulez-vous partager votre module?
Simon
Désolé, je ne suis pas autorisé, si je l'étais, je le ferais :)
Fabian Blechschmidt
@FabianBlechschmidt pouvez-vous expliquer davantage. Je souhaite développer ce module. Vous entrez les URL des autres magasins dans les pages cms pour chaque magasin?
jrosell
1
ajouté un lien vers un module qui devrait résoudre le problème, s'il ne me le dit pas, je décrirai plus en détail comment l'implémenter.
Fabian Blechschmidt
1
Merci. J'ai trouvé ce module que je pense pouvoir adapter. github.com/tzyganu/CmsRewrites
jrosell
2

Je suppose que vos cinq langues ont chacune leur propre vue de magasin. Si tel est le cas, vous pouvez l'implémenter à l'aide de Catalogue> Gestion de la réécriture d'URL pour les produits - un pour chaque store_id- puis étendre Mage_Catalog_Model_Product_Url::getUrlpour rechercher une réécriture spécifique au magasin et l'utiliser à la request_pathplace de la valeur par défaut.

fantasticrice
la source
Oui, j'utilise différentes vues de magasin. Comme je suis un peu un nooby de Magento, je ne sais pas exactement ce que vous voulez dire. Pourriez-vous me donner un guide étape par étape :) Ce serait merveilleux.
el_machine
Je ne vois pas ce problème dans les pages produits mais dans les pages cms.
jrosell
1

Vous ne devriez pas le faire.

  1. il ajoute une autre couche dans le traitement des URL. Donne la possibilité d'erreurs et de goulots d'étranglement des performances.

  2. changer de langue devient beaucoup plus difficile, car vous devez non seulement créer un lien vers un autre identifiant de langue, mais également récupérer les URL correctes pour chaque langue (dans le cas où vous avez un changement de langue sur votre site)

  3. il n'a presque aucun avantage. Aujourd'hui, de nombreux navigateurs commencent même à masquer l'URL complète, affichant uniquement le domaine, ou même uniquement l'identifiant sur le certificat SSL.

Flyingmana
la source
Pourtant, pour le référencement, cela compte toujours selon mes informations?
Melvyn
0

Si le référencement est votre principale préoccupation, vous devez simplement utiliser les attributs rel = "alternative" hreflang = "x" dans votre en-tête pour indiquer aux moteurs de recherche (Google) que la page consultée est une traduction exacte d'une autre page.

Non seulement Google commencera à indexer vos pages traduites, mais il supprimera également les pénalités de contenu en double pour toute partie de la page qui n'est pas traduite.

La première partie est la langue et la deuxième est le pays ("it-it" italien-Italie ou "de-ch" allemand-Suisse) si c'est ainsi que vous visez. Ayez également toujours un ensemble par défaut.

Exemple à mettre en tête:

<link rel="alternate" href="example.com/about-us" hreflang="x-default" />
<link rel="alternate" href="example.com/about-us" hreflang="en-us" />
<link rel="alternate" href="example.com/it/about-us" hreflang="it-it" /> 
<link rel="alternate" href="example.com/de/about-us" hreflang="pt-pt" />

C'est ce qui explique assez bien:

https://support.google.com/webmasters/answer/189077?hl=en

https://moz.com/learn/seo/hreflang-tag

SamInMontreal
la source