Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
dev:284:translate [19.07.2018 11:54] – [Das Grundsystem hinter Translate] Manuela v.d.Decken | dev:284:translate [31.08.2023 08:22] (aktuell) – [Wie wird Translate benutzt?] Manuela v.d.Decken | ||
---|---|---|---|
Zeile 9: | Zeile 9: | ||
Dies ist die bevorzugte und auch dringend empfohlene Art:\\ | Dies ist die bevorzugte und auch dringend empfohlene Art:\\ | ||
// | // | ||
- | <PHP> | + | <code php> |
//Modul Description | //Modul Description | ||
$module_description = 'Enter here a really short description of your module. About 200-250 characters should suffice.'; | $module_description = 'Enter here a really short description of your module. About 200-250 characters should suffice.'; | ||
Zeile 19: | Zeile 19: | ||
$MOD_MyModule[' | $MOD_MyModule[' | ||
$MOD_MyModule[' | $MOD_MyModule[' | ||
- | </PHP> | + | </code> |
manche schreiben die Einträge auch auf diese Art:\\ | manche schreiben die Einträge auch auf diese Art:\\ | ||
//(deutlich schwieriger zu lesen und nicht exakt sortierbar)// | //(deutlich schwieriger zu lesen und nicht exakt sortierbar)// | ||
- | <PHP> | + | <code php> |
$MOD_MyModule[' | $MOD_MyModule[' | ||
$MOD_MyModule[' | $MOD_MyModule[' | ||
Zeile 29: | Zeile 29: | ||
$MOD_MyModule_MESSAGE[' | $MOD_MyModule_MESSAGE[' | ||
$MOD_MyModule_MESSAGE[' | $MOD_MyModule_MESSAGE[' | ||
- | </PHP> | + | </code> |
Das sieht nicht soo gut aus, aber es funktioniert. Beide Schreibweisen erzeugen jedenfalls die selben Translate-Schlüsselwörter. | Das sieht nicht soo gut aus, aber es funktioniert. Beide Schreibweisen erzeugen jedenfalls die selben Translate-Schlüsselwörter. | ||
- | <PHP> | + | <code php> |
echo $oTrans-> | echo $oTrans-> | ||
echo $oTrans-> | echo $oTrans-> | ||
Zeile 38: | Zeile 38: | ||
echo $oTrans-> | echo $oTrans-> | ||
echo $oTrans-> | echo $oTrans-> | ||
- | </PHP> | + | </code> |
Zwingend ist derzeit jedoch noch der Präfix " | Zwingend ist derzeit jedoch noch der Präfix " | ||
Nur so lassen sich ungewollte Überschneidungen der Schlüsselwörter verhindern. | Nur so lassen sich ungewollte Überschneidungen der Schlüsselwörter verhindern. | ||
Zeile 49: | Zeile 49: | ||
Die Sprachdateien sowohl im Core als auch in Modulen mussten mit solchen und ähnlichen, abenteuerlichen Konstrukten ' | Die Sprachdateien sowohl im Core als auch in Modulen mussten mit solchen und ähnlichen, abenteuerlichen Konstrukten ' | ||
- | <PHP> | + | <code php> |
// Load Language file | // Load Language file | ||
if(is_readable(WB_PATH.'/ | if(is_readable(WB_PATH.'/ | ||
Zeile 63: | Zeile 63: | ||
require_once(WB_PATH.'/ | require_once(WB_PATH.'/ | ||
} | } | ||
- | </PHP> | + | </code> |
Die Ausgabe erfolgte nach dem rudimentären Muster: | Die Ausgabe erfolgte nach dem rudimentären Muster: | ||
- | <PHP> | + | <code php> |
// Syntax Typ 1 | // Syntax Typ 1 | ||
global $MOD_MyModule; | global $MOD_MyModule; | ||
Zeile 76: | Zeile 76: | ||
echo $MOD_MyModule_TEXT[' | echo $MOD_MyModule_TEXT[' | ||
echo $MOD_MyModule_MESSAGE[' | echo $MOD_MyModule_MESSAGE[' | ||
- | </PHP> | + | </code> |
Nach dieser alten Prä-Translate-Methode sind leider noch die teils ellenlangen Präfixes notwendig. | Nach dieser alten Prä-Translate-Methode sind leider noch die teils ellenlangen Präfixes notwendig. | ||
<div important> | <div important> | ||
Zeile 121: | Zeile 121: | ||
Für Addon-Entwickler ist Translate sehr einfach einzusetzen. Die Grundinitialisierung wird **immer** automatisch vom Core vorgenommen und Addons haben damit überhaupt nichts zu schaffen. Bei älteren Addons, die noch PHP-Dateien enthalten, die direkt von außen aufgerufen werden müssen, sind 2 bis maximal 4 Translate-Methoden erforderlich (alle Kommandos werden in der Standalone-Form angegeben). Bedingung für den Einsatz von Translate ist, dass die Datei '' | Für Addon-Entwickler ist Translate sehr einfach einzusetzen. Die Grundinitialisierung wird **immer** automatisch vom Core vorgenommen und Addons haben damit überhaupt nichts zu schaffen. Bei älteren Addons, die noch PHP-Dateien enthalten, die direkt von außen aufgerufen werden müssen, sind 2 bis maximal 4 Translate-Methoden erforderlich (alle Kommandos werden in der Standalone-Form angegeben). Bedingung für den Einsatz von Translate ist, dass die Datei '' | ||
- | * <php>Translate:: | + | * '' |
- | * <php> | + | * '' |
- | * <php>Translate:: | + | <div info>Die folgenden Methoden stehen erst ab Template Version 1.0.0 zur Verfügung!</ |
- | * < | + | * '' |
+ | * '' | ||
Einfacher noch geht es bei Addon-Dateien, | Einfacher noch geht es bei Addon-Dateien, | ||
Jetzt müssen eigentlich nur noch die Übersetzungstexte von Translate abgerufen werden. Der einfachste Weg ist:\\ | Jetzt müssen eigentlich nur noch die Übersetzungstexte von Translate abgerufen werden. Der einfachste Weg ist:\\ | ||
- | <php> $oTrans = Translate:: | + | <code php> |
- | < | + | $sText = $oTrans-> |
- | entspricht dem früheren\\ | + | // oder auch |
- | <php> globals $TEXT; </ | + | $sText = Translate:: |
- | <php> $sText = $TEXT[' | + | </code> |
+ | entspricht dem früheren | ||
+ | <code php> | ||
Für ältere Addons existiert vorübergehend eine Methode, sämtliche Übersetzungstexte in einem Zug an die // | Für ältere Addons existiert vorübergehend eine Methode, sämtliche Übersetzungstexte in einem Zug an die // | ||
- | <php> $template-> | + | <code php> $template-> |
Das Problem bei dieser Methode ist, dass immer eine komplette Kopie der Übersetzungstabelle an die Templateengine übergeben wird. | Das Problem bei dieser Methode ist, dass immer eine komplette Kopie der Übersetzungstabelle an die Templateengine übergeben wird. | ||
- | Wesentlich einfacher und platzsparender ist die Verwendung in Verbindung mit Twig, da hier nur eine speichersparende Referenz auf das Translateobjekt übergeben wird:\\ | + | Wesentlich einfacher und platzsparender ist die Verwendung in Verbindung mit Twig, da hier im Php-Code |
- | <php> $aTwigData[' | + | <code php> |
+ | die Anzeige im Twig-Template erfolgt | ||
+ | <code twig>{{ Trans.TEXT_CANCEL }}</ | ||