xml:lang im Header entsprechend der Shopsprache anpassen

Moin zusammen, mein Shop ist in mehreren Sprachen verfügbar. Leider wird auf jeder Seite über dem Header “behauptet” das die Sprache des Dokuments/der Seite deutsch wäre - auch bei den anderen Sprachvarianten. Im Quelltext steht ganz oben das Hier: Diese Information befindet sich im Template _default/frontend/index/index.tpl Leider ist diese Informationen keinem dem normalen Blöcke zugeordnet. Zwei Fragen: 1. wie kann ich das in meinem eigenen Template ändern, damit es updatefähig bleibt? 2. ich habe einen Textbaustein “xmllang” angelegt und wollte da die entsprechenden Länderkürzel je Sprachversion eintragen (de/sv/en/nl). Wie genau muss der Codeschnipsel aussehen, damit im Quelltext nachher steht: Herzlichen Dank für die Unterstützung. Gruß Benjamin

Hallo Benjamin, da dürfteste so nicht dran kommen. Shopware muss hier einen Block einfügen, damit Du das dann ganz einfach überschreiben kannst. Also z.B.: [quote] {block name=“frontend_index_start”}{/block}<?xml version="1.0" ?>{block name=“frontend_index_doctype”} {/block} {block name=“frontend_index_doctype_namespace”} {/block} {block name=‘frontend_index_header’} {include file=’./frontend/index/header.tpl’} {/block}[/quote] Gruß, Michael

1 „Gefällt mir“

Moin Michael, ich habe es befürchtet, dass es nicht so einfach sein wird. Leider führt das DE bei xml:lang anscheinend bei Google zu Verwirrungen. Dann werde ich mich mal vertrauensvoll an Shopware wenden. Hast Du noch eine Idee, wie der Codeschnipsel aussehen müsste, wenn ich entsprechend des ausgewählten Shops ein de, nl, en oder sv drin stehen haben möchte? Danke und Gruß, Benjamin

Hallo, es stimmt leider, dass man dies nicht über das Block-System ändern kann. Eine Alternative wäre es, die index/index.tpl im eigenen Template komplett aus _emotion zu übernehmen und aus der Vererbung herauszuhalten. Das wird zumindest bei einem Update nicht überschrieben. Modifikationen werden aber auch nicht übernommen. Ich schreibe gleich einen Feature Wunsch für das 4.1.3RC Update und in entsprechenden Forenbeitrag. Das ist wirklich simpel und ohne Probleme noch für das FInal Release ergänzbar. Vielleicht einfach abwarten, ob Shopware dies noch tut. http://jira.shopware.de/?ticket=SW-7099 ankundigungen-und-news-f17/shopware-4-1-3-rc-t15996.html Viele Grüße H. Thomas (info@mycetome.de)

1 „Gefällt mir“

[quote=„zebra.shopware.de“]Moin Michael, ich habe es befürchtet, dass es nicht so einfach sein wird. Leider führt das DE bei xml:lang anscheinend bei Google zu Verwirrungen. Dann werde ich mich mal vertrauensvoll an Shopware wenden. Hast Du noch eine Idee, wie der Codeschnipsel aussehen müsste, wenn ich entsprechend des ausgewählten Shops ein de, nl, en oder sv drin stehen haben möchte? Danke und Gruß, Benjamin[/quote] Entsprechende {if}-Abfragen müssten dann auch für die anderen Language-Codes gemacht werden. Wenn einem die Unterscheide zwischen Sprachversionen im Backend - z. B. Niederländisch Belgien Niederländisch Niederlande - egal sind, kann man bei den angesprochenen Ländern auch einfach nur die ersten beiden Buchstaben von $Locale übernehmen (smarty.net für Doku der Template-Engine).

1 „Gefällt mir“

Hab mich mal an einem Pull Request versucht: https://github.com/ShopwareAG/shopware-4/pull/106/files

1 „Gefällt mir“

Wow, vielen Dank für die gute Unterstützung. Das macht ja richtig Spaß hier :thumbup:

nur so den Block gibt es schon siehe https://github.com/ShopwareAG/shopware-4/blob/master/templates/_emotion/frontend/index/index.tpl#L13 also alles bereits möglich - habe mich schon gewundert, da ich genau das bei vielen Kunden bereits eingebaut habe. Mit mehr als 2 Sprachen (Bis 2 geht die IF Geschichte)

[quote=„kotoradeluxe“]nur so den Block gibt es schon siehe https://github.com/ShopwareAG/shopware-4/blob/master/templates/_emotion/frontend/index/index.tpl#L13 also alles bereits möglich - habe mich schon gewundert, da ich genau das bei vielen Kunden bereits eingebaut habe. Mit mehr als 2 Sprachen (Bis 2 geht die IF Geschichte)[/quote] Hi, aber wie willst du aktuell an Zeile 16 ("") dran kommen? Gruß, Michael

Hallo mmichael, danke für den Pull-Request. Man kommt natürlich nicht an den html-Tag mit dem Block-System ran, nur an den Doctype. @kotoradeluxe Die vorgeschlagene Sprachen-Änderung geht auch mit mehr als 2 Sprachen, für 4 Sprachen ist die Anzahl der if-Bedingungen wohl noch überschaubar. Wenn es natürlich viel mehr sein sollen, ist es zu unübersichtlich. Viele Grüße HTH [quote=“mmmichael”][quote=“kotoradeluxe”]nur so den Block gibt es schon siehe https://github.com/ShopwareAG/shopware-4/blob/master/templates/_emotion/frontend/index/index.tpl#L13 also alles bereits möglich - habe mich schon gewundert, da ich genau das bei vielen Kunden bereits eingebaut habe. Mit mehr als 2 Sprachen (Bis 2 geht die IF Geschichte)[/quote] Hi, aber wie willst du aktuell an Zeile 16 ("") dran kommen? Gruß, Michael[/quote]

[quote=„hth“] @kotoradeluxe Die vorgeschlagene Sprachen-Änderung geht auch mit mehr als 2 Sprachen, für 4 Sprachen ist die Anzahl der if-Bedingungen wohl noch überschaubar. Wenn es natürlich viel mehr sein sollen, ist es zu unübersichtlich.[/quote] Kann man das nicht mit einem lokalisierten Textbaustein machen? Dan hat man überhaupt nichts mit Verschachtelungen am Hut.

[quote=„mmmichael“][quote=„hth“] @kotoradeluxe Die vorgeschlagene Sprachen-Änderung geht auch mit mehr als 2 Sprachen, für 4 Sprachen ist die Anzahl der if-Bedingungen wohl noch überschaubar. Wenn es natürlich viel mehr sein sollen, ist es zu unübersichtlich.[/quote] Kann man das nicht mit einem lokalisierten Textbaustein machen? Dan hat man überhaupt nichts mit Verschachtelungen am Hut.[/quote] Ja, wenn es einem lieber ist, die Textbausteine jeder Sprachversion manuell zu ändern, sollte das gehen.

Gehe ich richtig in der Annahme, dass ich wie folgt vorgehe (vorausgesetzt der Block wird von Shopware gesetzt): - den Block in meinem Template durch einen Textbaustein ersetzen - den Textbaustein im Backend mit dem folgenden Code entsprechend der Sprache “füttern”: XX = de, sv, nl, en oder weitere Sprachen. Danke und Gruß, Benjamin

Also ich hab das so gelöst. xml:lang="{$sLocale|substr:0:2}"\> Das geht dann ohne Anpassung für alle sprachen ganz ohne if else etc…

1 „Gefällt mir“

[quote=„mmmichael“]Hab mich mal an einem Pull Request versucht: https://github.com/ShopwareAG/shopware-4/pull/106/files[/quote] Dein Request ist leider unvollständig. Das emotion Template überschreibt die index des _default Templates komplett. Darum musst du den Block auch bei _emotion einfügen. :slight_smile: Gesendet von meinem Nexus 7 mit Tapatalk 4