Mini-Tutorial: ein "echtes" Override für Joomla!-Sprachdateien

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

Letzte Änderung amMontag, 23. September 2013
Mehr in dieser Kategorie: Tutorial: Menue-Modul mit MenuMatic »

Schreibe einen Kommentar

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung.