Theme Konfiguration übersetzen - Erstellen einer ini-Datei und Nutzen der Text-Snippets in theme.php

Hallo,

wie kann man die Theme Konfiguration übersetzen? Ich sehe, dass in der Theme.php des Repsonsive Themes Snippets verwendet werden, welche durch Unterstriche eingeleitet werden Beispiel:

$tab = $this->createTab(
     'responsive_tab',
     ' __responsive_colors__'
);

In der Datei: recovery\install\data\sql\snippets.sql habe ich diese in den INSERTS wiedergefunden.

Gibt es irgndwo eine Dokumentation zu meiner Frage? Oder einen workflow / eine Vorgabe?

 

MFG DST

@dst schrieb:

Hallo,

wie kann man die Theme Konfiguration übersetzen? Ich sehe, dass in der Theme.php des Repsonsive Themes Snippets verwendet werden, welche durch Unterstriche eingeleitet werden Beispiel:

$tab = $this->createTab(
‘responsive_tab’,
responsive_colors
);

In der Datei: recovery\install\data\sql\snippets.sql habe ich diese in den INSERTS wiedergefunden.

Gibt es irgndwo eine Dokumentation zu meiner Frage? Oder einen workflow / eine Vorgabe?

 

MFG DST

Hallo,

zur Theme.php gibt es folgende Dokumentation: Theme.php . Ansich kann man sich dazu auch als Vorlage das Responsive Theme von Shopware nehmen. Wie man das ganze übersetzbar macht, wird einem aber auch in der “Advanced Template Training” - Schulung sehr gut beigebracht - vielleicht wäre es sinnvoll, diese zu besuchen und sich dahingehend von Shopware schulen zu lassen. Die Übersetzungen dürften sich in der ini - Datei des snippets-Pfads (_private\snippets\backend) befinden.

Beste Grüße

Sebastian

Hallo,

ja eine Schulung ist immer eine Lösung, ist aber erst nächsten Monat. 
Die Infos zur Doku kenne ich, das löst aber auch nicht das Problem, da in der Doku nichts über die Mehrsprachigkeit steht.

Den Pfad zur ini finde ich nirgends…

Deswegen beantwortet mir das nicht wirklich meine Frage, trotzdem schonmal danke.

Hat jemand konkretere Hinweise?

Hat jemand noch eine Hilfe?

Bisher gehe ich davon aus, dass man im Theme Ordner unter EIGENESTHEME/_private/snippets eine ini-Datei anlegt und diese nach dem Vorbild der anderen baut und in der theme.php daraufhin auf diese Snippets per __xyz__ zugreifen kann.

So viel konnte ich mir von Plugins und den Standard-Themes abschauen. Allerdings weiß ich nicht, ob ich unter snippets noch einen entsprechenden Ordner anlegen muss, oder wie ich der theme.php erkläre, welche ini für sie zuständig ist…
 

Kann mir hier noch jemand einen tipp geben?

Wenn ich in EIGENESTHEME/_private/snippets/backend/config.ini eine Datei erstelle mit folgendem Inhalt:

[en_GB]
theme_name = "Custom Theme"


[de_DE]
theme_name = "Individuelles Theme"

Bekomme ich unter den Text-Snippets im Backend: themes/EIGENESTHEME/backend\config

merkwürdig ist daran:

  • dass hier ein Backslash zwischen backend und config entsteht
  • dass backend\config das Datei-symbol mit Namen „backend\config“ bekommt und backend nicht als Ordner abgebildet ist

Im Theme verwende ich das dann folgendermaßen:

    protected $name = ' __theme_name__';

aber das funktioniert nicht.

Was mache ich falsch?

@dst schrieb:

Wenn ich in EIGENESTHEME/_private/snippets/backend/config.ini eine Datei erstelle mit folgendem Inhalt:

[en_GB]
theme_name = “Custom Theme”

[de_DE]
theme_name = “Individuelles Theme”

Bekomme ich unter den Text-Snippets im Backend: themes/EIGENESTHEME/backend\config

merkwürdig ist daran:

  • dass hier ein Backslash zwischen backend und config entsteht
  • dass backend\config das Datei-symbol mit Namen “backend\config” bekommt und backend nicht als Ordner abgebildet ist

Im Theme verwende ich das dann folgendermaßen:

protected $name = ’ theme_name’;

aber das funktioniert nicht.

Was mache ich falsch?

Hallo,

die config.ini ist schonmal die richtige Datei mit dem richtigen Inhalt.

Ich glaube aber nicht, dass die Übersetzung so gedacht ist, wie du sie versuchst umzusetzen. Die Übersetzung sieht eher wie folgt aus:

$tab = $this->createTab(
     'color_tab',
     ' __color_tab_label__'
);

[en_GB]
color_tab_label = "Colors"

[de_DE]
color_tab_label = "Farben"

Beste Grüße

Sebastian

1 Like

Hallo Sebastian danke für deine Antwort.

Ich sehe leider gerade nicht, was ich anders mache. Ich habe auch beispielsweise einen Tab versucht zu übersetzen:

[en_GB]
extended_theme_config_label = "Erweiterte Theme Config EN"

[de_DE]
extended_theme_config_label = "Erweiterte Theme Config DE"

 

THEME.PHP

$tab = $this->createTab(
            'extended_theme_config',
            ' __extended_theme_config_label__'
        );
        $container->addTab($tab);

Im Backend bekomme ich allerdings „__extended_theme_config_label__“ als Namen des Tabs ausgegeben.

Kann es ein, dass etwas mit meiner Ordnerstruktur nicht stimmt? Oder ich irgendetwas vergesse?

@dst schrieb:

Hallo Sebastian danke für deine Antwort.

Ich sehe leider gerade nicht, was ich anders mache. Ich habe auch beispielsweise einen Tab versucht zu übersetzen:

[en_GB]
extended_theme_config_label = „Erweiterte Theme Config EN“

[de_DE]
extended_theme_config_label = „Erweiterte Theme Config DE“

 

THEME.PHP

$tab = $this->createTab(
‚extended_theme_config‘,
extended_theme_config_label
);
$container->addTab($tab);

Im Backend bekomme ich allerdings „__extended_theme_config_label__“ als Namen des Tabs ausgegeben.

Kann es ein, dass etwas mit meiner Ordnerstruktur nicht stimmt? Oder ich irgendetwas vergesse?

Hallo,

hast du einfach mal auf „Themes neu laden“ oder auf „Einstellungen“ -> Haken bei „Neuladen der Textbausteine erzwingen“ setzen" -> „Speichern“ im „Theme Manager“ geklickt?

Beste Grüße

Sebastian

1 Like

Jepp, hab ich. Die Snippets sind ja auch unter den Textbausteinen zu finden, aber wie beschrieben:

 

merkwürdig ist daran:

  • dass hier ein Backslash zwischen backend und config entsteht
  • dass backend\config das Datei-symbol mit Namen “backend\config” bekommt und backend nicht als Ordner abgebildet ist

 

Anbei ein paar Bilder:

Ich habe, weil ich es nicht besser wusste, zwei config.ini. Einmal in Backend einmal direkt unter snippets

Im Backend sieht das dann wie folgt aus:

Meine Frage daher:

  • Wieso werden die Snippets nicht im Backend in der Theme-Konfiguration angezeigt?
  • Weshalb bekomme ich die Ordnerstruktur bei den Snippets nicht so hin, dass es einen Ordner Backend bekomme?
  • Warum ist backend\config leer? (Die config.ini hat den Inhalt, welcher unter “themename” angezeigt wird.)

irgendjemand eine Ahnung?

Ich habe das Theme nun aus der Entwckicklungsumgebung unter XAMPP beim Kunden eingebaut. Da funktionieren die Snippets und die Ordnerstruktur funktioniert auch. Ich nehme jetzt einfach mal an, dass es an XAMPP liegt. Da funktionieren ja beispielsweise auch das Advanced Menu und Plugins nicht korrekt.

@dst schrieb:

Ich habe das Theme nun aus der Entwckicklungsumgebung unter XAMPP beim Kunden eingebaut. Da funktionieren die Snippets und die Ordnerstruktur funktioniert auch. Ich nehme jetzt einfach mal an, dass es an XAMPP liegt. Da funktionieren ja beispielsweise auch das Advanced Menu und Plugins nicht korrekt.

Hallo,

du hast ja auch mit keinem Wort erwähnt, dass du nicht live, sondern in XAMPP entwickelst. Oft gibt es Sachen, die unter XAMPP nicht (richtig) funktionieren.

Mich hätte es auch stark gewundert, wenn es so nicht funktioniert hätte - schließlich habe ich es so schon selbst gemacht und auch in der Shopware - Schulung wird es so beigebracht.

Beste Grüße

Sebastian

 

Ja, habe auch in keiner Sekunde daran gedacht, dass das mal wieder daran liegen könnte Foot-in-Mouth Bisher lief mit den Snippets immer alles sauber unter XAMPP.

Es ist halt immer etwas schneller einen Shop schnell auf XAMPP einzurichten, als unter Vagrant und Virtual Box. So kann ich für jeden Kunden einen eigenen Shop installieren…