Plugin Konfiguration übersetzen

Jetzt poste ich auch mal in dieser Kategorie. Es gibt bereits einen solchen Beitrag im Shopware 4 Forum, aber dort wird nicht reagiert :smiley: Ich habe bisher keinen Weg gefunden, Comboboxen und ähnliches zu übersetzen. Auch fehlt aktuell eine Übersetzung der Beschreibung eines Feldes. Offenbar ist nur vorgesehen, für ein Feld einen Wert zu definieren, der dann nur das Label übersetzt. Mit folgendem Code ließ sich zumindest das Label jedes Feldes übersetzen, nicht jedoch der Rest: $translations = array( 'en\_GB' =\> array( 'host' =\> 'Your host', 'port' =\> 'Your port', 'checkConnection' =\> ' **Check connection to server**' // ... ) ); Gedacht war folgendes: $translations = array( 'en\_GB' =\> array( 'host' =\> array( 'label' =\> 'Your host', 'value' =\> 'localhost', 'description' =\> 'enter your host' ), 'port' =\> array( 'label' =\> 'Your port', 'value' =\> 8983, 'description' =\> 'enter your port' ), 'checkConnection' =\> array( 'label' =\> ' **Check connection to server**' ), // ... ) ); Das funktioniert aber nicht bzw. das komplette Array wird ins Label gepackt und dort steht dann einfach nur Array

Hello, $translations = array( 'en\_GB' =\> array( 'foo' =\> array( 'label' =\> 'Foo', 'store' =\> array( array(2, 'Bar'), array(3, 'Foobaz') ) ) ) ); Schöne Grüße, Niklas

Genau so funktioniert es nicht, das habe ich doch geschrieben :smiley:

[quote=„DenKon26“]Genau so funktioniert es nicht, das habe ich doch geschrieben :D[/quote] Hallo, also ich kann bei deinem Code im Vergleich zu dem Code von TeichDatensysteme keinen „store“-Bereich erkennen. Sicher also, das du es so schon probiert hast, wie er es vorgeschlagen hat? Bei dem store-Parameter würdest du ja die einzelnen Auswahloptionen übersetzbar machen. Beste Grüße Sebastian

[quote=“sschreier”]also ich kann bei deinem Code im Vergleich zu dem Code von TeichDatensysteme keinen “store”-Bereich erkennen.[/quote] Danke :wink: Der store Key ist notwendig. Die einzelnen Auswahlmöglichkeiten spricht man dann wieder mit den keys in der nächsten Ebene an. Die Combo Keys müssen auch nicht numerisch sein, die können auch als string gesetzt werden. Dann müssen aber auch wiederum die keys in der Übersetzungen gleich benannt werden. Als Beispiel: $translations = array( 'en\_GB' =\> array( 'foo' =\> array( 'label' =\> 'Foo', 'store' =\> array( array('fooKey', 'Bar'), array('barKey', 'Foobaz') ) ) ) ); Diese Art der Übersetzung wird auch in einigen Shopware Plugins durchgeführt, von daher kann das nicht ganz verkehrt sein. Wie genau setzt Du denn die Übersetzungen? Vielleicht ist deine Funktion nicht ok? Ab 4.2.2 gibt es die passende Hilfsfunktion if ($this-\>assertMinimumVersion('4.2.2')) { $this-\>addFormTranslations($translations); } Schöne Grüße, Niklas

Wäre es möglich, Snippets für die Plugin-Konfiguration zu definieren? Habe mich hier (https://developers.shopware.com/designe … /snippets/) etwas eingelesen und nun folgendes probiert: [list=1] [*] Ordnerstruktur erstellt: ->Snippets->backend->plugins->meinPlugin[/]
[
] in ‘meinPlugin’ eine Datei ‘meinPlugin.ini’ erstellt:

[code]// meinPlugin.ini

[en_GB]
checkConnection = “Check connection to server”

[de_DE]
checkConnection = “Verbindung zum Server testen”[/code][/]
[
] In meiner Bootstrap wo ich die Plugin-Konfiguration erstelle folgendes:

$form->setElement('button', 'checkConnection', array( 'label' => '{s name="checkConnection" namespace="backend/plugins/meinPlugin/meinPlugin"}{/s}', 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP, 'handler' => "function(btn) {" . file_get_contents( __DIR__. "/resources/checkConnection.js") . "}" ) );[/*][/list]

Auf dem Button angezeigt wird dann aber
{s name=“checkConnection” namespace=“backend/plugins/meinPlugin/meinPlugin”}{/s}

EDIT: Bzw da im Backend nicht Smarty kompiliert wird auch eine Idee direkt auf das Snippet zuzugreifen:

$form->setElement('button', 'checkConnection', array( 'label' => ' __checkConnection__', 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP, 'handler' => "function(btn) {" . file_get_contents( __DIR__. "/resources/checkConnection.js") . "}" ) );