Seite 1 von 1

[3.2.] Sprachdatei einbinden

Verfasst: 16.05.2017 18:12
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?

Re: [3.2.] Sprachdatei einbinden

Verfasst: 16.05.2017 18:54
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.

Re: [3.2.] Sprachdatei einbinden

Verfasst: 16.05.2017 20:17
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?

Re: [3.2.] Sprachdatei einbinden

Verfasst: 16.05.2017 20:19
von Crizzo
Wie sieht denn die Funktion aus, die die Variable %s füllen soll?

Re: [3.2.] Sprachdatei einbinden

Verfasst: 16.05.2017 21:09
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.

Re: [3.2.] Sprachdatei einbinden

Verfasst: 17.05.2017 20:08
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.