The name of your .mo file must match the $domain, e.g. name your files messages.mo and call bindtextdomain("messages", $directory).
(PHP 4, PHP 5, PHP 7, PHP 8)
bindtextdomain — Setzt oder liefert den Pfad für eine Domain
Die Funktion bindtextdomain() setzt den Pfad für eine Domain oder gibt diesen zurück.
domain
Die Domain
directory
Der Verzeichnispfad.
Ein leerer String bedeutet das aktuelle Verzeichnis.
Falls null
, wird das aktuell eingestellte
Verzeichnis zurückgegeben.
Der vollständige Pfadname, der gerade für domain
gesetzt wird. Bei einem Fehler wird false
zurückgegeben.
Version | Beschreibung |
---|---|
8.4.0 |
directory ist nun optional;
zuvor musste der Parameter immer angegeben werden.
|
8.0.3 |
directory ist nun ein Nullable-Typ. Zuvor war es
nicht möglich, das aktuell eingestellte Verzeichnis abzurufen.
|
Beispiel #1 bindtextdomain()-Beispiel
<?php
$domain = 'MeineAnwendung';
echo bindtextdomain($domain, '/usr/share/MeineAnwendung/locale');
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
/usr/share/MeineAnwendung/locale
Hinweis:
Die bindtextdomain()-Informationen werden pro Prozess verwaltet, nicht pro Thread.
The name of your .mo file must match the $domain, e.g. name your files messages.mo and call bindtextdomain("messages", $directory).
I recommend using absolute paths in the $directory parameter. This caused me several hours to debug as Ajax calls to my localization functions messed up the path. And since no error if thrown if the path in $directory cannot be found, one should check the result always:
<?php
// Imagine the path for this file is "/localization" and your locales are in the "/locale" directory.
$pathToDomain = __DIR__ . "/../locale";
if ($pathToDomain != bindtextdomain($domain, $pathToDomain)) {
// Error handling.
}
?>