# bindtextdomain - set directory containing message catalogs - man(3) - [phpMan]

[_BINDTEXTDOMAIN_(3)](https://www.chedong.com/phpMan.php/man/BINDTEXTDOMAIN/3/markdown)                     Library Functions Manual                     [_BINDTEXTDOMAIN_(3)](https://www.chedong.com/phpMan.php/man/BINDTEXTDOMAIN/3/markdown)

## NAME
       bindtextdomain - set directory containing message catalogs

## SYNOPSIS
### #include <libintl.h>

       **char * bindtextdomain (const char * _**domainname_**, const char * _**dirname_**);**

## DESCRIPTION
       The **bindtextdomain **function sets the base directory of the hierarchy containing message cata‐
       logs for a given message domain.

       A message domain is a set of translatable _msgid_ messages. Usually, every software package has
       its  own  message domain. The need for calling **bindtextdomain **arises because packages are not
       always installed with the same prefix as the <libintl.h>  header  and  the  libc/libintl  li‐
       braries.

       Message  catalogs  will  be  expected at the pathnames _dirname_/_locale_/_category_/_domainname_.mo,
       where _locale_ is a locale name and _category_ is a locale facet such as **LC_MESSAGES**.

       _domainname_ must be a non-empty string.

       If _dirname_ is not NULL, the base directory for message catalogs belonging to  domain  _domain‐_
       _name_  is  set to _dirname_. The function makes copies of the argument strings as needed. If the
       program wishes to call the **chdir **function, it is important that _dirname_ be an absolute  path‐
       name; otherwise it cannot be guaranteed that the message catalogs will be found.

       If _dirname_ is NULL, the function returns the previously set base directory for domain _domain‐_
       _name_.

## RETURN VALUE
       If  successful, the **bindtextdomain **function returns the current base directory for domain _do‐_
       _mainname_, after possibly changing it. The resulting string is  valid  until  the  next  **bind‐**
       **textdomain  **call for the same _domainname_ and must not be modified or freed. If a memory allo‐
       cation failure occurs, it sets **errno **to **ENOMEM **and returns NULL.

## ERRORS
       The following error can occur, among others:

       **ENOMEM **Not enough memory available.

## BUGS
       The return type ought to be **const char ***, but is **char * **to avoid warnings in C code predating
       ANSI C.

## SEE ALSO
       [**gettext**(3)](https://www.chedong.com/phpMan.php/man/gettext/3/markdown), [**dgettext**(3)](https://www.chedong.com/phpMan.php/man/dgettext/3/markdown),  [**dcgettext**(3)](https://www.chedong.com/phpMan.php/man/dcgettext/3/markdown),  [**ngettext**(3)](https://www.chedong.com/phpMan.php/man/ngettext/3/markdown),  [**dngettext**(3)](https://www.chedong.com/phpMan.php/man/dngettext/3/markdown),  [**dcngettext**(3)](https://www.chedong.com/phpMan.php/man/dcngettext/3/markdown),  **textdo‐**
       [**main**(3)](https://www.chedong.com/phpMan.php/man/main/3/markdown), [**realpath**(3)](https://www.chedong.com/phpMan.php/man/realpath/3/markdown)

GNU gettext 0.20.1.124-32cf                   May 2001                             [_BINDTEXTDOMAIN_(3)](https://www.chedong.com/phpMan.php/man/BINDTEXTDOMAIN/3/markdown)
