xref: /freebsd/contrib/xz/src/common/tuklib_gettext.h (revision 783d3ff6)
1 // SPDX-License-Identifier: 0BSD
2 
3 ///////////////////////////////////////////////////////////////////////////////
4 //
5 /// \file       tuklib_gettext.h
6 /// \brief      Wrapper for gettext and friends
7 //
8 //  Author:     Lasse Collin
9 //
10 ///////////////////////////////////////////////////////////////////////////////
11 
12 #ifndef TUKLIB_GETTEXT_H
13 #define TUKLIB_GETTEXT_H
14 
15 #include "tuklib_common.h"
16 #include <locale.h>
17 
18 #ifndef TUKLIB_GETTEXT
19 #	ifdef ENABLE_NLS
20 #		define TUKLIB_GETTEXT 1
21 #	else
22 #		define TUKLIB_GETTEXT 0
23 #	endif
24 #endif
25 
26 #if TUKLIB_GETTEXT
27 #	include <libintl.h>
28 #	define tuklib_gettext_init(package, localedir) \
29 		do { \
30 			setlocale(LC_ALL, ""); \
31 			bindtextdomain(package, localedir); \
32 			textdomain(package); \
33 		} while (0)
34 #	define _(msgid) gettext(msgid)
35 #else
36 #	define tuklib_gettext_init(package, localedir) \
37 		setlocale(LC_ALL, "")
38 #	define _(msgid) (msgid)
39 #	define ngettext(msgid1, msgid2, n) ((n) == 1 ? (msgid1) : (msgid2))
40 #endif
41 #define N_(msgid) msgid
42 
43 #endif
44