[libvirt] [PATCH] libvirtd: mark strings for translation, including --help output

Jim Meyering jim at meyering.net
Thu May 20 19:42:24 UTC 2010


Eric Blake wrote:

> On 05/20/2010 02:02 AM, Jim Meyering wrote:
>> +++ b/daemon/libvirtd.c
>> @@ -484,8 +484,8 @@ static int daemonForkIntoBackground(void) {
>>
>>              if (ret == 1 && status != 0) {
>>                  fprintf(stderr,
>> -                        "error: %s. Check /var/log/messages or run without "
>> -                        "--daemon for more info.\n",
>> +                        _("error: %s. Check /var/log/messages or run without "
>> +                          "--daemon for more info.\n"),
>
> Should we also do a followup that passes argv[0] to this method, so that
> the error message can start with the program name?

Might as well.
patch below.

>>                          virDaemonErrTypeToString(status));
>>              }
>>              _exit(ret == 1 && status == 0 ? 0 : 1);
>> @@ -2963,7 +2963,7 @@ static void
>>  usage (const char *argv0)
>>  {
>>      fprintf (stderr,
>> -             "\n\
>> +             _("\n\
>>  Usage:\n\
>>    %s [options]\n\
>
> As is the case in usage()?
>
>> +               (REMOTE_PID_FILE[0] != '\0'
>> +                ? REMOTE_PID_FILE
>> +                : "(disabled in ./configure)"));
>
> Missed a string.  This should be _("(disabled in ./configure)").

Thanks.  Fixed in the v2 below.

>>          default:
>> -            fprintf (stderr, "libvirtd: internal error: unknown flag: %c\n",
>> +            fprintf (stderr, _("libvirtd: internal error: unknown flag: %c\n"),
>
> And here, should we be using %s/argv[0] instead of hard-coding the name
> "libvirtd"?

Yes.

>From c5df9b5d7e29234b43d07f998971e4f61e24d0f1 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering at redhat.com>
Date: Thu, 20 May 2010 10:01:32 +0200
Subject: [PATCH v2 1/2] libvirtd: mark strings for translation, including --help output

* daemon/libvirtd.c (daemonForkIntoBackground, main): Mark strings
for translation.
(usage): Rework --help so that it is translatable, replacing
each embedded, configuration-dependent, macro with an `%s'.

libvirtd: don't ignore virInitialize failure
* daemon/libvirtd.c (main): Diagnose virInitialize failure
and exit nonzero.
---
 daemon/libvirtd.c |   36 +++++++++++++++++++++---------------
 1 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
index aac2d08..be28165 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -484,8 +484,8 @@ static int daemonForkIntoBackground(void) {

             if (ret == 1 && status != 0) {
                 fprintf(stderr,
-                        "error: %s. Check /var/log/messages or run without "
-                        "--daemon for more info.\n",
+                        _("error: %s. Check /var/log/messages or run without "
+                          "--daemon for more info.\n"),
                         virDaemonErrTypeToString(status));
             }
             _exit(ret == 1 && status == 0 ? 0 : 1);
@@ -2963,7 +2963,7 @@ static void
 usage (const char *argv0)
 {
     fprintf (stderr,
-             "\n\
+             _("\n\
 Usage:\n\
   %s [options]\n\
 \n\
@@ -2981,27 +2981,33 @@ libvirt management daemon:\n\
   Default paths:\n\
 \n\
     Configuration file (unless overridden by -f):\n\
-      " SYSCONF_DIR "/libvirt/libvirtd.conf\n\
+      %s/libvirt/libvirtd.conf\n\
 \n\
     Sockets (as root):\n\
-      " LOCAL_STATE_DIR "/run/libvirt/libvirt-sock\n\
-      " LOCAL_STATE_DIR "/run/libvirt/libvirt-sock-ro\n\
+      %s/run/libvirt/libvirt-sock\n\
+      %s/run/libvirt/libvirt-sock-ro\n\
 \n\
     Sockets (as non-root):\n\
       $HOME/.libvirt/libvirt-sock (in UNIX abstract namespace)\n\
 \n\
     TLS:\n\
-      CA certificate:     " LIBVIRT_CACERT "\n\
-      Server certificate: " LIBVIRT_SERVERCERT "\n\
-      Server private key: " LIBVIRT_SERVERKEY "\n\
+      CA certificate:     %s\n\
+      Server certificate: %s\n\
+      Server private key: %s\n\
 \n\
     PID file (unless overridden by --pid-file):\n\
       %s\n\
-\n",
-             argv0,
-             REMOTE_PID_FILE[0] != '\0'
-               ? REMOTE_PID_FILE
-               : "(disabled in ./configure)");
+\n"),
+               argv0,
+               SYSCONF_DIR,
+               LOCAL_STATE_DIR,
+               LOCAL_STATE_DIR,
+               LIBVIRT_CACERT,
+               LIBVIRT_SERVERCERT,
+               LIBVIRT_SERVERKEY,
+               (REMOTE_PID_FILE[0] != '\0'
+                ? REMOTE_PID_FILE
+                : _("(disabled in ./configure)")));
 }

 enum {
@@ -3083,7 +3089,7 @@ int main(int argc, char **argv) {
             return 2;

         default:
-            fprintf (stderr, "libvirtd: internal error: unknown flag: %c\n",
+            fprintf (stderr, _("libvirtd: internal error: unknown flag: %c\n"),
                      c);
             exit (EXIT_FAILURE);
         }
--
1.7.1.262.g5ef3d


>From 2405307cc444d0ecdd6aa2326f29aee4f2375b49 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering at redhat.com>
Date: Thu, 20 May 2010 21:40:54 +0200
Subject: [PATCH 2/2] libvirtd: use argv[0] in place of hard-coded "libvirtd" in diagnostics

* daemon/libvirtd.c (main): Use argv[0] in place of hard-coded
"libvirtd" in two diagnostics.  Suggested by Eric Blake.
---
 daemon/libvirtd.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
index be28165..f82e282 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -3035,7 +3035,7 @@ int main(int argc, char **argv) {
     };

     if (virInitialize() < 0) {
-        fprintf (stderr, _("libvirtd: initialization failed\n"));
+        fprintf (stderr, _("%s: initialization failed\n"), argv[0]);
         exit (EXIT_FAILURE);
     }

@@ -3089,8 +3089,8 @@ int main(int argc, char **argv) {
             return 2;

         default:
-            fprintf (stderr, _("libvirtd: internal error: unknown flag: %c\n"),
-                     c);
+            fprintf (stderr, _("%s: internal error: unknown flag: %c\n"),
+                     argv[0], c);
             exit (EXIT_FAILURE);
         }
     }
--
1.7.1.262.g5ef3d




More information about the libvir-list mailing list