[3.2.] Sprachdatei einbinden

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
Antworten
Lehrling
Ehemaliges Teammitglied
Beiträge: 3833
Registriert: 15.01.2012 20:00
Kontaktdaten:

[3.2.] Sprachdatei einbinden

Beitrag von Lehrling »

Ich möchte für eine Extension eine Sprachdatei einbinden. Die Extension besteht aus der licence und der composer.json, einem Stylesheet und zwei Dateien im template-Ordner. Ich habe für die Extension eine eigene Sprachvariable definiert und diese Datei in den Ordner language/de geladen.
Die Sprachdatei sieht wie folgt aus:

Code: Alles auswählen

<?php

if (!defined('IN_PHPBB'))
{
	exit;
}
if (empty($lang) || !is_array($lang))
{
	$lang = array();
}

$lang = array_merge($lang, array(
	'WELCOME_NEWEST_USER'				=> 'Wir begrüßen unser neuestes Mitglied: <strong>%s</strong>',	
));
Wo und wie muss ich diese Datei jetzt bekanntmachen, damit die Variable auch ausgegeben wird?
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7858
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: [3.2.] Sprachdatei einbinden

Beitrag von Kirk »

Hi
Du bräuchtest dazu ein Verzeichniss Namens event darin eine Datei z.b. mit den Namen listener.php ein Verzeichniss Namens config darin eine Datei Namens services.yml
In die listener.php müssen dann die Variablen für die language Datein rein, die services.yml ist dafür zuständig das die Variablen aus der listener auch geladen werden.
Schau dir am besten mal paar Extensionen an wo eigene language Dateien verwenden.
Lehrling
Ehemaliges Teammitglied
Beiträge: 3833
Registriert: 15.01.2012 20:00
Kontaktdaten:

Re: [3.2.] Sprachdatei einbinden

Beitrag von Lehrling »

Hallo Kirk, danke für die Hilfe. Hat so weit geklappt. Was Probleme macht ist das da: <strong>%s</strong>

Code: Alles auswählen

'WELCOME_NEWEST_MEMBER'				=> 'Wir begrüßen unser neuestes Mitglied <strong>%s</strong>',	
Das wird als %s ausgegeben. Kannst du mir noch einmal einen Tipp geben?
Benutzeravatar
Crizzo
Administrator
Administrator
Beiträge: 11943
Registriert: 19.05.2005 21:45
Kontaktdaten:

Re: [3.2.] Sprachdatei einbinden

Beitrag von Crizzo »

Wie sieht denn die Funktion aus, die die Variable %s füllen soll?
Lehrling
Ehemaliges Teammitglied
Beiträge: 3833
Registriert: 15.01.2012 20:00
Kontaktdaten:

Re: [3.2.] Sprachdatei einbinden

Beitrag von Lehrling »

Das ist ein Platzhalter, den ich aus der root/language/de/common.php übernommen haben.
'NEWEST_USER' => 'Unser neuestes Mitglied: <strong>%s</strong>',
Wenn ich die Variable{NEWEST_USER} in die Template-Datei einfüge, wird sie als Unser neuestes Mitglied: Tester ausgegeben.
Die funktioniert also in der Extension. Alles andere, was ich versucht habe, wie {L_NEWEST_MEMBER} z.B. wird als %s ausgegeben.
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7858
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: [3.2.] Sprachdatei einbinden

Beitrag von Kirk »

Du müsstes das in der listener.php definieren:

Code: Alles auswählen

            $this->template->assign_vars(array(
                'WELCOME_NEWEST_MEMBER'    => $this->user->lang('WELCOME_NEWEST_MEMBER', get_username_string('full', $this->config['newest_user_id'], $this->config['newest_username'], $this->config['newest_user_colour'])),
            ));
 
Jetzt kanns du im template diese Variable reinsetzen {WELCOME_NEWEST_MEMBER}, die Ausgabe ist dann so:
"Wir begrüßen unser neuestes Mitglied Tester"
Wenn du möchtest dann schicke per PN einen Downloadlink, dann kann ich es mir ja mal anschauen.
Antworten

Zurück zu „Extension Bastelstube“