evisum: add gettext support

This commit is contained in:
Alastair Poole 2020-04-23 12:28:07 +01:00
parent 247c45c32b
commit ad1f149e55
11 changed files with 851 additions and 59 deletions

2
README
View File

@ -28,3 +28,5 @@ NOTES
You can press Ctrl plus 'k', 'm', 'g' to display results in KB, MB You can press Ctrl plus 'k', 'm', 'g' to display results in KB, MB
of GB respectively. of GB respectively.
# Note to self
xgettext --keyword=_ --language=C --add-comments --sort-output --from-code=UTF-8 -o po/evisum.pot src/bin/ui.c src/bin/main.c

View File

@ -9,6 +9,8 @@ cfg = configuration_data()
host_os = host_machine.system() host_os = host_machine.system()
cc = meson.get_compiler('c')
deps = dependency('elementary', version: efl_version) deps = dependency('elementary', version: efl_version)
deps_os = declare_dependency(link_args : [] ) deps_os = declare_dependency(link_args : [] )
@ -23,11 +25,27 @@ dir_lib = join_paths(dir_prefix, get_option('libdir'))
dir_data = join_paths(dir_prefix, get_option('datadir')) dir_data = join_paths(dir_prefix, get_option('datadir'))
dir_locale = join_paths(dir_prefix, get_option('localedir')) dir_locale = join_paths(dir_prefix, get_option('localedir'))
##### translation
deps_nls = []
translate_enabled = false
intl_lib = cc.find_library('intl', required: false)
if intl_lib.found()
translate_enabled = true
deps_nls = [intl_lib]
endif
##### config.h ##### config.h
cfg.set_quoted('PACKAGE', meson.project_name())
cfg.set_quoted('PACKAGE_VERSION', meson.project_version()) cfg.set_quoted('PACKAGE_VERSION', meson.project_version())
cfg.set_quoted('PACKAGE_DATA_DIR', join_paths(dir_data, 'evisum')) cfg.set_quoted('PACKAGE_DATA_DIR', join_paths(dir_data, 'evisum'))
configure_file(output: 'config.h', configuration: cfg)
if translate_enabled
subdir('po')
endif
subdir('src') subdir('src')
subdir('data') subdir('data')
configure_file(output: 'config.h', configuration: cfg)

1
po/LINGUAS Normal file
View File

@ -0,0 +1 @@
fr

237
po/evisum.pot Normal file
View File

@ -0,0 +1,237 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-04-23 12:26+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: src/bin/ui.c:2048
msgid " Shared memory:"
msgstr ""
#: src/bin/ui.c:2033
msgid " Total memory :"
msgstr ""
#: src/bin/ui.c:2063
msgid " Virtual memory:"
msgstr ""
#: src/bin/ui.c:180
msgid "(plugged in)"
msgstr ""
#: src/bin/ui.c:233
msgid "<bigger>Network Incoming</bigger>"
msgstr ""
#: src/bin/ui.c:235
msgid "<bigger>Network Outgoing</bigger>"
msgstr ""
#: src/bin/ui.c:479
#, c-format
msgid "<header>Core at (%d °C)</header>"
msgstr ""
#: src/bin/ui.c:346
#, c-format
msgid ""
"<subtitle>%s</subtitle><br><bigger>mounted at %s</bigger><br>%1.1f%c of %1.1f"
"%c"
msgstr ""
#: src/bin/ui.c:2317
#, c-format
msgid "<subtitle>CPUs</subtitle><br><bigger>Total of %d CPUs</bigger>"
msgstr ""
#: src/bin/ui.c:2412
msgid "<subtitle>Memory</subtitle>"
msgstr ""
#: src/bin/ui.c:416
#, c-format
msgid ""
"<subtitle>Memory</subtitle><br><bigger>Physical %s</bigger><br><br>Swap %s"
msgstr ""
#: src/bin/ui.c:2451
msgid "Buffered"
msgstr ""
#: src/bin/ui.c:2677
msgid "CPU"
msgstr ""
#: src/bin/ui.c:2002
msgid "CPU #:"
msgstr ""
#: src/bin/ui.c:1835
msgid "CPU %"
msgstr ""
#: src/bin/ui.c:2123
msgid "CPU %:"
msgstr ""
#: src/bin/ui.c:2440
msgid "Cached"
msgstr ""
#: src/bin/ui.c:1617
msgid "Cancel"
msgstr ""
#: src/bin/ui.c:2777
msgid "Close"
msgstr ""
#: src/bin/ui.c:1805
msgid "Command"
msgstr ""
#: src/bin/ui.c:1939
msgid "Command line:"
msgstr ""
#: src/bin/ui.c:1924
msgid "Command:"
msgstr ""
#: src/bin/ui.c:1586
msgid "Decrease"
msgstr ""
#: src/bin/main.c:32
msgid "Evisum: System Monitor"
msgstr ""
#: src/bin/ui.c:1585
msgid "Increase"
msgstr ""
#: src/bin/ui.c:2183
msgid "Kill"
msgstr ""
#: src/bin/ui.c:2693
msgid "Memory"
msgstr ""
#: src/bin/ui.c:2725
msgid "Misc"
msgstr ""
#: src/bin/ui.c:2078
msgid "Nice:"
msgstr ""
#: src/bin/ui.c:2640
msgid "Options"
msgstr ""
#: src/bin/ui.c:1745
msgid "PID"
msgstr ""
#: src/bin/ui.c:1954
msgid "PID:"
msgstr ""
#: src/bin/ui.c:1607
msgid "Priority"
msgstr ""
#: src/bin/ui.c:2093
msgid "Priority:"
msgstr ""
#: src/bin/ui.c:1905
msgid "Process Statistics"
msgstr ""
#: src/bin/ui.c:2661
msgid "Processes"
msgstr ""
#: src/bin/ui.c:1790
msgid "Res"
msgstr ""
#: src/bin/ui.c:2462
msgid "Shared"
msgstr ""
#: src/bin/ui.c:1775
msgid "Size"
msgstr ""
#: src/bin/ui.c:1611 src/bin/ui.c:2168
msgid "Start"
msgstr ""
#: src/bin/ui.c:1820
msgid "State"
msgstr ""
#: src/bin/ui.c:2108
msgid "State:"
msgstr ""
#: src/bin/ui.c:1613 src/bin/ui.c:2153
msgid "Stop"
msgstr ""
#: src/bin/ui.c:2709
msgid "Storage"
msgstr ""
#: src/bin/ui.c:2472
msgid "Swapped"
msgstr ""
#: src/bin/ui.c:1703
msgid "System CPU"
msgstr ""
#: src/bin/ui.c:1718
msgid "System Memory"
msgstr ""
#: src/bin/ui.c:2018
msgid "Threads:"
msgstr ""
#: src/bin/ui.c:1760
msgid "UID"
msgstr ""
#: src/bin/ui.c:1984
msgid "UID:"
msgstr ""
#: src/bin/ui.c:2429
msgid "Used"
msgstr ""
#: src/bin/ui.c:1969
msgid "Username:"
msgstr ""
#: src/bin/ui.c:2000
msgid "WQ #:"
msgstr ""

237
po/fr.po Normal file
View File

@ -0,0 +1,237 @@
# French translations for PACKAGE package.
# Copyright (C) 2020 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Alastair Poole <netstar@gmail.com>, 2020.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-04-23 12:26+0100\n"
"PO-Revision-Date: 2020-04-23 12:27+0100\n"
"Last-Translator: Alastair Poole <netstar@gmail.com>\n"
"Language-Team: French <traduc@traduc.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: src/bin/ui.c:2048
msgid " Shared memory:"
msgstr ""
#: src/bin/ui.c:2033
msgid " Total memory :"
msgstr ""
#: src/bin/ui.c:2063
msgid " Virtual memory:"
msgstr ""
#: src/bin/ui.c:180
msgid "(plugged in)"
msgstr ""
#: src/bin/ui.c:233
msgid "<bigger>Network Incoming</bigger>"
msgstr ""
#: src/bin/ui.c:235
msgid "<bigger>Network Outgoing</bigger>"
msgstr ""
#: src/bin/ui.c:479
#, c-format
msgid "<header>Core at (%d °C)</header>"
msgstr ""
#: src/bin/ui.c:346
#, c-format
msgid ""
"<subtitle>%s</subtitle><br><bigger>mounted at %s</bigger><br>%1.1f%c of %1.1f"
"%c"
msgstr ""
#: src/bin/ui.c:2317
#, c-format
msgid "<subtitle>CPUs</subtitle><br><bigger>Total of %d CPUs</bigger>"
msgstr ""
#: src/bin/ui.c:2412
msgid "<subtitle>Memory</subtitle>"
msgstr ""
#: src/bin/ui.c:416
#, c-format
msgid ""
"<subtitle>Memory</subtitle><br><bigger>Physical %s</bigger><br><br>Swap %s"
msgstr ""
#: src/bin/ui.c:2451
msgid "Buffered"
msgstr ""
#: src/bin/ui.c:2677
msgid "CPU"
msgstr ""
#: src/bin/ui.c:2002
msgid "CPU #:"
msgstr ""
#: src/bin/ui.c:1835
msgid "CPU %"
msgstr ""
#: src/bin/ui.c:2123
msgid "CPU %:"
msgstr ""
#: src/bin/ui.c:2440
msgid "Cached"
msgstr ""
#: src/bin/ui.c:1617
msgid "Cancel"
msgstr ""
#: src/bin/ui.c:2777
msgid "Close"
msgstr ""
#: src/bin/ui.c:1805
msgid "Command"
msgstr ""
#: src/bin/ui.c:1939
msgid "Command line:"
msgstr ""
#: src/bin/ui.c:1924
msgid "Command:"
msgstr ""
#: src/bin/ui.c:1586
msgid "Decrease"
msgstr ""
#: src/bin/main.c:32
msgid "Evisum: System Monitor"
msgstr ""
#: src/bin/ui.c:1585
msgid "Increase"
msgstr ""
#: src/bin/ui.c:2183
msgid "Kill"
msgstr ""
#: src/bin/ui.c:2693
msgid "Memory"
msgstr ""
#: src/bin/ui.c:2725
msgid "Misc"
msgstr ""
#: src/bin/ui.c:2078
msgid "Nice:"
msgstr ""
#: src/bin/ui.c:2640
msgid "Options"
msgstr ""
#: src/bin/ui.c:1745
msgid "PID"
msgstr ""
#: src/bin/ui.c:1954
msgid "PID:"
msgstr ""
#: src/bin/ui.c:1607
msgid "Priority"
msgstr ""
#: src/bin/ui.c:2093
msgid "Priority:"
msgstr ""
#: src/bin/ui.c:1905
msgid "Process Statistics"
msgstr ""
#: src/bin/ui.c:2661
msgid "Processes"
msgstr ""
#: src/bin/ui.c:1790
msgid "Res"
msgstr ""
#: src/bin/ui.c:2462
msgid "Shared"
msgstr ""
#: src/bin/ui.c:1775
msgid "Size"
msgstr ""
#: src/bin/ui.c:1611 src/bin/ui.c:2168
msgid "Start"
msgstr ""
#: src/bin/ui.c:1820
msgid "State"
msgstr ""
#: src/bin/ui.c:2108
msgid "State:"
msgstr ""
#: src/bin/ui.c:1613 src/bin/ui.c:2153
msgid "Stop"
msgstr ""
#: src/bin/ui.c:2709
msgid "Storage"
msgstr ""
#: src/bin/ui.c:2472
msgid "Swapped"
msgstr ""
#: src/bin/ui.c:1703
msgid "System CPU"
msgstr ""
#: src/bin/ui.c:1718
msgid "System Memory"
msgstr ""
#: src/bin/ui.c:2018
msgid "Threads:"
msgstr ""
#: src/bin/ui.c:1760
msgid "UID"
msgstr ""
#: src/bin/ui.c:1984
msgid "UID:"
msgstr ""
#: src/bin/ui.c:2429
msgid "Used"
msgstr ""
#: src/bin/ui.c:1969
msgid "Username:"
msgstr ""
#: src/bin/ui.c:2000
msgid "WQ #:"
msgstr ""

5
po/meson.build Normal file
View File

@ -0,0 +1,5 @@
i18n = import('i18n')
i18n.gettext('evisum')
cfg.set('ENABLE_NLS', 1)
cfg.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir')))

280
src/bin/gettext.h Normal file
View File

@ -0,0 +1,280 @@
/* Convenience header for conditional use of GNU <libintl.h>.
Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 3, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */
#ifndef _LIBGETTEXT_H
#define _LIBGETTEXT_H 1
/* NLS can be disabled through the configure --disable-nls option. */
#if ENABLE_NLS
/* Get declarations of GNU message catalog functions. */
# include <libintl.h>
/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by
the gettext() and ngettext() macros. This is an alternative to calling
textdomain(), and is useful for libraries. */
# ifdef DEFAULT_TEXT_DOMAIN
# undef gettext
# define gettext(Msgid) \
dgettext (DEFAULT_TEXT_DOMAIN, Msgid)
# undef ngettext
# define ngettext(Msgid1, Msgid2, N) \
dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N)
# endif
#else
/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
chokes if dcgettext is defined as a macro. So include it now, to make
later inclusions of <locale.h> a NOP. We don't include <libintl.h>
as well because people using "gettext.h" will not include <libintl.h>,
and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
is OK. */
#if defined(__sun)
# include <locale.h>
#endif
/* Many header files from the libstdc++ coming with g++ 3.3 or newer include
<libintl.h>, which chokes if dcgettext is defined as a macro. So include
it now, to make later inclusions of <libintl.h> a NOP. */
#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
# include <cstdlib>
# if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H
# include <libintl.h>
# endif
#endif
/* Disabled NLS.
The casts to 'const char *' serve the purpose of producing warnings
for invalid uses of the value returned from these functions.
On pre-ANSI systems without 'const', the config.h file is supposed to
contain "#define const". */
# undef gettext
# define gettext(Msgid) ((const char *) (Msgid))
# undef dgettext
# define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid))
# undef dcgettext
# define dcgettext(Domainname, Msgid, Category) \
((void) (Category), dgettext (Domainname, Msgid))
# undef ngettext
# define ngettext(Msgid1, Msgid2, N) \
((N) == 1 \
? ((void) (Msgid2), (const char *) (Msgid1)) \
: ((void) (Msgid1), (const char *) (Msgid2)))
# undef dngettext
# define dngettext(Domainname, Msgid1, Msgid2, N) \
((void) (Domainname), ngettext (Msgid1, Msgid2, N))
# undef dcngettext
# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
((void) (Category), dngettext(Domainname, Msgid1, Msgid2, N))
# undef textdomain
# define textdomain(Domainname) ((const char *) (Domainname))
# undef bindtextdomain
# define bindtextdomain(Domainname, Dirname) \
((void) (Domainname), (const char *) (Dirname))
# undef bind_textdomain_codeset
# define bind_textdomain_codeset(Domainname, Codeset) \
((void) (Domainname), (const char *) (Codeset))
#endif
/* A pseudo function call that serves as a marker for the automated
extraction of messages, but does not call gettext(). The run-time
translation is done at a different place in the code.
The argument, String, should be a literal string. Concatenated strings
and other string expressions won't work.
The macro's expansion is not parenthesized, so that it is suitable as
initializer for static 'char[]' or 'const char[]' variables. */
#define gettext_noop(String) String
/* The separator between msgctxt and msgid in a .mo file. */
#define GETTEXT_CONTEXT_GLUE "\004"
/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a
MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be
short and rarely need to change.
The letter 'p' stands for 'particular' or 'special'. */
#ifdef DEFAULT_TEXT_DOMAIN
# define pgettext(Msgctxt, Msgid) \
pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
#else
# define pgettext(Msgctxt, Msgid) \
pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
#endif
#define dpgettext(Domainname, Msgctxt, Msgid) \
pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \
pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category)
#ifdef DEFAULT_TEXT_DOMAIN
# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
#else
# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
#endif
#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \
npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category)
#ifdef __GNUC__
__inline
#else
#ifdef __cplusplus
inline
#endif
#endif
static const char *
pgettext_aux (const char *domain,
const char *msg_ctxt_id, const char *msgid,
int category)
{
const char *translation = dcgettext (domain, msg_ctxt_id, category);
if (translation == msg_ctxt_id)
return msgid;
else
return translation;
}
#ifdef __GNUC__
__inline
#else
#ifdef __cplusplus
inline
#endif
#endif
static const char *
npgettext_aux (const char *domain,
const char *msg_ctxt_id, const char *msgid,
const char *msgid_plural, unsigned long int n,
int category)
{
const char *translation =
dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
if (translation == msg_ctxt_id || translation == msgid_plural)
return (n == 1 ? msgid : msgid_plural);
else
return translation;
}
/* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID
can be arbitrary expressions. But for string literals these macros are
less efficient than those above. */
#include <string.h>
#define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \
(((__GNUC__ >= 3 || __GNUG__ >= 2) && !__STRICT_ANSI__) \
/* || __STDC_VERSION__ >= 199901L */ )
#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
#include <stdlib.h>
#endif
#define pgettext_expr(Msgctxt, Msgid) \
dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES)
#define dpgettext_expr(Domainname, Msgctxt, Msgid) \
dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES)
#ifdef __GNUC__
__inline
#else
#ifdef __cplusplus
inline
#endif
#endif
static const char *
dcpgettext_expr (const char *domain,
const char *msgctxt, const char *msgid,
int category)
{
size_t msgctxt_len = strlen (msgctxt) + 1;
size_t msgid_len = strlen (msgid) + 1;
const char *translation;
#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
char msg_ctxt_id[msgctxt_len + msgid_len];
#else
char buf[1024];
char *msg_ctxt_id =
(msgctxt_len + msgid_len <= sizeof (buf)
? buf
: (char *) malloc (msgctxt_len + msgid_len));
if (msg_ctxt_id != NULL)
#endif
{
memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
msg_ctxt_id[msgctxt_len - 1] = '\004';
memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
translation = dcgettext (domain, msg_ctxt_id, category);
#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
if (msg_ctxt_id != buf)
free (msg_ctxt_id);
#endif
if (translation != msg_ctxt_id)
return translation;
}
return msgid;
}
#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \
dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
#ifdef __GNUC__
__inline
#else
#ifdef __cplusplus
inline
#endif
#endif
static const char *
dcnpgettext_expr (const char *domain,
const char *msgctxt, const char *msgid,
const char *msgid_plural, unsigned long int n,
int category)
{
size_t msgctxt_len = strlen (msgctxt) + 1;
size_t msgid_len = strlen (msgid) + 1;
const char *translation;
#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
char msg_ctxt_id[msgctxt_len + msgid_len];
#else
char buf[1024];
char *msg_ctxt_id =
(msgctxt_len + msgid_len <= sizeof (buf)
? buf
: (char *) malloc (msgctxt_len + msgid_len));
if (msg_ctxt_id != NULL)
#endif
{
memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
msg_ctxt_id[msgctxt_len - 1] = '\004';
memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
if (msg_ctxt_id != buf)
free (msg_ctxt_id);
#endif
if (!(translation == msg_ctxt_id || translation == msgid_plural))
return translation;
}
return (n == 1 ? msgid : msgid_plural);
}
#endif /* _LIBGETTEXT_H */

View File

@ -7,6 +7,7 @@
*/ */
#include "config.h" #include "config.h"
#include "gettext.h"
#include "configuration.h" #include "configuration.h"
#include "ui.h" #include "ui.h"
@ -28,7 +29,7 @@ _win_add(void)
elm_icon_standard_set(icon, "evisum"); elm_icon_standard_set(icon, "evisum");
elm_win_icon_object_set(win, icon); elm_win_icon_object_set(win, icon);
evas_object_resize(win, EVISUM_SIZE_WIDTH * elm_config_scale_get(), EVISUM_SIZE_HEIGHT * elm_config_scale_get()); evas_object_resize(win, EVISUM_SIZE_WIDTH * elm_config_scale_get(), EVISUM_SIZE_HEIGHT * elm_config_scale_get());
elm_win_title_set(win, "Evisum: System Monitor"); elm_win_title_set(win, _("Evisum: System Monitor"));
elm_win_center(win, EINA_TRUE, EINA_TRUE); elm_win_center(win, EINA_TRUE, EINA_TRUE);
ui = ui_add(win); ui = ui_add(win);
@ -51,6 +52,13 @@ main(int argc, char **argv)
config_init(); config_init();
elm_init(argc, argv); elm_init(argc, argv);
#if ENABLE_NLS
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
bind_textdomain_codeset(PACKAGE, "UTF-8");
textdomain(PACKAGE);
#endif
ui = _win_add(); ui = _win_add();
if (ui) if (ui)
{ {

View File

@ -1,6 +1,7 @@
inc = include_directories('.', '../..') inc = include_directories('.', '../..')
executable('evisum', [ executable('evisum', [
'main.c',
'configuration.c', 'configuration.c',
'configuration.h', 'configuration.h',
'disks.c', 'disks.c',
@ -11,10 +12,10 @@ executable('evisum', [
'system.h', 'system.h',
'ui.c', 'ui.c',
'ui.h', 'ui.h',
'main.c' 'gettext.h',
], ],
include_directories : inc, include_directories : inc,
dependencies : [ deps, deps_os ], dependencies : [ deps, deps_os, deps_nls ],
gui_app : true, gui_app : true,
install : true) install : true)

View File

@ -177,7 +177,7 @@ _battery_usage_add(Evas_Object *box, power_t *power)
eina_strbuf_append_printf(buf, "<bigger>%s ", power->battery_names[i]); eina_strbuf_append_printf(buf, "<bigger>%s ", power->battery_names[i]);
if (power->have_ac && i == 0) if (power->have_ac && i == 0)
{ {
eina_strbuf_append(buf, "(plugged in)"); eina_strbuf_append(buf, _("(plugged in)"));
} }
eina_strbuf_append(buf, "</bigger>"); eina_strbuf_append(buf, "</bigger>");
elm_object_text_set(label, eina_strbuf_string_get(buf)); elm_object_text_set(label, eina_strbuf_string_get(buf));
@ -230,9 +230,9 @@ _network_usage_add(Ui *ui, Evas_Object *box, uint64_t bytes, Eina_Bool incoming)
label = elm_label_add(box); label = elm_label_add(box);
if (incoming) if (incoming)
elm_object_text_set(label, "<bigger>Network Incoming</bigger>"); elm_object_text_set(label, _("<bigger>Network Incoming</bigger>"));
else else
elm_object_text_set(label, "<bigger>Network Outgoing</bigger>"); elm_object_text_set(label, _("<bigger>Network Outgoing</bigger>"));
evas_object_size_hint_align_set(label, 1.0, EVAS_HINT_FILL); evas_object_size_hint_align_set(label, 1.0, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@ -343,7 +343,7 @@ _ui_disk_add(Ui *ui, const char *path, const char *mount, unsigned long total, u
label = elm_label_add(box); label = elm_label_add(box);
evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_object_text_set(label, eina_slstr_printf("<subtitle>%s</subtitle><br><bigger>mounted at %s</bigger><br>%1.1f%c of %1.1f%c", path, mount, elm_object_text_set(label, eina_slstr_printf(_("<subtitle>%s</subtitle><br><bigger>mounted at %s</bigger><br>%1.1f%c of %1.1f%c"), path, mount,
_disk_adjust(ui->data_unit, used), ui->data_unit, _disk_adjust(ui->data_unit, total), ui->data_unit)); _disk_adjust(ui->data_unit, used), ui->data_unit, _disk_adjust(ui->data_unit, total), ui->data_unit));
evas_object_show(label); evas_object_show(label);
elm_box_pack_end(box, label); elm_box_pack_end(box, label);
@ -413,9 +413,9 @@ _tab_memory_update(Ui *ui, results_t *results)
return; return;
elm_object_text_set(ui->title_mem, eina_slstr_printf( elm_object_text_set(ui->title_mem, eina_slstr_printf(
"<subtitle>Memory</subtitle><br>" \ _("<subtitle>Memory</subtitle><br>" \
"<bigger>Physical %s</bigger><br><br>" \ "<bigger>Physical %s</bigger><br><br>" \
"Swap %s", "Swap %s"),
_mem_format(ui->data_unit, results->memory.total), _mem_format(ui->data_unit, results->memory.total),
_mem_format(ui->data_unit, results->memory.swap_total))); _mem_format(ui->data_unit, results->memory.swap_total)));
@ -476,7 +476,7 @@ _tab_cpu_update(Ui *ui, results_t *results)
return; return;
if (results->temperature != INVALID_TEMP) if (results->temperature != INVALID_TEMP)
elm_object_text_set(ui->temp_label, eina_slstr_printf("<header>Core at (%d °C)</header>", results->temperature)); elm_object_text_set(ui->temp_label, eina_slstr_printf(_("<header>Core at (%d °C)</header>"), results->temperature));
EINA_LIST_FOREACH(ui->cpu_list, l, pb) EINA_LIST_FOREACH(ui->cpu_list, l, pb)
{ {
@ -1582,8 +1582,8 @@ _item_menu_priority_add(Evas_Object *menu, Elm_Object_Item *menu_it, Proc_Info *
it = elm_menu_item_add(menu, menu_it, _icon_path_get("window"), eina_slstr_printf("%d", proc->nice), NULL, NULL); it = elm_menu_item_add(menu, menu_it, _icon_path_get("window"), eina_slstr_printf("%d", proc->nice), NULL, NULL);
elm_menu_item_separator_add(menu, menu_it); elm_menu_item_separator_add(menu, menu_it);
elm_menu_item_add(menu, menu_it, _icon_path_get("increase"), "Increase", _item_menu_priority_increase_cb, proc); elm_menu_item_add(menu, menu_it, _icon_path_get("increase"), _("Increase"), _item_menu_priority_increase_cb, proc);
elm_menu_item_add(menu, menu_it, _icon_path_get("decrease"), "Decrease", _item_menu_priority_decrease_cb, proc); elm_menu_item_add(menu, menu_it, _icon_path_get("decrease"), _("Decrease"), _item_menu_priority_decrease_cb, proc);
elm_object_item_disabled_set(it, EINA_TRUE); elm_object_item_disabled_set(it, EINA_TRUE);
} }
@ -1604,17 +1604,17 @@ _item_menu_create(Ui *ui, Proc_Info *proc)
menu_it = elm_menu_item_add(menu, NULL, _icon_path_get("window"), proc->command, NULL, NULL); menu_it = elm_menu_item_add(menu, NULL, _icon_path_get("window"), proc->command, NULL, NULL);
menu_it2 = elm_menu_item_add(menu, menu_it, _icon_path_get("window"), "Priority", NULL, NULL); menu_it2 = elm_menu_item_add(menu, menu_it, _icon_path_get("window"), _("Priority"), NULL, NULL);
_item_menu_priority_add(menu, menu_it2, proc); _item_menu_priority_add(menu, menu_it2, proc);
elm_menu_item_separator_add(menu, menu_it); elm_menu_item_separator_add(menu, menu_it);
menu_it2 = elm_menu_item_add(menu, menu_it, _icon_path_get("start"), "Start", _item_menu_start_cb, proc); menu_it2 = elm_menu_item_add(menu, menu_it, _icon_path_get("start"), _("Start"), _item_menu_start_cb, proc);
if (stopped) elm_object_item_disabled_set(menu_it2, EINA_TRUE); if (stopped) elm_object_item_disabled_set(menu_it2, EINA_TRUE);
menu_it2 = elm_menu_item_add(menu, menu_it, _icon_path_get("stop"), "Stop", _item_menu_stop_cb, proc); menu_it2 = elm_menu_item_add(menu, menu_it, _icon_path_get("stop"), _("Stop"), _item_menu_stop_cb, proc);
if (!stopped) elm_object_item_disabled_set(menu_it2, EINA_TRUE); if (!stopped) elm_object_item_disabled_set(menu_it2, EINA_TRUE);
elm_menu_item_add(menu, menu_it, _icon_path_get("kill"), "Kill", _item_menu_kill_cb, proc); elm_menu_item_add(menu, menu_it, _icon_path_get("kill"), "Kill", _item_menu_kill_cb, proc);
elm_menu_item_separator_add(menu, menu_it); elm_menu_item_separator_add(menu, menu_it);
elm_menu_item_add(menu, menu_it, _icon_path_get("cancel"), "Cancel", _item_menu_cancel_cb, ui); elm_menu_item_add(menu, menu_it, _icon_path_get("cancel"), _("Cancel"), _item_menu_cancel_cb, ui);
return menu; return menu;
} }
@ -1700,7 +1700,7 @@ _ui_tab_system_add(Ui *ui)
frame = elm_frame_add(hbox); frame = elm_frame_add(hbox);
evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(frame, "System CPU"); elm_object_text_set(frame, _("System CPU"));
evas_object_show(frame); evas_object_show(frame);
elm_box_pack_end(hbox, frame); elm_box_pack_end(hbox, frame);
@ -1715,7 +1715,7 @@ _ui_tab_system_add(Ui *ui)
frame = elm_frame_add(hbox); frame = elm_frame_add(hbox);
evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(frame, "System Memory"); elm_object_text_set(frame, _("System Memory"));
evas_object_show(frame); evas_object_show(frame);
elm_box_pack_end(hbox, frame); elm_box_pack_end(hbox, frame);
@ -1742,7 +1742,7 @@ _ui_tab_system_add(Ui *ui)
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "PID"); elm_object_text_set(button, _("PID"));
evas_object_show(button); evas_object_show(button);
elm_table_pack(table, button, 0, 0, 1, 1); elm_table_pack(table, button, 0, 0, 1, 1);
@ -1757,7 +1757,7 @@ _ui_tab_system_add(Ui *ui)
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "UID"); elm_object_text_set(button, _("UID"));
evas_object_show(button); evas_object_show(button);
elm_table_pack(table, button, 1, 0, 1, 1); elm_table_pack(table, button, 1, 0, 1, 1);
@ -1772,7 +1772,7 @@ _ui_tab_system_add(Ui *ui)
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "Size"); elm_object_text_set(button, _("Size"));
evas_object_show(button); evas_object_show(button);
elm_table_pack(table, button, 2, 0, 1, 1); elm_table_pack(table, button, 2, 0, 1, 1);
@ -1787,7 +1787,7 @@ _ui_tab_system_add(Ui *ui)
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "Res"); elm_object_text_set(button, _("Res"));
evas_object_show(button); evas_object_show(button);
elm_table_pack(table, button, 3, 0, 1, 1); elm_table_pack(table, button, 3, 0, 1, 1);
@ -1802,7 +1802,7 @@ _ui_tab_system_add(Ui *ui)
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "Command"); elm_object_text_set(button, _("Command"));
evas_object_show(button); evas_object_show(button);
elm_table_pack(table, button, 4, 0, 1, 1); elm_table_pack(table, button, 4, 0, 1, 1);
@ -1817,7 +1817,7 @@ _ui_tab_system_add(Ui *ui)
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "State"); elm_object_text_set(button, _("State"));
evas_object_show(button); evas_object_show(button);
elm_table_pack(table, button, 5, 0, 1, 1); elm_table_pack(table, button, 5, 0, 1, 1);
@ -1832,7 +1832,7 @@ _ui_tab_system_add(Ui *ui)
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "CPU %"); elm_object_text_set(button, _("CPU %"));
evas_object_show(button); evas_object_show(button);
elm_table_pack(table, button, 6, 0, 1, 1); elm_table_pack(table, button, 6, 0, 1, 1);
@ -1902,7 +1902,7 @@ _ui_process_panel_add(Ui *ui)
frame = elm_frame_add(hbox); frame = elm_frame_add(hbox);
evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(frame, "Process Statistics"); elm_object_text_set(frame, _("Process Statistics"));
elm_box_pack_end(hbox, frame); elm_box_pack_end(hbox, frame);
evas_object_show(frame); evas_object_show(frame);
@ -1921,7 +1921,7 @@ _ui_process_panel_add(Ui *ui)
elm_box_pack_end(hbox, frame); elm_box_pack_end(hbox, frame);
label = elm_label_add(parent); label = elm_label_add(parent);
elm_object_text_set(label, "Command:"); elm_object_text_set(label, _("Command:"));
evas_object_show(label); evas_object_show(label);
elm_table_pack(table, label, 0, i, 1, 1); elm_table_pack(table, label, 0, i, 1, 1);
@ -1936,7 +1936,7 @@ _ui_process_panel_add(Ui *ui)
elm_table_pack(table, entry, 1, i++, 1, 1); elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent); label = elm_label_add(parent);
elm_object_text_set(label, "Command line:"); elm_object_text_set(label, _("Command line:"));
evas_object_show(label); evas_object_show(label);
elm_table_pack(table, label, 0, i, 1, 1); elm_table_pack(table, label, 0, i, 1, 1);
@ -1951,7 +1951,7 @@ _ui_process_panel_add(Ui *ui)
elm_table_pack(table, entry, 1, i++, 1, 1); elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent); label = elm_label_add(parent);
elm_object_text_set(label, "PID:"); elm_object_text_set(label, _("PID:"));
evas_object_show(label); evas_object_show(label);
elm_table_pack(table, label, 0, i, 1, 1); elm_table_pack(table, label, 0, i, 1, 1);
@ -1966,7 +1966,7 @@ _ui_process_panel_add(Ui *ui)
elm_table_pack(table, entry, 1, i++, 1, 1); elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent); label = elm_label_add(parent);
elm_object_text_set(label, "Username:"); elm_object_text_set(label, _("Username:"));
evas_object_show(label); evas_object_show(label);
elm_table_pack(table, label, 0, i, 1, 1); elm_table_pack(table, label, 0, i, 1, 1);
@ -1981,7 +1981,7 @@ _ui_process_panel_add(Ui *ui)
elm_table_pack(table, entry, 1, i++, 1, 1); elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent); label = elm_label_add(parent);
elm_object_text_set(label, "UID:"); elm_object_text_set(label, _("UID:"));
evas_object_show(label); evas_object_show(label);
elm_table_pack(table, label, 0, i, 1, 1); elm_table_pack(table, label, 0, i, 1, 1);
@ -1997,9 +1997,9 @@ _ui_process_panel_add(Ui *ui)
label = elm_label_add(parent); label = elm_label_add(parent);
#if defined(__MacOS__) #if defined(__MacOS__)
elm_object_text_set(label, "WQ #:"); elm_object_text_set(label, _("WQ #:"));
#else #else
elm_object_text_set(label, "CPU #:"); elm_object_text_set(label, _("CPU #:"));
#endif #endif
evas_object_show(label); evas_object_show(label);
elm_table_pack(table, label, 0, i, 1, 1); elm_table_pack(table, label, 0, i, 1, 1);
@ -2015,7 +2015,7 @@ _ui_process_panel_add(Ui *ui)
elm_table_pack(table, entry, 1, i++, 1, 1); elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent); label = elm_label_add(parent);
elm_object_text_set(label, "Threads:"); elm_object_text_set(label, _("Threads:"));
evas_object_show(label); evas_object_show(label);
elm_table_pack(table, label, 0, i, 1, 1); elm_table_pack(table, label, 0, i, 1, 1);
@ -2030,7 +2030,7 @@ _ui_process_panel_add(Ui *ui)
elm_table_pack(table, entry, 1, i++, 1, 1); elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent); label = elm_label_add(parent);
elm_object_text_set(label, " Total memory :"); elm_object_text_set(label, _(" Total memory :"));
evas_object_show(label); evas_object_show(label);
elm_table_pack(table, label, 0, i, 1, 1); elm_table_pack(table, label, 0, i, 1, 1);
@ -2045,7 +2045,7 @@ _ui_process_panel_add(Ui *ui)
elm_table_pack(table, entry, 1, i++, 1, 1); elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent); label = elm_label_add(parent);
elm_object_text_set(label, " Shared memory:"); elm_object_text_set(label, _(" Shared memory:"));
evas_object_show(label); evas_object_show(label);
elm_table_pack(table, label, 0, i, 1, 1); elm_table_pack(table, label, 0, i, 1, 1);
@ -2060,7 +2060,7 @@ _ui_process_panel_add(Ui *ui)
elm_table_pack(table, entry, 1, i++, 1, 1); elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent); label = elm_label_add(parent);
elm_object_text_set(label, " Virtual memory:"); elm_object_text_set(label, _(" Virtual memory:"));
evas_object_show(label); evas_object_show(label);
elm_table_pack(table, label, 0, i, 1, 1); elm_table_pack(table, label, 0, i, 1, 1);
@ -2075,7 +2075,7 @@ _ui_process_panel_add(Ui *ui)
elm_table_pack(table, entry, 1, i++, 1, 1); elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent); label = elm_label_add(parent);
elm_object_text_set(label, "Nice:"); elm_object_text_set(label, _("Nice:"));
evas_object_show(label); evas_object_show(label);
elm_table_pack(table, label, 0, i, 1, 1); elm_table_pack(table, label, 0, i, 1, 1);
@ -2090,7 +2090,7 @@ _ui_process_panel_add(Ui *ui)
elm_table_pack(table, entry, 1, i++, 1, 1); elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent); label = elm_label_add(parent);
elm_object_text_set(label, "Priority:"); elm_object_text_set(label, _("Priority:"));
evas_object_show(label); evas_object_show(label);
elm_table_pack(table, label, 0, i, 1, 1); elm_table_pack(table, label, 0, i, 1, 1);
@ -2105,7 +2105,7 @@ _ui_process_panel_add(Ui *ui)
elm_table_pack(table, entry, 1, i++, 1, 1); elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent); label = elm_label_add(parent);
elm_object_text_set(label, "State:"); elm_object_text_set(label, _("State:"));
evas_object_show(label); evas_object_show(label);
elm_table_pack(table, label, 0, i, 1, 1); elm_table_pack(table, label, 0, i, 1, 1);
@ -2120,7 +2120,7 @@ _ui_process_panel_add(Ui *ui)
elm_table_pack(table, entry, 1, i++, 1, 1); elm_table_pack(table, entry, 1, i++, 1, 1);
label = elm_label_add(parent); label = elm_label_add(parent);
elm_object_text_set(label, "CPU %:"); elm_object_text_set(label, _("CPU %:"));
evas_object_show(label); evas_object_show(label);
elm_table_pack(table, label, 0, i, 1, 1); elm_table_pack(table, label, 0, i, 1, 1);
@ -2150,7 +2150,7 @@ _ui_process_panel_add(Ui *ui)
button = elm_button_add(parent); button = elm_button_add(parent);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, 0); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0.5); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0.5);
elm_object_text_set(button, "Stop"); elm_object_text_set(button, _("Stop"));
evas_object_show(button); evas_object_show(button);
evas_object_smart_callback_add(button, "clicked", _btn_stop_clicked_cb, ui); evas_object_smart_callback_add(button, "clicked", _btn_stop_clicked_cb, ui);
elm_object_content_set(border, button); elm_object_content_set(border, button);
@ -2165,7 +2165,7 @@ _ui_process_panel_add(Ui *ui)
button = elm_button_add(parent); button = elm_button_add(parent);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, 0); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0.5); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0.5);
elm_object_text_set(button, "Start"); elm_object_text_set(button, _("Start"));
elm_object_content_set(border, button); elm_object_content_set(border, button);
evas_object_show(button); evas_object_show(button);
elm_box_pack_end(hbox, border); elm_box_pack_end(hbox, border);
@ -2180,7 +2180,7 @@ _ui_process_panel_add(Ui *ui)
button = elm_button_add(parent); button = elm_button_add(parent);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, 0); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0.5); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0.5);
elm_object_text_set(button, "Kill"); elm_object_text_set(button, _("Kill"));
elm_box_pack_end(hbox, border); elm_box_pack_end(hbox, border);
evas_object_show(button); evas_object_show(button);
elm_object_content_set(border, button); elm_object_content_set(border, button);
@ -2314,7 +2314,7 @@ _ui_tab_cpu_add(Ui *ui)
label = elm_label_add(box); label = elm_label_add(box);
evas_object_size_hint_align_set(label, EVAS_HINT_FILL, 0); evas_object_size_hint_align_set(label, EVAS_HINT_FILL, 0);
evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_object_text_set(label, eina_slstr_printf("<subtitle>CPUs</subtitle><br><bigger>Total of %d CPUs</bigger>", cpu_count)); elm_object_text_set(label, eina_slstr_printf(_("<subtitle>CPUs</subtitle><br><bigger>Total of %d CPUs</bigger>"), cpu_count));
evas_object_show(label); evas_object_show(label);
elm_box_pack_end(box, label); elm_box_pack_end(box, label);
@ -2409,7 +2409,7 @@ _ui_tab_memory_add(Ui *ui)
ui->title_mem = label = elm_label_add(parent); ui->title_mem = label = elm_label_add(parent);
evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(label, "<subtitle>Memory</subtitle>"); elm_object_text_set(label, _("<subtitle>Memory</subtitle>"));
evas_object_show(label); evas_object_show(label);
elm_box_pack_end(box, label); elm_box_pack_end(box, label);
@ -2426,7 +2426,7 @@ _ui_tab_memory_add(Ui *ui)
elm_table_padding_set(table, 0, 20 * elm_config_scale_get()); elm_table_padding_set(table, 0, 20 * elm_config_scale_get());
evas_object_show(table); evas_object_show(table);
label = _label_mem(box, "Used"); label = _label_mem(box, _("Used"));
ui->progress_mem_used = progress = elm_progressbar_add(table); ui->progress_mem_used = progress = elm_progressbar_add(table);
evas_object_size_hint_align_set(progress, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(progress, EVAS_HINT_FILL, EVAS_HINT_FILL);
@ -2437,7 +2437,7 @@ _ui_tab_memory_add(Ui *ui)
elm_table_pack(table, label, 0, 0, 1, 1); elm_table_pack(table, label, 0, 0, 1, 1);
elm_table_pack(table, progress, 1, 0, 1, 1); elm_table_pack(table, progress, 1, 0, 1, 1);
label = _label_mem(box, "Cached"); label = _label_mem(box, _("Cached"));
ui->progress_mem_cached = progress = elm_progressbar_add(frame); ui->progress_mem_cached = progress = elm_progressbar_add(frame);
evas_object_size_hint_align_set(progress, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(progress, EVAS_HINT_FILL, EVAS_HINT_FILL);
@ -2448,7 +2448,7 @@ _ui_tab_memory_add(Ui *ui)
elm_table_pack(table, label, 0, 1, 1, 1); elm_table_pack(table, label, 0, 1, 1, 1);
elm_table_pack(table, progress, 1, 1, 1, 1); elm_table_pack(table, progress, 1, 1, 1, 1);
label = _label_mem(box, "Buffered"); label = _label_mem(box, _("Buffered"));
ui->progress_mem_buffered = progress = elm_progressbar_add(frame); ui->progress_mem_buffered = progress = elm_progressbar_add(frame);
evas_object_size_hint_align_set(progress, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(progress, EVAS_HINT_FILL, EVAS_HINT_FILL);
@ -2459,7 +2459,7 @@ _ui_tab_memory_add(Ui *ui)
elm_table_pack(table, label, 0, 2, 1, 1); elm_table_pack(table, label, 0, 2, 1, 1);
elm_table_pack(table, progress, 1, 2, 1, 1); elm_table_pack(table, progress, 1, 2, 1, 1);
label = _label_mem(box, "Shared"); label = _label_mem(box, _("Shared"));
ui->progress_mem_shared = progress = elm_progressbar_add(frame); ui->progress_mem_shared = progress = elm_progressbar_add(frame);
evas_object_size_hint_align_set(progress, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(progress, EVAS_HINT_FILL, EVAS_HINT_FILL);
@ -2469,7 +2469,7 @@ _ui_tab_memory_add(Ui *ui)
elm_table_pack(table, label, 0, 3, 1, 1); elm_table_pack(table, label, 0, 3, 1, 1);
elm_table_pack(table, progress, 1, 3, 1, 1); elm_table_pack(table, progress, 1, 3, 1, 1);
label = _label_mem(box, "Swapped"); label = _label_mem(box, _("Swapped"));
ui->progress_mem_swap = progress = elm_progressbar_add(frame); ui->progress_mem_swap = progress = elm_progressbar_add(frame);
evas_object_size_hint_align_set(progress, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(progress, EVAS_HINT_FILL, EVAS_HINT_FILL);
@ -2637,7 +2637,7 @@ _ui_tabs_add(Evas_Object *parent, Ui *ui)
frame = elm_frame_add(parent); frame = elm_frame_add(parent);
evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, 0); evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(frame, "Options"); elm_object_text_set(frame, _("Options"));
elm_object_style_set(frame, "pad_medium"); elm_object_style_set(frame, "pad_medium");
evas_object_show(frame); evas_object_show(frame);
@ -2658,7 +2658,7 @@ _ui_tabs_add(Evas_Object *parent, Ui *ui)
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_min_set(button, TAB_BTN_SIZE * elm_config_scale_get(), 0); evas_object_size_hint_min_set(button, TAB_BTN_SIZE * elm_config_scale_get(), 0);
elm_object_text_set(button, "Processes"); elm_object_text_set(button, _("Processes"));
evas_object_show(button); evas_object_show(button);
elm_object_content_set(border, button); elm_object_content_set(border, button);
elm_box_pack_end(hbox, border); elm_box_pack_end(hbox, border);
@ -2674,7 +2674,7 @@ _ui_tabs_add(Evas_Object *parent, Ui *ui)
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_min_set(button, TAB_BTN_SIZE * elm_config_scale_get(), 0); evas_object_size_hint_min_set(button, TAB_BTN_SIZE * elm_config_scale_get(), 0);
elm_object_text_set(button, "CPU"); elm_object_text_set(button, _("CPU"));
elm_object_content_set(border, button); elm_object_content_set(border, button);
evas_object_show(button); evas_object_show(button);
elm_box_pack_end(hbox, border); elm_box_pack_end(hbox, border);
@ -2690,7 +2690,7 @@ _ui_tabs_add(Evas_Object *parent, Ui *ui)
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_min_set(button, TAB_BTN_SIZE * elm_config_scale_get(), 0); evas_object_size_hint_min_set(button, TAB_BTN_SIZE * elm_config_scale_get(), 0);
elm_object_text_set(button, "Memory"); elm_object_text_set(button, _("Memory"));
evas_object_show(button); evas_object_show(button);
elm_object_content_set(border, button); elm_object_content_set(border, button);
elm_box_pack_end(hbox, border); elm_box_pack_end(hbox, border);
@ -2706,7 +2706,7 @@ _ui_tabs_add(Evas_Object *parent, Ui *ui)
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_min_set(button, TAB_BTN_SIZE * elm_config_scale_get(), 0); evas_object_size_hint_min_set(button, TAB_BTN_SIZE * elm_config_scale_get(), 0);
elm_object_text_set(button, "Storage"); elm_object_text_set(button, _("Storage"));
evas_object_show(button); evas_object_show(button);
elm_object_content_set(border, button); elm_object_content_set(border, button);
elm_box_pack_end(hbox, border); elm_box_pack_end(hbox, border);
@ -2722,7 +2722,7 @@ _ui_tabs_add(Evas_Object *parent, Ui *ui)
evas_object_size_hint_weight_set(button, EVAS_HINT_FILL, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(button, EVAS_HINT_FILL, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_min_set(button, TAB_BTN_SIZE * elm_config_scale_get(), 0); evas_object_size_hint_min_set(button, TAB_BTN_SIZE * elm_config_scale_get(), 0);
elm_object_text_set(button, "Misc"); elm_object_text_set(button, _("Misc"));
evas_object_show(button); evas_object_show(button);
elm_object_content_set(border, button); elm_object_content_set(border, button);
elm_box_pack_end(hbox, border); elm_box_pack_end(hbox, border);
@ -2774,7 +2774,7 @@ _ui_tabs_add(Evas_Object *parent, Ui *ui)
button = elm_button_add(parent); button = elm_button_add(parent);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(button, "Close"); elm_object_text_set(button, _("Close"));
elm_object_content_set(border, button); elm_object_content_set(border, button);
elm_box_pack_end(box, border); elm_box_pack_end(box, border);
evas_object_show(button); evas_object_show(button);

View File

@ -2,9 +2,12 @@
#define __UI_H__ #define __UI_H__
#include <Elementary.h> #include <Elementary.h>
#include "gettext.h"
#include "process.h" #include "process.h"
#include "configuration.h" #include "configuration.h"
#define _(STR) gettext(STR)
#define EVISUM_SIZE_WIDTH 640 #define EVISUM_SIZE_WIDTH 640
#define EVISUM_SIZE_HEIGHT 480 #define EVISUM_SIZE_HEIGHT 480