TEE-05 Backend Language Files

Aus Contao Community Documentation

MsgError.png Unvollständiger Artikel: dieser Artikel ist noch nicht sauber bearbeitet.

Bitte erweitere ihn und entferne erst anschliessend diesen Hinweis.

Tagebuch einer Extension-Entwicklung

betrifft
TYPOlight Version ab TL 2.8
Extensions Extension Creator


Language Files

Nun geht es an die Sprachfiles, um das Backend-Modul "hübsch" zu machen.

Ich demonstriere es für die deutschen Sprachfiles im /system/modules/gw_turnierpaare/languages/de/-Verzeichnis. Englisch geht genau analog :-).

Zunächst definieren wir die Namen der Back- und Frontendmodule, und einen kurzen Erklärungstext dazu. Das wird in modules.php gemacht:

/** 
 * Back end modules 
 */ 
$GLOBALS['TL_LANG']['MOD']['gw_turnierpaare'] = array('Turnierpaare', 'Verwaltung der Turnierpaare und der Meldeliste.'); 
/** 
 * Front end modules 
 */ 
$GLOBALS['TL_LANG']['FMD']['gw_turnierpaarliste'] = array('Turnierpaarliste', 'Dieses Modul zeigt die Turnierpaarliste an'); 
$GLOBALS['TL_LANG']['FMD']['gw_meldeliste'] = array('Meldeliste', 'Dieses Modul zeigt die Meldeliste an');

Die Bezeichner hinter 'MOD' und 'FMD' müssen die sein, die wir im config/config.php der Extension definiert haben. Die entsprechenden Texte für die beiden geplanten Frontendmodule habe ich hier auch schon mal eingetragen, auch wenn es die Module noch nicht gibt...

Die Texte für die Backendfelder sind in tl_gw_turnierpaare.php definiert, entsprechend dem Namen der Datenbanktabelle. Die in der DCA-Record-Definition deklarierten Felder müssen wir mit Text füllen. Das ist ziemlich straight-forward:

/** 
 * Fields 
 */ 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['partnernachname']    = array('Nachname des Partners', 'Bitte den Nachnamen des (männlichen) Partners eingeben'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['partnervorname']     = array('Vorname des Partners', 'Bitte den Vornamen des (männlichen) Partners eingeben'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['partnerinnachname']  = array('Nachname der Partnerin', 'Bitte den Nachnamen des (weiblichen) Partners eingeben'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['partnerinvorname']   = array('Vorname der Partnerin', 'Bitte den Vornamen des (weiblichen) Partners eingeben'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['startgruppe']        = array('Startgruppe', 'Bitte die Startgruppe (JUG, HGR, SEN, ...) des Paares eingeben'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['startklasselatein']  = array('Startklasse Latein', 'Bitte die Startklasse (Latein) des Paares eingeben. Kein Lateinstartbuch = "-"'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['startklassestandard'] = array('Startklasse Standard', 'Bitte die Startklasse (Standard) des Paares eingeben. Kein Standardstartbuch = "-"'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['aktiv']              = array('Aktiv', 'Bitte angeben, ob das Paar noch aktiv ist'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['aktivseit']          = array('Aktiv seit', 'Bitte Jahreszahl des ersten Starts angeben (z.B. 2005)'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['aktivbis']           = array('Aktiv bis', 'Bitte Jahreszahl des letzten Starts angeben, wenn das Paar nicht mehr aktiv is
t (z.B. 2008)'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['password']           = array('Passwort', 'Bitte ein Passwort für das Paar anlegen'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['zeigeanschrift']     = array('Anschrift anzeigen', 'Anschrift in der Visitenkarte sichtbar?'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['anschrift']          = array('Anschrift', 'Bitte Anschrift des Paares eingeben'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['zeigetelefon']       = array('Telefonnummer anzeigen', 'Telefonnummer in der Visitenkarte sichtbar?'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['telefon']            = array('Telefonnummer', 'Bitte Telefonnummer des Paares eingeben'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['zeigefax']           = array('Faxnummer anzeigen', 'Faxnummer in der Visitenkarte sichtbar?'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['fax']                = array('Faxnummer', 'Bitte Faxnummer des Paares eingeben'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['zeigemobil']         = array('Mobilnummer anzeigen', 'Mobilnummer in der Visitenkarte sichtbar?'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['mobil']              = array('Mobilnummer', 'Bitte Mobilnummer des Paares eingeben'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['zeigeemail']         = array('Email-Adresse anzeigen', 'Email-Adresse in der Visitenkarte sichtbar?'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['email']              = array('Email-Adresse', 'Bitte Emailadresse des Paares eingeben'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['zeigehomepage']      = array('Homepage-Adresse anzeigen', 'Homepage-Adresse in der Visitenkarte sichtbar?'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['homepage']           = array('Homepage-Adresse', 'Bitte Homepage-Adresse des Paares eingeben'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['beschreibung']       = array('Beschreibungstext', 'Bitte Beschreibungstext des Paares eingeben'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['bild']               = array('Paarbild', 'Bitte ein Paarbild auswählen'); 
/** 
 * Reference 
 */ 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['name_legend']          = 'Namen'; 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['classes_legend']       = 'Startdaten'; 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['aktiv_legend']         = 'Aktiv'; 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['password_legend']      = 'Passwort'; 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['contact_legend']       = 'Kontakt'; 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['beschreibung_legend']  = 'Beschreibung'; 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['bild_legend']          = 'Bild'; 
/** 
 * Buttons 
 */ 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['new']    = array('Neues Paar', 'Ein neues Turnierpaar anlegen'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['edit']   = array('Editieren', 'Das Turnierpaar editieren'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['copy']   = array('Paar kopieren', 'Das Turnierpaar in die Zwischenablage kopieren'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['delete'] = array('Paar löschen', 'Das Turnierpaar aus der Liste entfernen'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['show']   = array('Details', 'Die Detailansicht des Turnierpaars anzeigen');

Unterschieden werden die Texte für die Eingabefelder, die aus Überschrift/Bezeichner für das Feld und dem darunter angezeigten Beschreibungstext bestehen, den Texten für Palettenüberschriften (mittlerer Teil) und den Texten für die Buttons in den Masken (letzter Teil). Umlaute müssen HTML-üblich durch ihre Ersatzcodes (ä = ä usw.) dargestellt werden. Die Beschreibungstexte sollten auch nicht zu lang werden.

Ich habe in der DCA-Definition auch Referenzen auf Sprach-Strings für die Eigenschaft explanation angegeben, z.B. so:

            'explanation'             => &$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['partnernachname_explanation'],

allerdings habe ich nicht erkennen können, wo das benutzt wird. Vielleicht nur in bestimmten Situatuionen/Konfigurationen. Ich habe all diese Referenzen bei jedem Feld aus meiner DCA-Konfiguration also wieder entfernt.

Die Backend-Maske sieht jetzt so aus:


Eingabemaske

Diskussion

user: deerwood

Zitat:
Umlaute müssen HTML-üblich durch ihre Ersatzcodes (ä = ä usw.) dargestellt werden 

Nein. UTF8 Zeichen/Editoren sind heutzutage angesagt . Z.B. Notepad++ oder Eclipse oder ... oder ...

user: dl1ely

vielen Dank für den Hinweis. Ich nutze PSPad, den ich eigentlich als "vernünftigen" Editor ansehe, aber trotzdem stand der Zeichensatz auf "ANSI". Mit UTF8 geht es natürlich auch mit Umlauten ;-). Da muss ich in Zukunft mehr drauf achten.

Ansichten
Meine Werkzeuge

Contao Community Documentation

Atari Teenage Riot ist eine Mischung aus singen, schreien und sich übergeben.

Leo Unglaub
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge