[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.
Lehrling
Supporter
Supporter
Beiträge: 2843
Registriert: 15.01.2012 20:00
Kontaktdaten:

[3.2.] Sprachdatei einbinden

Beitragvon Lehrling » 16.05.2017 18:12

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: 5395
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: [3.2.] Sprachdatei einbinden

Beitragvon Kirk » 16.05.2017 18:54

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
Supporter
Supporter
Beiträge: 2843
Registriert: 15.01.2012 20:00
Kontaktdaten:

Re: [3.2.] Sprachdatei einbinden

Beitragvon Lehrling » 16.05.2017 20:17

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: 9246
Registriert: 19.05.2005 21:45
Kontaktdaten:

Re: [3.2.] Sprachdatei einbinden

Beitragvon Crizzo » 16.05.2017 20:19

Wie sieht denn die Funktion aus, die die Variable %s füllen soll?
phpBB Translations & International Support Teams Manager

Lehrling
Supporter
Supporter
Beiträge: 2843
Registriert: 15.01.2012 20:00
Kontaktdaten:

Re: [3.2.] Sprachdatei einbinden

Beitragvon Lehrling » 16.05.2017 21:09

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: 5395
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: [3.2.] Sprachdatei einbinden

Beitragvon Kirk » 17.05.2017 20:08

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.


Zurück zu „Extension Bastelstube“