Sprachen Editor

Aus Contao Community Documentation

Version vom 8. Februar 2012, 11:47 Uhr von Tril (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Mit dem Sprachen Editor (language-editor) lassen sich die Sprachvariablen $GLOBALS['TL_LANG'] bequem aus dem Backend bearbeiten.

Erweiterungs-Übersicht
Name des Entwicklers Tristan Lins
Version der Erweiterung 1.0.0
Kompatibilität mit Contao Version 2.10+
Link zum Extension Repository http://www.contao.org/de/extension-list/view/language-editor.html
Link zum Tracker https://github.com/InfinitySoft/contao-language-editor/issues
Abhängig von ff. Erweiterungen MetaPalettes, hiddenfield


Der Sprachen Editor

Der Sprachen Editor erlaubt es die Sprachvariablen $GLOBALS['TL_LANG'] aus dem Backend heraus zu bearbeiten. Diese Variablen werden vielfach in Contao und Erweiterungen zur Internationalisierung verwendet. Zum Beispiel verbirgt sich hinter $GLOBALS['TL_LANG']['MOD']['avisota_translation'] die Bezeichnung des Menüpunktes Newslettersystem -> Sprachvariablen aus dem Avisota Newslettersystem. Ändert man die Variable ab, was man z.B. über die system/config/langconfig.php machen kann, ändert sich auch die Bezeichnung des Menüpunktes. Es ist kein Zufall, das gerade dieser Menüpunkt erwähnt wird, denn der Sprachen Editor ist die Weiterentwicklung eben dieser [Sprachvariablen] Funktion aus Avisota.

Installation

Der Sprachen Editor ist unter dem Namen language-editor im Extension Repository zu finden und kann über den Erweiterungskatalog / die Erweiterungsverwaltung installiert werden. Nach der Installation steht im Bereich System ein neuer Menüpunkt Sprachen Editor zur Verfügung.

Der Index

Zuerst muss man wissen, dass $GLOBALS['TL_LANG'] eine sehr große Anzahl an Einträgen beinhaltet die niemals alle geladen werden. Das wäre auch nicht nötig. Deshalb arbeitet der Sprachen Editor mit einem Index der Einträge, die sich in $GLOBALS['TL_LANG'] befinden. Der Index wird in der globalen Variable $GLOBALS['TL_TRANSLATION'] gespeichert. Diese Variable kann von Erweiterungsentwicklern auch vorbefüllt werden. So ist es einem Entwickler möglich, die Bearbeitung seiner Sprachevariablen zu erleichtern, in dem er eine Beschreibung hinzufügt oder bestimmte Variablen einfach ausblendet.

Für Entwickler: Variablen im Index definieren

Achtung.png Achtung: TODO


Für Benutzer: Den Index dynamisch aufbauen

Standardmäßig stehen nur die Variablen zur Verfügung, die in der globalen Variable $GLOBALS['TL_TRANSLATION'] gespeichert sind. Es ist davon auszugehen, dass nur ein kleiner Teil an Entwicklern den Sprachen Editor unterstützen wird, deshalb kann der Sprachen Editor den Index dynamsich aufbauen. Dies geschieht mit der Funktion Index aufbauen.

Übersicht

Die Übersicht zeigt die aktuell im Index befindlichen Gruppen und Variablen. Bei einer frischen Installation sind dies sehr weniger. Wurden erstmal alle erfast, kann der Index bis über 100 Gruppen und mehrere Tausend Variablen umfassen. Normalerweise wird der Index inkrementel aufbebaut, d.h. nur unbekannte Sprachgruppen werden neu erfasst. Mit der Option Alle Sprachvariablen erfassen werden alle Gruppen neu erfasst. Mit einem Klick auf Sprachvariablen erfassen wird der Vorgang gestartet.

Aufbauen des Index

Dieser Vorgang kann Anfangs sehr lange dauern, ich empfehle eine Tasse Kaffee zu holen und den RSS Reader durchzugehen, bis der Vorgang abgeschlossen ist (Alle Punkte haben ein grünes "abgehakt" Symbol).

Wenn man sich anschaut, wie lange dieser Vorgang dauert wird schnell klar, warum der Index notwendig ist, ansonsten wäre dieser Zeitliche Aufwand bei jedem Vorgang innerhalb des Sprachen Editors notwendig, was ihn schlichtweg unbenutzbar machen würde.

Sprachvariablen bearbeiten

Nachdem der Index aufgebaut ist, können nun die verfügbaren Sprachvariablen bearbeitet werden. Geht dazu zurück zum Sprachen Editor und wählt den Eintrag Neue Sprachvariable. Im folgenden Beispiel verwende ich die Variable MOD.avisota_translation, diese entspricht $GLOBALS['TL_LANG']['MOD']['avisota_translation']. Die Syntax ist recht einfach zu verstehen, ein Punkt trennt das folgende Element als neues Array vom vorherigen Element ab, alle Elemente sind grundsätzlich unter $GLOBALS['TL_LANG'] eingegliedert.

Sprachvariable bearbeiten

Die Auswahlbox Sprachvariable erlaubt die Auswahl einer Variable, die man bearbeiten möchte.
Die Auswahlbox Sprache erlaubt die Auswahl der Sprache, in der man die Variable bearbeiten möchte.
Mit Im Backend anwenden und Im Frontend anwenden lässt sich eine Modifikation auf das Backend oder Frontend beschränken. Wird hier kein Eintrag ausgewählt ist die Modifikation deaktiviert.
Das Feld Standardwert zeigt an, welcher Wert Standardmäßig in der Variable steht. So kann man sich immer leicht an dem vorgegebenen Inhalt orientieren, wenn man eine Variable bearbeitet.
Im Feld Inhalt gibt man den neuen Inhalt der Sprachvariable an. Dieses Feld kann sich je nach Sprachvariable ändern. Z.B. in ein Doppeleingabefeld, ein einfaches Textfeld oder eine Textarea.

Änderungen

Die Änderungen werden (außerhalb des Sprachen Editors) sofort angewendet.

Sprachvariablen suchen

Mit der Funktion Sprachvariable suchen kann man auch nach Variablen suchen. Dies ist ganz wichtig, weil man eigentlich niemals weiß, in welcher Variable genau das drin steht, was man ändern möchte.

Sprachvariable suchen

In das Feld Zeichenkette gibt man den Text/HTML Code ein, den man suchen möchte. Will man seine Suche verfeinern, kann man sich mit dem Wildcard * behelfen. So sucht foo* nur nach Variablen, die mit foo anfangen, während *foo Variablen sucht, die mit foo enden und foo*bar Variablen, die mit foo anfangen und auf bar enden. Standardmäßig wird einfach nur auf die Existenz innerhalb des Inhalts geprüft (entspricht *foo*). Zusätzlich kann man noch die Sprache in der man suchen möchte bestimmen und wenn man zumindest weiß in welcher Gruppe sich die Variable befindet, kann man auch diese Einschränken.

Sprachvariable suchen

Wurden ein oder mehr Einträge gefunden unterbricht die Suche. Ist man fündig geworden, reicht ein Klick auf den entsprechenden Eintrag und man kann die Variable direkt bearbeiten. Ansonsten sucht mit mit Weitersuchen einfach weiter.

Performance

Die Änderungen werden in PHP Generiert und über die system/config/langconfig.php geladen. Für das Anwenden der Änderungen wird also keine Datenbankverbindung benötigt. Der einzige Overhead entsteht, weil der Sprachen Editor zusätzliche PHP Dateien generiert, die geladen werden. Contao muss also ein paar mehr PHP Dateien laden, ansonsten entsteht kein weiterer Overhead.

Einschränkungen und "Unschönheiten"

Die veränderten Sprachvariablen werden innerhalb des Sprachen Editors selbst nicht angewendet. Dies ist notwendig, weil es sonst nicht möglich ist auf den Standardwert zurück zu greifen.

Ändert man Sprachvariablen in einer anderen Sprache, kann sich möglicherweise die Sprache des Interfaces temporär ändern. Das liegt daran, dass die Gruppe der Sprachvariable die man bearbeitet in der zu bearbeitenden Sprache geladen wird und möglicherweise die lokale Sprache überschreibt.

Ansichten
Meine Werkzeuge

Contao Community Documentation

die Liste ist länger als ich und lindes zusammen...

Yanick Witschi
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge