[pacman-dev] [PATCH v2 2/2] pacman/pacman-conf, testpkg: Added translatable strings

Matthew Sexton wsdmatty at gmail.com
Tue Sep 10 09:33:53 UTC 2019


From: Matthew Sexton <WSDMatty at gmail.com>

Added gettext macro to warnings, helps, and errors for translation.

Signed-off-by: Matthew Sexton <wsdmatty at gmail.com>
---
Changes in v2:
- Moved "Include" outside of gettext macro so it doesn't get localised

 src/pacman/pacman-conf.c | 44 +++++++++++++++++++++++-----------------
 src/util/testpkg.c       | 29 +++++++++++++++-----------
 2 files changed, 42 insertions(+), 31 deletions(-)

diff --git a/src/pacman/pacman-conf.c b/src/pacman/pacman-conf.c
index d9e596b8..efc62cdd 100644
--- a/src/pacman/pacman-conf.c
+++ b/src/pacman/pacman-conf.c
@@ -20,6 +20,7 @@
 #include <getopt.h>
 #include <string.h>
 #include "conf.h"
+#include "util.h"
 
 const char *myname = "pacman-conf", *myver = "1.0.0";
 
@@ -37,17 +38,17 @@ static void cleanup(void)
 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] [<directive>...]\n", stream);
-	fputs("        pacman-conf (--repo-list|--help|--version)\n", stream);
-	fputs("options:\n", stream);
-	fputs("  -c, --config=<path>  set an alternate configuration file\n", stream);
-	fputs("  -R, --rootdir=<path> set an alternate installation root\n", stream);
-	fputs("  -r, --repo=<remote>  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] [<directive>...]\n"), stream);
+	fputs(_("        pacman-conf (--repo-list|--help|--version)\n"), stream);
+	fputs(_("options:\n"), stream);
+	fputs(_("  -c, --config=<path>  set an alternate configuration file\n"), stream);
+	fputs(_("  -R, --rootdir=<path> set an alternate installation root\n"), stream);
+	fputs(_("  -r, --repo=<remote>  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);
 }
@@ -76,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);
 				}
@@ -106,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);
 	}
@@ -286,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;
 	}
 
@@ -303,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);
+			fprintf(stderr,_("warning: '%s' directives cannot be queried\n"), "Include");
 			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;
 		}
 	}
@@ -379,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);
+			fprintf(stderr, _("warning: '%s' directives cannot be queried\n"), "Include");
 			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;
 		}
 	}
@@ -404,6 +405,11 @@ int main(int argc, char **argv)
 		goto cleanup;
 	}
 
+		/* i18n init */
+#if defined(ENABLE_NLS)
+	bindtextdomain(PACKAGE, LOCALEDIR);
+#endif
+
 	for(; optind < argc; optind++) {
 		directives = alpm_list_add(directives, argv[optind]);
 	}
@@ -414,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);
+			fprintf(stderr, _("error: directives may not be specified with %s\n"), "--repo-list");
 			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 <stdarg.h> /* va_list */
 
 #include <alpm.h>
+#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 <package file>\n");
+		fprintf(stderr, "testpkg (pacman) v" PACKAGE_VERSION "\n\n");
+		fprintf(stderr,	_("Test a pacman package for validity.\n\n"));
+		fprintf(stderr,	_("Usage: testpkg <package file>\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


More information about the pacman-dev mailing list