Mini-Tutorial: ein "echtes" Override für Joomla!-Sprachdateien
- geschrieben von Gerald Martin
- Freigegeben in CSS, HTML & Co.
- Gelesen 15256 mal
- Schriftgröße Schriftgröße verkleinern Schrift vergrößern
- Schreiben Sie den ersten Kommentar!
Der ein- oder andere kennt das: im Template will man manche Ausdrücke, die im Joomla!-Core vorgegeben sind, austauschen.
Mir passiert das regelmäßig. Ein typisches Beispiel:
"Geschrieben von [Autor des Beitrags]"
Wenn man diesen Text z.B. in
"[Autor des Beitrags] hat geschrieben"
ändern möchte, dann führt das meistens zum Griff in die Sprachdateien.
Was passiert aber bei einem Update?
Schnell ist das Update eingespielt - und genau so schnell sind evtl. neuere Sprachdateien im Verzeichnis.
Ergo: die eigenen Anpassungen sind futsch!
Wie man dieses Manko elegant umschiffen kann - damit befaßt sich dieses Mini-Tutorial.
Der ein- oder andere kennt das: im Template will man manche Ausdrücke, die im Joomla!-Core vorgegeben sind, austauschen.
Mir passiert das regelmäßig. Ein typisches Beispiel:
"Geschrieben von [Autor des Beitrags]"
Wenn man diesen Text z.B. in
"[Autor des Beitrags] hat geschrieben"
ändern möchte, dann führt das meistens zum Griff in die Sprachdateien.
Was passiert aber bei einem Update?
Schnell ist das Update eingespielt - und genau so schnell sind evtl. neuere Sprachdateien im Verzeichnis.
Ergo: die eigenen Anpassungen sind futsch!
Wie man dieses Manko elegant umschiffen kann - damit befaßt sich dieses Mini-Tutorial.
Die Idee ist simpel: Lassen wir die originalen Sprachdateien einfach in Ruhe!
Nun kann man die Sprachdatei im Verzeichnis '[joomla]/language/de-DE/de-DE.com_content.ini' (siehe Beispiel) im eigenen Template nicht einfach überschreiben, wie Komponenten oder Module via Template Override.
Die Lösung: Wir legen eine eigene Sprachdatei an, in der wir unsere Änderungen schreiben.
Als Voraussetzung sehe einen sicheren Umgang mit Template Overrides .
1. Schritt. Sprachdatei anlegen
Es wird im Standardverzeichnis eine Datei mit folgender Syntax angelegt:
[joomla]/language/[meine_sprache]/tpl_[templatename].ini
Ihr werdet sicher sehen, dass die Standard-Templates dort bereits ebenfalls eigene Dateien haben, z.B. 'de-DE.tpl_beez.ini'.
In die Datei schreibe ich meine eigene Definition:
WRITTENBY=%s hat geschrieben
'%s' steht für den Autor - dieser Platzhalter wird durch den Autorenname ersetzt.
2. Schritt. eigene Sprachdatei laden
Die eigene Sprachdatei wird im Template nicht automatisch geladen - so, wie es bei den Overrides im Verzeichnis '.../[templatename]/html/...' der Fall ist.
Aus diesem Grund muss die eigene Sprachdatei an jeder Stelle geladen werden, an welcher sie gebraucht wird!
Das heißt
a) es muss ein Template-Override erstellt werden und
b) es muss per PHP die Sprachdatei eingebunden werden.
Für das Template-Override im Beispiel habe ich einfach den Ordner 'html/com_content/' aus dem beez-Template in mein Template-Verzeichnis kopiert. Zum einen spuckt Joomla! damit besseren Code in den Beiträgen aus, zum anderen kann ich mein CSS recht einfach definieren, indem ich mir das Original von beez anschaue und ggf. übernehme.
Jetzt muss ich mir die Datei in diesem Verzeichnis suchen, in der ich meine eigene Sprachdatei laden will.
In unserem Beispiel wähle ich
html/com_content/article/default.php
Ich bearbeite hier also die Einzelansicht eines Beitrags - die folgenden Änderungen im Quelltext gelten aber analog auch für sämtliche andere Ansichten.
Im oberen Teil der Datei, gleich nach dem ersten Befehl, gebe ich den Befehl zum Laden der eigenen Sprachdatei.
Das sieht wie folgt aus:
<?php defined('_JEXEC') or die('Restricted access'); JPlugin::loadLanguage( 'tpl_radteam' ); // hier die die Sprachdatei geladen ?>
Zuguterletzt muss die Konstante für meine eigene Ersetzung habe ich noch leicht geändert werden, da ich in meiner Sprachdatei die Konstante auch anders genannt habe (Zeile 40):
... <span class="createdby"><?php JText::printf('WRITTENBY', ...
Wie bereits geschrieben: diese Änderungen müssen in jedem Override vorgenommen werden, in welchem die eigene - templateabhängige - Sprachdatei zum Einsatz kommen soll.
Quellen:
http://forum.joomla.org/viewtopic.php?f=485&t=317747
http://forum.joomla.org/viewtopic.php?f=469&t=223890