Sprachanpassung in Wave will nicht gelingen. Wo steckt der Fehler?

Hallo in die Runde,
in unserem Shop würde ich gerne den Text für ident=“MESSAGE_NOT_ON_STOCK” ändern und zwar richtig. “Ab Werk” steht der deutsche Text für dieses ident in \source\Application\translations\de\lang.php und wenn ich den Text dort ändere, TMP leere und im Shop nachsehe, wird die Änderung auch akzeptiert.
ABER! Die direkte Änderung in der standard-Datei ist wohl nicht der richtige Weg. Wenn ich nichts falsches gelernt habe, dann müsste doch ein Eintrag in einer cust_lang.php im gleichen Verzeichnis ebenfalls zum Erfolg führen. Tut es aber nicht.
Da ich ein Child-Theme von Wave nutze, dachte ich, probiere mal einen Eintrag in
\source\Application\views\wave-child\de\lang.php und siehe da, funktioniert auch.
Nächster Versuch: \source\Application\views\wave-child\de\cust_lang.php - auch ok.
Fazit:

  1. \source\Application\translations\de\lang.php funktioniert, ist aber falsche Stelle
  2. \source\Application\translations\de\cust_lang.php funktioniert nicht
  3. \source\Application\views\wave-child\de\lang.php funktioniert
  4. \source\Application\views\wave-child\de\cust_lang.php funktioniert auch

Fragen:

  1. Müsste Variante 2 eigentlich funktionieren und es gibt einen Bug in Oxid/Wave?
  2. Ist Variante 3 oder 4 die richtige(re) Lösung?

Da sicherlich noch mehr textliche Änderungen gewünscht sind, möchte ich es möglichst gleich richtig machen. Danke für Euer Feedback.

1) nein, ist nicht vorgesehen, siehe Code:


es werden nur cust_lang.php Dateien in den Ordners der Themes gesucht,
aber nicht in application/translations/

2) Wenn du ein fremdes Child Theme nutzt, das von einer anderen Person als dir gepflegt wird, ist 4 die richtige Lösung, damit deine Anpassung nicht beim nächsten Update verloren geht.
Wenn du aber ein eigenes Child Theme hast, das nur du bearbeitest, dann ist 3 die richige Lösung*

* es kommt darauf an, welche Übersetzung man überschreibt. Theme-Übersetzungen werden vor Modul-Übersetzungen geladen, d.h. ein Modul könnte deine Übersetzung in der lang.php überschreiben. Die cust_lang.php wird aber nach den Modul-Übersetzungen geladen, d.h. damit könntest du die Übersetzungen von Modulen speziell für dein Theme überschreiben.

1 Like

:checkered_flag: Perfekte Antwort. Danke @vanilla_thunder !!!