[gst-debugger] gst-debugger: add gettext support
- From: Marcin Kolny <mkolny src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gst-debugger] gst-debugger: add gettext support
- Date: Fri, 9 Oct 2015 08:56:48 +0000 (UTC)
commit 194593c5befc5de7eca470461d1b4fdb4ba4edc7
Author: Marcin Kolny <marcin kolny gmail com>
Date: Fri Oct 9 10:31:34 2015 +0200
gst-debugger: add gettext support
.gitignore | 10 ++++++
Makefile.am | 12 +++++++-
autogen.sh | 3 +-
configure.ac | 14 ++++++++-
po/LINGUAS | 3 ++
po/POTFILES.in | 22 +++++++++++++
po/POTFILES.skip | 1 +
src/gst-debugger/Makefile.am | 2 +-
src/gst-debugger/controller/tcp_client.cpp | 7 +++-
.../dialogs/connection_properties_dialog.cpp | 7 ++--
src/gst-debugger/dialogs/enums_dialog.cpp | 10 ++++--
src/gst-debugger/dialogs/factories_dialog.cpp | 10 ++++--
src/gst-debugger/dialogs/klasses_dialog.cpp | 18 ++++++-----
src/gst-debugger/gvalue-converter/gvalue_enum.cpp | 6 ++-
src/gst-debugger/gvalue-converter/gvalue_flags.cpp | 6 ++-
.../gvalue-converter/gvalue_unknown.cpp | 5 ++-
src/gst-debugger/main.cpp | 8 +++++
src/gst-debugger/main_window.cpp | 10 ++++--
src/gst-debugger/modules/base_main_module.cpp | 6 ++-
src/gst-debugger/modules/buffer_module.cpp | 30 ++++++++++--------
src/gst-debugger/modules/event_module.cpp | 14 +++++----
src/gst-debugger/modules/gst_properties_module.cpp | 22 +++++++------
src/gst-debugger/modules/log_module.cpp | 32 ++++++++++---------
src/gst-debugger/modules/message_module.cpp | 18 ++++++-----
src/gst-debugger/modules/query_module.cpp | 10 ++++--
src/gst-debugger/pipeline-drawer/graph_module.cpp | 6 ++-
src/gst-debugger/ui/gst-debugger-dialogs.glade | 14 +++++---
src/gst-debugger/ui_utils.cpp | 18 ++++++-----
28 files changed, 216 insertions(+), 108 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 6d104f3..fd8c8f5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -54,3 +54,13 @@ Makefile
/src/common/gstdebugger.pb.cc
/src/common/gstdebugger.pb.h
/src/common/libgst-debugger-common-0.1.pc
+
+# intltool/gettext
+*.gmo
+/build/glib-gettext.m4
+/build/nls.m4
+/build/pkg.m4
+/intltool-*.in
+/po/Makefile.in.in
+/po/stamp-it
+/po/POTFILES
\ No newline at end of file
diff --git a/Makefile.am b/Makefile.am
index 7de9d79..6ebba49 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,8 +1,18 @@
ACLOCAL_AMFLAGS = -I build -I common/m4
-SUBDIRS = src
+SUBDIRS = src po
+
+INTLTOOL_FILES = intltool-extract.in \
+ intltool-merge.in \
+ intltool-update.in
dist_noinst_SCRIPTS = autogen.sh
# Auto-generate the ChangeLog file from the git log on make dist
include $(top_srcdir)/build/dist-changelog.am
+
+EXTRA_DIST = $(INTLTOOL_FILES)
+DISTCLEANFILES = intltool-extract \
+ intltool-merge \
+ intltool-update \
+ po/.intltool-merge-cache
diff --git a/autogen.sh b/autogen.sh
index e31cb61..4597dc2 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -37,7 +37,8 @@ fi
set -x
-#intltoolize --force --copy --automake || exit 1 todo
+aclocal --install || exit 1
+intltoolize --force --copy --automake || exit 1
autoreconf --verbose --force --install -Wno-portability || exit 1
automake --add-missing --copy >/dev/null 2>&1
diff --git a/configure.ac b/configure.ac
index 062e9d6..6a3535c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@ AC_INIT([gst-debugger], [0.90.0],
AC_PREREQ([2.59])
-AC_CONFIG_MACRO_DIR([build])]
+AC_CONFIG_MACRO_DIR([build])
AC_SUBST(ACLOCAL_AMFLAGS, "-I build -I common/m4")
AC_CONFIG_HEADERS([src/config.h])
@@ -49,6 +49,7 @@ AG_GST_SET_PLUGINDIR
AC_CONFIG_FILES([
Makefile
+ po/Makefile.in
src/Makefile
src/debugserver/Makefile
src/gst-debugger/Makefile
@@ -62,6 +63,17 @@ AC_PROG_INSTALL
AC_LIBTOOL_DLOPEN
AC_PROG_LIBTOOL
+IT_PROG_INTLTOOL([0.35.0])
+
+GETTEXT_PACKAGE=gst-debugger
+AC_SUBST(GETTEXT_PACKAGE)
+AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"],
+ [The domain to use with gettext])
+AM_GLIB_GNU_GETTEXT
+
+GST_DEBUGGER_LOCALEDIR=[${datadir}/locale]
+AC_SUBST(GST_DEBUGGER_LOCALEDIR)
+
AC_CHECK_PROG([PROTOC], [protoc], [protoc])
AS_IF([test "x${PROTOC}" == "x"],
[AC_MSG_ERROR([ProtoBuf compiler "protoc" not found.])])
diff --git a/po/LINGUAS b/po/LINGUAS
new file mode 100644
index 0000000..f7eed2b
--- /dev/null
+++ b/po/LINGUAS
@@ -0,0 +1,3 @@
+# please keep this list sorted alphabetically, one locale per line
+#
+
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100644
index 0000000..278cb60
--- /dev/null
+++ b/po/POTFILES.in
@@ -0,0 +1,22 @@
+src/gst-debugger/main.cpp
+src/gst-debugger/main_window.cpp
+src/gst-debugger/ui_utils.cpp
+src/gst-debugger/dialogs/klasses_dialog.cpp
+src/gst-debugger/dialogs/factories_dialog.cpp
+src/gst-debugger/dialogs/enums_dialog.cpp
+src/gst-debugger/modules/base_main_module.cpp
+src/gst-debugger/dialogs/buffer_data_dialog.cpp
+src/gst-debugger/modules/gst_properties_module.cpp
+src/gst-debugger/dialogs/connection_properties_dialog.cpp
+src/gst-debugger/modules/event_module.cpp
+src/gst-debugger/modules/query_module.cpp
+src/gst-debugger/modules/buffer_module.cpp
+src/gst-debugger/modules/message_module.cpp
+src/gst-debugger/modules/log_module.cpp
+src/gst-debugger/controller/tcp_client.cpp
+src/gst-debugger/pipeline-drawer/graph_module.cpp
+src/gst-debugger/gvalue-converter/gvalue_flags.cpp
+src/gst-debugger/gvalue-converter/gvalue_enum.cpp
+src/gst-debugger/gvalue-converter/gvalue_unknown.cpp
+[type: gettext/glade]src/gst-debugger/ui/gst-debugger.glade
+[type: gettext/glade]src/gst-debugger/ui/gst-debugger-dialogs.glade
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
new file mode 100644
index 0000000..30f1876
--- /dev/null
+++ b/po/POTFILES.skip
@@ -0,0 +1 @@
+src/gst-debugger/ui/gst-debugger-dialogs.glade
\ No newline at end of file
diff --git a/src/gst-debugger/Makefile.am b/src/gst-debugger/Makefile.am
index 31ee0f5..9e086da 100644
--- a/src/gst-debugger/Makefile.am
+++ b/src/gst-debugger/Makefile.am
@@ -97,6 +97,6 @@ gst_debugger_ GST_API_VERSION@_SOURCES = \
gst_debugger_ GST_API_VERSION@_LDFLAGS = $(GTKMM_LIBS) $(GSTMM_LIBS) $(GVC_LIBS) $(PROTOBUF_LIBS) -lX11
gst_debugger_ GST_API_VERSION@_LDADD = ../common/libgst-debugger-common-cpp- GST_DEBUGGER_API_VERSION@.la
-gst_debugger_ GST_API_VERSION@_CXXFLAGS = $(GTKMM_CFLAGS) $(GSTMM_CFLAGS) $(GVC_CFLAGS)
+gst_debugger_ GST_API_VERSION@_CXXFLAGS = $(GTKMM_CFLAGS) $(GSTMM_CFLAGS) $(GVC_CFLAGS)
-DGST_DEBUGGER_LOCALEDIR=\"${GST_DEBUGGER_LOCALEDIR}\"
gst_debugger_ GST_API_VERSION@_CPPFLAGS = $(GVC_CFLAGS) -I$(top_srcdir)/src/
gst_debugger_ GST_API_VERSION@_CFLAGS = $(GIO_CFLAGS) $(GTK_CFLAGS)
diff --git a/src/gst-debugger/controller/tcp_client.cpp b/src/gst-debugger/controller/tcp_client.cpp
index 9e2d9f6..2852a5f 100644
--- a/src/gst-debugger/controller/tcp_client.cpp
+++ b/src/gst-debugger/controller/tcp_client.cpp
@@ -7,9 +7,12 @@
#include "tcp_client.h"
-#include <cassert>
#include "../../common/protocol-utils.h"
+#include <glibmm/i18n.h>
+
+#include <cassert>
+
bool TcpClient::connect(const std::string &address, int port)
{
try
@@ -87,7 +90,7 @@ void TcpClient::write_data(char *data, int size)
void TcpClient::send_command(const GstDebugger::Command &cmd)
{
if (!is_connected())
- throw Gio::Error(Gio::Error::FAILED, "No connection!");
+ throw Gio::Error(Gio::Error::FAILED, _("Client isn't connected to a server!"));
gst_debugger_protocol_write_header(connection->get_output_stream()->gobj(), cmd.ByteSize());
cmd.SerializeToFileDescriptor(connection->get_socket()->get_fd());
diff --git a/src/gst-debugger/dialogs/connection_properties_dialog.cpp
b/src/gst-debugger/dialogs/connection_properties_dialog.cpp
index d16f4a7..7609546 100644
--- a/src/gst-debugger/dialogs/connection_properties_dialog.cpp
+++ b/src/gst-debugger/dialogs/connection_properties_dialog.cpp
@@ -7,6 +7,7 @@
#include "connection_properties_dialog.h"
+#include <glibmm/i18n.h>
#include <giomm.h>
#include <string>
@@ -32,8 +33,8 @@ void ConnectionPropertiesDialog::pingButton_click_cb()
auto connection = client->connect_to_host(get_ip_address(), get_port());
if (connection->is_connected())
{
- Gtk::MessageDialog dialog("Info");
- dialog.set_secondary_text("PING OK!");
+ Gtk::MessageDialog dialog(_("Info"));
+ dialog.set_secondary_text(_("PING OK!"));
dialog.run();
connection->close();
}
@@ -43,7 +44,7 @@ void ConnectionPropertiesDialog::pingButton_click_cb()
catch(const Gio::Error&)
{
Gtk::MessageDialog dialog("Info", false, Gtk::MESSAGE_ERROR);
- dialog.set_secondary_text("Server doesn't response");
+ dialog.set_secondary_text(_("Server doesn't response"));
dialog.run();
}
}
diff --git a/src/gst-debugger/dialogs/enums_dialog.cpp b/src/gst-debugger/dialogs/enums_dialog.cpp
index 6407a73..d5b9307 100644
--- a/src/gst-debugger/dialogs/enums_dialog.cpp
+++ b/src/gst-debugger/dialogs/enums_dialog.cpp
@@ -11,16 +11,18 @@
#include "controller/controller.h"
+#include <glibmm/i18n.h>
+
EnumsDialog::EnumsDialog(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
: RemoteDataDialog(cobject, builder)
{
tree_model = Gtk::TreeStore::create(enums_columns);
data_tree_view->set_model(tree_model);
- data_tree_view->append_column("Name", enums_columns.m_col_name);
- data_tree_view->append_column("Value", enums_columns.m_col_value);
- data_tree_view->append_column("Description", enums_columns.m_col_description);
+ data_tree_view->append_column(_("Name"), enums_columns.m_col_name);
+ data_tree_view->append_column(_("Value"), enums_columns.m_col_value);
+ data_tree_view->append_column(_("Description"), enums_columns.m_col_description);
- set_title("Remote Enum Types");
+ set_title(_("Remote Enum Types"));
}
void EnumsDialog::set_controller(const std::shared_ptr<Controller> &controller)
diff --git a/src/gst-debugger/dialogs/factories_dialog.cpp b/src/gst-debugger/dialogs/factories_dialog.cpp
index c397fbf..d0047e7 100644
--- a/src/gst-debugger/dialogs/factories_dialog.cpp
+++ b/src/gst-debugger/dialogs/factories_dialog.cpp
@@ -10,15 +10,17 @@
#include "controller/controller.h"
+#include <glibmm/i18n.h>
+
FactoriesDialog::FactoriesDialog(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
: RemoteDataDialog(cobject, builder)
{
tree_model = Gtk::TreeStore::create(factories_columns);
data_tree_view->set_model(tree_model);
- data_tree_view->append_column("Property", factories_columns.m_col_name);
- data_tree_view->append_column("Value", factories_columns.m_col_value);
+ data_tree_view->append_column(_("Property"), factories_columns.m_col_name);
+ data_tree_view->append_column(_("Value"), factories_columns.m_col_value);
- set_title("Remote Factories");
+ set_title(_("Remote Factories"));
}
void FactoriesDialog::set_controller(const std::shared_ptr<Controller> &controller)
@@ -53,7 +55,7 @@ void FactoriesDialog::reload_list(const Glib::ustring &factory_name, bool add)
APPEND_SUB_ROW(meta.first, meta.second, row);
}
- auto tpl_row = APPEND_SUB_ROW("Pad templates", "", row);
+ auto tpl_row = APPEND_SUB_ROW(_("Pad templates"), "", row);
for (auto tpl : factory.get_pad_templates())
{
diff --git a/src/gst-debugger/dialogs/klasses_dialog.cpp b/src/gst-debugger/dialogs/klasses_dialog.cpp
index b9ed822..d38fe2f 100644
--- a/src/gst-debugger/dialogs/klasses_dialog.cpp
+++ b/src/gst-debugger/dialogs/klasses_dialog.cpp
@@ -10,6 +10,8 @@
#include "controller/controller.h"
+#include <glibmm/i18n.h>
+
#include <map>
KlassesDialog::KlassesDialog(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
@@ -17,8 +19,8 @@ KlassesDialog::KlassesDialog(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Bu
{
tree_model = Gtk::TreeStore::create(klasses_columns);
data_tree_view->set_model(tree_model);
- data_tree_view->append_column("Property", klasses_columns.m_col_name);
- data_tree_view->append_column("Value", klasses_columns.m_col_value);
+ data_tree_view->append_column(_("Property"), klasses_columns.m_col_name);
+ data_tree_view->append_column(_("Value"), klasses_columns.m_col_value);
set_title("Remote Factories");
}
@@ -58,7 +60,7 @@ std::string KlassesDialog::g_param_flags_to_string(GParamFlags v)
std::string str;
bool first = false;
- if (values.empty()) str = "none";
+ if (values.empty()) str = _("none");
for (auto value : values)
{
if (value.first & v)
@@ -85,7 +87,7 @@ void KlassesDialog::reload_list(const Glib::ustring &klass_name, bool add)
row[klasses_columns.m_col_value] = "";
auto childrow = *(tree_model->append(row.children()));
- childrow[klasses_columns.m_col_name] = "Properties";
+ childrow[klasses_columns.m_col_name] = _("Properties");
for (auto property : klass.get_properties())
{
@@ -93,10 +95,10 @@ void KlassesDialog::reload_list(const Glib::ustring &klass_name, bool add)
cr[klasses_columns.m_col_name] = property.get_name();
- APPEND_SUB_ROW(cr, "Nick", property.get_nick());
- APPEND_SUB_ROW(cr, "Blurb", property.get_blurb());
- APPEND_SUB_ROW(cr, "Flags", g_param_flags_to_string(property.get_flags()));
- APPEND_SUB_ROW(cr, "Default value", property.get_default_value()->to_string());
+ APPEND_SUB_ROW(cr, _("Nick"), property.get_nick());
+ APPEND_SUB_ROW(cr, _("Blurb"), property.get_blurb());
+ APPEND_SUB_ROW(cr, _("Flags"), g_param_flags_to_string(property.get_flags()));
+ APPEND_SUB_ROW(cr, _("Default value"), property.get_default_value()->to_string());
}
}
}
diff --git a/src/gst-debugger/gvalue-converter/gvalue_enum.cpp
b/src/gst-debugger/gvalue-converter/gvalue_enum.cpp
index 5fca979..dac4477 100644
--- a/src/gst-debugger/gvalue-converter/gvalue_enum.cpp
+++ b/src/gst-debugger/gvalue-converter/gvalue_enum.cpp
@@ -7,9 +7,11 @@
#include "gvalue_enum.h"
-#include <glibmm.h>
#include "../../common/gst-utils.h"
+#include <glibmm.h>
+#include <glibmm/i18n.h>
+
GValueEnum::GValueEnum(GValue *gobj)
: GValueBase(gobj)
{}
@@ -24,7 +26,7 @@ std::string GValueEnum::to_string() const
gint value = get_value();
if (!type)
{
- return std::to_string(value) + " (press 'refresh' button)";
+ return std::to_string(value) + _(" (press 'refresh' button)"); // todo move somewhere else
}
try
{
diff --git a/src/gst-debugger/gvalue-converter/gvalue_flags.cpp
b/src/gst-debugger/gvalue-converter/gvalue_flags.cpp
index 6da7d7a..560527f 100644
--- a/src/gst-debugger/gvalue-converter/gvalue_flags.cpp
+++ b/src/gst-debugger/gvalue-converter/gvalue_flags.cpp
@@ -8,9 +8,11 @@
#include "gvalue_flags.h"
#include "ui_utils.h"
-#include <glibmm.h>
#include "../../common/gst-utils.h"
+#include <glibmm/i18n.h>
+#include <glibmm.h>
+
GValueFlags::GValueFlags(GValue *gobj)
: GValueBase(gobj)
{}
@@ -25,7 +27,7 @@ std::string GValueFlags::to_string() const
gint value = get_value();
if (!type)
{
- return flags_value_to_string(value) + " (press 'refresh' button)";
+ return flags_value_to_string(value) + _(" (press 'refresh' button)"); // todo move somewhere
else
}
try
{
diff --git a/src/gst-debugger/gvalue-converter/gvalue_unknown.cpp
b/src/gst-debugger/gvalue-converter/gvalue_unknown.cpp
index 3a8a4eb..d111ed1 100644
--- a/src/gst-debugger/gvalue-converter/gvalue_unknown.cpp
+++ b/src/gst-debugger/gvalue-converter/gvalue_unknown.cpp
@@ -8,6 +8,9 @@
#include "gvalue_unknown.h"
#include "../../common/gst-utils.h"
+
+#include <glibmm/i18n.h>
+
GValueUnknown::GValueUnknown(GValue *gobj)
: GValueBase(gobj)
{}
@@ -15,7 +18,7 @@ GValueUnknown::GValueUnknown(GValue *gobj)
std::string GValueUnknown::to_string() const
{
GstUnknownType *unknown_type = (GstUnknownType*)g_value_get_boxed(g_value);
- return "unsupported type: " + std::string(unknown_type->type_name);
+ return _("unsupported type: ") + std::string(unknown_type->type_name);
}
Gtk::Widget* GValueUnknown::create_widget()
diff --git a/src/gst-debugger/main.cpp b/src/gst-debugger/main.cpp
index b8e7839..d605374 100644
--- a/src/gst-debugger/main.cpp
+++ b/src/gst-debugger/main.cpp
@@ -9,11 +9,19 @@
#include "controller/controller.h"
#include "main_window.h"
+#include "config.h"
+
+#include <glibmm/i18n.h>
#include <gtkmm.h>
#include <gstreamermm.h>
int main(int argc, char** argv)
{
+
+ bindtextdomain(GETTEXT_PACKAGE, GST_DEBUGGER_LOCALEDIR);
+ bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+ textdomain(GETTEXT_PACKAGE);
+
Gst::init(argc, argv);
Gtk::Main kit(argc, argv);
Glib::RefPtr<Gtk::Builder> builder =
Gtk::Builder::create_from_resource("/eu/cookandcommit/gst-debugger/ui/gst-debugger.glade");
diff --git a/src/gst-debugger/main_window.cpp b/src/gst-debugger/main_window.cpp
index e043b92..fa0e81e 100644
--- a/src/gst-debugger/main_window.cpp
+++ b/src/gst-debugger/main_window.cpp
@@ -14,6 +14,8 @@
#include "controller/controller.h"
+#include <glib/gi18n.h>
+
MainWindow::MainWindow(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
: IMainView(cobject),
builder(builder),
@@ -115,12 +117,12 @@ void MainWindow::connection_status_changed(bool connected)
auto id = main_statusbar->get_context_id("connection-status");
if (connected)
{
- main_statusbar->push("Connected", id);
- ((Gtk::Label*)connect_menu_item->get_child())->set_text("Disconnect");
+ main_statusbar->push(_("Connected"), id);
+ ((Gtk::Label*)connect_menu_item->get_child())->set_text(_("Disconnect"));
}
else
{
- main_statusbar->push("Disconnected", id);
- ((Gtk::Label*)connect_menu_item->get_child())->set_text("Connect");
+ main_statusbar->push(_("Disconnected"), id);
+ ((Gtk::Label*)connect_menu_item->get_child())->set_text(_("Connect"));
}
}
diff --git a/src/gst-debugger/modules/base_main_module.cpp b/src/gst-debugger/modules/base_main_module.cpp
index 4a74a64..a8e8121 100644
--- a/src/gst-debugger/modules/base_main_module.cpp
+++ b/src/gst-debugger/modules/base_main_module.cpp
@@ -9,6 +9,8 @@
#include "controller/controller.h"
+#include <glibmm/i18n.h>
+
DetailsModelColumns BaseMainModule::detail_columns;
inline void free_data(GstDebugger::GStreamerData* data) { delete data; }
@@ -51,8 +53,8 @@ void BaseMainModule::load_details(Gtk::TreeView *view, const Gtk::TreeModel::Pat
void BaseMainModule::configure_details_view(Gtk::TreeView *view)
{
view->remove_all_columns();
- view->append_column("Name", detail_columns.name);
- view->append_column("Value", detail_columns.value);
+ view->append_column(_("Name"), detail_columns.name);
+ view->append_column(_("Value"), detail_columns.value);
}
void BaseMainModule::append_details_row(const std::string &name, const std::string &value)
diff --git a/src/gst-debugger/modules/buffer_module.cpp b/src/gst-debugger/modules/buffer_module.cpp
index bbe7e6e..ca9df0d 100644
--- a/src/gst-debugger/modules/buffer_module.cpp
+++ b/src/gst-debugger/modules/buffer_module.cpp
@@ -13,8 +13,10 @@
#include "controller/controller.h"
+#include <glibmm/i18n.h>
+
BufferModule::BufferModule()
-: BaseMainModule(GstDebugger::GStreamerData::kBufferInfo, "buffers")
+: BaseMainModule(GstDebugger::GStreamerData::kBufferInfo, _("Buffers"))
{
data_dialog = load_dialog<BufferDataDialog>("bufferDataDialog");
}
@@ -23,18 +25,18 @@ void BufferModule::load_details(gpointer data)
{
auto buffer_info = (GstDebugger::BufferInfo*)data;
- append_details_row("Pts", std::to_string(buffer_info->pts()));
- append_details_row("Dts", std::to_string(buffer_info->dts()));
- append_details_row("Duration", std::to_string(buffer_info->duration()));
- append_details_row("Offset", std::to_string(buffer_info->offset()));
- append_details_row("Offset End", std::to_string(buffer_info->offset_end()));
- append_details_row("Data Size", std::to_string(buffer_info->size()));
- append_details_row("Object path", buffer_info->pad());
+ append_details_row(_("Pts"), std::to_string(buffer_info->pts()));
+ append_details_row(_("Dts"), std::to_string(buffer_info->dts()));
+ append_details_row(_("Duration"), std::to_string(buffer_info->duration()));
+ append_details_row(_("Offset"), std::to_string(buffer_info->offset()));
+ append_details_row(_("Offset End"), std::to_string(buffer_info->offset_end()));
+ append_details_row(_("Data Size"), std::to_string(buffer_info->size()));
+ append_details_row(_("Object path"), buffer_info->pad());
if (buffer_info->has_data())
{
buffer = buffer_info->data();
- append_details_row("Data", buffer_data_to_string(StringDataFormat::HEX, buffer, 1024, 16));
+ append_details_row(_("Data"), buffer_data_to_string(StringDataFormat::HEX, buffer, 1024, 16));
}
}
@@ -48,7 +50,7 @@ void BufferModule::details_activated(const Gtk::TreeModel::Path &path)
}
Gtk::TreeModel::Row row = *iter;
- if (row[detail_columns.name] == "Data")
+ if (row[detail_columns.name] == _("Data"))
{
data_dialog->set_data(buffer);
data_dialog->show();
@@ -57,14 +59,14 @@ void BufferModule::details_activated(const Gtk::TreeModel::Path &path)
void BufferModule::data_received(const Gtk::TreeModel::Row& row, GstDebugger::GStreamerData *data)
{
- row[columns.header] = "Buffer of size " + std::to_string(data->buffer_info().size());
+ row[columns.header] = _("Buffer of size ") + std::to_string(data->buffer_info().size());
row[columns.data] = new GstDebugger::BufferInfo(data->buffer_info());
}
BufferControlModule::BufferControlModule()
: ControlModule()
{
- data_check_button = Gtk::manage(new Gtk::CheckButton("Send data"));
+ data_check_button = Gtk::manage(new Gtk::CheckButton(_("Send data")));
main_box->pack_start(*data_check_button, false, true);
main_box->reorder_child(*data_check_button, 1);
@@ -74,7 +76,7 @@ BufferControlModule::BufferControlModule()
create_dispatcher("selected-object", [this] {
auto pad_path = controller->get_selected_pad_path();
if (pad_path.empty())
- pad_path = "none (any path)";
+ pad_path = _("none (any path)");
pad_path_label->set_text(pad_path);
}, nullptr);
@@ -105,7 +107,7 @@ void BufferControlModule::confirmation_received(GstDebugger::Command* cmd)
{
Gtk::TreeModel::Row row = *(hooks_model->append());
row[hooks_model_columns.str1] = confirmation.pad();
- row[hooks_model_columns.str2] = confirmation.buffer().send_data() ? "yes" : "no";
+ row[hooks_model_columns.str2] = confirmation.buffer().send_data() ? _("yes") : _("no");
}
else
{
diff --git a/src/gst-debugger/modules/event_module.cpp b/src/gst-debugger/modules/event_module.cpp
index 28cd766..309554f 100644
--- a/src/gst-debugger/modules/event_module.cpp
+++ b/src/gst-debugger/modules/event_module.cpp
@@ -9,8 +9,10 @@
#include "controller/controller.h"
+#include <glibmm/i18n.h>
+
EventModule::EventModule()
-: BaseMainModule(GstDebugger::GStreamerData::kEventInfo, "Events")
+: BaseMainModule(GstDebugger::GStreamerData::kEventInfo, _("Events"))
{
}
@@ -18,14 +20,14 @@ void EventModule::load_details(gpointer data)
{
auto evt_info = (GstDebugger::EventInfo*)data;
- append_details_row("event type", Gst::Enums::get_name((Gst::EventType)evt_info->type()));
+ append_details_row(_("event type"), Gst::Enums::get_name((Gst::EventType)evt_info->type()));
{
gchar buffer[20];
snprintf(buffer, 20, "%" GST_TIME_FORMAT, GST_TIME_ARGS(evt_info->timestamp()));
- append_details_row("event timestamp", buffer);
+ append_details_row(_("event timestamp"), buffer);
}
- append_details_row("event sequence number", std::to_string(evt_info->seqnum()));
- append_details_row("sent from pad", evt_info->pad());
+ append_details_row(_("event sequence number"), std::to_string(evt_info->seqnum()));
+ append_details_row(_("sent from pad"), evt_info->pad());
auto structure = Glib::wrap(gst_structure_from_string(evt_info->structure_data().c_str(), NULL),
false);
append_details_from_structure(structure);
@@ -33,7 +35,7 @@ void EventModule::load_details(gpointer data)
void EventModule::data_received(const Gtk::TreeModel::Row& row, GstDebugger::GStreamerData *data)
{
- row[columns.header] = "Event of type: " +
Gst::Enums::get_name((Gst::EventType)data->event_info().type());
+ row[columns.header] = _("Event of type: ") +
Gst::Enums::get_name((Gst::EventType)data->event_info().type());
row[columns.data] = new GstDebugger::EventInfo(data->event_info());
}
diff --git a/src/gst-debugger/modules/gst_properties_module.cpp
b/src/gst-debugger/modules/gst_properties_module.cpp
index 94f34dc..52cb506 100644
--- a/src/gst-debugger/modules/gst_properties_module.cpp
+++ b/src/gst-debugger/modules/gst_properties_module.cpp
@@ -11,6 +11,8 @@
#include "controller/element_path_processor.h"
#include "ui_utils.h"
+#include <glibmm/i18n.h>
+
#include <gst/gst.h>
static void free_properties(GstDebugger::PropertyInfo *property) { delete property; }
@@ -202,8 +204,8 @@ void GstPropertiesModule::show_pad_properties()
PadPropertyModelColumns cols;
auto model = Gtk::TreeStore::create(cols);
Gtk::TreeView *tree = Gtk::manage(new Gtk::TreeView());
- tree->append_column("Property Name", cols.m_col_name);
- tree->append_column("Property Value", cols.m_col_value);
+ tree->append_column(_("Property Name"), cols.m_col_name);
+ tree->append_column(_("Property Value"), cols.m_col_value);
tree->set_model(model);
#define APPEND_ROW(name, value) \
@@ -216,35 +218,35 @@ void GstPropertiesModule::show_pad_properties()
std::string peer_pad = pad->get_peer() ? ElementPathProcessor::get_object_path(pad->get_peer()) :
std::string("NO PEER PAD");
Gtk::TreeModel::Row row;
- APPEND_ROW("Name", pad->get_name());
+ APPEND_ROW(_("Name"), pad->get_name());
if (pad->get_template())
{
display_template_info(pad->get_template(), model, cols.m_col_name, cols.m_col_value);
}
- APPEND_ROW("Presence", get_presence_str(pad->get_presence()));
- APPEND_ROW("Direction", get_direction_str(pad->get_direction()));
- APPEND_ROW("Peer pad", peer_pad);
+ APPEND_ROW(_("Presence"), get_presence_str(pad->get_presence()));
+ APPEND_ROW(_("Direction"), get_direction_str(pad->get_direction()));
+ APPEND_ROW(_("Peer pad"), peer_pad);
if (pad->get_current_caps())
{
- APPEND_ROW("Current caps", "");
+ APPEND_ROW(_("Current caps"), "");
display_caps(pad->get_current_caps(), model, cols.m_col_name, cols.m_col_value, row);
}
else
{
- APPEND_ROW("Current caps", "unknown");
+ APPEND_ROW(_("Current caps"), _("unknown"));
}
if (pad->get_allowed_caps())
{
- APPEND_ROW("Allowed caps", "");
+ APPEND_ROW(_("Allowed caps"), "");
display_caps(pad->get_allowed_caps(), model, cols.m_col_name, cols.m_col_value, row);
}
else
{
- APPEND_ROW("Allowed caps", "unknown");
+ APPEND_ROW(_("Allowed caps"), _("unknown"));
}
#undef APPEND_ROW
diff --git a/src/gst-debugger/modules/log_module.cpp b/src/gst-debugger/modules/log_module.cpp
index f34bf44..ffbd1e7 100644
--- a/src/gst-debugger/modules/log_module.cpp
+++ b/src/gst-debugger/modules/log_module.cpp
@@ -9,8 +9,10 @@
#include "controller/controller.h"
+#include <glibmm/i18n.h>
+
LogModule::LogModule()
-: BaseMainModule(GstDebugger::GStreamerData::kLogInfo, "logs")
+: BaseMainModule(GstDebugger::GStreamerData::kLogInfo, _("Debug logs"))
{
}
@@ -18,13 +20,13 @@ void LogModule::load_details(gpointer data)
{
auto log_info = (GstDebugger::LogInfo*)data;
- append_details_row("Level", std::to_string(log_info->level()));
- append_details_row("Category name", log_info->category());
- append_details_row("File", log_info->file());
- append_details_row("Function", log_info->function());
- append_details_row("Line", std::to_string(log_info->line()));
- append_details_row("Object path", log_info->object());
- append_details_row("Message", log_info->message());
+ append_details_row(_("Level"), std::to_string(log_info->level()));
+ append_details_row(_("Category name"), log_info->category());
+ append_details_row(_("File"), log_info->file());
+ append_details_row(_("Function"), log_info->function());
+ append_details_row(_("Line"), std::to_string(log_info->line()));
+ append_details_row(_("Object path"), log_info->object());
+ append_details_row(_("Message"), log_info->message());
}
void LogModule::data_received(const Gtk::TreeModel::Row& row, GstDebugger::GStreamerData *data)
@@ -38,28 +40,28 @@ LogControlModule::LogControlModule()
{
debug_categories_combobox = Gtk::manage(new Gtk::ComboBoxText());
- create_description_box("Debug category: ", debug_categories_combobox, 0);
+ create_description_box(_("Debug category: "), debug_categories_combobox, 0);
log_levels_combobox = Gtk::manage(new Gtk::ComboBoxText());
- create_description_box("Log level: ", log_levels_combobox, 0);
+ create_description_box(_("Log level: "), log_levels_combobox, 0);
- main_box->pack_start(*Gtk::manage(new Gtk::Label("Log threshold:")), false, true);
+ main_box->pack_start(*Gtk::manage(new Gtk::Label(_("Log threshold:"))), false, true);
threshold_entry = Gtk::manage(new Gtk::Entry());
main_box->pack_start(*threshold_entry, false, true);
- overwrite_threshold_check_button = Gtk::manage(new Gtk::CheckButton("Overwrite current threshold"));
+ overwrite_threshold_check_button = Gtk::manage(new Gtk::CheckButton(_("Overwrite current
threshold")));
main_box->pack_start(*overwrite_threshold_check_button, false, true);
- set_threshold_button = Gtk::manage(new Gtk::Button("Set threshold"));
+ set_threshold_button = Gtk::manage(new Gtk::Button(_("Set threshold")));
set_threshold_button->signal_clicked().connect([this] {
controller->send_set_threshold_command(threshold_entry->get_text(),
overwrite_threshold_check_button->get_active());
});
main_box->pack_start(*set_threshold_button, false, true);
- hooks_tree_view->append_column("Level", hooks_model_columns.str1);
- hooks_tree_view->append_column("Category", hooks_model_columns.str2);
+ hooks_tree_view->append_column(_("Level"), hooks_model_columns.str1);
+ hooks_tree_view->append_column(_("Category"), hooks_model_columns.str2);
}
void LogControlModule::set_controller(const std::shared_ptr<Controller> &controller)
diff --git a/src/gst-debugger/modules/message_module.cpp b/src/gst-debugger/modules/message_module.cpp
index 99f01e6..d03a95a 100644
--- a/src/gst-debugger/modules/message_module.cpp
+++ b/src/gst-debugger/modules/message_module.cpp
@@ -9,8 +9,10 @@
#include "controller/controller.h"
+#include <glibmm/i18n.h>
+
MessageModule::MessageModule()
-: BaseMainModule(GstDebugger::GStreamerData::kMessageInfo, "Messages")
+: BaseMainModule(GstDebugger::GStreamerData::kMessageInfo, _("Messages"))
{
}
@@ -18,14 +20,14 @@ void MessageModule::load_details(gpointer data)
{
auto msg_info = (GstDebugger::MessageInfo*)data;
- append_details_row("message type", Gst::Enums::get_name((Gst::MessageType)msg_info->type()));
+ append_details_row(_("message type"), Gst::Enums::get_name((Gst::MessageType)msg_info->type()));
{
gchar buffer[20];
snprintf(buffer, 20, "%" GST_TIME_FORMAT, GST_TIME_ARGS(msg_info->timestamp()));
- append_details_row("message timestamp", buffer);
+ append_details_row(_("message timestamp"), buffer);
}
- append_details_row("message sequence number", std::to_string(msg_info->seqnum()));
- append_details_row("object", "todo"); // todo
+ append_details_row(_("message sequence number"), std::to_string(msg_info->seqnum()));
+ append_details_row(_("object"), "todo"); // todo
auto structure = Glib::wrap(gst_structure_from_string(msg_info->structure_data().c_str(), NULL),
false);
append_details_from_structure(structure);
@@ -33,7 +35,7 @@ void MessageModule::load_details(gpointer data)
void MessageModule::data_received(const Gtk::TreeModel::Row& row, GstDebugger::GStreamerData *data)
{
- row[columns.header] = "Message of type: " +
Gst::Enums::get_name((Gst::MessageType)data->message_info().type());
+ row[columns.header] = _("Message of type: ") +
Gst::Enums::get_name((Gst::MessageType)data->message_info().type());
row[columns.data] = new GstDebugger::MessageInfo(data->message_info());
}
@@ -46,9 +48,9 @@ MessageControlModule::MessageControlModule()
types_combobox->set_model(types_model);
types_combobox->pack_start(types_model_columns.type_name);
- create_description_box("Type: ", types_combobox, 0);
+ create_description_box(_("Type: "), types_combobox, 0);
- hooks_tree_view->append_column("Type", hooks_model_columns.str1);
+ hooks_tree_view->append_column(_("Type"), hooks_model_columns.str1);
}
void MessageControlModule::add_hook()
diff --git a/src/gst-debugger/modules/query_module.cpp b/src/gst-debugger/modules/query_module.cpp
index ea4287d..1cb436d 100644
--- a/src/gst-debugger/modules/query_module.cpp
+++ b/src/gst-debugger/modules/query_module.cpp
@@ -9,8 +9,10 @@
#include "controller/controller.h"
+#include <glibmm/i18n.h>
+
QueryModule::QueryModule()
-: BaseMainModule(GstDebugger::GStreamerData::kQueryInfo, "Queries")
+: BaseMainModule(GstDebugger::GStreamerData::kQueryInfo, _("Queries"))
{
}
@@ -18,8 +20,8 @@ void QueryModule::load_details(gpointer data)
{
auto query_info = (GstDebugger::QueryInfo*)data;
- append_details_row("query type", Gst::Enums::get_name((Gst::QueryType)query_info->type()));
- append_details_row("sent from pad", query_info->pad());
+ append_details_row(_("query type"), Gst::Enums::get_name((Gst::QueryType)query_info->type()));
+ append_details_row(_("sent from pad"), query_info->pad());
auto structure = Glib::wrap(gst_structure_from_string(query_info->structure_data().c_str(), NULL),
false);
append_details_from_structure(structure);
@@ -27,7 +29,7 @@ void QueryModule::load_details(gpointer data)
void QueryModule::data_received(const Gtk::TreeModel::Row& row, GstDebugger::GStreamerData *data)
{
- row[columns.header] = "Query of type: " +
Gst::Enums::get_name((Gst::QueryType)data->query_info().type());
+ row[columns.header] = _("Query of type: ") +
Gst::Enums::get_name((Gst::QueryType)data->query_info().type());
row[columns.data] = new GstDebugger::QueryInfo(data->query_info());
}
diff --git a/src/gst-debugger/pipeline-drawer/graph_module.cpp
b/src/gst-debugger/pipeline-drawer/graph_module.cpp
index 52b61a9..dde13ba 100644
--- a/src/gst-debugger/pipeline-drawer/graph_module.cpp
+++ b/src/gst-debugger/pipeline-drawer/graph_module.cpp
@@ -11,6 +11,8 @@
#include "graphviz-plugin/graphviz-gstdebugger.h"
+#include <glibmm/i18n.h>
+
#include <boost/algorithm/string.hpp>
#include "../../common/gst-utils.h"
@@ -168,12 +170,12 @@ void GraphModule::jump_to_selected_model()
if (selected_element.empty())
{
- controller->log("cannot jump to element. element is not selected.");
+ controller->log(_("Can't get into the element. Element is not selected."));
return;
}
else if (selected_element.find(':') != std::string::npos)
{
- controller->log("cannot jump into element. selected element is a pad.");
+ controller->log(_("Can't get into the element. Selected element is a pad."));
return;
}
diff --git a/src/gst-debugger/ui/gst-debugger-dialogs.glade b/src/gst-debugger/ui/gst-debugger-dialogs.glade
index 37a5b99..a4b1271 100644
--- a/src/gst-debugger/ui/gst-debugger-dialogs.glade
+++ b/src/gst-debugger/ui/gst-debugger-dialogs.glade
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.19.0 -->
+<!-- Generated with glade 3.18.3 -->
<interface>
<requires lib="gtk+" version="3.14"/>
<object class="GtkAboutDialog" id="aboutDialog">
@@ -97,10 +97,11 @@
</child>
<child>
<object class="GtkRadioButton" id="binFormatRadioButton">
- <property name="label" translatable="yes">BIN</property>
+ <property name="label">BIN</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
+ <property name="xalign">0.5</property>
<property name="draw_indicator">True</property>
<property name="group">hexFormatRadioButton</property>
</object>
@@ -112,10 +113,11 @@
</child>
<child>
<object class="GtkRadioButton" id="octFormatRadioButton">
- <property name="label" translatable="yes">OCT</property>
+ <property name="label">OCT</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
+ <property name="xalign">0.5</property>
<property name="draw_indicator">True</property>
<property name="group">hexFormatRadioButton</property>
</object>
@@ -127,10 +129,11 @@
</child>
<child>
<object class="GtkRadioButton" id="decFormatRadioButton">
- <property name="label" translatable="yes">DEC</property>
+ <property name="label">DEC</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
+ <property name="xalign">0.5</property>
<property name="draw_indicator">True</property>
<property name="group">hexFormatRadioButton</property>
</object>
@@ -142,10 +145,11 @@
</child>
<child>
<object class="GtkRadioButton" id="hexFormatRadioButton">
- <property name="label" translatable="yes">HEX</property>
+ <property name="label">HEX</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
+ <property name="xalign">0.5</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
diff --git a/src/gst-debugger/ui_utils.cpp b/src/gst-debugger/ui_utils.cpp
index 6398a74..aacab46 100644
--- a/src/gst-debugger/ui_utils.cpp
+++ b/src/gst-debugger/ui_utils.cpp
@@ -8,6 +8,8 @@
#include "ui_utils.h"
#include "gst-debugger-resources.h"
+#include <glib/gi18n.h>
+
#include <iomanip>
#include <bitset>
@@ -19,7 +21,7 @@ std::string get_presence_str(Gst::PadPresence p)
case Gst::PAD_ALWAYS: presence = "ALWAYS"; break;
case Gst::PAD_SOMETIMES: presence = "SOMETIMES"; break;
case Gst::PAD_REQUEST: presence = "REQUEST"; break;
- default: presence = "UNKNOWN";
+ default: presence = _("UNKNOWN");
}
return presence;
}
@@ -31,7 +33,7 @@ std::string get_direction_str(Gst::PadDirection d)
{
case Gst::PAD_SINK: direction = "SINK"; break;
case Gst::PAD_SRC: direction = "SRC"; break;
- default: direction = "UNKNOWN";
+ default: direction = _("UNKNOWN");
}
return direction;
}
@@ -51,16 +53,16 @@ void display_template_info(const Glib::RefPtr<Gst::PadTemplate> &tpl,
Gtk::TreeRow row;
if (parent_row)
{
- row = APPEND_SUB_ROW("Template", tpl->get_name_template(), parent_row.get());
+ row = APPEND_SUB_ROW(_("Template"), tpl->get_name_template(), parent_row.get());
}
else
{
row = *(model->append());
- row[col_name] = "Template";
+ row[col_name] = _("Template");
row[col_value] = tpl->get_name_template();
}
- APPEND_SUB_ROW("Presence", get_presence_str(tpl->get_presence()), row);
- APPEND_SUB_ROW("Direction", get_direction_str(tpl->get_direction()), row);
+ APPEND_SUB_ROW(_("Presence"), get_presence_str(tpl->get_presence()), row);
+ APPEND_SUB_ROW(_("Direction"), get_direction_str(tpl->get_direction()), row);
row = APPEND_SUB_ROW("Caps", "", row);
display_caps(tpl->get_caps(), model, col_name, col_value, row);
}
@@ -72,7 +74,7 @@ void display_caps(const Glib::RefPtr<Gst::Caps> &caps,
std::string caps_str;
if (!caps)
- caps_str = "UNKNOWN";
+ caps_str = _("UNKNOWN");
else if (caps->is_any() || caps->empty())
caps_str = caps->to_string();
@@ -140,7 +142,7 @@ std::string buffer_data_to_string(StringDataFormat format, const std::string &bu
if (display_size < buffer.length())
{
- ss << std::endl << "more...";
+ ss << std::endl << _("more...");
}
return ss.str();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]