Der Language File Editor

Was ist der „Language File Editor”?

Der „Language File Editor” ist eine TYPO3-Erweiterung die Entwickler, Integratoren sowie Redakteure bei der Bearbeitung, Erstellung und Wartung von Sprachkonstanten unterstützt. Das reicht von dem veralteten PHP-Format, über die XML-Variante bis hin zur modernen XLF-Lösung.

Diese Erweiterung bietet verschiedene Funktionen zum Editieren von Sprachdateien. Unterstützt werden nicht nur professionelle Nutzer, sondern auch „normale Nutzer”. Nachfolgend die Funktionen, die diese Erweiterung beinhaltet:

  • Die Formate: PHP, XML, XLF
  • Verschiedene Eingabetypen (einfache Texteingabe, Rich Text)
  • Konvertierung zwischen den verschiedenen Formaten
  • Spaltung und Verschmelzung von Sprachdateien
  • Einfache Bearbeitung von einzelnen Konstanten und kompletten Sprachen
  • Flexible Suche und Ansicht von Konstanten und Werten
  • Handhabung von Meta-Informationen (wie z.B. das letzte Bearbeitungsdatum)
  • Backups mit Differenz-Anzeige und deren Wiederherstellung

README der Extension

EXT:lfeditor

License: GNU GPL, Version 2

Repository: https://gitlab.sgalinski.de/typo3/lfeditor

Please report bugs here: https://gitlab.sgalinski.de/typo3/lfeditor

About

The lfeditor is a GUI for adding, editing and deleting translations in .xlf, .xml and .php files.

XML and PHP files can be converted to .xlf files.

The editor can be found in the user tool section of the TYPO3 backend (click on your user in the top panel and select LFEditor).

Configuration

Extension Settings

In the extension manager, you can configure the following settings of the lfeditor extension:

View languages

List of languages which will be available in the extension (comma separated country codes e.g. en, de, fi).

If this setting is empty, all languages will be used (Warning: very long list!). Default language is always included.


Default language

If en is not the default language in TYPO3 backend, the default language must be defined here. If this field is empty, English is used as default.


Ignore extensions

Regular expression which can be used to exclude extensions by their extension key.


Change XLF date

If set to TRUE, LFEditor will change the date in the files on each change.

Extension Settings

There is an additional option in the Access Rights tab on the very bottom, when editing a non-admin backend user. You can now select the The user can save localization changes directly to extensions?.

Backend users who don't have this check box selected, will be in override mode by default, and they can't switch to another mode.

Usage

The Menu

Main navigation through LFEditor is done by selecting one of the options of drop down menu on top-left part of the screen.

General

This option displays general information about all the languages.

Displayed languages should be configured in the configuration section of LFEditor, because the default behavior of LFEditor for administrators is to display all existing translation languages of TYPO3. While non-admin users see only languages which they have permissions for.

Beside the language shortcut, there is the state and origin of the related language file. Clicking any language shortcut redirects to the Edit File page for this language.

The column state shows the state of translation and contains the number of translated, unknown and untranslated language constants. Unknown constants are the ones which exist in the language and don’t exist in default language.

At the bottom of the page, there are options for converting and splitting language files. Those options are not displayed in override mode, and it is not possible to merge your files. Splitting of language files increases the performance of backend and frontend. There is also a field set that allows editing of the meta information in language files.


Edit File

This option allows editing of all constants in a language file and a selected language. Users can choose between translated, untranslated, unknown or all constants.

This whole dialog is handled by a session. This means that a user can translate a whole page and doesn't need to save the changes before clicking on 'next' button to get the next page with language constants.


Edit Constant

This option serves for translating a single constant in several languages. Available languages depend on the user language privileges and on the configured "view languages".


Add Constant

This option serves for adding new constants to language files. The user needs to enter a new name and translations for chosen languages can be entered right away.


Delete Constant

This option allows the user to delete a selected constant. The constant will be deleted from all languages.


Rename Constant

This option serves for renaming the key of an existing language constant. The constant to rename is chosen from a select list, and then the new name is entered in the text field.


Search Constants

This option allows the user to search for constants in all language files.

  • Find constants which match the search string within a key or value (translation).
  • The matching can be case-sensitive or insensitive
  • Supports regular expressions
  • Looks only among a subset of languages which is defined in the lfeditor extension configuration

Clicking on a constant key of any search result, redirects to the Edit Constant page.


View Tree

This option serves for a better overview and easier access to constants. It displays all constants of a language file arranged in a tree.

Constants are displayed as leaves of the tree, and they are colored in three colors which indicate the translation state of each constant for a selected language (language from first select box).

Constants are compared to a language from the second select box, resulting in three states:

  • green - normal constant (translated in both languages)
  • red - untranslated constant (translated only in second language)
  • blue - unknown constant (translated only in first language)

Clicking on tree leaf (last segment of constant key) redirects to the Edit Constant page.


Manage Backups

The backup option displays all backups of the selected extension. It is possible to recover every backup, delete them or just have a look at the differences. User can revert splitting and merging of files too.

Conversions of the file format are not revertible.

If language file was converted to another format, there will be a red warning in the status of the backup table entry and that backup can only be deleted.

All changes since the backup are visible through the differences' functionality. Green color means that the constant was added and red that it was deleted since the backup was made.

Editing modes

There are three editing modes:

  • Extension mode
  • l10n mode
  • Override mode

They can be chosen from the rightmost select menu on top of the screen. The select menu is visible only for administrators.

If the user is not an admin, Override mode is chosen by default. For administrators, the default is the Extension mode.

Extension mode

This mode is useful for extension developers, because in this mode the lfeditor edits the extension files directly. Even if copies of extension files exist in l10n folder or extension files are overridden, lfeditor will still edit the extension files only.


l10n mode

This mode is similar to extension mode, with the only difference being that the l10n directory has higher priority than the extension directory. This means that if there is a copy of the language file in l10n folder (e.g. de.locallang), that copy will be edited instead of the original extension file. If there is no corresponding file in l10n folder the original file will be edited.

Here are some of the characteristics of l10n mode:

  • Files can't be moved to the l10n folder. They can be edited if they already exist in l10n folder
  • Merging/splitting is not allowed in l10n mode
  • Renaming of a constant will rename it in the main language file (e.g. ext/.../locallang) and in all subfiles in the l10n (e.g. l10n/.../de.locallang) and ext folder
  • Deleting and adding files work similar to renaming

Override mode

The purpose of this mode is making translations unaffected by changes in an extension (e.g., when an extension updates, the translations will be preserved). This mode is useful for translators and is the only mode available for non-admin users.

  • If a user makes any changes in a language file, only the changed constants (or metadata) will be saved in the corresponding language file in typo3confLFEditorOverrideFiles
  • When reading language file, LFEditor is first reading constants from files in override folder, then it reads rest of constants from l10n folder (if there is corresponding file in l10n folder), and then reads from ext folder (if there was no file in l10n folder).
Note for switch to v4 of v4 of typo3/cms-composer-installers:

If you do switch to new composer installer, you will have to rename your Overridesfolder to use "-" instead of "_", since the naming scheme is different.

Installation / Integration

Öffnen Sie das TYPO3-Backend und klicken Sie auf der linken Seite auf „Erweiterungsmanager" im Abschnitt „Adminwerkzeuge”.

Über der Funktion „Erweiterungen hinzufügen” können Sie „Jetzt aktualisieren” klicken, um Ihre Paketliste zu aktualisieren. Danach geben Sie „LFEditor” in die Suche ein und klicken auf den Button unter "Aktionen", um den „LFEditor” hinzuzufügen.

Den „Language File Editor” benutzen

Unter „Benutzerwerkzeuge” finden Sie nun den „LFEditor”. In der oberen linken Ecke können Sie wählen, ob Sie eine Datei editieren, eine Konstante hinzufügen oder löschen wollen (und so weiter).

Sprachdatei editieren

In diesem Beispiel wird aus der Extension „realurl” die Datei „locallang_csh.xml”, mit der Sprache „de” (deutsch) gewählt. Unter der Auswahl „wähle Art der Konstanten” können Sie alle, übersetzt, nicht übersetzt und unbekannt wählen. Unbekannte Sprachdateien werden nur in der Originalsprache angezeigt.

Der „LFEditor” gibt Ihnen dann die Dateien wie in Abbildung 3 aus. Im oberen Feld die Referenzsprache, im unteren die Originalsprache.

Konstante hinzufügen

Wie der Name schon sagt, können Sie unter diesem Menüpunkt Konstanten hinzufügen. Sie können einen Konstantennamen wählen und die Übersetzungen vervollständigen.

Konstanten editieren

Wenn Sie „Konstanten editieren” wählen, sehen Sie eine erweiterte Version von Abbildung 3. Normalerweise werden Ihnen die 53 Sprachfelder angezeigt, welche dann - falls vorhanden - die jeweilige Übersetzung vom „Folder tree” (dt. Verzeichnisbaum) enthalten. Die Anzahl der angezeigten Sprachen können Sie über die Konfiguration (siehe Abbildung 9)„View Languages” ändern. Wenn Sie sehen, dass die deutsche Übersetzung fehlt, können Sie diese einfach eintragen und unten auf der Seite speichern.

Konstante löschen

Unter dem Menüpunkt „Konstante löschen” können Sie Konstanten aus Sprachdateien löschen. Erweiterung, Sprachdatei und Konstante wählen, evtl. Häkchen setzen und löschen klicken.

Konstante umbenennen

Konstanten können schnell umbenannt werden. Nach der üblichen Auswahl einfach bei „neuer Konstantenname” Ihren gewünschten Namen einfügen und auf „umbenennen” klicken.

Konstanten suchen

Nachdem Sie die entsprechende Erweiterung und Sprachdatei gewählt haben, geben Sie entweder den vollen Namen oder auch nur einen Teil ein. Wie Sie sehen, gibt es bei dem Suchbegriff „folder” zwei Ergebnisse. Wenn Sie jetzt beispielsweise auf „folderTree” klicken, werden Sie zu „Konstante editieren” der Konstante „folderTree” verwiesen.

Baumansicht

In der Baumansicht sehen Sie alle Konstanten, die Sie auch in „Konstante editieren” aufrufen können. In der Baumansicht können Sie jedoch schon vorher sehen, ob eine Übersetzung für die Konstante verfügbar ist.

Grün: Übersetzung verfügbar
Rot: Übersetzung nicht verfügbar
Blau: Unbekannte Konstante

Wenn Sie auf eine Konstante in der Baumansicht klicken, werden Sie zu „Konstante editieren” weitergeleitet.

Backups verwalten

"Backups verwalten" zeigt alle Backups einer Erweiterung. Sie können die Backups Löschen, Wiederherstellen und die Backups mit dem Original vergleichen. Sie können Trennungen und Zusammenführungen von Dateien wieder rückgängig machen. Das Umwandeln von Dateiformaten kann jedoch nicht wieder rückgängig gemacht werden.

Zur Konfiguration kommen Sie ganz leicht, indem Sie im „Erweiterungsmanager” unter dem Menüpunkt „Erweiterungen verwalten” nach dem „Language File Editor” suchen und auf das Zahnrad (Abbildung 10) klicken. Die Konfigurationsmöglichkeiten des „LFEditor” können Sie im folgenden Text nachlesen.

Dateien und Ordner

backup directory [basic.pathBackup]
Benennt den Pfad für das Backup-Verzeichnisses
Beispielsweise: typo3conf/LFEditor/Backup/

xll files directory [basic.pathXLLFiles]
Benennt den Pfad des xll-Datei-Verzeichnisses
Beispielsweise: typo3conf/LFEditor/XLL/

backup meta information file [basic.metaFile]
Der Pfad zur Backup-Meta-Informationsdatei
Beispielsweise: typo3conf/LFEditor/Backup/Meta.xml

Funktionen aktivieren

enable backup [basic.execBackup]
Den Haken müssen Sie setzen, wenn Sie das Backup-Management aktivieren wollen (was sehr zu empfehlen ist)

Andere Optionen

view system extensions [basic.viewSysExt]
Aktivieren Sie diese Option, um die Systemerweiterungen in der „Auswahl der Erweiterungen” anzuzeigen (siehe Abbildungen 2-9)

view global extensions [basic.viewGlobalExt]
Aktivieren Sie diese Option, um globale Erweiterungen in der „Auswahl der Erweiterungen” anzuzeigen (siehe Abbildungen 2-9)

view local extensions [basic.viewLocalExt]
Aktivieren Sie diese Option, um lokale Erweiterungen in der „Auswahl der Erweiterungen” anzuzeigen (siehe Abbildungen 2-9)

view languages [basic.viewLanguages]
Ermöglicht Ihnen die Einstellung der Sprachen, die bei „Konstante editieren” und „Konstante hinzufügen” angezeigt werden. Die gewünschten Sprachen bitte abkürzen z.B. "de" für Deutsch. Default wird immer angezeigt.

view loaded and unloaded extensions [basic.viewStateExt]
Geben Sie 0 ein, um alle Erweiterungen anzeigen zu lassen, 1 für installierte und 2 um nicht installierte Erweiterungen anzuzeigen

ignore extensions [basic.extIgnore]
Sie können den regulären Ausdruck ändern, um die Erweiterungsliste einzuschränken

Set to true if you want to hide the tree branches at start of the tree page. [basic.treeHide]
Den Haken setzen, um die „Zweige” des „Seitenbaumes” zu verbergen.

constants per site in language file edit mode [basic.numSiteConsts]
Definiert die Menge an Konstanten pro Seite, welche im Sprachdatei-Bearbeitungsmodus angezeigt werden

amount of rows in text area [basic.numTextAreaRows]
Geben Sie hier die Anzahl der Zeilen an, die Sie in einem normalen Textfeld haben wollen. Diese Funktion wird nicht von tinyMCE unterstützt.

maximal amount of backup files [basic.anzBackup]
Setzen Sie diesen Wert auf 0, um alle Backup-Dateien zu behalten, da ansonsten alle Dateien bis zum gegebenen Wert gelöscht werden

[basic.changeXlfDate]
Setzen Sie den Haken wenn Sie wollen, dass der Editor das Datum in XLF-Dateien ändert

Videoanleitung

Falls Ihnen diese Anleitung zu langweilig ist, gibt es das ganze auch als Video ;-)

Vorstellung: Der Language File Editor