chiark / gitweb /
Translate fsckd messages for plymouth
authorDidier Roche <didrocks@ubuntu.com>
Mon, 26 Jan 2015 16:12:54 +0000 (17:12 +0100)
committerMartin Pitt <martin.pitt@ubuntu.com>
Wed, 18 Feb 2015 15:33:46 +0000 (16:33 +0100)
For plymouth themes not supporting i18n (like .script), send translated
messages to display to user, which is equivalent to the sent machine
readable data.

po/POTFILES.in
src/fsckd/fsckd.c

index b4c1121..70e7594 100644 (file)
@@ -5,3 +5,4 @@ src/locale/org.freedesktop.locale1.policy.in
 src/login/org.freedesktop.login1.policy.in
 src/machine/org.freedesktop.machine1.policy.in
 src/timedate/org.freedesktop.timedate1.policy.in
+src/fsckd/fsckd.c
index dc00fc6..834476c 100644 (file)
@@ -24,6 +24,7 @@
 
 #include <getopt.h>
 #include <errno.h>
+#include <libintl.h>
 #include <math.h>
 #include <stdbool.h>
 #include <stdlib.h>
@@ -182,7 +183,7 @@ static int send_message_plymouth(Manager *m, const char *message) {
                 if (r < 0)
                         return log_warning_errno(errno, "Can't send to plymouth cancel key: %m");
                 m->plymouth_cancel_sent = true;
-                plymouth_cancel_message = strjoina("fsckd-cancel-msg:", "Press Ctrl+C to cancel all filesystem checks in progress");
+                plymouth_cancel_message = strjoina("fsckd-cancel-msg:", _("Press Ctrl+C to cancel all filesystem checks in progress"));
                 r = send_message_plymouth_socket(m->plymouth_fd, plymouth_cancel_message, false);
                 if (r < 0)
                         log_warning_errno(r, "Can't send filesystem cancel message to plymouth: %m");
@@ -222,8 +223,10 @@ static int update_global_progress(Manager *m) {
                 m->numdevices = current_numdevices;
                 m->percent = current_percent;
 
-                if (asprintf(&console_message, "Checking in progress on %d disks (%3.1f%% complete)",
-                                                m->numdevices, m->percent) < 0)
+                if (asprintf(&console_message,
+                             ngettext("Checking in progress on %d disk (%3.1f%% complete)",
+                                      "Checking in progress on %d disks (%3.1f%% complete)", m->numdevices),
+                                      m->numdevices, m->percent) < 0)
                         return -ENOMEM;
                 if (asprintf(&fsck_message, "fsckd:%d:%3.1f:%s", m->numdevices, m->percent, console_message) < 0)
                         return -ENOMEM;
@@ -507,6 +510,7 @@ int main(int argc, char *argv[]) {
         log_set_target(LOG_TARGET_AUTO);
         log_parse_environment();
         log_open();
+        init_gettext();
 
         r = parse_argv(argc, argv);
         if (r <= 0)