Arbeiten mit Sprachdateien

MoziloCMS unterstützt verschiedene Sprachen. Um diese Funktionalität auch innerhalb des Plug-ins bereit zu stellen empfiehlt sich folgender Aufbau.

1. Verzeichnisstruktur

In unserem Plug-in Verzeichnis legen wir ein Unterverzeichnis mit dem Name "sprachen" an. In diesem werden alle Sprachdateien gespeichert. MoziloCMS besitzt zwei Spracheinstellungen, einmal die Sprache für die Adminoberfläche und einmal die Sprache für das CMS. Aus diesem Grund sollten wir auch pro Sprache zwei Sprachdateien anlegen. Als Dateiname eignet sich "admin_language_deDE.txt" und "cms_language_deDE.txt". Das deDE entspricht dabei dem Sprachkürzel, dieses setzt sich aus dem ISO 639-1 Wert gefolgt vom ISO 3166 Wert zusammen. Für Deutsch in Deutschland also deDE, siehe auch SelfHTML.

2. Aufbau der Sprachdateien

Jedes Sprachelement muss auf einer neuen Zeile stehen und einen, innerhalb der Datei eindeutigen, Bezeichner besitzen. Auf den Bezeichner folgt ein = und darauf der Text. Zum Beispiel:
  • plugin_name              = <b>DemoPlugin</b>

3. Verwendung der Sprachdateien

Zur einfachen Verwendung legen wir zwei private Variablen $lang_admin und $lang_cms an. In der getContent Funktion initialisieren wir die $lang_cms mit:

  1. global $CMS_CONF;
  2. $this->lang_cms = new Language($this->PLUGIN_SELF_DIR."sprachen/cms_language_".$CMS_CONF->get("cmslanguage").".txt");

Der Zugriff auf das Sprachelement erfolgt dann über den Namen:

  1. $this->lang_cms->getLanguageValue("keintext")

Die $lang_admin wird in der Funktion getInfo initialisiert.

  1. global $ADMIN_CONF;
  2. $this->lang_admin = new Language($this->PLUGIN_SELF_DIR."sprachen/admin_language_".$ADMIN_CONF->get("language").".txt");

Pro Sprachelement können auch zwei Platzhalter ({PARAM1}, {PARAM2}) verwendet werden. Der Inhalt für diese kann der getLanguageValue als 2., und 3. Parameter mit übergeben werden.

Generell sollten alle Texte, die irgendwann mal ausgegeben werden, in die Sprachdateien ausgelagert werden. Dann müssen beim Übersetzen des Plug-ins immer nur die beiden Sprachdateien angepasst werden.

4. Komplette Sourcen des DemoPlugin

Download