您的 .mo 文件的名称必须与 $domain 匹配,例如,将您的文件命名为 messages.mo 并调用 bindtextdomain("messages", $directory)。
(PHP 4, PHP 5, PHP 7, PHP 8)
bindtextdomain — 设置或获取域的路径
bindtextdomain() 函数设置或获取域的路径。
当前设置的 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() 信息在每个进程中维护,而不是在每个线程中维护。
您的 .mo 文件的名称必须与 $domain 匹配,例如,将您的文件命名为 messages.mo 并调用 bindtextdomain("messages", $directory)。
我建议在 $directory 参数中使用绝对路径。这导致我调试了好几个小时,因为对我的本地化函数的 Ajax 调用弄乱了路径。并且,如果找不到 $directory 中的路径,则不会引发错误,因此应始终检查结果
<?php
// 假设此文件的路径为 "/localization",您的语言环境位于 "/locale" 目录中。
$pathToDomain = __DIR__ . "/../locale";
if ($pathToDomain != bindtextdomain($domain, $pathToDomain)) {
// 错误处理。
}
?>