1*86d7f5d3SJohn Marino ///////////////////////////////////////////////////////////////////////////////
2*86d7f5d3SJohn Marino //
3*86d7f5d3SJohn Marino /// \file       tuklib_gettext.h
4*86d7f5d3SJohn Marino /// \brief      Wrapper for gettext and friends
5*86d7f5d3SJohn Marino //
6*86d7f5d3SJohn Marino //  Author:     Lasse Collin
7*86d7f5d3SJohn Marino //
8*86d7f5d3SJohn Marino //  This file has been put into the public domain.
9*86d7f5d3SJohn Marino //  You can do whatever you want with this file.
10*86d7f5d3SJohn Marino //
11*86d7f5d3SJohn Marino ///////////////////////////////////////////////////////////////////////////////
12*86d7f5d3SJohn Marino 
13*86d7f5d3SJohn Marino #ifndef TUKLIB_GETTEXT_H
14*86d7f5d3SJohn Marino #define TUKLIB_GETTEXT_H
15*86d7f5d3SJohn Marino 
16*86d7f5d3SJohn Marino #include "tuklib_common.h"
17*86d7f5d3SJohn Marino #include <locale.h>
18*86d7f5d3SJohn Marino 
19*86d7f5d3SJohn Marino #ifndef TUKLIB_GETTEXT
20*86d7f5d3SJohn Marino #	ifdef ENABLE_NLS
21*86d7f5d3SJohn Marino #		define TUKLIB_GETTEXT 1
22*86d7f5d3SJohn Marino #	else
23*86d7f5d3SJohn Marino #		define TUKLIB_GETTEXT 0
24*86d7f5d3SJohn Marino #	endif
25*86d7f5d3SJohn Marino #endif
26*86d7f5d3SJohn Marino 
27*86d7f5d3SJohn Marino #if TUKLIB_GETTEXT
28*86d7f5d3SJohn Marino #	include <libintl.h>
29*86d7f5d3SJohn Marino #	define tuklib_gettext_init(package, localedir) \
30*86d7f5d3SJohn Marino 		do { \
31*86d7f5d3SJohn Marino 			setlocale(LC_ALL, ""); \
32*86d7f5d3SJohn Marino 			bindtextdomain(package, localedir); \
33*86d7f5d3SJohn Marino 			textdomain(package); \
34*86d7f5d3SJohn Marino 		} while (0)
35*86d7f5d3SJohn Marino #	define _(msgid) gettext(msgid)
36*86d7f5d3SJohn Marino #else
37*86d7f5d3SJohn Marino #	define tuklib_gettext_init(package, localedir) \
38*86d7f5d3SJohn Marino 		setlocale(LC_ALL, "")
39*86d7f5d3SJohn Marino #	define _(msgid) (msgid)
40*86d7f5d3SJohn Marino #	define ngettext(msgid1, msgid2, n) ((n) == 1 ? (msgid1) : (msgid2))
41*86d7f5d3SJohn Marino #endif
42*86d7f5d3SJohn Marino #define N_(msgid) msgid
43*86d7f5d3SJohn Marino 
44*86d7f5d3SJohn Marino #endif
45