]> git.ozlabs.org Git - petitboot/blobdiff - ui/ncurses/generic-main.c
i18n: Mark translatable strings for ncurses UI
[petitboot] / ui / ncurses / generic-main.c
index ad4c0cf9b8f3a1067591482912e648cd4c94d623..abf33563a13a10bf5cb82c3fb6a67bfe3a160d72 100644 (file)
 #include <string.h>
 #include <limits.h>
 #include <sys/time.h>
+#include <libintl.h>
+#include <locale.h>
 
 #include "log/log.h"
 #include "talloc/talloc.h"
 #include "waiter/waiter.h"
+#include "i18n/i18n.h"
 #include "ui/common/discover-client.h"
 #include "nc-cui.h"
 
@@ -48,8 +51,9 @@ static void print_usage(void)
 {
        print_version();
        printf(
-"Usage: petitboot-nc [-h, --help] [-l, --log log-file]\n"
-"                    [-s, --start-daemon] [-V, --version]\n");
+"%s: petitboot-nc [-h, --help] [-l, --log log-file]\n"
+"                    [-s, --start-daemon] [-v, --verbose] [-V, --version]\n",
+                       _("Usage"));
 }
 
 /**
@@ -66,6 +70,7 @@ struct opts {
        enum opt_value show_help;
        const char *log_file;
        enum opt_value start_daemon;
+       enum opt_value verbose;
        enum opt_value show_version;
 };
 
@@ -79,10 +84,11 @@ static int opts_parse(struct opts *opts, int argc, char *argv[])
                {"help",         no_argument,       NULL, 'h'},
                {"log",          required_argument, NULL, 'l'},
                {"start-daemon", no_argument,       NULL, 's'},
+               {"verbose",      no_argument,       NULL, 'v'},
                {"version",      no_argument,       NULL, 'V'},
                { NULL,          0,                 NULL, 0},
        };
-       static const char short_options[] = "dhl:sV";
+       static const char short_options[] = "dhl:svV";
        static const struct opts default_values = { 0 };
 
        *opts = default_values;
@@ -104,6 +110,9 @@ static int opts_parse(struct opts *opts, int argc, char *argv[])
                case 's':
                        opts->start_daemon = opt_yes;
                        break;
+               case 'v':
+                       opts->verbose = opt_yes;
+                       break;
                case 'V':
                        opts->show_version = opt_yes;
                        break;
@@ -193,19 +202,28 @@ static struct pmenu *pb_mm_init(struct pb_cui *pb_cui)
                "Petitboot (" PACKAGE_VERSION ")");
        m->scr.frame.rtitle = NULL;
        m->scr.frame.help = talloc_strdup(m,
-               "Enter=accept, e=edit, n=new, x=exit, h=help");
-       m->scr.frame.status = talloc_strdup(m, "Welcome to Petitboot");
+               _("Enter=accept, e=edit, n=new, x=exit, h=help"));
+       m->scr.frame.status = talloc_strdup(m, _("Welcome to Petitboot"));
 
-       i = pmenu_item_init(m, 0, " ");
+       i = pmenu_item_create(m, " ");
        item_opts_off(i->nci, O_SELECTABLE);
-       i = pmenu_item_init(m, 1, "System information");
+       pmenu_item_insert(m, i, 0);
+
+       i = pmenu_item_create(m, _("System information"));
        i->on_execute = pmenu_sysinfo;
-       i = pmenu_item_init(m, 2, "System configuration");
+       pmenu_item_insert(m, i, 1);
+
+       i = pmenu_item_create(m, _("System configuration"));
        i->on_execute = pmenu_config;
-       i = pmenu_item_init(m, 3, "Rescan devices");
+       pmenu_item_insert(m, i, 2);
+
+       i = pmenu_item_create(m, _("Rescan devices"));
        i->on_execute = pmenu_reinit;
-       i = pmenu_item_init(m, 4, "Exit to shell");
+       pmenu_item_insert(m, i, 3);
+
+       i = pmenu_item_create(m, _("Exit to shell"));
        i->on_execute = pmenu_exit_cb;
+       pmenu_item_insert(m, i, 4);
 
        result = pmenu_setup(m);
 
@@ -215,7 +233,7 @@ static struct pmenu *pb_mm_init(struct pb_cui *pb_cui)
                goto fail_setup;
        }
 
-       m->help_title = "main menu";
+       m->help_title = _("main menu");
        m->help_text = main_menu_help_text;
 
        menu_opts_off(m->ncm, O_SHOWDESC);
@@ -267,6 +285,10 @@ int main(int argc, char *argv[])
 
        result = opts_parse(&opts, argc, argv);
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+
        if (result) {
                print_usage();
                return EXIT_FAILURE;
@@ -297,6 +319,9 @@ int main(int argc, char *argv[])
 
        pb_log_init(log);
 
+       if (opts.verbose == opt_yes)
+               pb_log_set_debug(true);
+
        pb_log("--- petitboot-nc ---\n");
 
        sa.sa_handler = sig_handler;