# dcgettext(3) - man - phpMan

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



## NAME
       gettext, dgettext, dcgettext - translate message

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

       **char** ***** **gettext** **(const** **char** ***** _msgid_**);**
       **char** ***** **dgettext** **(const** **char** ***** _domainname_**,** **const** **char** ***** _msgid_**);**
       **char** ***** **dcgettext** **(const** **char** ***** _domainname_**,** **const** **char** ***** _msgid_**,**
                         **int** _category_**);**

## DESCRIPTION
       The  **gettext**,  **dgettext**  and  **dcgettext** functions attempt to translate a text string into the
       user's native language, by looking up the translation in a message catalog.

       The _msgid_ argument identifies the message to be translated. By convention, it is the  English
       version  of  the  message,  with  non-ASCII characters replaced by ASCII approximations. This
       choice allows the translators to work with message catalogs, called PO  files,  that  contain
       both  the English and the translated versions of each message, and can be installed using the
       **msgfmt** utility.

       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 the
       translation is looked up; it must be a non-empty string. For  the  **gettext**  function,  it  is
       specified  through  a preceding **textdomain** call. For the **dgettext** and **dcgettext** functions, it
       is passed as the _domainname_ argument; if this argument is NULL,  the  domain  name  specified
       through a preceding **textdomain** call is used instead.

       Translation  lookup  operates in the context of the current locale. For the **gettext** and **dget**‐‐
       **text** functions, the **LC**___**MESSAGES** locale facet is used. It is determined by a preceding call to
       the  **setlocale** function. **setlocale(LC**___**ALL,"")** initializes the **LC**___**MESSAGES** locale based on the
       first nonempty value of the three environment variables **LC**___**ALL**, **LC**___**MESSAGES**, **LANG**; see **setlo**‐‐
       [**cale**(3)](https://www.chedong.com/phpMan.php/man/cale/3/markdown). For the **dcgettext** function, the locale facet is determined by the _category_ argument,
       which should be one of the **LC**___**xxx** constants  defined  in  the  <locale.h>  header,  excluding
       **LC**___**ALL**.  In  both cases, the functions also use the **LC**___**CTYPE** locale facet in order to convert
       the translated message from the translator's codeset to the current locale's codeset,  unless
       overridden by a prior call to the **bind**___**textdomain**___**codeset** function.

       The  message catalog used by the functions is at the pathname _dirname_/_locale_/_category_/_domain__‐
       _name_.mo. Here _dirname_ is the directory specified through **bindtextdomain**. Its default is  sys‐
       tem and configuration dependent; typically it is _prefix_/share/locale, where _prefix_ is the in‐
       stallation prefix of the package. _locale_ is the name of the current locale facet; the GNU im‐
       plementation  also  tries  generalizations,  such  as the language name without the territory
       name. _category_ is **LC**___**MESSAGES** for the **gettext** and **dgettext** functions, or the argument  passed
       to the **dcgettext** function.

       If  the  **LANGUAGE**  environment variable is set to a nonempty value, and the locale is not the
       "C" locale, the value of **LANGUAGE** is assumed to contain a  colon  separated  list  of  locale
       names. The functions will attempt to look up a translation of _msgid_ in each of the locales in
       turn. This is a GNU extension.

       In the "C" locale, or if none of the used catalogs contain a translation for _msgid_, the  **get**‐‐
       **text**, **dgettext** and **dcgettext** functions return _msgid_.

## RETURN VALUE
       If  a translation was found in one of the specified catalogs, it is converted to the locale's
       codeset and returned. The resulting string is statically allocated and must not  be  modified
       or freed. Otherwise _msgid_ is returned.

## ERRORS
       **errno** is not modified.

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

       When an empty string is used for _msgid_, the functions may return a nonempty string.

## SEE ALSO
       [**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),  [**setlocale**(3)](https://www.chedong.com/phpMan.php/man/setlocale/3/markdown),  [**textdomain**(3)](https://www.chedong.com/phpMan.php/man/textdomain/3/markdown),  [**bindtextdomain**(3)](https://www.chedong.com/phpMan.php/man/bindtextdomain/3/markdown),
       **bind**___**textdomain**___**[codeset**(3)](https://www.chedong.com/phpMan.php/man/codeset/3/markdown), [**msgfmt**(1)](https://www.chedong.com/phpMan.php/man/msgfmt/1/markdown)



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