TEE-05 Backend Language Files: Unterschied zwischen den Versionen

Aus Contao Community Documentation

K (Ümlaute Korrektur)
K (Formatierung)
 
Zeile 12: Zeile 12:
  
 
Zunächst definieren wir die Namen der Back- und Frontendmodule, und einen kurzen Erklärungstext dazu. Das wird in ''modules.php'' gemacht:
 
Zunächst definieren wir die Namen der Back- und Frontendmodule, und einen kurzen Erklärungstext dazu. Das wird in ''modules.php'' gemacht:
 
+
<source lang="php">
PHP-Code:
+
 
+
<pre>
+
 
/**  
 
/**  
 
  * Back end modules  
 
  * Back end modules  
Zeile 25: Zeile 22:
 
$GLOBALS['TL_LANG']['FMD']['gw_turnierpaarliste'] = array('Turnierpaarliste', 'Dieses Modul zeigt die Turnierpaarliste an');  
 
$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');
 
$GLOBALS['TL_LANG']['FMD']['gw_meldeliste'] = array('Meldeliste', 'Dieses Modul zeigt die Meldeliste an');
</pre>
+
</source>
  
 
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 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...
Zeile 31: Zeile 28:
 
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:
 
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:
  
PHP-Code:
+
<source lang="php">
 
+
<pre>
+
 
/**  
 
/**  
 
  * Fields  
 
  * Fields  
Zeile 81: Zeile 76:
 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['delete'] = array('Paar löschen', 'Das Turnierpaar aus der Liste entfernen');  
 
$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');
 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['show']  = array('Details', 'Die Detailansicht des Turnierpaars anzeigen');
</pre>
+
</source>
  
 
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 (ä = &amp;auml; usw.) dargestellt werden. Die Beschreibungstexte sollten auch nicht zu lang werden.
 
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 (ä = &amp;auml; usw.) dargestellt werden. Die Beschreibungstexte sollten auch nicht zu lang werden.
Zeile 87: Zeile 82:
 
Ich habe in der DCA-Definition auch Referenzen auf Sprach-Strings für die Eigenschaft ''explanation'' angegeben, z.B. so:
 
Ich habe in der DCA-Definition auch Referenzen auf Sprach-Strings für die Eigenschaft ''explanation'' angegeben, z.B. so:
  
PHP-Code:
+
<source lang="php">
 
+
<pre>
+
 
             'explanation'            => &$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['partnernachname_explanation'],
 
             'explanation'            => &$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['partnernachname_explanation'],
</pre>
+
</source>
  
 
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.
 
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.

Aktuelle Version vom 5. Februar 2011, 19:08 Uhr

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&auml;nnlichen) Partners eingeben'); 
$GLOBALS['TL_LANG']['tl_gw_turnierpaare']['partnervorname']     = array('Vorname des Partners', 'Bitte den Vornamen des (m&auml;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&uuml;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&auml;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 (ä = &auml; 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 (ä = &auml; 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

IRC -> einziger fortlaufend sich selbst aktualisierender Comic.

Tristan Lins
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge