CakeFest 2024: The Official CakePHP Conference

bindtextdomain

(PHP 4, PHP 5, PHP 7, PHP 8)

bindtextdomainУстанавливает или получает путь для домена

Описание

bindtextdomain(string $domain, ?string $directory): string|false

Функция bindtextdomain() устанавливает или получает путь для домена.

Список параметров

domain

Домен.

directory

Путь к директории. Пустая строка означает текущий каталог. Если null, возвращается текущий установленный каталог.

Возвращаемые значения

Полный путь для домена, установленного параметром domain или false, если возникла ошибка.

Список изменений

Версия Описание
8.0.3 directory теперь допускает значение null. Раньше было невозможно получить текущий установленный каталог.

Примеры

Пример #1 Пример использования bindtextdomain()

<?php

$domain
= 'myapp';
echo
bindtextdomain($domain, '/usr/share/myapp/locale');

?>

Результат выполнения приведённого примера:

/usr/share/myapp/locale

Примечания

Замечание:

Информация bindtextdomain() сохраняется для каждого процесса, а не для потока.

add a note

User Contributed Notes 2 notes

up
6
n8klatt
9 years ago
The name of your .mo file must match the $domain, e.g. name your files messages.mo and call bindtextdomain("messages", $directory).
up
4
roel dot vermeulen at gmail dot com
7 years ago
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.
}
?>
To Top