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 — Устанавливает или получает путь к домену
Функция bindtextdomain() устанавливает или получает путь к домену.
domain
Домен.
directory
Путь к каталогу.
Пустая строка обозначает текущий каталог.
Функция возвращает текущий установленный каталог, если для параметра установили значение null
.
Функция возвращает полный путь к домену, который установили в параметре domain
или false
, если возникла ошибка.
Версия | Описание |
---|---|
8.4.0 |
Параметр directory стал необязательным.
Раньше параметр требовалось указывать при каждом вызове.
|
8.0.3 |
Параметр directory теперь принимает значение null .
Раньше было невозможно получить текущий установленный каталог.
|
Пример #1 Пример установки пути к домену функцией bindtextdomain()
<?php
$domain = 'myapp';
echo bindtextdomain($domain, '/usr/share/myapp/locale');
?>
Результат выполнения приведённого примера:
/usr/share/myapp/locale
Замечание:
Информация которую устанавливает функия bindtextdomain(), сохраняется для каждого процесса, а не для потока.
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.
}
?>