bindtextdomain

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

bindtextdomainSets or gets the path for a domain

说明

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

The bindtextdomain() function sets or gets the path for a domain.

参数

domain

The domain.

directory

The directory path. An empty string means the current directory. If null, the currently set directory is returned.

返回值

The full pathname for the domain currently being set, 或者在失败时返回 false.

更新日志

版本 说明
8.0.3 directory is nullable now. Previously, it was not possible to retrieve the currently set directory.

范例

Example #1 bindtextdomain() example

<?php

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

?>

以上例程会输出:

/usr/share/myapp/locale

注释

Note:

The bindtextdomain() information is maintained per process, not per thread.

User Contributed Notes

roel dot vermeulen at gmail dot com 05-Jun-2016 05:49
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.
   
}
?>
n8klatt 20-Nov-2014 05:47
The name of your .mo file must match the $domain, e.g. name your files messages.mo and call bindtextdomain("messages", $directory).