unser Shop (Version 5.1.2) läuft grundsätzlich nur in deutscher Sprache. Wir haben allerdings 1 Kunden aus den USA, dem ich gerne die Rechnung in englisch zur Verfügung stellen möchte. Die Textbausteine sind entsprechend gepflegt in deutsch und englisch. Jetzt muss ich nur noch dafür sorgen, dass die Sprache wehcselt, wenn das Rechnungstemplate aufgerufen wird.
Ich habe mir dazu die index.tpl aus /themes/Frontend/Bare/documents genommen und in mein Template kopiert. Hier kann ich ja am Anfang im Body direkt nach der Kundennummer abfragen, also {if $User.billing.customernumber == “20004”}, aber wie kann ich jetzt auf englisch wechseln?
Danke, aber das nutzt nichts. Die Übersetzungen sind ja da, aber da die Bestellung in deutscher Sprache erfolgt ist, wird das Formular auch in deutsch aufgerufen. Und genau diesen Aufruf müsste ich ja „verbiegen“, um die englische Sprache zu bekommen.
also vom Standard her erhält der Kunde die Rechnung in der Sprache, die er im Shop-Frontend ausgewählt hat. Hat er also im Frontend in Deutsch bestellt, erhält er auch eine deutsche Rechnung.
Als einzige Lösung könnte man vielleicht ein Plugin programmieren (lassen), dass es ermöglicht, die ausgewählte Sprache des Kunden in der Bestellung zu ändern.
Als schnelle Lösung würde ich einfach das Rechnungstemplate kopieren und ohne Übersetzungen arbeiten. Dann hast du ein Template Rechnung_de und eines Rechnung_en. Sobald du mit Übersetzungen arbeitest, muss es auch einen Shop geben, mit dem die Bestellung verknüpft ist um die Übersetzung zu laden.
Vielen Dank für die Anregungen. Problem is, dass der Shop nur auf deutsch läuft und auch laufen soll. Wir haben nur 1 Großkunden aus den USA, der eh nicht über den Shop bestellt, sondern per Mail. Dem erfasse ich dann die Bestellung im Shop und will ihm (als Kundenservice) die Rechnung in englisch erstellen.
Ich habe es jetzt so gelöst, dass ich im Template bei jedem Feld, das angedruckt wird, eine if-Abfrage davor gesetzt habe und dort nach der Kundennummer des amerik. Kunden abfrage. Wenn die Bedingung erfüllt ist, kommt der englische Ausdruck, ansonsten der Wert aus dem (deutschen) Textbaustein. Ist zwar nicht besonders toll, aber funktioniert problemlos.
Als schnelle Lösung würde ich einfach das Rechnungstemplate kopieren und ohne Übersetzungen arbeiten. Dann hast du ein Template Rechnung_de und eines Rechnung_en. Sobald du mit Übersetzungen arbeitest, muss es auch einen Shop geben, mit dem die Bestellung verknüpft ist um die Übersetzung zu laden.
Wie kann ich der neuen .tpl Datei die Inhalte der englischen Textbausteine wie z.B. DocumentIndexDate zuweisen? Also woher weiß Shopware, dass Rechnung_en.tpl den englischen und nicht deutschen Text aus DocumentIndexDate nehmen soll?
Du steuerst über die Lokalisierung des Shops, welche Textbausteine genommen werden. Hat dein Shop die Lokalisierung “Deutschland (Deutsch)”, wird de_de benutzt, bei Frankreich dann fr_fr. Das hat damit also nix zu tun.
Wenn du einen deutschen Shop hast, aber das Template in verschiedenen Sprachen anbieten willst, dann musst du zwei Rechnungstemplates pflegen. Innerhalb des Rechnungstemplates musst du dann die Textbausteine umbenennen, damit du die im Backend individuell pflegen kannst.