[Gelöst] Multilanguage

Moin, ich will den neuen Shop in DE/EN betreiben. Brauche ich hierzu auch ein spezielles Plugin (Subsho Light) oder geht dies nun standardmäßig? Danke

Hi, das geht mit Shopware 4 nun standardmäßig. Stefan

Wir haben noch ein Problem mit den Sprachennamen. Wir würden gerne unseren Shopnamen undabhängig von diesen wählen. Die Sprachen sollen im Frontent mit Deutsch/English erscheinen, aber der Shoptitel sollte sich nicht ändern? Ist das möglich? Bis jetzt sieht es für uns so aus, als ob Shopname = Sprachenname ist.

Hi Stefan, danke für die Info. Irgendwie überfordert mich die neue Struktur noch etwas? Hast du mir bitte ein Tipp Wo und Wie? In den Grundeinstellungen / Shops habe ich ja Deutsch und Englisch. Englisch denke ich ist hier nur für eine aktive Subshop Lizenz gedacht oder?

Hey, nein, solange man keine Subshops lizensiert hat sind alle dort angelegten Sprachvarianten automatisch in der Sprachauswahl des Hauptshops mit verankert. Sprich den Englischen Beispielshop einfach aktivieren, dann sollte im Hauptshop Deutsch oben die Sprachauswahl eingeblendet werden.

[quote=“kemme”]Wir haben noch ein Problem mit den Sprachennamen. Wir würden gerne unseren Shopnamen undabhängig von diesen wählen. Die Sprachen sollen im Frontent mit Deutsch/English erscheinen, aber der Shoptitel sollte sich nicht ändern? Ist das möglich? Bis jetzt sieht es für uns so aus, als ob Shopname = Sprachenname ist.[/quote] Unter Grundeinstellungen -> Shops lässt sich der Titel des Haupt- und jedes Subshops im Frontend einstellen, falls Du das meinst.

[quote=„Stefan Hamann“]Sprich den Englischen Beispielshop einfach aktivieren, dann sollte im Hauptshop Deutsch oben die Sprachauswahl eingeblendet werden.[/quote] Hmm, bei mir läßt sich der Englische Shop gar nicht aktivieren. Ich kann „Aktiv:“ anklicken und speichern, nur speichert Shopware es nicht.

Sicher? Hab´s gerade nochmal getestet, funktioniert problemlos. Hast du „Englisch“ nochmal angeklickt und überprüft ob der Harken wirklich nicht da ist? Nach dem Speichern springt der ja zurück auf die Default-Maske.

Doch, jetzt ging es. Allerdings erst, nachdem ich das Fenster komplett zu gemacht hatte. Das ist ein Phänomen, das ich mit Chrome auch schon (allerdings viel krasser) in der Beta 2 festgestellt hatte. Hat man zu lange in einem Fenster rumgeklickt, reagiert der Speichern-Button nicht auf Klick oder Tastenkombi. Mir wurde nämlich (vorher) auch nicht angezeigt, dass er die Einstellung gespeichert hat, dieses Mal schon. Sind ja evtl. im EXT JS 4 noch ein paar kleine Bugs drin?

mhh, also ich habe nun Englisch aktiviert. … Erledigt.

Zwischenzeitlich ließ sich die Sprache uns auch nich korrekt speichern. Nochmal zu unserem Problem. Wir möchten gerne unseren Shopnamen (XYZ-Shop) behalten, die Sprachen aber im Dropdown mit den Namen Deutsch/Englisch sehen können. Wenn wir der Sprache den Titel XYZ-Shop geben, erscheint dieser auch in dem Sprachen Dropdown. Wenn wir als Titel Deutsch wählen, erscheint dieser auch als Seitentitel.

Hi Stefan, jetzt habe ich noch eine Frage. Sehe ich das richtig, dass ich nun Deutsch und Englisch betreiben kann, mit komplett eigenen Artikeln, Shopseiten etc. ohne eine Sublizenz zu kaufen? Natürlich alles unter der gleichen Domain. Früher hatte ich ja nur Übersetzungsfelder, konnte aber keine anderen Artikeln etc. zuordnen.

Hi, ja, das ist korrekt.

Okay, das ist ja super. Aber als Basis kann ich nur ein Template benutzen, oder? Zumindets lässt sich in den Einstellungen für Englisch kein anderes Template benutzen. D.h. also Shopseiten kann ich eigenständige Gruppen für Englisch anlegen und diese zuordnen. Aber wir mache ich es im Template? Wenn ich das gleiche Template nutzen muss, dann muss ich ja erst herausfinden, welche ShopseitenGruppe soll abgefragt werden. Oder? Ich habe für Deutsch: upMain und downMain Und für Englisch: upMainEn und downMainEn

Hi ottscho, im folgenden Template wird der Shopname in der Selectbox ausgeben: templates/\_default/widgets/index/shop\_menu.tpl Dort einfach diese Zeile: {$language-\>getTitle()|default:$language-\>getName()} Durch diese Zeile ersetzen: {$language-\>getName()} Danach sollte immer der Name (Deutsch) in der Selectbox ausgeben werden. Heiner

Hallo Heiner, danke für den Tipp. Aber das wollte ich ja garnicht wissen :wink: Ich habe ohne eine Supshoplizenz Deutsch und Englisch. Dann habe ich für beide Sprachen komplett eigene Gruppen in den Shopseiten angelegt. Deutsch: sMenu.upMain / sMenu.downMain Englisch: sMenu.upMainEn / sMenu.downMainEn In meinem Template frage ich jetzt auf der deutschen Seite die deutschen Variablen ab. Eigentlich wollte ich nun für die englische Seite ein eigenens Template machen und die englischen Variablen abfragen. Aber das geht ja nicht. Ich könnte ja jetzt einfach die Variable $Locale abfragen. Wenn en_GB dann meine Abfrage des Menüs auf die englischen Shopseitengruppen sonst auf die Deutschen. Oder gibt es noch eine Alternative?

Hi ottscho, in den Grundeinstellungen kannst du, unter den Eintrag “Shopseiten-Gruppen”, eine Gruppe (upMainEn) einer anderen Gruppe (upMain) zuordnen. Danach kannst du die “zugeordneten Gruppen” bei den Shop-Einstellungen unter der Auswahl Shopseiten einem Shop zuordnen. PS: Ok, die 1. Antwort bezog sich auf die 1. Frage hier auf der Seite. :wink: Heiner

Hi, danke dir. Das Prinzip habe ich verstanden. Nur das Mapping noch nicht ganz. Deutscher Shop: upMainDe downMainDe Englischer Shop: upMainEn downMainEn So, nun kann ich in den Grund-Einstellungen -> Shops jeweils die Shopseiten auswählen. Soweit klar. Nun muss ich in den Grund-Einstellungen -> Shopseiten-Gruppen das Mapping machen. Wenn ich jetzt z.B. in dem gemeinsamen Template die Variable sMenu.upMainSummary und sMenu.downMainSummary nutzen will, dann muss ich ja den Shop über das Mapping dazu bringen: Deutscher Shop: upMainDe -> sMenu.upMainSummary downMainDe -> sMenu.downMainSummary Englischer Shop: upMainEn -> sMenu.upMainSummary downMainEn -> sMenu.downMainSummary Denke ich zu kompliziert oder blicke ich einfach die neuen Masken noch nicht? Hier wäre ich für einen Tipp dankbar. Im Moment mache ich es direkt über das Tempalte: [code] {* Footer menu *}

{if $Locale == ‘de_DE’} {foreach from=$sMenu.downMainDe item=item key=key name=“counter”} [{$item.description}]({if $item.link}{$item.link}{else}{url controller=‘custom’ sCustom=$item.id title=$item.description}{/if} “{$item.description}”) {if !$smarty.foreach.counter.last}|{/if} {/foreach} {else} {foreach from=$sMenu.downMainEn item=item key=key name=“counter”} [{$item.description}]({if $item.link}{$item.link}{else}{url controller=‘custom’ sCustom=$item.id title=$item.description}{/if} “{$item.description}”) {if !$smarty.foreach.counter.last}|{/if} {/foreach} {/if}

[/code]

Achso. Du darfst/musst nur die englischen Einträge mappen. Die Deutschen dürfen kein Mapping haben, da die sonst nicht ausgelesen werden.

Hi Heiner, an was kann es liegen, dass er das Mapping nicht an nimmt? ich versuche nun unter den Grundeinstellungen->Shopseiten Gruppen ein Zuordnung von upMainEN -> upMainDE zu bekommen. Die Information geht aber veloren, wird also nicht gespeichert.