1#ifndef _LIBINTL_H
2#include <intl/libintl.h>
3#include <locale.h>
4
5/* Now define the internal interfaces. */
6extern char *__gettext (const char *__msgid)
7 __attribute_format_arg__ (1);
8extern char *__dgettext (const char *__domainname,
9 const char *__msgid)
10 __attribute_format_arg__ (2);
11extern char *__dcgettext (const char *__domainname,
12 const char *__msgid, int __category)
13 __attribute_format_arg__ (2);
14libc_hidden_proto (__dcgettext)
15
16extern char *__ngettext (const char *__msgid1, const char *__msgid2,
17 unsigned long int __n)
18 __attribute_format_arg__ (1) __attribute_format_arg__ (2);
19extern char *__dngettext (const char *__domainname,
20 const char *__msgid1, const char *__msgid2,
21 unsigned long int __n)
22 __attribute_format_arg__ (2) __attribute_format_arg__ (3);
23extern char *__dcngettext (const char *__domainname,
24 const char *__msgid1, const char *__msgid2,
25 unsigned long int __n, int __category)
26 __attribute_format_arg__ (2) __attribute_format_arg__ (3);
27
28extern char *__textdomain (const char *__domainname);
29extern char *__bindtextdomain (const char *__domainname,
30 const char *__dirname);
31extern char *__bind_textdomain_codeset (const char *__domainname,
32 const char *__codeset);
33
34extern const char _libc_intl_domainname[];
35libc_hidden_proto (_libc_intl_domainname)
36
37/* Define the macros `_' and `N_' for conveniently marking translatable
38 strings in the libc source code. We have to make sure we get the
39 correct definitions so we undefine the macros first. */
40
41# undef N_
42# define N_(msgid) msgid
43
44# undef _
45/* This is defined as an optimizing macro, so use it. */
46# define _(msgid) \
47 __dcgettext (_libc_intl_domainname, msgid, LC_MESSAGES)
48
49#endif
50