Seite 1 von 1

Verschiedene Einbindungen Sprachedateien

Verfasst: 05.04.2023 19:33
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.

Re: Verschiedene Einbindungen Sprachedateien

Verfasst: 05.04.2023 20:33
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.

Re: Verschiedene Einbindungen Sprachedateien

Verfasst: 05.04.2023 23:18
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.

Re: Verschiedene Einbindungen Sprachedateien

Verfasst: 06.04.2023 06:33
von chris1278
Ok danke schön für die Info.