Fix use of N_() and ngettext().
authorLasse Collin <lasse.collin@tukaani.org>
Tue, 7 Sep 2010 07:42:13 +0000 (10:42 +0300)
committerLasse Collin <lasse.collin@tukaani.org>
Tue, 7 Sep 2010 07:42:13 +0000 (10:42 +0300)
I had somehow thought that N_() is usually used
as shorthand for ngettext().

This also fixes a missing \n from a call to ngettext().

src/common/tuklib_gettext.h
src/xz/list.c

index 2485213..ff18904 100644 (file)
                        textdomain(package); \
                } while (0)
 #      define _(msgid) gettext(msgid)
-#      define N_(msgid1, msgid2, n) ngettext(msgid1, msgid2, n)
 #else
 #      define tuklib_gettext_init(package, localedir) \
                setlocale(LC_ALL, "")
 #      define _(msgid) (msgid)
-#      define N_(msgid1, msgid2, n) ((n) == 1 ? (msgid1) : (msgid2))
+#      define ngettext(msgid1, msgid2, n) ((n) == 1 ? (msgid1) : (msgid2))
 #endif
+#define N_(msgid) msgid
 
 #endif
index ad3c872..e136cc2 100644 (file)
@@ -909,11 +909,11 @@ print_totals_basic(void)
        // Since we print totals only when there are at least two files,
        // the English message will always use "%s files". But some other
        // languages need different forms for different plurals so we
-       // have to translate this with N_().
+       // have to translate this with ngettext().
        //
        // TRANSLATORS: %s is an integer. Only the plural form of this
        // message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
-       printf(N_("%s file", "%s files\n",
+       printf(ngettext("%s file\n", "%s files\n",
                        totals.files <= ULONG_MAX ? totals.files
                                : (totals.files % 1000000) + 1000000),
                        uint64_to_str(totals.files, 0));