Übersetzen Sie URL-Schlüssel, wenn Sie den Speicher wechseln

8

Ich hoffe, man kann mir bei diesem Problem helfen, mit dem ich konfrontiert bin.

Situation:

Ich habe 1 Website in 5 Sprachen (zB example.com, example.com/it usw.)

Problem:

Jetzt habe ich example.com/about-us und example.com/it/about-us. Natürlich möchte ich, dass die italienische Version wie folgt lautet: example.com/it/chi-siamo.

Ich habe versucht, den Bezeichner zu übersetzen und ihn in Produktkategorien zu verknüpfen, um beispielsweise "Chi-Siamo" zu sagen. Das Problem ist, wenn Sie versuchen, in eine andere Sprache zu wechseln, wird diese Kennung verwendet.

Zum Beispiel: Ich bin derzeit unter example.com/it/chi-siamo, möchte aber zur deutschen Version wechseln, die example.com/de/ueber-uns sein sollte. Wenn ich mit dem Sprachwechsel von Italienisch auf Deutsch wechsle, erhalte ich: example.com/de/chi-siamo. Welches gibt eine 404 .

Was ist die Lösung?

el_machine
quelle

Antworten:

4

Es gibt keine Lösung. Magento unterstützt das nicht.

Ich habe ein Modul geschrieben, das den Bezeichner überprüft und die Übersetzung in der Konfiguration nachschlägt. Dann wird eine Umleitung durchgeführt.

Sie haben also zwei Möglichkeiten:

  1. Wählen Sie eine Sprache und verwenden Sie sie für alles - übersetzen Sie die URL nicht
  2. Implementieren Sie ein Modul, das das tut, was Sie wollen.

Anstatt zu beschreiben, wie dieses Modul erstellt wird, sehen Sie sich Folgendes an: https://github.com/klein0r/magento-language-routes

Fabian Blechschmidt
quelle
2
Möchten Sie Ihr Modul teilen?
Simon
Sorry, ich darf nicht, wenn ich wäre, würde ich :)
Fabian Blechschmidt
@FabianBlechschmidt kannst du weiter erklären. Ich möchte dieses Modul entwickeln. Sie geben für jede Geschäftsansicht URLs anderer Geschäfte in CMS-Seiten ein?
Jrosell
1
Es wurde ein Link zu einem Modul hinzugefügt, das das Problem lösen soll. Wenn es mir nichts sagt, werde ich ausführlicher beschreiben, wie dies implementiert wird.
Fabian Blechschmidt
1
Vielen Dank. Ich habe dieses Modul gefunden, von dem ich glaube, dass ich es anpassen kann. github.com/tzyganu/CmsRewrites
jrosell
2

Ich gehe davon aus, dass Ihre fünf Sprachen jeweils eine eigene Geschäftsansicht haben. In diesem Fall können Sie dies mithilfe von Katalog> URL-Umschreibungsverwaltung für die Produkte implementieren - jeweils eine für jedes Produkt - store_idund dann erweitern Mage_Catalog_Model_Product_Url::getUrl, um nach einer geschäftsspezifischen Umschreibung zu suchen und diese request_pathanstelle der Standardeinstellung zu verwenden.

fantastischer Reis
quelle
Ja, ich verwende verschiedene Geschäftsansichten. Da ich ein bisschen wie ein Magento-Nooby bin, bin ich mir nicht ganz sicher, was du meinst. Würde es Ihnen etwas ausmachen, mir eine Schritt-für-Schritt-Anleitung zu geben :) Wäre wunderbar.
el_machine
Ich sehe dieses Problem nicht auf Produktseiten, sondern auf CMS-Seiten.
Jrosell
1

Du solltest es nicht tun.

  1. Es fügt eine weitere Ebene in der URL-Verarbeitung hinzu. Gibt die Möglichkeit von Fehlern und Leistungsengpässen.

  2. Das Wechseln der Sprache wird sehr viel schwieriger, da Sie nicht nur eine Verknüpfung zu einer anderen Sprachkennung herstellen müssen, sondern auch die richtigen URLs für jede Sprache abrufen müssen (für den Fall, dass Sie auf Ihrer Website einen Sprachwechsel haben).

  3. es hat fast keinen Nutzen. Viele Browser verstecken heutzutage sogar die vollständige URL und zeigen nur die Domain oder sogar nur die Kennung auf dem SSL-Zertifikat an.

Flyingmana
quelle
Doch für SEO ist es nach meinen Angaben immer noch wichtig?
Melvyn
0

Wenn SEO Ihr Hauptanliegen ist, sollten Sie einfach die Attribute rel = "alternative" hreflang = "x" in Ihrem Header verwenden, um den Suchmaschinen (Google) mitzuteilen, dass die angezeigte Seite eine exakte Übersetzung einer anderen Seite ist.

Google beginnt nicht nur mit der Indizierung Ihrer übersetzten Seiten, sondern entfernt auch alle Strafen für doppelte Inhalte für Teile der Seite, die nicht übersetzt wurden.

Der erste Teil ist die Sprache und der zweite Teil ist das Land ("it-it" Italienisch-Italien oder "de-ch" Deutsch-Schweiz), wenn Sie auf diese Weise zielen. Habe auch immer einen Standard eingestellt.

Beispiel für den Kopf:

<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" />

Das erklärt es ziemlich gut:

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

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

SamInMontreal
quelle