Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
dev:284:translate [19.07.2018 11:14] – [Historisches] Manuela v.d.Decken | dev:284:translate [19.07.2018 11:54] – [Das Grundsystem hinter Translate] Manuela v.d.Decken | ||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
===== Allgemeiner Aufbau der Übersetzungs-Struktur ===== | ===== Allgemeiner Aufbau der Übersetzungs-Struktur ===== | ||
- | Der Einfachheit halber rede ich hier immer nur von ' | + | Der Einfachheit halber rede ich hier immer nur von ' |
- | ===== Historisches ===== | + | ==== Aufbau der Sprachdateien (EN.php) ==== |
- | + | ||
- | Die Zeiten, als in Addons die Übersetzungen noch mit solchen und ähnlichen, abenteuerlichen Konstrukten ' | + | |
- | // Load Language file | + | |
- | if(is_readable(WB_PATH.'/ | + | |
- | require_once(WB_PATH.'/ | + | |
- | } | + | |
- | if(is_readable(WB_PATH.'/ | + | |
- | require_once(WB_PATH.'/ | + | |
- | } | + | |
- | if(is_readable(WB_PATH.'/ | + | |
- | require_once(WB_PATH.'/ | + | |
- | } | + | |
- | if(is_readable(WB_PATH.'/ | + | |
- | require_once(WB_PATH.'/ | + | |
- | } | + | |
- | </ | + | |
- | und schon ist alles erledigt. | + | |
- | + | ||
- | Wenn jetzt die berechtigte Frage kommt: 'was ist dann alles erledigt?', | + | |
- | ===== Allgemeiner | + | |
- | + | ||
- | ==== Allgemein ==== | + | |
- | Der Einfachheit halber rede ich hier immer nur von ' | + | |
- | ==== Übersetzungen vor 2.10.0 ==== | + | |
- | Fangen wir beim Stand vor der 2.10.0. Im zentralen Sprachverzeichnis des Core existieren eine große Anzahl von Sprachdateien (DE.php | EN.php | + | |
- | Ab 2.10.0 beginnt die schrittweise Umstellung auf **Translate**. Bis diese komplett abgeschlossen ist, bleiben parallel dazu die ' | + | |
- | <div important> | + | |
- | === Aufbau der Sprachdateien (EN.php) | + | |
Dies ist die bevorzugte und auch dringend empfohlene Art:\\ | Dies ist die bevorzugte und auch dringend empfohlene Art:\\ | ||
// | // | ||
Zeile 70: | Zeile 42: | ||
Nur so lassen sich ungewollte Überschneidungen der Schlüsselwörter verhindern. | Nur so lassen sich ungewollte Überschneidungen der Schlüsselwörter verhindern. | ||
- | Solange jedoch die Variablen | + | ==== Aufbau der DB-Sprachtabelle ==== |
+ | FIXME | ||
+ | |||
+ | ===== Historisches ===== | ||
+ | Fangen wir beim Stand vor der 2.10.0. Im zentralen Sprachverzeichnis des Core existieren eine große Anzahl von Sprachdateien (DE.php | EN.php | usw.). Ja, es waren noch reale Dateien!. Jede dieser Dateien enthält eine schier unüberschaubare Anzahl von Sprachvariablen (genauer gesagt, derzeit etwas über 600!!). Das benutzte System erfordert, dass in jeder Sprachdatei jeder Eintrag vorhanden ist. Fehlt einer, löst das im Benutzungsfall häufig einen Laufzeitfehler | ||
+ | |||
+ | Die Sprachdateien sowohl im Core als auch in Modulen mussten mit solchen und ähnlichen, abenteuerlichen Konstrukten ' | ||
+ | < | ||
+ | // Load Language file | ||
+ | if(is_readable(WB_PATH.'/ | ||
+ | require_once(WB_PATH.'/ | ||
+ | } | ||
+ | if(is_readable(WB_PATH.'/ | ||
+ | require_once(WB_PATH.'/ | ||
+ | } | ||
+ | if(is_readable(WB_PATH.'/ | ||
+ | require_once(WB_PATH.'/ | ||
+ | } | ||
+ | if(is_readable(WB_PATH.'/ | ||
+ | require_once(WB_PATH.'/ | ||
+ | } | ||
+ | </ | ||
+ | Die Ausgabe erfolgte nach dem rudimentären Muster: | ||
<PHP> | <PHP> | ||
// Syntax Typ 1 | // Syntax Typ 1 | ||
Zeile 83: | Zeile 77: | ||
echo $MOD_MyModule_MESSAGE[' | echo $MOD_MyModule_MESSAGE[' | ||
</ | </ | ||
- | solange kann auf die oft ellenlangen Präfixes | + | Nach dieser alten Prä-Translate-Methode sind leider noch die teils ellenlangen Präfixes |
+ | <div important> | ||
+ | ===== Die Zukunft ===== | ||
+ | hat bereits begonnen. | ||
+ | <div info>Ab 2.10.0 beginnt die schrittweise Umstellung auf **Translate**. Bis diese komplett abgeschlossen ist, bleiben parallel dazu die ' | ||
+ | Wo die Umstellung schon erfolgte, genügt ab jetzt ein einfaches: < | ||
+ | und schon ist alles erledigt. | ||
+ | Wenn jetzt die berechtigte Frage kommt: 'was ist dann alles erledigt?', | ||
- | ==== Das Grundsystem hinter Translate ==== | + | ===== Das Grundsystem hinter Translate |
Translate basiert auf der Vorgabe, dass Sprachdateien grundsätzlich jeweils nur die für den jeweiligen Bereich notwendigen Einträge enthalten. Im Gegenzug werden relativ viele, kleine Sprachdateien eingesetzt. Jedes Addon, jede ACP-Erweiterung **muss** und sogar jedes einzelne Template/ | Translate basiert auf der Vorgabe, dass Sprachdateien grundsätzlich jeweils nur die für den jeweiligen Bereich notwendigen Einträge enthalten. Im Gegenzug werden relativ viele, kleine Sprachdateien eingesetzt. Jedes Addon, jede ACP-Erweiterung **muss** und sogar jedes einzelne Template/ | ||
Diese Aufteilung vereinfacht die Arbeit eines Entwicklers. Er muss nicht mehr ' | Diese Aufteilung vereinfacht die Arbeit eines Entwicklers. Er muss nicht mehr ' |