PHP Conference Japan 2024

bindtextdomain

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

bindtextdomain设置或获取域的路径

描述

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

bindtextdomain() 函数设置或获取域的路径。

参数

domain

域。

directory

目录路径。空字符串表示当前目录。如果为 null,则返回当前设置的目录。

返回值

当前设置的 domain 的完整路径名,或失败时返回 false

变更日志

版本 描述
8.4.0 directory 现在是可选的。以前,此参数必须始终指定。
8.0.3 directory 现在可以为空。以前,无法检索当前设置的目录。

示例

示例 #1 bindtextdomain() 示例

<?php

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

?>

以上示例将输出

/usr/share/myapp/locale

备注

注意:

bindtextdomain() 信息在每个进程中维护,而不是在每个线程中维护。

添加备注

用户贡献的备注 2 条备注

n8klatt
10 年前
您的 .mo 文件的名称必须与 $domain 匹配,例如,将您的文件命名为 messages.mo 并调用 bindtextdomain("messages", $directory)。
roel dot vermeulen at gmail dot com
8 年前
我建议在 $directory 参数中使用绝对路径。这导致我调试了好几个小时,因为对我的本地化函数的 Ajax 调用弄乱了路径。并且,如果找不到 $directory 中的路径,则不会引发错误,因此应始终检查结果

<?php
// 假设此文件的路径为 "/localization",您的语言环境位于 "/locale" 目录中。
$pathToDomain = __DIR__ . "/../locale";
if (
$pathToDomain != bindtextdomain($domain, $pathToDomain)) {
// 错误处理。
}
?>
To Top