<html> <head> <meta name="generator" content="groff -Thtml, see www.gnu.org"> <meta name="Content-Style" content="text/css"> <title>BIND_TEXTDOMAIN_CODESET</title> </head> <body> <h1 align=center>BIND_TEXTDOMAIN_CODESET</h1> <a href="#NAME">NAME</a><br> <a href="#SYNOPSIS">SYNOPSIS</a><br> <a href="#DESCRIPTION">DESCRIPTION</a><br> <a href="#RETURN VALUE">RETURN VALUE</a><br> <a href="#ERRORS">ERRORS</a><br> <a href="#BUGS">BUGS</a><br> <a href="#SEE ALSO">SEE ALSO</a><br> <hr> <!-- Creator : groff version 1.17 --> <a name="NAME"></a> <h2>NAME</h2> <table width="100%" border=0 rules="none" frame="void" cols="2" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="10%"></td><td width="90%"> bind_textdomain_codeset - set encoding of message translations</td></table> <a name="SYNOPSIS"></a> <h2>SYNOPSIS</h2> <table width="100%" border=0 rules="none" frame="void" cols="2" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="10%"></td><td width="90%"> <pre><b>#include <libintl.h> char * bind_textdomain_codeset (const char *</b> <i>domainname</i><b>, const char *</b> <i>codeset</i><b>); </b></pre></td></table> <a name="DESCRIPTION"></a> <h2>DESCRIPTION</h2> <table width="100%" border=0 rules="none" frame="void" cols="2" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="10%"></td><td width="90%"> The <b>bind_textdomain_codeset</b> function sets the output codeset for message catalogs for domain <i>domainname</i>.</td></table> <table width="100%" border=0 rules="none" frame="void" cols="2" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="10%"></td><td width="90%"> A message domain is a set of translatable <i>msgid</i> messages. Usually, every software package has its own message domain.</td></table> <table width="100%" border=0 rules="none" frame="void" cols="2" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="10%"></td><td width="90%"> By default, the <b>gettext</b> family of functions returns translated messages in the locale's character encoding, which can be retrieved as <b>nl_langinfo(CODESET)</b>. The need for calling <b>bind_textdomain_codeset</b> 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.</td></table> <table width="100%" border=0 rules="none" frame="void" cols="2" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="10%"></td><td width="90%"> <i>domainname</i> must be a non-empty string.</td></table> <table width="100%" border=0 rules="none" frame="void" cols="2" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="10%"></td><td width="90%"> If <i>codeset</i> is not NULL, it must be a valid encoding name which can be used for the <b>iconv_open</b> function. The <b>bind_textdomain_codeset</b> function sets the output codeset for message catalogs belonging to domain <i>domainname</i> to <i>codeset</i>. The function makes copies of the argument strings as needed.</td></table> <table width="100%" border=0 rules="none" frame="void" cols="2" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="10%"></td><td width="90%"> If <i>codeset</i> is NULL, the function returns the previously set codeset for domain <i>domainname</i>. The default is NULL, denoting the locale's character encoding.</td></table> <a name="RETURN VALUE"></a> <h2>RETURN VALUE</h2> <table width="100%" border=0 rules="none" frame="void" cols="2" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="10%"></td><td width="90%"> If successful, the <b>bind_textdomain_codeset</b> function returns the current codeset for domain <i>domainname</i>, after possibly changing it. The resulting string is valid until the next <b>bind_textdomain_codeset</b> call for the same <i>domainname</i> and must not be modified or freed. If a memory allocation failure occurs, it sets <b>errno</b> to <b>ENOMEM</b> and returns NULL. If no codeset has been set for domain <i>domainname</i>, it returns NULL.</td></table> <a name="ERRORS"></a> <h2>ERRORS</h2> <table width="100%" border=0 rules="none" frame="void" cols="2" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="10%"></td><td width="90%"> The following error can occur, among others:</td></table> <table width="100%" border=0 rules="none" frame="void" cols="2" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="10%"></td><td width="90%"> <b>ENOMEM</b></td></table> <table width="100%" border=0 rules="none" frame="void" cols="2" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="21%"></td><td width="79%"> Not enough memory available.</td></table> <a name="BUGS"></a> <h2>BUGS</h2> <table width="100%" border=0 rules="none" frame="void" cols="2" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="10%"></td><td width="90%"> The return type ought to be <b>const char *</b>, but is <b>char *</b> to avoid warnings in C code predating ANSI C.</td></table> <a name="SEE ALSO"></a> <h2>SEE ALSO</h2> <table width="100%" border=0 rules="none" frame="void" cols="2" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="10%"></td><td width="90%"> <b>gettext</b>(3), <b>dgettext</b>(3), <b>dcgettext</b>(3), <b>ngettext</b>(3), <b>dngettext</b>(3), <b>dcngettext</b>(3), <b>textdomain</b>(3), <b>nl_langinfo</b>(3), <b>iconv_open</b>(3)</td></table> <hr> </body> </html>