BIND_TEXTDOMAIN_CODESET
#NAME
NAME
#SYNOPSIS
SYNOPSIS
#DESCRIPTION
DESCRIPTION
#RETURN VALUE
RETURN VALUE
#ERRORS
ERRORS
#BUGS
BUGS
#SEE ALSO
SEE ALSO
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)
