TEXTDOMAIN(3) Library Functions Manual TEXTDOMAIN(3)

# [NAME](#NAME)

textdomain - set domain for future gettext() calls

# [SYNOPSIS](#SYNOPSIS)

```
#include <libintl.h>

char * textdomain (const char * domainname);
```

# [DESCRIPTION](#DESCRIPTION)

The **textdomain** function sets or retrieves the current message domain.

A message domain is a set of translatable *msgid* messages. Usually, every software package has its own message domain. The domain name is used to determine the message catalog where a translation is looked up; it must be a non-empty string.

The current message domain is used by the **gettext**, **ngettext** functions, and by the **dgettext**, **dcgettext**, **dngettext** and **dcngettext** functions when called with a NULL domainname argument.

If *domainname* is not NULL, the current message domain is set to *domainname*. The string the function stores internally is a copy of the *domainname* argument.

If *domainname* is NULL, the function returns the current message domain.

# [RETURN VALUE](#RETURN_VALUE)

If successful, the **textdomain** function returns the current message domain, after possibly changing it. The resulting string is valid until the next **textdomain** call and must not be modified or freed. If a memory allocation failure occurs, it sets **errno** to **ENOMEM** and returns NULL.

# [ERRORS](#ERRORS)

The following error can occur, among others:

[**ENOMEM**](#ENOMEM)

Not enough memory available.

# [BUGS](#BUGS)

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

# [SEE ALSO](#SEE_ALSO)

[**gettext**(3)](/man/os/gettext/gettext.3), [**ngettext**(3)](/man/os/gettext/ngettext.3), [**bindtextdomain**(3)](/man/os/gettext/bindtextdomain.3), [**bind\_textdomain\_codeset**(3)](/man/os/gettext/bind_textdomain_codeset.3)

May 2001 GNU gettext 1.0

---

Document: textdomain(3) from gettext 1.0-r8 (Chainguard OS)
Source: https://git.savannah.gnu.org/git/gettext.git
