From 42abb12e78ed7111593931191a0772fbb7af6858 Mon Sep 17 00:00:00 2001 From: Matthew Sexton Date: Sun, 8 Sep 2019 12:37:09 -0400 Subject: [PATCH 3/3] added localization init and translation wrapper --- src/pacman/pacman-conf.c | 57 ++++++++++++++-------------------------- src/util/testpkg.c | 29 +++++++++++--------- 2 files changed, 37 insertions(+), 49 deletions(-) diff --git a/src/pacman/pacman-conf.c b/src/pacman/pacman-conf.c index d1a4aca9..e3cf8c21 100644 --- a/src/pacman/pacman-conf.c +++ b/src/pacman/pacman-conf.c @@ -19,7 +19,6 @@ #include #include -#include #include "conf.h" #include "util.h" @@ -36,36 +35,20 @@ static void cleanup(void) config_free(config); } -/** Sets up gettext localization. Safe to call multiple times. - */ -/* Inspired by the monotone function localize_monotone. */ -#if defined(ENABLE_NLS) -static void localize(void) -{ - static int init = 0; - if(!init) { - setlocale(LC_ALL, ""); - bindtextdomain(PACKAGE, LOCALEDIR); - textdomain(PACKAGE); - init = 1; - } -} -#endif - static void usage(int ret) { FILE *stream = (ret ? stderr : stdout); - fputs("pacman-conf - query pacman's configuration file\n", stream); - fputs("usage: pacman-conf [options] [...]\n", stream); - fputs(" pacman-conf (--repo-list|--help|--version)\n", stream); - fputs("options:\n", stream); - fputs(" -c, --config= set an alternate configuration file\n", stream); - fputs(" -R, --rootdir= set an alternate installation root\n", stream); - fputs(" -r, --repo= query options for a specific repo\n", stream); - fputs(" -v, --verbose always show directive names\n", stream); - fputs(" -l, --repo-list list configured repositories\n", stream); - fputs(" -h, --help display this help information\n", stream); - fputs(" -V, --version display version information\n", stream); + fputs(_("pacman-conf - query pacman's configuration file\n"), stream); + fputs(_("usage: pacman-conf [options] [...]\n"), stream); + fputs(_(" pacman-conf (--repo-list|--help|--version)\n"), stream); + fputs(_("options:\n"), stream); + fputs(_(" -c, --config= set an alternate configuration file\n"), stream); + fputs(_(" -R, --rootdir= set an alternate installation root\n"), stream); + fputs(_(" -r, --repo= query options for a specific repo\n"), stream); + fputs(_(" -v, --verbose always show directive names\n"), stream); + fputs(_(" -l, --repo-list list configured repositories\n"), stream); + fputs(_(" -h, --help display this help information\n"), stream); + fputs(_(" -V, --version display version information\n"), stream); cleanup(); exit(ret); } @@ -94,7 +77,7 @@ static void parse_opts(int argc, char **argv) break; case 'R': if ((config->rootdir = strdup(optarg)) == NULL) { - fprintf(stderr, "error setting rootdir '%s': out of memory\n", optarg); + fprintf(stderr, _("error setting rootdir '%s': out of memory\n"), optarg); cleanup(); exit(1); } @@ -124,7 +107,7 @@ static void parse_opts(int argc, char **argv) } if(parseconfigfile(config_file) != 0 || setdefaults(config) != 0) { - fprintf(stderr, "error parsing '%s'\n", config_file); + fprintf(stderr, _("error parsing '%s'\n"), config_file); cleanup(); exit(1); } @@ -304,7 +287,7 @@ static int list_repo_directives(void) } if(!repo) { - fprintf(stderr, "error: repo '%s' not configured\n", repo_name); + fprintf(stderr, _("error: repo '%s' not configured\n"), repo_name); return 1; } @@ -321,10 +304,10 @@ static int list_repo_directives(void) } else if(strcasecmp(i->data, "Usage") == 0) { show_usage("Usage", repo->usage); } else if(strcasecmp(i->data, "Include") == 0) { - fputs("warning: 'Include' directives cannot be queried\n", stderr); + fputs(_("warning: 'Include' directives cannot be queried\n"), stderr); ret = 1; } else { - fprintf(stderr, "warning: unknown directive '%s'\n", (char*) i->data); + fprintf(stderr, _("warning: unknown directive '%s'\n"), (char*) i->data); ret = 1; } } @@ -397,10 +380,10 @@ static int list_directives(void) show_siglevel("RemoteFileSigLevel", config->remotefilesiglevel, 1); } else if(strcasecmp(i->data, "Include") == 0) { - fputs("warning: 'Include' directives cannot be queried\n", stderr); + fputs(_("warning: 'Include' directives cannot be queried\n"), stderr); ret = 1; } else { - fprintf(stderr, "warning: unknown directive '%s'\n", (char*) i->data); + fprintf(stderr, _("warning: unknown directive '%s'\n"), (char*) i->data); ret = 1; } } @@ -424,7 +407,7 @@ int main(int argc, char **argv) /* i18n init */ #if defined(ENABLE_NLS) - localize(); + bindtextdomain(PACKAGE, LOCALEDIR); #endif for(; optind < argc; optind++) { @@ -437,7 +420,7 @@ int main(int argc, char **argv) if(repo_list) { if(directives) { - fputs("error: directives may not be specified with --repo-list\n", stderr); + fputs(_("error: directives may not be specified with --repo-list\n"), stderr); ret = 1; goto cleanup; } diff --git a/src/util/testpkg.c b/src/util/testpkg.c index cd298ed0..a83439ae 100644 --- a/src/util/testpkg.c +++ b/src/util/testpkg.c @@ -22,6 +22,7 @@ #include /* va_list */ #include +#include "util.h" /* For Localization */ __attribute__((format(printf, 2, 0))) static void output_cb(alpm_loglevel_t level, const char *fmt, va_list args) @@ -30,8 +31,8 @@ static void output_cb(alpm_loglevel_t level, const char *fmt, va_list args) return; } switch(level) { - case ALPM_LOG_ERROR: printf("error: "); break; - case ALPM_LOG_WARNING: printf("warning: "); break; + case ALPM_LOG_ERROR: printf(_("error: ")); break; + case ALPM_LOG_WARNING: printf(_("warning: ")); break; default: return; /* skip other messages */ } vprintf(fmt, args); @@ -45,16 +46,20 @@ int main(int argc, char *argv[]) alpm_pkg_t *pkg = NULL; const int siglevel = ALPM_SIG_PACKAGE | ALPM_SIG_PACKAGE_OPTIONAL; +#if defined(ENABLE_NLS) + bindtextdomain(PACKAGE, LOCALEDIR); +#endif + if(argc != 2) { - fprintf(stderr, "testpkg (pacman) v" PACKAGE_VERSION "\n\n" - "Test a pacman package for validity.\n\n" - "Usage: testpkg \n"); + fprintf(stderr, "testpkg (pacman) v" PACKAGE_VERSION "\n\n"); + fprintf(stderr, _("Test a pacman package for validity.\n\n")); + fprintf(stderr, _("Usage: testpkg \n")); return 1; } handle = alpm_initialize(ROOTDIR, DBPATH, &err); if(!handle) { - fprintf(stderr, "cannot initialize alpm: %s\n", alpm_strerror(err)); + fprintf(stderr, _("cannot initialize alpm: %s\n"), alpm_strerror(err)); return 1; } @@ -69,28 +74,28 @@ int main(int argc, char *argv[]) err = alpm_errno(handle); switch(err) { case ALPM_ERR_PKG_NOT_FOUND: - printf("Cannot find the given file.\n"); + printf(_("Cannot find the given file.\n")); break; case ALPM_ERR_PKG_OPEN: - printf("Cannot open the given file.\n"); + printf(_("Cannot open the given file.\n")); break; case ALPM_ERR_LIBARCHIVE: case ALPM_ERR_PKG_INVALID: - printf("Package is invalid.\n"); + printf(_("Package is invalid.\n")); break; default: - printf("libalpm error: %s\n", alpm_strerror(err)); + printf(_("libalpm error: %s\n"), alpm_strerror(err)); break; } retval = 1; } else { alpm_pkg_free(pkg); - printf("Package is valid.\n"); + printf(_("Package is valid.\n")); retval = 0; } if(alpm_release(handle) == -1) { - fprintf(stderr, "error releasing alpm\n"); + fprintf(stderr, _("error releasing alpm\n")); } return retval; -- 2.23.0