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