| | 8 | #define wgettext(msgid) wgettext_(msgid, L##msgid) |
| | 9 | inline static const wchar_t* wgettext_(const char* msgid, const wchar_t* wmsgid) { |
| | 10 | const char* translated = gettext(msgid); |
| | 11 | return translated != msgid ? (const wchar_t*)translated : wmsgid; |
| | 12 | } |
| | 13 | |
| | 14 | #define dwgettext(domainname, msgid) dwgettext_(domainname, msgid, L##msgid) |
| | 15 | inline static const wchar_t* dwgettext_(const char *domainname, const char* msgid, const wchar_t* wmsgid) { |
| | 16 | const char* translated = dgettext(domainname, msgid); |
| | 17 | return translated != msgid ? (const wchar_t*)translated : wmsgid; |
| | 18 | } |
| | 19 | |
| | 20 | #define dcwgettext(domainname, msgid, category) dwgettext_(domainname, msgid, category, L##msgid) |
| | 21 | inline static const wchar_t* dcwgettext_(const char *domainname, const char* msgid, int category, const wchar_t* wmsgid) { |
| | 22 | const char* translated = dcgettext(domainname, msgid, category); |
| | 23 | return translated != msgid ? (const wchar_t*)translated : wmsgid; |
| | 24 | } |
| | 25 | |
| | 26 | #define nwgettext(msgid1, msgid2, n) nwgettext_(msgid1, msgid2, n, L##msgid1, L##msgid2) |
| | 27 | inline static const wchar_t* nwgettext_(const char* msgid1, |
| | 28 | const char* msgid2, |
| | 29 | const char* n, |
| | 30 | const wchar_t* wmsgid1, |
| | 31 | const wchar_t* wmsgid2) { |
| | 32 | const char* translated = ngettext(msgid1, msgid2, n); |
| | 33 | return translated == msgid1 ? wmsgid1 : (translated == msgid2 ? wmsgid2 : (const wchar_t*)translated) |
| | 34 | } |
| | 35 | |
| | 36 | #define dnwgettext(domainname, msgid1, msgid2, n) dnwgettext_(domainname, msgid1, msgid2, n, L##msgid1, L##msgid2) |
| | 37 | inline static const wchar_t* dnwgettext_(const char* domainname, |
| | 38 | const char* msgid1, |
| | 39 | const char* msgid2, |
| | 40 | const char* n, |
| | 41 | const wchar_t* wmsgid1, |
| | 42 | const wchar_t* wmsgid2) { |
| | 43 | const char* translated = dngettext(domainname, msgid1, msgid2, n); |
| | 44 | return translated == msgid1 ? wmsgid1 : (translated == msgid2 ? wmsgid2 : (const wchar_t*)translated) |
| | 45 | } |
| | 46 | |
| | 47 | #define dcnwgettext(domainname, msgid1, msgid2, n, category) dnwgettext_(domainname, msgid1, msgid2, n, L##msgid1, L##msgid2) |
| | 48 | inline static const wchar_t* dcnwgettext_(const char* domainname, |
| | 49 | const char* msgid1, |
| | 50 | const char* msgid2, |
| | 51 | const char* n, |
| | 52 | const wchar_t* wmsgid1, |
| | 53 | const wchar_t* wmsgid2, |
| | 54 | int category) { |
| | 55 | const char* translated = dcnwgettext(domainname, msgid1, msgid2, n, category); |
| | 56 | return translated == msgid1 ? wmsgid1 : (translated == msgid2 ? wmsgid2 : (const wchar_t*)translated) |
| | 57 | } |
| | 58 | |