Gibt es die Möglichkeit in einem TWIG-Template die Ausgabe der Textbausteine auf eine bestimmte Sprache festzulegen. Da wir mehrere Sprachen im Shop haben, wäre es kontraproduktiv die Textbausteine in jeder Sprache befüllen zu müssen.
Der |trans Filter greift ja auf die locale zurück. Kann man hier eine eigene locale festlegen. Z.B: so
{{ „customFields.customData“|trans({}, ‚???‘, ‚de_DE‘) }};
Lösung gefunden:
Die Domain kann leer sein und die Locale muss so geschrieben werden:
trans({}, null, „de-DE“) }}
Lösung korrekt, aber warum ist es kontraproduktiv? Oder sind die snippets eh immer gleich?
Habe es nicht getestet, könnte mich auch irren. @klogges meint, es geht immer.
Das funktioniert vermutlich nur mit der Installation-Sprache. Shopware lädt immer die Installation-Sprache (Fallback) und die aktuelle.
Twig liest lediglich die Daten aus, die Shopware/Symfony bereitstellen. Ich glaube nicht, dass trans() Daten dynamisch aus der Datenbank nachlädt.
Antwort zu deiner Frage. Sehr wahrscheinlich nein, außer mit der Installation-Sprache funktioniert das nicht.
Die Sprache wird bspw. in .name und in .translated.name gespeichert. Wenn in einer Sprache kein Wert für .name definiert ist, dann ist der Wert NULL. Bei .translated.name hingegen bekommst du immer einen Wert, in dem Fall wäre es der Fallback, sprich der Wert aus der Installation-Sprache.
Ja, die Snippets sind für jede Sprache gleich.
Es funktioniert anscheinend auch bei anderen Sprachen als der Installationssprache.
Zumindest bei den Textbausteinen. Dort bekomme ich auch auf der deutschen Seite die hinterlegten Daten des französischen Snippet-Sets wenn ich im Twig die Locale fr-FR angebe.
Bei Produktdaten oder anderen Übersetzungen habe ich das noch nicht getestet.
Das wundert mich… bei bspw. 50 hinterlegten Sprachen würde da einiges an unnötigen Daten hin und her geschoben werden. Aber ja, meine Ausführung war eine Vermutung. Danke für den Hinweis, dass es anscheinend doch nicht so ist