From f0f2f956957af36389790fd47899a1f65302b21c Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 18 Feb 2010 00:31:49 +0100 Subject: [PATCH] * buildlib/apti18n.h.in, po/makefile: - add ngettext support with P_() --- buildlib/apti18n.h.in | 3 +++ cmdline/apt-get.cc | 12 +++++++----- debian/changelog | 2 ++ po/makefile | 1 + 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/buildlib/apti18n.h.in b/buildlib/apti18n.h.in index e7beceb09..6928d626c 100644 --- a/buildlib/apti18n.h.in +++ b/buildlib/apti18n.h.in @@ -11,8 +11,10 @@ # include # 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 @@ -21,5 +23,6 @@ # define textdomain(a) # define bindtextdomain(a, b) # define _(x) x +# define P_(msg,plural,n) (n == 1 ? msg : plural) # define N_(x) x #endif diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 34ae2fed9..5a814e255 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1504,10 +1504,9 @@ bool DoAutomaticRemove(CacheFile &Cache) // only show stuff in the list that is not yet marked for removal if(Cache[Pkg].Delete() == false) { + ++autoRemoveCount; // we don't need to fill the strings if we don't need them - if (smallList == true) - ++autoRemoveCount; - else + if (smallList == false) { autoremovelist += string(Pkg.Name()) + " "; autoremoveversions += string(Cache[Pkg].CandVersion) + "\n"; @@ -1520,9 +1519,12 @@ bool DoAutomaticRemove(CacheFile &Cache) if (doAutoRemove == false && (autoremovelist.empty() == false || autoRemoveCount != 0)) { if (smallList == false) - ShowList(c1out, _("The following packages were automatically installed and are no longer required:"), autoremovelist, autoremoveversions); + ShowList(c1out, P_("The following package is automatically installed and is no longer required:", + "The following packages were automatically installed and are no longer required:", + autoRemoveCount), autoremovelist, autoremoveversions); else - ioprintf(c1out, _("%lu packages were automatically installed and are no longer required.\n"), autoRemoveCount); + ioprintf(c1out, P_("%lu package was automatically installed and is no longer required.\n", + "%lu packages were automatically installed and are no longer required.\n", autoRemoveCount), autoRemoveCount); c1out << _("Use 'apt-get autoremove' to remove them.") << std::endl; } // Now see if we had destroyed anything (if we had done anything) diff --git a/debian/changelog b/debian/changelog index 10cccda47..47fe7adf9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -24,6 +24,8 @@ apt (0.7.26) UNRELEASED; urgency=low * apt-pkg/deb/dpkgpm.cc: - stdin redirected to /dev/null takes all CPU (Closes: #569488) Thanks to Aurelien Jarno for providing (again) a patch! + * buildlib/apti18n.h.in, po/makefile: + - add ngettext support with P_() [ Ivan Masár ] * Slovak translation update. Closes: #568294 diff --git a/po/makefile b/po/makefile index 07dc51c07..9f8b7b22e 100644 --- a/po/makefile +++ b/po/makefile @@ -37,6 +37,7 @@ $(POTFILES) : $(PO)/%.pot : cat $(PO)/domains/$*/*.srclist > $(PO)/POTFILES_$*.in $(XGETTEXT) --default-domain=$* --directory=$(BASE) \ --add-comments --foreign --keyword=_ --keyword=N_ \ + --keyword=P_:1,2 \ --files-from=$(PO)/POTFILES_$*.in -o $(PO)/domains/$*/c.pot rm -f $(PO)/POTFILES_$*.in $(MSGCOMM) --more-than=0 $(PO)/domains/$*/c.pot $(PO)/domains/$*/sh.pot --output=$@ -- 2.45.2