<html> <head> <meta name="generator" content="groff -Thtml, see www.gnu.org"> <meta name="Content-Style" content="text/css"> <title>BINDTEXTDOMAIN</title> </head> <body> <h1 align=center>BINDTEXTDOMAIN</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%"> bindtextdomain - set directory containing message catalogs</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 * bindtextdomain (const char *</b> <i>domainname</i><b>, const char *</b> <i>dirname</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>bindtextdomain</b> function sets the base directory of the hierarchy containing message catalogs for a given 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%"> A message domain is a set of translatable <i>msgid</i> messages. Usually, every software package has its own message domain. The need for calling <b>bindtextdomain</b> arises because packages are not always installed with the same prefix as the <libintl.h> header and the libc/libintl libraries.</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%"> Message catalogs will be expected at the pathnames <i>dirname</i>/<i>locale</i>/<i>category</i>/<i>domainname</i>.mo, where <i>locale</i> is a locale name and <i>category</i> is a locale facet such as <b>LC_MESSAGES</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="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>dirname</i> is not NULL, the base directory for message catalogs belonging to domain <i>domainname</i> is set to <i>dirname</i>. The function makes copies of the argument strings as needed. If the program wishes to call the <b>chdir</b> function, it is important that <i>dirname</i> be an absolute pathname; otherwise it cannot be guaranteed that the message catalogs will be found.</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>dirname</i> is NULL, the function returns the previously set base directory for domain <i>domainname</i>.</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>bindtextdomain</b> function returns the current base directory for domain <i>domainname</i>, after possibly changing it. The resulting string is valid until the next <b>bindtextdomain</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.</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>realpath</b>(3)</td></table> <hr> </body> </html>