Mehrsprachige Webseiten mit ShopFusion

TYPO3 bietet zwei Lösungsansätze um die Mehrsprachigkeit einer Webseite zu organisieren. Zum einen gibt es da das Two-Tree-Prinzip1) und zum anderen gibt es das One-Tree-Fits-All-Languages-Prinzip. Für welches Prinzip Sie sich entscheiden, bleibt Ihnen überlassen, ShopFusion funktioniert zusammen mit beiden Konzepten.

One-Tree-Fits-All-Languages-Prinzip

Damit ShopFusion die Mehrsprachigkeit zwischen TYPO3 und Shop korrekt abbilden kann, konfigurieren Sie bitte als erstes die Mehrsprachigkeit in Ihrem TYPO3 und Shop wie gewohnt. Legen Sie bitte auch die entsprechenden TYPO3 Alternativsprachen in alle Seiten an, die mehrsprachig sein sollen. Also auch in die TYPO3 Shop-Seite, auf der ShopFusion die Shopfunktionen / Prozesse abbildet. Achten Sie bitte darauf, dass das TYPO3 und der Shop die gleiche default Sprache haben, denn ShopFusion erkennt nur die Veränderung beim Umschalten der Sprache und überträgt die Sprachumstellung dann ins Shopsystem, bzw. ins TYPO3.

Wenn Sie eine alternative Seitensprache im TYPO3 erstellen, also eine TYPO3 Seite Übersetzen, dann finden Sie einen zusätzlichen Reiter ShopFusion in den Eigenschaften der alternativen Seitensprache. Sie haben so die Möglichkeit für jede Sprache eine individuelle ShopFusion Konfiguration pro Seite anzulegen. Sie müssen für jede, bis auf die default, Sprache, eine Konfiguration in den Eigenschaften zur alternativen Seitensprache hinterlegen. Die default Sprache wird bereits durch die Extensionkonfiguration abgedeckt. Sie können aber, wenn Sie dies wollen, auch für die default Sprache, in den Seiteneigenschaften, eine entsprechende Konfiguration pro Seite hinterlegen.

Die Konfiguration kann dann pro Sprache auf Unterseiten vererben werden. Die Vererbung der Konfiguration für alternative Seitensprachen, verhält sich Analog der Regeln für die default Sprache, wie es im Abschnitt Konfigurationsoptionen in den Seiteneigenschaften beschrieben steht.

Hinweis: Die Vererbung von Konfigurationen für alternative Seitensprachen unterliegt ebenfalls den Regeln, die per TypoScript im TYPO3 konfiguriert wurden. Beachten Sie hierzu bitte die Option config.sys_language_mode aus der TypoScript Referenz.

TYPO3 Sprachschalter

Sie benötigen beides, TYPO3 eigene Sprachschalter, sowie die Sprachschalter des Shopsystems, damit das Umschalten der Sprache jederzeit korrekt funktioniert. Verwenden Sie bitte die Shop Sprachschalter2) auf allen TYPO3 Shop Seiten, die Sie in der ShopFusion Extensionkonfiguration oder auch in den Seiteneigenschaften hinterlegt haben. Auf allen anderen TYPO3 Seiten, egal ob ShopFusion dort Inhalte präsentiert, verwenden Sie bitte durch TYPO3 erzeugte Sprachschalter. Nachfolgend sehen Sie ein TypoScript Beispiel, wie die TYPO3 Sprachschalter für realurl aufgebaut sein müssen:

temp.page.language.ts
temp.page.language {
  10 = TEXT
  10.value = Deutsch
  10.value.typolink.parameter.data = TSFE:id
  10.value.typolink.additionalParams = &L=0&t3product=%2F%3F___store%3Dgerman&sforce=1
  10.value.wrap = <li>|</li>
  20 = TEXT
  20.value = English
  20.value.typolink.parameter.data = TSFE:id
  20.value.typolink.additionalParams = &L=1&t3product=%2F%3F___store%3Ddefault&sforce=1
  20.value.wrap = <li>|</li>
}

Sie sehen zwei neue Parameter bei additionalParams:

Der Parameter t3product

Ab ShopFusion für TYPO3 Version 1.5.4 können Sie auf diesen Parameter verzichten, wenn Sie stattdessen das Feld Zusätzliche GET-Parameter in den TYPO3 Seiteneigenschaften verwenden, um den für die Sprache notwendigen GET-Parameter an das Shopsystem zu übermitteln.
Falls Sie dies nicht möchten, oder eine ältere ShopFusion Version einsetzen, lesen Sie bitte die folgenden Dateils zu dem t3product-Parameter:

Dem t3product-Parameter weisen Sie den URI zu, der im Shopsystem aufgerufen werden muss, damit eine Sprachumschaltung durchgeführt wird. Wenn Sie das Shop Frontend, bspw. die Shop Startseite, in Ihrem Browser aufrufen, können Sie die Wert einfach den Shop Sprachschaltern für jede Sprache entnehmen.

Hier ein Beispiel für Magento3):
Der URL des Magento Sprachschalters zum umschalten in die deutsche Sprache kann bspw. so aussehen:

http://<domain.tld>/<Verzeichnisse>/index.php/?___store=german&___from_store=default

Der URI wäre dann:

/<Verzeichnisse>/index.php/?___store=german&___from_store=default

Der Parameter ___from_store=default kann normalerweise weggelassen werden, ansonsten wird das TypoScript entsprechend komplex, wenn Sie alle Kombinationen zwischen ___store und ___from_store korrekt abbilden möchten. Sollten Sie jedoch Probleme bei der Sprachumschaltung feststellen, bspw. auf der Startseite, dann probieren Sie es einmal mit der Angabe des Parameters ___from_store.

Den URI müssen Sie als nächstes URL-Encoden. Wenn Sie bei Google nach online url encoder suchen, finden Sie diverse Webseiten, die genau dies für Sie erledigen. URL-Encoded sieht Ihr URI dann so aus:

%2Findex.php%2F%3F___store%3Dgerman

Das Magento ist in diesem Fall in keinem Unterverzeichnis installiert. Daraus ergibt sich dann also die Zuweisung:

t3product=%2Findex.php%2F%3F___store%3Dgerman

Achtung: Falls Sie cooluri verwenden, dann müssen Sie den URI 3 Mal URL-Encoden, denn cooluri decoded die Parameter intern zu häufig. Für cooluri sähe der URI dann so aus:

%25252Findex.php%25252F%25253F___store%25253Dgerman

Der Parameter sforce

Dieser Parameter bewirkt, dass ShopFusion ausgeführt wird und das Shopsystem kontaktiert, auch wenn ShopFusion auf der aktuellen Seite deaktiviert wurde.

Wenn ShopFusion auf der aktuellen Seite deaktiviert ist, der sforce=1 GET-Parameter fehlt und die Sprache mittels TYPO3 Sprachschalter umgeschaltet wird, dann wird die Sprache nur im TYPO3 umgeschaltet, aber nicht im Shopsystem.

Ab ShopFusion für TYPO3 Version 1.5.4 können Sie auf diesen Parameter verzichten, wenn Sie stattdessen das Feld Zusätzliche GET-Parameter in den TYPO3 Seiteneigenschaften verwenden, um den für die Sprache notwendigen GET-Parameter an das Shopsystem zu übermitteln.

Magento Sprachschalter & TYPO3 Systemsprache umschalten

Wenn die Sprachschalter des Shopsystems im TYPO3 Frontend betätigt werden, bekommt das TYPO3 davon erst einmal nichts mit. Damit das TYPO3 trotzdem die Systemsprache analog mitändert, passen Sie die folgenden TypoScript Conditions einfach ihrem Fall entsprechend an:

config.language.ts
[globalString = GP:___store = german, GP:t3product = *___store=german*]
  config.sys_language_uid = 0
  config.language = de
  config.locale_all = de_DE
[global]
[globalString = GP:___store = default, GP:t3product = *___store=default*]
  config.sys_language_uid = 1
  config.language = en
  config.locale_all = en_GB
[global]

Die erste Condition ermittelt, ob der Parameter ___store mit dem Wert german übergeben wurde. Wenn das zutrifft, dann wird die TYPO3 Sprache auf deutsch umgeschaltet.

Die zweite Condition funktioniert analog der ersten, jedoch prüft sie auf den Wert default und stellt dann die TYPO3 Sprache auf englisch um.

Sprechende URLs

An dieser Stelle sei darauf hingewiesen, dass die realurl default Konfiguration die Seitensprache nicht in die sprechende URL einbettet, sondern als GET-Parameter &L=x an den URL anhängt. Das funktioniert jedoch nicht mit ShopFusion zusammen. ShopFusion erwartet, dass die Sprache Bestandteil der preVars der sprechenden URL ist. Schauen Sie sich eine erprobte realurl Beispielkonfiguration an, die zusammen mit ShopFusion funktioniert.

Die cooluri default Konfiguration hingegen, bettet die englische Sprache, sofern diese die ID 1 im TYPO3 bekommt, bereits korrekt in den sprechenden URL ein.

Hinweis
Wenn Sie den Website-Root (/)4) als CMS Shop Seite verwenden möchten, dann beachten Sie bitte, dass falls der Shop ein URL Segment zur Sprachenerkennung verwendet5), dieses Element nicht die gleiche Bezeichnung haben darf, wie das URL Segment seitens TYPO3.
Es darf also nicht sein, dass der Shop einen URL baut: http://meineshopdomain.tld/en/Kiteboarding/
und Ihr RealURL / CoolURI ebenfalls das Segment /en/ zur identifikation einer Sprache verwendet.

Two-Tree-Prinzip

Weil dieses Prinzip veraltet ist, gehen wir an dieser Stelle nicht näher darauf ein. Sie können jedoch über die Konfigurationsoptionen in den Seiteneigenschaften, die TYPO3 Seitenzweige der Sprache entsprechend konfigurieren. Der Shop Entry Point sollte dann die gewünschte Sprache des Shops beinhalten, damit der TYPO3 Seitenzweig und das Shopsystem in der Sprache synchronisiert sind.

1) Gemäß TYPO3 wiki ist dieses Prinzip veraltet
2) ###SHOPLANGUAGE###
3) Dies funktioniert für OXID eShop analog
4) für alle anderen CMS Seiten, können Sie diesen Hinweis ignorieren.
5) OXID verwendet das URL Segment: /en/
Drucken/exportieren
QR-Code
QR-Code shopfusion:konfiguration:mehrsprachigkeit (erstellt für aktuelle Seite)