Use the plural features of gettext
Gettext has this whole 'Plural-Form' thing that until now we haven't taken advantage of. Given that not all languages have the same plural form rules as English, take advantage of it by defining a new _n() macro which will normally define to ngettext(), and adjust a few messages as an example of how to use. There are surely other places where we do singular/plural logic without me having noticed, so further patches are welcome to fix those up too. Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
ddc4130c97
commit
e7d5803f07
3 changed files with 15 additions and 6 deletions
|
@ -283,11 +283,16 @@ void cb_trans_conv(pmtransconv_t event, void *data1, void *data2,
|
||||||
namelist = alpm_list_add(namelist,
|
namelist = alpm_list_add(namelist,
|
||||||
(char *)alpm_pkg_get_name(i->data));
|
(char *)alpm_pkg_get_name(i->data));
|
||||||
}
|
}
|
||||||
printf(_(":: the following package(s) cannot be upgraded due to "
|
printf(_n(
|
||||||
"unresolvable dependencies:\n"));
|
":: The following package cannot be upgraded due to unresolvable dependencies:\n",
|
||||||
|
":: The following packages cannot be upgraded due to unresolvable dependencies:\n",
|
||||||
|
alpm_list_count(namelist)));
|
||||||
list_display(" ", namelist);
|
list_display(" ", namelist);
|
||||||
*response = noyes(_("\nDo you want to skip the above "
|
printf("\n");
|
||||||
"package(s) for this upgrade?"));
|
*response = noyes(_n(
|
||||||
|
"Do you want to skip the above package for this upgrade?",
|
||||||
|
"Do you want to skip the above packages for this upgrade?",
|
||||||
|
alpm_list_count(namelist)));
|
||||||
alpm_list_free(namelist);
|
alpm_list_free(namelist);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -406,8 +406,10 @@ static int check(pmpkg_t *pkg)
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!config->quiet) {
|
if(!config->quiet) {
|
||||||
printf(_("%s: %d total files, %d missing file(s)\n"),
|
printf(_n("%s: %d total file, ", "%s: %d total files, ", allfiles),
|
||||||
pkgname, allfiles, errors);
|
pkgname, allfiles);
|
||||||
|
printf(_n("%d missing file\n", "%d missing files\n", errors),
|
||||||
|
errors);
|
||||||
}
|
}
|
||||||
|
|
||||||
return(errors != 0 ? 1 : 0);
|
return(errors != 0 ? 1 : 0);
|
||||||
|
|
|
@ -30,8 +30,10 @@
|
||||||
#include <libintl.h> /* here so it doesn't need to be included elsewhere */
|
#include <libintl.h> /* here so it doesn't need to be included elsewhere */
|
||||||
/* define _() as shortcut for gettext() */
|
/* define _() as shortcut for gettext() */
|
||||||
#define _(str) gettext(str)
|
#define _(str) gettext(str)
|
||||||
|
#define _n(str1, str2, ct) ngettext(str1, str2, ct)
|
||||||
#else
|
#else
|
||||||
#define _(str) str
|
#define _(str) str
|
||||||
|
#define _n(str1, str2, ct) (ct == 1 ? str1 : str2)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* update speed for the fill_progress based functions */
|
/* update speed for the fill_progress based functions */
|
||||||
|
|
Loading…
Add table
Reference in a new issue