Procházet zdrojové kódy

* buildlib/apti18n.h.in, po/makefile:
- add ngettext support with P_()

David Kalnischkies před 16 roky
rodič
revize
f0f2f95695
4 změnil soubory, kde provedl 13 přidání a 5 odebrání
  1. 3 0
      buildlib/apti18n.h.in
  2. 7 5
      cmdline/apt-get.cc
  3. 2 0
      debian/changelog
  4. 1 0
      po/makefile

+ 3 - 0
buildlib/apti18n.h.in

@@ -11,8 +11,10 @@
 # include <libintl.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
@@ -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

+ 7 - 5
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)

+ 2 - 0
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

+ 1 - 0
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=$@