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 /modules | |
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>
Diffstat (limited to 'modules')
-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()); |