summaryrefslogtreecommitdiff
path: root/CMake/apti18n.h.in
blob: de9c84965b54158ca528da0c1b4b36f102d43a43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// -*- mode: cpp; mode: fold -*-
/* Internationalization macros for apt. This header should be included last
   in each C file. */

#ifndef APT_I18N_H
#define APT_I18N_H

// Set by autoconf
#cmakedefine USE_NLS

#ifdef USE_NLS
// apt will use the gettext implementation of the C library
#include <libintl.h>
#include <locale.h>
# ifdef APT_DOMAIN
#   define _(x) dgettext(APT_DOMAIN,x)
#   define P_(msg,plural,n) dngettext(APT_DOMAIN,msg,plural,n)
# else
#   define _(x) gettext(x)
#   define P_(msg,plural,n) ngettext(msg,plural,n)
# endif
# define N_(x) x
#else
// apt will not use any gettext
extern "C" inline char* setlocale(int, const char*) throw() { return nullptr; }
extern "C" inline char* textdomain(const char*) throw() { return nullptr; }
extern "C" inline char* bindtextdomain(const char*, const char*) throw() { return nullptr; }
extern "C" inline char* dgettext(const char*, const char* msg) throw() { return const_cast<char*>(msg); }
# define _(x) x
# define P_(msg,plural,n) (n == 1 ? msg : plural)
# define N_(x) x
#endif

#endif