Man Linux: Main Page and Category List

NAME

       bind_textdomain_codeset - set encoding of message translations

SYNOPSIS

       #include <libintl.h>

       char * bind_textdomain_codeset (const char * domainname,
                                       const char * codeset);

DESCRIPTION

       The  bind_textdomain_codeset  function  sets  the  output  codeset  for
       message catalogs for domain domainname.

       A message domain is a set  of  translatable  msgid  messages.  Usually,
       every software package has its own message domain.

       By default, the gettext family of functions returns translated messages
       in  the  locale's  character  encoding,  which  can  be  retrieved   as
       nl_langinfo(CODESET).  The  need  for  calling  bind_textdomain_codeset
       arises for programs which store strings in  a  locale  independent  way
       (e.g.   UTF-8)  and  want to avoid an extra character set conversion on
       the returned translated messages.

       domainname must be a non-empty string.

       If codeset is not NULL, it must be a valid encoding name which  can  be
       used  for the iconv_open function. The bind_textdomain_codeset function
       sets the output  codeset  for  message  catalogs  belonging  to  domain
       domainname  to  codeset.  The  function  makes  copies  of the argument
       strings as needed.

       If codeset is NULL, the function returns the previously set codeset for
       domain domainname. The default is NULL, denoting the locale's character
       encoding.

RETURN VALUE

       If successful, the bind_textdomain_codeset function returns the current
       codeset   for  domain  domainname,  after  possibly  changing  it.  The
       resulting string is valid until the next  bind_textdomain_codeset  call
       for  the same domainname and must not be modified or freed. If a memory
       allocation failure occurs, it sets errno to ENOMEM and returns NULL. If
       no codeset has been set for domain domainname, it 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),  dgettext(3),  dcgettext(3),   ngettext(3),   dngettext(3),
       dcngettext(3), textdomain(3), nl_langinfo(3), iconv_open(3)