From 5aafe234442fa9cebe7202ef38ca213850eb5be8 Mon Sep 17 00:00:00 2001 From: Nikola Pajkovsky Date: Thu, 27 Aug 2009 14:34:12 +0200 Subject: CCApplet: gettext support --- src/Applet/Applet.cpp | 30 ++++++++++++++++++++++++++---- src/Applet/CCApplet.cpp | 38 ++++++++++++++++++++++++++++++-------- src/Applet/Makefile.am | 2 ++ 3 files changed, 58 insertions(+), 12 deletions(-) (limited to 'src/Applet') diff --git a/src/Applet/Applet.cpp b/src/Applet/Applet.cpp index 53f00436..0c2901ba 100644 --- a/src/Applet/Applet.cpp +++ b/src/Applet/Applet.cpp @@ -21,6 +21,21 @@ #include #include +#if HAVE_CONFIG_H + #include +#endif + +#if HAVE_LOCALE_H + #include +#endif + +#if ENABLE_NLS + #include + #define _(S) gettext(S) +#else + #define _(S) (S) +#endif + //@@global applet object CApplet *applet; @@ -31,12 +46,19 @@ crash_notify_cb(const char* progname) std::cerr << "Application " << progname << " has crashed!" << std::endl; #endif //applet->AddEvent(uid, std::string(progname)); - applet->SetIconTooltip("A crash in package %s has been detected!", progname); + applet->SetIconTooltip(_("A crash in package %s has been detected!"), progname); applet->ShowIcon(); } int main(int argc, char **argv) { + setlocale(LC_ALL,""); + +#if ENABLE_NLS + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); +#endif + /* need to be thread safe */ g_thread_init(NULL); gdk_threads_init(); @@ -55,7 +77,7 @@ int main(int argc, char **argv) if(session.has_name("com.redhat.abrt.applet")) { //applet is already running - std::cerr << "Applet is already running." << std::endl; + std::cerr << _("Applet is already running.") << std::endl; return -1; } else @@ -69,8 +91,8 @@ int main(int argc, char **argv) applet->ConnectCrashHandler(crash_notify_cb); if(!conn.has_name(CC_DBUS_NAME)) { - std::cout << "Daemon is not running" << std::endl; - applet->Disable("Daemon is not running"); + std::cout << _("Daemon is not running.") << std::endl; + applet->Disable(_("Daemon is not running.")); } gtk_main(); diff --git a/src/Applet/CCApplet.cpp b/src/Applet/CCApplet.cpp index 187cce35..c93bd8ac 100644 --- a/src/Applet/CCApplet.cpp +++ b/src/Applet/CCApplet.cpp @@ -24,6 +24,21 @@ #include #include + + +#if HAVE_CONFIG_H + #include +#endif + +#if ENABLE_NLS + #include + #define _(S) gettext(S) +#else + #define _(S) (S) +#endif + + + static const char *DBUS_SERVICE_NAME = "org.freedesktop.DBus"; static const char *DBUS_SERVICE_PATH = "/org/freedesktop/DBus"; const gchar *CApplet::menu_xml = @@ -54,6 +69,13 @@ const gchar *CApplet::menu_xml = CApplet::CApplet(DBus::Connection &connection, const char *path, const char *name) : DBus::ObjectProxy(connection, path, name) { + setlocale(LC_ALL,""); + +#if ENABLE_NLS + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); +#endif + m_pDaemonWatcher = new DaemonWatcher(connection, DBUS_SERVICE_PATH, DBUS_SERVICE_NAME); m_pDaemonWatcher->ConnectStateChangeHandler(DaemonStateChange_cb, this); m_pStatusIcon = gtk_status_icon_new_from_stock(GTK_STOCK_DIALOG_WARNING); @@ -65,7 +87,7 @@ CApplet::CApplet(DBus::Connection &connection, const char *path, const char *nam gtk_status_icon_set_visible(m_pStatusIcon, FALSE); g_signal_connect(G_OBJECT(m_pStatusIcon), "activate", GTK_SIGNAL_FUNC(CApplet::OnAppletActivate_CB), this); g_signal_connect(G_OBJECT(m_pStatusIcon), "popup_menu", GTK_SIGNAL_FUNC(CApplet::OnMenuPopup_cb), this); - SetIconTooltip("Pending events: %i", m_mapEvents.size()); + SetIconTooltip(_("Pending events: %i"), m_mapEvents.size()); m_pBuilder = gtk_builder_new(); if(gtk_builder_add_from_string(m_pBuilder, menu_xml, strlen(menu_xml), NULL)) { @@ -84,7 +106,7 @@ CApplet::CApplet(DBus::Connection &connection, const char *path, const char *nam } else { - fprintf(stderr,"Can't create menu from the description, popup won't be available!\n"); + fprintf(stderr,_("Can't create menu from the description, popup won't be available!\n")); } } @@ -107,7 +129,7 @@ void CApplet::Crash(const std::string& progname, const std::string& uid ) } else { - std::cout << "This is default handler, you should register your own with ConnectCrashHandler" << std::endl; + std::cout << _("This is default handler, you should register your own with ConnectCrashHandler") << std::endl; std::cout.flush(); } } @@ -117,11 +139,11 @@ void CApplet::DaemonStateChange_cb(bool running, void* data) CApplet *applet = (CApplet *)data; if (!running) { - applet->Disable("ABRT service is not running"); + applet->Disable(_("ABRT service is not running")); } else { - applet->Enable("ABRT service has been started"); + applet->Enable(_("ABRT service has been started")); } } @@ -142,13 +164,13 @@ void CApplet::SetIconTooltip(const char *format, ...) va_end(args); if (n >= 0 && buf) { - notify_notification_update(m_pNotification, "Warning", buf, NULL); + notify_notification_update(m_pNotification, _("Warning"), buf, NULL); gtk_status_icon_set_tooltip_text(m_pStatusIcon, buf); free(buf); } else { - gtk_status_icon_set_tooltip_text(m_pStatusIcon, "Out of memory"); + gtk_status_icon_set_tooltip_text(m_pStatusIcon, _("Out of memory")); } } @@ -231,7 +253,7 @@ void CApplet::Enable(const char *reason) int CApplet::AddEvent(int pUUID, const std::string& pProgname) { m_mapEvents[pUUID] = "pProgname"; - SetIconTooltip("Pending events: %i", m_mapEvents.size()); + SetIconTooltip(_("Pending events: %i"), m_mapEvents.size()); return 0; } diff --git a/src/Applet/Makefile.am b/src/Applet/Makefile.am index 952703e4..886102ff 100644 --- a/src/Applet/Makefile.am +++ b/src/Applet/Makefile.am @@ -20,5 +20,7 @@ abrt_applet_LDADD = \ EXTRA_DIST = abrt-applet.desktop popup.GtkBuilder +DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ + autostartdir = $(sysconfdir)/xdg/autostart autostart_DATA = abrt-applet.desktop -- cgit