Wie Sprache abhängig von Domain anzeigen?

Hallo!

Wir haben eine .de und eine .com Domain, welche auf den gleichen Shop zeigen. Wir würden gerne, dass Besucher der .de Domain die deutsche Seite angezeigt bekommen und Besucher der .com Domain die englische Seite.

Wie lässt sich das am Besten umsetzen? In WooCommerce und Magento lässt sich das relativ unspektakulär realisieren. Wie schaut’s mit Shopware aus?

Vielen Dank im Vorraus! :slight_smile:

Mit den Subshops https://docs.shopware.com/de/shopware-5-de/einstellungen/shopeinstellungen-shops#sub-sprachshop-einrichten

Super, vielen Dank! :slight_smile: Wir schauen uns das mal an.

Ok, prinzipiell hat das funktioniert. Allerdings haben wir folgendes Problem, wofür ich keine Lösung finde:

Der originale Shop (sprich Deutsch und Englisch) war bisher auf der .com Domain. Die .com Domain hat standardmäßig den deutschen Shop angezeigt und über eine virtuelle URL „/en“ und die Sprachauswahl den englischen Sprachshop mit der englischen Lokalisierung. Hat auch alles gut geklappt.

Ich habe es jetzt so konfiguriert:

  • Hauptshop: Deutsch
    • Host: xyz.de
    • Lokalisierung: Deutsch (Deutschland)
    • Kategorie: German
  • Subshop: Englisch
    • Host: xyz.com
    • Lokalisierung: Englisch (Vereinigtes Königreich)
    • Kategorie: English

Also im Grunde den englischen Subshop 1:1 so eingestellt, wie vorher die englische Sprachshop-Konfiguration war. Cache geleert, Templates für den englischen Shop zugewiesen und konfiguriert, Templates neu kompiliert.

Und prinzipiell funktioniert das auch recht gut. Der deutsche Shop unter xyz.de funktioniert perfekt. Und wenn ich xyz.com aufrufe, wird das englische Menü angezeigt, die englische Startseite, usw. Sieht auf den ersten Blick alles gut aus.

ABER:

  • Es werden deutsche Produktbadges anzeigt: „Brandneu“ statt „Brand new“, „Angebot“ statt „Sale“ usw.
  • Die deutschen Produktlinks werden verwendet:
  • Deutsche Produkttexte werden angezeigt, statt englische.

Also irgendwie macht er da einen Mischmasch aus Deutsch und Englisch … ?!

Hab ich was übersehen? Muss ich noch etwas anderes konfigurieren? Suche und probiere schon seit einer Weile rum, aber komme da leider nicht weiter. :confused:

Redest du jetzt von einem Subshop, oder einem Sprachshop? Das sind zwei verschiedene paar Schuhe.

 

Subshop. Ich habe mal ein paar Screenshots von der Konfiguration angehangen.

Deutscher Shop (xyz.de):

Englischer Shop (xyz.com):

Die jeweiligen (Haupt- / Sub-)Shops haben noch Sprachshops unter ihnen, weil es zB möglich sein soll, auch von der .de Domain auf den englischen Inhalt zu wechseln und von der .com Domain auf den deutschen Inahlt. Aber ich glaube das spielt hier in dem Fall keine Rolle.

Wir haben beim englischen Subshop mal “Übersetzungen übernehmen” probiert und damit erscheinen die Badges und Produktbeschreibungen zumindest schon mal auf Englisch.

Jedoch sind die URIs immer noch deutsch und auch die Anzeige des Lagerbestands ist deutsch: “Artikel auf Lager”, statt “Article in stock”.

Der englische Sprachshop (.de Domain -> English) funktioniert hingegen perfekt. Alles auf Englisch, URIs auf Englisch, usw.

Schon X mal Cache geleert, Theme neu kompiliert. Schafft aber keine Abhilfe …  Undecided

Niemand eine Idee? Muss doch irgendwie funktionieren … ?!

Übersetzungen hängen ja am Shop. Mit Übersetzung übernehmen sagst du „wenn für den Shop nichts gepflegt ist, nimm die des folgenden Shops“. Das wäre also das richtige - funktioniert auch.

Textbausteine, also alles das was dort gepflegt wird, hängen an der Lokalisierung. Laut Fehlerbeschreibung funktioniert also das Übersetzungen übernehmen bei dir nicht.

Ist denn ggf. im übersetzubgsmodul der deutsche Text hinterlegt?

Wie gesagt: Übersetzungen übernehmen funktioniert. Was nicht funktioniert sind einzelne “Fragmente”, wie zB dass mit der englischen Lokalisierung im englischen Shop deutsche URIs und Artikelbestände angezeigt werden, statt englische.

Zum Beispiel, wie ein paar Posts weiter oben schon beschrieben, wird im englischen Shop statt “xyz.com/english-product-uri” “xyz.com/deutsche-produkt-uri” angezeigt. Oder statt “Article in stock” “Artikel auf Lager” usw.

Wenn wir zB im deutschen Shop (xyz.de) per Sprachswitcher auf “Englisch” umschalten, funktioniert dort alles perfekt. Es werden englische Produkt URIs genutzt und auch englische Begriffe für den Lagerbestand “Article in stock”.

Nur auf “xyz.com” ist es so ein Mischmasch aus Deutsch und Englisch, obwohl es halt der gleiche Shop ist, nur eben mit der englischen Lokalisierung, die wir auch beim englischen Sprachshop (xyz.de -> English) verwenden.

Also nochmal zusammengefasst:

  • xyz.de -> Hauptshop -> Funktioniert perfekt
  • xyz.de/en -> Sprachshop -> Funktioniert perfekt
  • xyz.com -> Subshop von xyz.de
    • Soll per “Virtual Host” auf “xyz.com” reagieren
    • Verwendet die gleiche englische Lokalisierung, die auch bei xyz.de/en verwendet wird.
    • Funktioniert prinzipiell, zeigt aber einen Mischmasch aus Englisch und Deutsch an.
    • Zum Beispiel werden da die Links zu den Produkten auf Deutsch angezeigt, statt auf Englisch.
    • Also statt xyz.com/english-product-name wird xyz.de/deutscher-produkt-name angezeigt
    • Statt “Article in Stock” wird “Artikel auf Lager” angezeigt.
    • usw.

Falls es gewünscht ist, kann ich auch gern mal die Adresse des Shops per PN schicken, damit du dir das direkt anschauen kannst.

Du mischst da aber ein paar Dinge durcheinander. “Artikel auf Lager” Ist ein Textbaustein, wahrscheinlich ist der im Reiter für den Subshop in der Textbausteinverwaltung auf Deutsch hinterlegt oder leer. Ist die Lokalisierung dort denn 1:1 die gleiche wie im anderen englischen Shop? Wie liefern “Englisch (Vereinigtes Königreich)” mit aus und das muss dann auch die Lokalisierung sein, wenn man die Snippets nutzen will. Das sollte man also schnell manuell korrigieren können.

Die URLs scheinen ein anderes Problem zu sein, da hier ja die Übersetzung genutzt wird, die am Shop hängt. Hast du schon ausschließen können, dass es an einem Plugin liegt?
 

Danke, dass du mir helfen willst. :slight_smile: Aber diese ganzen Punkte habe ich doch schon ausführlich in dem Thread hier beschrieben? Wo drücke ich mich denn unklar aus? Bzw. was kann ich besser machen, damit man mein Problem versteht? :slight_smile:

Also noch mal:

  • Es gibt bisher nur einen Live-Shop.
  • Dieser Shop ist auf www.xyz.com erreichbar und stellt standardmäßig Deutsch dar.
  • Dieser Shop hat eine Sprachauswahl, um auf einen englischen Sprachshop umzuschalten.
  • Dieser englische Sprachshop ist unter www.xyz.com/en erreichbar und verwendet als Lokalisierung „Englisch (Vereinigtes Königreich)“
  • Im englischen Sprachshop werden (aus SEO Gründen) andere URIs verwendet, als im deutschen Shop.
  • Der englische Sprachshop unter www.xyz.com/en funktioniert perfekt.

Wir wollen nun, dass der deutsche Shop unter www.xyz.de erreichbar ist und der englische Shop unter www.xyz.com.

Dazu habe ich die Anleitung oben von „Shopwareianer“ befolgt, um einen Subshop zu erstellen: Shopware 5 - Einstellungen - Shopeinstellungen Shops

Das alles läuft im Moment noch unter einer Entwicklungsumgebung: dev.xyz.de bzw. dev.xyz.com. Alles läuft auf dem gleichen Server, ist die gleiche (geclonte) Shopware Installation, greift auf die gleiche (geclonte) Datenbank zu. Also es gibt für beide Domains (dev.xyz.de und dev.xyz.com) nur EINEN Server und EINE einzige Shopware-Installation.

Siehe die Screenshots von mir ein paar Beiträge weiter oben. Dort sollte eigentlich alles ersichtlich sein, oder was fehlt da?

Das Ganze funktioniert im Prinzip auch: dev.xyz.de stellt den deutschen Shop dar. dev.xyz.com den englischen. dev.xyz.com verwendet als Lokalisierung hier ebenfalls „Englisch (Vereinigtes Königreich)“, wie in den Screenshots ersichtlich.

Alles funktioniert im Prinzip einwandfrei, bis auf das Problem, dass der englische Shop unter dev.xyz.com alles auf Englisch anzeigt, ABER die deutschen Produkt URIs verwendet, statt die englischen. Also statt „dev.xyz.com/green-plants“ wird „dev.xyz.com/gruene-pflanzen“ verwendet. Auch werden die Produkte (korrekterweise) alle komplett auf Englisch angezeigt, englische Beschreibung, englische Texte, ABER dort wird halt „Artikel auf Lager“ angezeigt, statt „Article in stock“.

Kein Ahnung warum diese beiden Probleme da sind und wie man sie korrigiert. Wie gesagt habe ich schon X Mal den Cache gelöscht, Templates neu compiled, etc. Plugins schließe ich erstmal aus, weil wie gesagt: Im englischen Sprachshop auf der Live-Seite unter www.xyz.com/en funktioniert es ja auch einwandfrei. Auch unter dev.xyz.de/en funktioniert der englische Sprachshop weiterhin einwandfrei. Der englische Subshop unter dev.xyz.com macht allerdings diesen Mischmasch.

 

@Moritz Naczenski schrieb:

Du mischst da aber ein paar Dinge durcheinander. „Artikel auf Lager“ Ist ein Textbaustein, wahrscheinlich ist der im Reiter für den Subshop in der Textbausteinverwaltung auf Deutsch hinterlegt oder leer. Ist die Lokalisierung dort denn 1:1 die gleiche wie im anderen englischen Shop? Wie liefern „Englisch (Vereinigtes Königreich)“ mit aus und das muss dann auch die Lokalisierung sein, wenn man die Snippets nutzen will. Das sollte man also schnell manuell korrigieren können.

Ich hab mal in die Textbausteinverwaltung geschaut. Da sind 6 Reiter:

  • Default / de_DE || Default / en_GB || Default nl_NL || English / en_GB || English / en_GB || Deutsch / de_DE

Ich vermute, dass „Default / de_DE“ und „Default / en_GB“ der Hauptshop ist, mit dem englischen Sprach-Shop. Und dass „English / en_GB“ der Subshop ist. Dort waren in der Tat alle Einträge leer. Ich habe über „Import / Export“ eine CSV-Datei exportiert und die Inhalte aus der Spalte „value-en_GB-1“ entsprechend in die Spalte „value-en_GB-3“ und „value-en_GB-4“ per Copy & Paste übertragen. Dann wieder importiert. Nun sind dort auch Inhalte hinterlegt, wenn ich die Reiter durchgehe.

Ich habe daraufhin den Cache gelöscht und in der Theme-Verwaltung für den Shop „English“ das Theme neu kompiliert. Leider wird im englischen Subshop immer noch „Artikel auf Lager“ angezeigt, statt „Article in stock“. :confused: