Die einfachste, aber gleichzeitig auch am wenigsten effektivste, geschweige denn sinnvollste Variante ist, jedes Produkt in jeder Sprache einzeln anzulegen. Das Problem dabei ist, dass damit auch jedes Produkt eine eigene SKU besitzt, was für die Verwendung mit Warenwirtschaftssystem aus leicht nachvollziehbaren Gründen Probleme bereitet. Die Sprache des Produktes ist schließlich keine Produkteigenschaft, sondern nur eine Frage der Ausgabe. Eine Übersetzung des Produktdisplays über die herkömmliche Node-Translation funktioniert auch nicht, da die Produkteigenschaften nur über die Produktreferenz an das Produktdisplay angehängt werden und nicht im Display-Node gespeichert sind.

Die Lösung für dieses Problem ist allerdings denkbar einfach, folgende Module werden zur Umsetzung gebraucht:

Schritt-für-Schritt-Anleitung für mehrsprachige Produkte:

  1. Als erstes, falls man es nicht ohnehin schon für die Seite gemacht hat, fügt man über das Locale-Module alle gewünschten Sprachen hinzu.
  2. admin/config/regional/language
  3. Anschließend muss die Spracherkennung konfiguriert werden. Grundsätzlich empfielt es sich, mit Pfadpräfixen in der URL zu arbeiten, es ist aber auch eine Spracherkennung abhängig vom User, Browser etc. möglich.
  4. admin/config/regional/language/configure
  5. Produkte sind bekanntlich Entitys. Um nun ein Produkt übersetzen zu können, muss unter
  6. admin/config/regional/entity_translation Commerce Produkt als übersetzbare Enitity ausgewählt werden.

  7. Nun geht man in seine Warengruppe und aktiviert dort die Mehrsprachigkeit über Entity Translation.
  8. Ab jetzt existiert beim Hinzufügen neuer Felder unter Feldeinstellungen eine Checkbox, mit der man dem User erlauben kann, beim Anlegen von Produkten das Feld zu übersetzen.
  9. Anmerkung: Wie man auch in dem Screenshot sieht, kann man diese Einstellung nur ändern, wenn in der Datenbank keine Feldinhalte gespeichert wurden.

  10. Die Übersetzung funktioniert nun wie auch bei mehrsprachigen Nodes. Beim Anlegen kann man auswählen, in welcher Sprache man das Produkt anlegen möchte.
  11. Nach dem Speichern gibt es einen zusätzlichen Local Tab "Übersetzen", der Nutzer sieht, für welche Sprachen es Übersetzungen gibt und er zusätzliche Übersetzungen anlegen kann.

  12. Zur Übersetzung der Field-Labels muss das Modul Field Translation aktiviert werden. Anschließend lässt sich über die Oberflächenübersetzung direkt der String des Labels übersetzen.
  13. Anmerkung: der String zur Textgruppe "Felder" muss ausgewählt werden, der erste Punkt "Integrierte Oberfläche" funktioniert nicht! Außerdem wird immer ausgehend von der Default-Sprache übersetzt. D.h. wenn die Default-Sprache Englisch ist, muss auch das Label im Original Englisch sein.