diff options
| author | Burt P <pburt0@gmail.com> | 2017-07-14 23:59:40 -0500 | 
|---|---|---|
| committer | Leandro Pereira <leandro@hardinfo.org> | 2017-07-19 07:20:33 -0700 | 
| commit | e26ffa481c040f21b28ede1335194149faabb4c2 (patch) | |
| tree | 8813cef84e25859e5fa42de8038dc0a78637fc1a | |
| parent | 2ad7b03874a7dd196ff15e4a0834688b47ca373c (diff) | |
Find a value for OS->Language field, Computer summary headers translatable
Note: "Computer" summary (not Computer->Summary).
Signed-off-by: Burt P <pburt0@gmail.com>
| -rw-r--r-- | modules/computer.c | 24 | ||||
| -rw-r--r-- | modules/computer/os.c | 33 | 
2 files changed, 46 insertions, 11 deletions
| diff --git a/modules/computer.c b/modules/computer.c index 5789e95e..c77c2349 100644 --- a/modules/computer.c +++ b/modules/computer.c @@ -468,7 +468,7 @@ gchar *callback_os()                 _("Current Session"),                 _("Computer Name"), computer->os->hostname,                 _("User Name"), computer->os->username, -               _("#Language"), computer->os->language, +               _("Language"), computer->os->language,                 _("Home Directory"), computer->os->homedir,                 _("Desktop Environment"), computer->os->desktop,                 _("Misc"), @@ -658,30 +658,34 @@ gchar **hi_module_get_dependencies(void)  gchar *hi_module_get_summary(void)  { -    return g_strdup("[Operating System]\n" +    return g_strdup_printf("[%s]\n"                      "Icon=os.png\n"                      "Method=computer::getOS\n" -                    "[CPU]\n" +                    "[%s]\n"                      "Icon=processor.png\n"                      "Method=devices::getProcessorName\n" -                    "[RAM]\n" +                    "[%s]\n"                      "Icon=memory.png\n"                      "Method=devices::getMemoryTotal\n" -                    "[Motherboard]\n" +                    "[%s]\n"                      "Icon=module.png\n"                      "Method=devices::getMotherboard\n" -                    "[Graphics]\n" +                    "[%s]\n"                      "Icon=monitor.png\n"                      "Method=computer::getDisplaySummary\n" -                    "[Storage]\n" +                    "[%s]\n"                      "Icon=hdd.png\n"                      "Method=devices::getStorageDevices\n" -                    "[Printers]\n" +                    "[%s]\n"                      "Icon=printer.png\n"                      "Method=devices::getPrinters\n" -                    "[Audio]\n" +                    "[%s]\n"                      "Icon=audio.png\n" -                    "Method=computer::getAudioCards\n"); +                    "Method=computer::getAudioCards\n", +                    _("Operating System"), +                    _("CPU"), _("RAM"), _("Motherboard"), _("Graphics"), +                    _("Storage"), _("Printers"), _("Audio") +                    );  }  void hi_module_deinit(void) diff --git a/modules/computer/os.c b/modules/computer/os.c index fa9bb476..3ea4189e 100644 --- a/modules/computer/os.c +++ b/modules/computer/os.c @@ -171,6 +171,37 @@ computer_get_entropy_avail(void)      return g_strdup_printf(_(tab_entropy_fstr[0]), bits);  } +gchar * +computer_get_language(void) +{ +    gchar *tab_lang_env[] = +        { "LANGUAGE", "LANG", "LC_ALL", "LC_MESSAGES", NULL }; +    gchar *lc = NULL, *env = NULL, *ret = NULL; +    gint i = 0; + +    lc = setlocale(LC_ALL, NULL); + +    while (tab_lang_env[i] != NULL) { +        env = g_strdup( g_getenv(tab_lang_env[i]) ); +        if (env != NULL)  break; +        i++; +    } + +    if (env != NULL) +        if (lc != NULL) +            ret = g_strdup_printf("%s (%s)", lc, env); +        else +            ret = g_strdup_printf("%s", env); +    else +        if (lc != NULL) +            ret = g_strdup_printf("%s", lc); + +    if (ret == NULL) +        ret = g_strdup( _("(Unknown)") ); + +    return ret; +} +  OperatingSystem *  computer_get_os(void)  { @@ -263,7 +294,7 @@ computer_get_os(void)      os->kernel = g_strdup_printf("%s %s (%s)", utsbuf.sysname,  				 utsbuf.release, utsbuf.machine);      os->hostname = g_strdup(utsbuf.nodename); -    os->language = g_strdup(g_getenv("LC_MESSAGES")); +    os->language = computer_get_language();      os->homedir = g_strdup(g_get_home_dir());      os->username = g_strdup_printf("%s (%s)",  				   g_get_user_name(), g_get_real_name()); | 
