bindtextdomain.3.html   [plain text]


<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 &lt;libintl.h&gt;

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 &lt;libintl.h&gt; 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>