1 | #ifndef _LIBINTL_H |
2 | #include <intl/libintl.h> |
3 | #include <locale.h> |
4 | |
5 | /* Now define the internal interfaces. */ |
6 | extern char *__gettext (const char *__msgid) |
7 | __attribute_format_arg__ (1); |
8 | extern char *__dgettext (const char *__domainname, |
9 | const char *__msgid) |
10 | __attribute_format_arg__ (2); |
11 | extern char *__dcgettext (const char *__domainname, |
12 | const char *__msgid, int __category) |
13 | __attribute_format_arg__ (2); |
14 | libc_hidden_proto (__dcgettext) |
15 | |
16 | extern char *__ngettext (const char *__msgid1, const char *__msgid2, |
17 | unsigned long int __n) |
18 | __attribute_format_arg__ (1) __attribute_format_arg__ (2); |
19 | extern 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); |
23 | extern 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 | |
28 | extern char *__textdomain (const char *__domainname); |
29 | extern char *__bindtextdomain (const char *__domainname, |
30 | const char *__dirname); |
31 | extern char *__bind_textdomain_codeset (const char *__domainname, |
32 | const char *__codeset); |
33 | |
34 | extern const char _libc_intl_domainname[]; |
35 | libc_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 | |