Verschiedene Einbindungen Sprachedateien

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
chris1278
Mitglied
Beiträge: 3532
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Verschiedene Einbindungen Sprachedateien

Beitrag von chris1278 »

Ich hab mal eine allgemeine Frage.

Ich habe festgestellt das man in der Listener.php die Sprachdateien sprich das Sprachobjekt auf zwei Arten laden kann. Da würde ich gern mal wissen was da der unterschied ist.

Die erste Variante ist die über das sogenannte core.event: core.user_setup

Dann lädt man die Sprach datei in der form:

Code: Alles auswählen

$lang_set_ext	= $event['lang_set_ext'];
$lang_set_ext[]	= [
	'ext_name'	=> 'autor/extname',
	'lang_set'	=> 'sprachdatei',
];
$event['lang_set_ext'] = $lang_set_ext;
Man kann jetzt aber auch hingehen das ganze in der Funktion die man hat so aufrufen:

Code: Alles auswählen

$this->language->add_lang('sprachdatei', 'autor/extname');
Dann wäre das core event obsolet sprich nicht mehr notwendig.

Beide Varianten scheinen zu funktionieren aber was ist da jetzt der Unterschied.

PS: Sollte das hierfür das falsche Thema sein bitte ich den Beitrag richtig zu verschieben.
Verschoben von Extension Support nach Coding & Technik am 05.04.2023 19:43 durch Scanialady

Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17399
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Verschiedene Einbindungen Sprachedateien

Beitrag von Dr.Death »

Das erstere lädt die Sprachvariablen immer, also die neuen Sprachvariablen sind immer verfügbar (um z.B. neue Navigationselement oder ähnliches hinzuzufügen)

Das zweite lädt die Sprachvariablen nur dann, wenn die Extension aktiv verwendet werden soll.
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2114
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: Verschiedene Einbindungen Sprachedateien

Beitrag von LukeWCS »

Als Ergänzung zu Docs Ausführung:

Die erste Methode braucht man nur dann, wenn Sprachvariablen wirklich überall verfügbar sein müssen und das ist nur höchst selten der Fall. Es wird auch von den Validatoren kritisiert, wenn man unnötig über core.user_setup lädt.

In der Doku heisst es dazu auch:
For performance reasons, it is preferred to use the above method to load language files at any point in your extension’s code execution where the language keys are needed. However, if it is absolutely necessary to load an extension’s language keys globally, so they are available at all times, the core.user_setup PHP event should be used.
Quelle: https://area51.phpbb.com/docs/dev/3.3.x ... uage-files

Speziell für die Navi im ACP benötigt man diesen Event ebenfalls nicht. Da genügt es, wenn eine Sprachdatei einen bestimmten Aufbau beim Dateinamen hat, um im ACP automatisch geladen zu werden. Wird in der verlinkten Dokuseite ebenfalls erklärt.

Die zweite Methode add_lang() ist generell vorzuziehen, weil damit Sprachdateien immer Kontext-abhängig geladen werden. Also immer nur dann, wenn sie auch wirklich benötigt werden.
Möge das Backup mit dir sein. Immer.

Erweiterungen - Infos zur artgerechten Haltung
phpBB Ext Check - Analysesystem für phpBB Erweiterungen (Entwickler Werkzeug)
Benutzeravatar
chris1278
Mitglied
Beiträge: 3532
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: Verschiedene Einbindungen Sprachedateien

Beitrag von chris1278 »

Ok danke schön für die Info.
Antworten

Zurück zu „Coding & Technik“