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 — Sets or gets the path for a domain
The bindtextdomain() function sets or gets the path for a domain.
domainThe 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,
or false on failure.
| Version | Description |
|---|---|
| 8.4.0 |
directory is optional now.
Previously, the parameter always had to be specified.
|
| 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');
?>The above example will output:
/usr/share/myapp/locale
Note:
The bindtextdomain() information is maintained per process, not per thread.
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.
}
?>