diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-03-19 23:24:42 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-03-19 23:24:42 -0700 |
commit | 1e239079f704b840778c263f35f1e299565d4a49 (patch) | |
tree | e97798c2f77f567f308317f61444cdc69ef6a393 /gettext.h | |
parent | 32b31ab7f3ff52eafc40033b890b313efaed8c56 (diff) | |
parent | 92a684b916edf9e0f4f7962865e62ff71a988445 (diff) | |
download | git-1e239079f704b840778c263f35f1e299565d4a49.tar.gz git-1e239079f704b840778c263f35f1e299565d4a49.tar.xz |
Merge branch 'ab/i18n-basic'
* ab/i18n-basic:
i18n: "make distclean" should clean up after "make pot"
i18n: Makefile: "pot" target to extract messages marked for translation
i18n: add stub Q_() wrapper for ngettext
i18n: do not poison translations unless GIT_GETTEXT_POISON envvar is set
i18n: add GETTEXT_POISON to simulate unfriendly translator
i18n: add no-op _() and N_() wrappers
commit, status: use status_printf{,_ln,_more} helpers
commit: refer to commit template as s->fp
wt-status: add helpers for printing wt-status lines
Conflicts:
builtin/commit.c
Diffstat (limited to 'gettext.h')
-rw-r--r-- | gettext.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gettext.h b/gettext.h new file mode 100644 index 000000000..1b253b7e7 --- /dev/null +++ b/gettext.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2010-2011 Ævar Arnfjörð Bjarmason + * + * This is a skeleton no-op implementation of gettext for Git. + * You can replace it with something that uses libintl.h and wraps + * gettext() to try out the translations. + */ + +#ifndef GETTEXT_H +#define GETTEXT_H + +#if defined(_) || defined(Q_) +#error "namespace conflict: '_' or 'Q_' is pre-defined?" +#endif + +#define FORMAT_PRESERVING(n) __attribute__((format_arg(n))) + +#ifdef GETTEXT_POISON +extern int use_gettext_poison(void); +#else +#define use_gettext_poison() 0 +#endif + +static inline FORMAT_PRESERVING(1) const char *_(const char *msgid) +{ + return use_gettext_poison() ? "# GETTEXT POISON #" : msgid; +} + +static inline FORMAT_PRESERVING(1) FORMAT_PRESERVING(2) +const char *Q_(const char *msgid, const char *plu, unsigned long n) +{ + if (use_gettext_poison()) + return "# GETTEXT POISON #"; + return n == 1 ? msgid : plu; +} + +/* Mark msgid for translation but do not translate it. */ +#define N_(msgid) (msgid) + +#endif |