Jump to content

[solved]Neue Einträge in Language Files


Recommended Posts

Hi,

 

Ich habe an meinem Prestashop (Version 1.4.3) umfassende Änderungen am Design, an den Rechnungen usw vorgenommen...da ich nicht herausgefunden hab wie man zusätzliche Texte in Language Files einfügen kann, habe ich in mehreren Templates im theme, in einer Javascript Datei und in der PDF Klasse mehrere Texte hardcoded eingefügt.

 

Da der Shop aber auch bei der Umstellung auf andere Sprachen dynamisch bleiben soll, würde ich diese Texte gerne in den Language Files hinzufügen.... wie kann ich das realisieren?

 

Die Language Files sind nach meinen Beobachtungen so aufgebaut:

$_LANG['bereich_hashwert'] = 'text';

 

Wie kann ich da eigene Einträge hinzufügen?

 

 

lg

Link to comment
Share on other sites

Da hier keiner Antwortet, ich auch per Google nichts dazu finde und es im Backend dafür keine Option gibt, nehme ich an das die Language Files gar nicht dazu gedacht sind Einträge hinzuzufügen?

 

Gibt es eine "schönere" Variante als den text hardcoded zu belassen?

Link to comment
Share on other sites

Doku für Entwickler findest du HIER. Zwei letzten Links im Post. Eigentlich reicht es wenn bereits eine Klasse erfasst ist und du eine entsprechende Variable dazu einfügst. Diese ist dann auch im BO übersetzbar. Allerdings hast du das Problem bei extra Modulen die nicht mehrsprachig gecodet sind, also schlecht programmiert wurden, dass dies so nicht möglich ist.

 

Leider hast du nicht genauer dein Problem beschrieben, wo du was geändert hast, was multisprachig sein soll.

Link to comment
Share on other sites

Danke für deine Antwort, die Links werd ich mir dann gleich durchlesen.

Meinst du eine entsprechende Variable im Language File einfügen? Da diese Variabeln immer aus hash-artigen Werten zusammengebaut sind weiß ich nicht wo ich die herbekomme?

 

Viel hardcoded deutschen Text eingefügt hab ich in classes/PDF.php, außerdem in mehreren templates im theme Ordner (z.B. themes/custom/shopping-cart.tpl, themes/custom/authentication.tpl, themes/custom/order.tpl.....), auch in einem Javascript File (themes/custom/js/product.js) und auch im Bankwire (modules/bankwire/payment_execution.tpl...) und Cashondelivery (modules/cashondelivery/validation.tpl...) Modul hab ich in den Templates etwas hinzugefügt

Link to comment
Share on other sites

Oh je, das dachte ich mir schon. Sorry, aber da kann ich nicht weiterhelfen. Da sind verschiedene Regeln die greifen.

Generell gilt. In classes eine Variable erfassen, damit diese mittels Smarty ans Template weitergegeben wird. Du musst dich durch die o.g. Links ackern, sorry.

Link to comment
Share on other sites

Was genau meinst du mit verschiedenen Regeln?

 

Hm ok, das hab ich mir irgendwie einfacher vorgestellt.... falls ichs gar nicht hinkriege schaff ichs ja vielleicht mit irgendwelchen, für andere Texte gedachten aber nicht benutzten, Language File Einträge auszukommen...

 

Trotzdem Danke!

Link to comment
Share on other sites

Variablen in Module sind anderen Regeln unterzogen, als die core-Dateien. Im Prinzip greifen aber alle auf die entsprechenden classes.php zu und den hinterlegten Variablen im smarty. Ein Programmierer kann dir da besser helfen, ich kann nicht coden, nur lesen/anpassen.

Link to comment
Share on other sites

Hi,

 

eigentlich ein blöder Fehler von mir, im Prinzip funktioniert das ganze eh ganz einfach, genauso wie man vermuten würde... mein Denkfehler war nur, dass ich dachte ich müsste es zuerst irgendwie im Language File hinzufügen damit es im Template verfügbar ist, aber eigentlich ist es umgekehrt.... also für alle die mal vorm selben Problem stehen:

 

1. Man fügt in den Dateien ganz normal die Language Felder ein, also:

in Template Dateien: {l s='Text'}

in Template Dateien von Modulen: {l s='Text' mod='Modulname'}

in den Controllern für Fehlermeldungen: $this->errors[] = Tools::displayError('Fehlertext');

in der PDF Klasse (bzw. falls es noch andere Klassen gibt die ihre eigene l-Methode implementieren auch dort): self::l('Text')

 

2. Man geht ins Backend->Tools->Translations, wählt dort die jeweilige Kategorie + Sprache aus, sucht dann nach seinem "Text" und übersetzt ihn und klickt auf speichern

 

3. Übersetzungen werden automatisch im Language File generiert und die Übersetzungen funktionieren

 

lg

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...