diff options
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | abrt.spec | 4 | ||||
-rw-r--r-- | configure.ac | 5 | ||||
-rw-r--r-- | po/ChangeLog | 0 | ||||
-rw-r--r-- | po/LINGUAS | 1 | ||||
-rw-r--r-- | po/Makefile.in.in | 429 | ||||
-rw-r--r-- | po/Makevars | 42 | ||||
-rw-r--r-- | po/POTFILES.in | 21 | ||||
-rw-r--r-- | po/POTFILES.skip | 2 | ||||
-rw-r--r-- | po/cs.po | 227 | ||||
-rw-r--r-- | src/Gui/ABRTExceptions.py | 10 | ||||
-rw-r--r-- | src/Gui/CCDBusBackend.py | 11 | ||||
-rw-r--r-- | src/Gui/CCMainWindow.py | 42 | ||||
-rw-r--r-- | src/Gui/CCReporterDialog.py | 3 | ||||
-rw-r--r-- | src/Gui/Makefile.am | 4 | ||||
-rw-r--r-- | src/Gui/PluginSettingsUI.py | 12 | ||||
-rw-r--r-- | src/Gui/SettingsDialog.py | 13 | ||||
-rw-r--r-- | src/Gui/ccgui.glade | 190 |
18 files changed, 735 insertions, 283 deletions
diff --git a/Makefile.am b/Makefile.am index b839897f..c200d489 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,3 +1,3 @@ -SUBDIRS = lib src inc +SUBDIRS = lib src inc po EXTRA_DIST = doc/CodingStyle abrt.spec @@ -21,6 +21,7 @@ BuildRequires: libnotify-devel BuildRequires: xmlrpc-c-devel BuildRequires: file-devel BuildRequires: python-devel +BuildRequires: gettext BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: %{name}-libs = %{version}-%{release} @@ -190,6 +191,7 @@ make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT mandir=%{_mandir} +%find_lang %{name} #rm -rf $RPM_BUILD_ROOT/%{_libdir}/lib*.la #rm -rf $RPM_BUILD_ROOT/%{_libdir}/%{name}/lib*.la @@ -223,7 +225,7 @@ fi %postun libs -p /sbin/ldconfig -%files +%files -f %{name}.lang %defattr(-,root,root,-) %doc README COPYING %{_sbindir}/%{name} diff --git a/configure.ac b/configure.ac index a010b453..258147f9 100644 --- a/configure.ac +++ b/configure.ac @@ -4,9 +4,11 @@ AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AC_DISABLE_STATIC AC_PROG_LIBTOOL - AC_PROG_CXX +AM_GNU_GETTEXT([external]) +AM_GNU_GETTEXT_VERSION([0.17]) + AM_PATH_PYTHON if test -z "$PYTHON"; then echo "*** Essential program python not found" 1>&2 @@ -77,6 +79,7 @@ AC_CONFIG_FILES([ src/Gui/Makefile src/CLI/Makefile inc/Makefile + po/Makefile.in ]) AC_OUTPUT
\ No newline at end of file diff --git a/po/ChangeLog b/po/ChangeLog new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/po/ChangeLog diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 00000000..5a08b2b4 --- /dev/null +++ b/po/LINGUAS @@ -0,0 +1 @@ +cs
\ No newline at end of file diff --git a/po/Makefile.in.in b/po/Makefile.in.in new file mode 100644 index 00000000..fecf500f --- /dev/null +++ b/po/Makefile.in.in @@ -0,0 +1,429 @@ +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-1997, 2000-2007 by Ulrich Drepper <drepper@gnu.ai.mit.edu> +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU General Public +# License but which still want to provide support for the GNU gettext +# functionality. +# Please note that the actual code of GNU gettext is covered by the GNU +# General Public License and is *not* in the public domain. +# +# Origin: gettext-0.17 +GETTEXT_MACRO_VERSION = 0.17 + +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + +SHELL = /bin/sh +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ +gettextsrcdir = $(datadir)/gettext/po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +# We use $(mkdir_p). +# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as +# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, +# @install_sh@ does not start with $(SHELL), so we add it. +# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined +# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake +# versions, $(mkinstalldirs) and $(install_sh) are unused. +mkinstalldirs = $(SHELL) @install_sh@ -d +install_sh = $(SHELL) @install_sh@ +MKDIR_P = @MKDIR_P@ +mkdir_p = @mkdir_p@ + +GMSGFMT_ = @GMSGFMT@ +GMSGFMT_no = @GMSGFMT@ +GMSGFMT_yes = @GMSGFMT_015@ +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +MSGFMT_ = @MSGFMT@ +MSGFMT_no = @MSGFMT@ +MSGFMT_yes = @MSGFMT_015@ +MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = @XGETTEXT@ +XGETTEXT_no = @XGETTEXT@ +XGETTEXT_yes = @XGETTEXT_015@ +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) +MSGMERGE = msgmerge +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +UPDATEPOFILES = @UPDATEPOFILES@ +DUMMYPOFILES = @DUMMYPOFILES@ +DISTFILES.common = Makefile.in.in remove-potcdate.sin \ +$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) + +POTFILES = \ + +CATALOGS = @CATALOGS@ + +# Makevars gets inserted here. (Don't remove this line!) + +.SUFFIXES: +.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update + +.po.mo: + @echo "$(MSGFMT) -c -o $@ $<"; \ + $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ + +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ + cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all: check-macro-version all-@USE_NLS@ + +all-yes: stamp-po +all-no: + +# Ensure that the gettext macros and this Makefile.in.in are in sync. +check-macro-version: + @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ + || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ + exit 1; \ + } + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, stamp-po is a nop (i.e. a phony target). + +# stamp-po is a timestamp denoting the last time at which the CATALOGS have +# been loosely updated. Its purpose is that when a developer or translator +# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, +# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent +# invocations of "make" will do nothing. This timestamp would not be necessary +# if updating the $(CATALOGS) would always touch them; however, the rule for +# $(POFILES) has been designed to not touch files that don't need to be +# changed. +stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch stamp-po" && \ + echo timestamp > stamp-poT && \ + mv stamp-poT stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed + if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ + package_gnu='GNU '; \ + else \ + package_gnu=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_gnu}@PACKAGE@" \ + --package-version='@VERSION@' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +install-data-no: all +install-data-yes: all + $(mkdir_p) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + $(mkdir_p) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +check: all + +info dvi ps pdf html tags TAGS ctags CTAGS ID: + +mostlyclean: + rm -f remove-potcdate.sed + rm -f stamp-poT + rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f stamp-po $(GMOFILES) + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: + $(MAKE) update-po + @$(MAKE) dist2 +# This is a separate target because 'update-po' must be executed before. +dist2: stamp-po $(DISTFILES) + dists="$(DISTFILES)"; \ + if test "$(PACKAGE)" = "gettext-tools"; then \ + dists="$$dists Makevars.template"; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + dists="$$dists $(DOMAIN).pot stamp-po"; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ + for file in $$dists; do \ + if test -f $$file; then \ + cp -p $$file $(distdir) || exit 1; \ + else \ + cp -p $(srcdir)/$$file $(distdir) || exit 1; \ + fi; \ + done + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: + +Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ + cd $(top_builddir) \ + && $(SHELL) ./config.status $(subdir)/$@.in po-directories + +force: + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/po/Makevars b/po/Makevars new file mode 100644 index 00000000..4b33f8b0 --- /dev/null +++ b/po/Makevars @@ -0,0 +1,42 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --from-code=UTF-8 + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Free Software Foundation, Inc. + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = jmoskovc@redhat.com + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 00000000..833b1d42 --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,21 @@ +# [encoding: UTF-8] +# List of source files containing translatable strings. +# Please keep this file sorted alphabetically. +src/Gui/ABRTExceptions.py +src/Gui/ABRTPlugin.py +src/Gui/abrt_utils.py +src/Gui/CCDBusBackend.py +src/Gui/CCDumpList.py +src/Gui/CCDump.py +src/Gui/CC_gui_functions.py +src/Gui/ccgui.glade +src/Gui/CCMainWindow.py +src/Gui/CCReporterDialog.py +src/Gui/CCReport.py +src/Gui/CellRenderers.py +# /src/dialogs.GtkBuilder +src/Gui/PluginList.py +src/Gui/PluginSettingsUI.py +src/Gui/report.glade +src/Gui/SettingsDialog.py +# /src/settings.GtkBuilder diff --git a/po/POTFILES.skip b/po/POTFILES.skip new file mode 100644 index 00000000..bb8a3b53 --- /dev/null +++ b/po/POTFILES.skip @@ -0,0 +1,2 @@ +contrib/command-not-found/pk-tools-common.c + @@ -1,70 +1,65 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the ABRT package. -# FIRST AUTHOR <jmoskovc@redhat.com>, 2009. +# 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: 2009-08-25 16:19+0200\n" -"PO-Revision-Date: 2009-08-25 16:26+ZONE\n" -"Last-Translator: Jiri Moskovcak <jmoskovc@redhat.com>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" +"Project-Id-Version: ABRT 0.7.1.1\n" +"Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" +"POT-Creation-Date: 2009-08-26 10:19+0200\n" +"PO-Revision-Date: 2009-08-25 22:04+ZONE\n" +"Last-Translator: JIRI MOSKOVCAK <jmoskovc@redhat.com>\n" +"Language-Team: CZECH <ll@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ccgui.glade:6 ccgui.glade:296 -msgid "Automatic Bug Reporting Tool" +#: src/Gui/ABRTExceptions.py:4 +msgid "Another client is already running, trying to wake it." msgstr "" -#: ccgui.glade:17 ccgui.glade:308 -msgid "_File" -msgstr "_Soubor" - -#: ccgui.glade:37 ccgui.glade:328 -msgid "_Edit" +#: src/Gui/ABRTExceptions.py:10 +msgid "Got unexpected data from daemon (is the database properly updated?)." msgstr "" -#: ccgui.glade:57 ccgui.glade:348 -msgid "_Help" -msgstr "_Nápověda" - -#: ccgui.glade:87 ccgui.glade:378 -msgid "Delete" -msgstr "Smazat" +#: src/Gui/CCDBusBackend.py:135 +msgid "Can't connect to dbus" +msgstr "" -#: ccgui.glade:99 ccgui.glade:390 -msgid "Report" -msgstr "Reportovat" +#: src/Gui/CCDBusBackend.py:139 src/Gui/CCDBusBackend.py:157 +msgid "Please check if abrt daemon is running." +msgstr "" +"Nepodařilo se připojit k démonovi, zkontrolujte prosím, zda služba abrt běží." -#: ccgui.glade:146 ccgui.glade:437 -msgid "<span color=\"white\">Description</span>" -msgstr "<span color=\"white\">Popis</span>" +#: src/Gui/CCDBusBackend.py:169 +msgid "" +"Daemon did't return valid report info\n" +"Debuginfo is missing?" +msgstr "" -#: ccgui.glade:196 +#: src/Gui/ccgui.glade:6 msgid "Please wait.." -msgstr "Čekejte prosím..." +msgstr "Prosím čekejte.." -#: ccgui.glade:206 +#: src/Gui/ccgui.glade:16 msgid "Working..." -msgstr "Pracuji..." +msgstr "Pracuji.." -#: ccgui.glade:239 +#: src/Gui/ccgui.glade:49 msgid " " msgstr "" -#: ccgui.glade:258 +#: src/Gui/ccgui.glade:68 msgid "About ABRT" -msgstr "O ABRTu" +msgstr "O aplikaci ABRT" -#: ccgui.glade:264 +#: src/Gui/ccgui.glade:74 msgid "(C) 2009 Red Hat, Inc." msgstr "" -#: ccgui.glade:265 +#: src/Gui/ccgui.glade:75 msgid "" "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 " @@ -80,6 +75,158 @@ msgid "" "this program. If not, see <http://www.gnu.org/licenses/>." msgstr "" -#: ccgui.glade:479 +#: src/Gui/ccgui.glade:106 +msgid "Automatic Bug Reporting Tool" +msgstr "" + +#: src/Gui/ccgui.glade:118 +msgid "_File" +msgstr "_Soubor" + +#: src/Gui/ccgui.glade:138 +msgid "_Edit" +msgstr "_Upravit" + +#: src/Gui/ccgui.glade:158 +msgid "_Help" +msgstr "_Pomoc" + +#: src/Gui/ccgui.glade:188 +msgid "Delete" +msgstr "Smazat" + +#: src/Gui/ccgui.glade:200 src/Gui/report.glade:7 src/Gui/report.glade:24 +msgid "Report" +msgstr "Reportovat" + +#: src/Gui/ccgui.glade:247 +msgid "<span color=\"white\">Description</span>" +msgstr "<span color=\"white\">Popis balíčku</span>" + +#: src/Gui/ccgui.glade:289 src/Gui/CCMainWindow.py:214 msgid "<b>Not reported!</b>" -msgstr "<b>Nereportováno!</b>" +msgstr "<b>Nereportováno</b>" + +#: src/Gui/CCMainWindow.py:86 +msgid "Package" +msgstr "Balíček" + +#: src/Gui/CCMainWindow.py:87 +msgid "Application" +msgstr "Aplikace" + +#: src/Gui/CCMainWindow.py:88 +msgid "Date" +msgstr "Datum" + +#: src/Gui/CCMainWindow.py:89 +msgid "Crash Rate" +msgstr "Počet incidentů" + +#: src/Gui/CCMainWindow.py:91 +msgid "User" +msgstr "Uživatel" + +#: src/Gui/CCMainWindow.py:156 +#, python-format +msgid "" +"Unable to get report!\n" +"%s" +msgstr "" +"Nepodařilo se ziskat report\n" +"%s" + +#: src/Gui/CCMainWindow.py:173 +#, python-format +msgid "" +"Error while loading the dumplist, please check if abrt daemon is running\n" +" %s" +msgstr "" + +#: src/Gui/CCMainWindow.py:206 +msgid "<b>This crash has been reported, you can find the report(s) at:</b>\n" +msgstr "<b>Tento pád již byl reportován, záznam můžete nalézt na:</b>\n" + +#: src/Gui/CCMainWindow.py:266 +msgid "" +"Unable to get report!\n" +"Debuginfo is missing?" +msgstr "" + +#: src/Gui/CCMainWindow.py:278 +#, python-format +msgid "" +"Reporting failed!\n" +"%s" +msgstr "" +"Vytváření reportu se nezdařilo\n" +"%s" + +#: src/Gui/CCMainWindow.py:306 +#, python-format +msgid "Error getting the report: %s" +msgstr "" + +#: src/Gui/CCReporterDialog.py:103 +msgid "Brief description how to reproduce this or what you did..." +msgstr "Zde stručně popište, jak došlo k pádu..." + +#: src/Gui/PluginSettingsUI.py:17 +msgid "Can't find PluginDialog widget in UI description!" +msgstr "Widget PluginDialog nenalezen!" + +#: src/Gui/PluginSettingsUI.py:21 +#, python-format +msgid "No UI for plugin %s" +msgstr "" + +#: src/Gui/PluginSettingsUI.py:38 src/Gui/PluginSettingsUI.py:64 +msgid "combo box is not implemented" +msgstr "" + +#: src/Gui/PluginSettingsUI.py:47 +msgid "Nothing to hydrate!" +msgstr "" + +#: src/Gui/report.glade:64 +msgid "Comment" +msgstr "Komentář" + +#: src/Gui/report.glade:103 +msgid "gtk-cancel" +msgstr "" + +#: src/Gui/report.glade:118 +msgid "Send" +msgstr "Poslat" + +#: src/Gui/SettingsDialog.py:22 +msgid "Can't load gui description for SettingsDialog!" +msgstr "" + +#: src/Gui/SettingsDialog.py:33 +msgid "Name" +msgstr "Jméno" + +#: src/Gui/SettingsDialog.py:47 +msgid "Enabled" +msgstr "Aktivní" + +#: src/Gui/SettingsDialog.py:106 +#, python-format +msgid "" +"Error while opening plugin settings UI: \n" +"\n" +"%s" +msgstr "" + +#: src/Gui/SettingsDialog.py:116 +#, python-format +msgid "" +"Can't save plugin settings:\n" +" %s" +msgstr "" + +#: src/Gui/SettingsDialog.py:122 +msgid "unknown response from settings dialog" +msgstr "" diff --git a/src/Gui/ABRTExceptions.py b/src/Gui/ABRTExceptions.py index 5f759dd2..9b1aa32c 100644 --- a/src/Gui/ABRTExceptions.py +++ b/src/Gui/ABRTExceptions.py @@ -1,6 +1,14 @@ +from abrt_utils import _ class IsRunning(Exception): def __init__(self): - self.what = "Another client is already running, trying to wake it." + self.what = _("Another client is already running, trying to wake it.") + def __str__(self): + return self.what + +class WrongData(Exception): + def __init__(self): + self.what = _("Got unexpected data from daemon (is the database properly updated?).") + def __str__(self): return self.what diff --git a/src/Gui/CCDBusBackend.py b/src/Gui/CCDBusBackend.py index 42b4d59a..5af5c540 100644 --- a/src/Gui/CCDBusBackend.py +++ b/src/Gui/CCDBusBackend.py @@ -6,6 +6,7 @@ from dbus.mainloop.glib import DBusGMainLoop import gtk from dbus.exceptions import * import ABRTExceptions +from abrt_utils import _ CC_NAME = 'com.redhat.abrt' CC_IFACE = 'com.redhat.abrt' @@ -131,11 +132,11 @@ class DBusManager(gobject.GObject): self.bus.add_signal_receiver(self.owner_changed_cb,"NameOwnerChanged", dbus_interface="org.freedesktop.DBus") self.uniq_name = self.bus.get_unique_name() if not self.bus: - raise Exception("Can't connect to dbus") + raise Exception(_("Can't connect to dbus")) if self.bus.name_has_owner(CC_NAME): self.proxy = self.bus.get_object(CC_IFACE, CC_PATH) else: - raise Exception("Please check if abrt daemon is running.") + raise Exception(_("Please check if abrt daemon is running.")) if self.proxy: self.cc = dbus.Interface(self.proxy, dbus_interface=CC_IFACE) @@ -153,7 +154,7 @@ class DBusManager(gobject.GObject): # watch for job-done signals self.acconnection = self.proxy.connect_to_signal("JobDone",self.jobdone_cb,dbus_interface=CC_IFACE) else: - raise Exception("Please check if abrt daemon is running.") + raise Exception(_("Please check if abrt daemon is running.")) def addJob(self, job_id): pass @@ -165,7 +166,7 @@ class DBusManager(gobject.GObject): if dump: self.emit("analyze-complete", dump) else: - self.emit("abrt-error","Daemon did't return valid report info\nDebuginfo is missing?") + self.emit("abrt-error",_("Daemon did't return valid report info\nDebuginfo is missing?")) def report_done(self, result): self.emit("report-done", result) @@ -182,7 +183,7 @@ class DBusManager(gobject.GObject): def Report(self,report): # map < Plguin_name vec <status, message> > self.cc.Report(report, reply_handler=self.report_done, error_handler=self.error_handler_cb, timeout=60) - + def DeleteDebugDump(self,UUID): return self.cc.DeleteDebugDump(UUID) diff --git a/src/Gui/CCMainWindow.py b/src/Gui/CCMainWindow.py index d36eb734..d1eaff73 100644 --- a/src/Gui/CCMainWindow.py +++ b/src/Gui/CCMainWindow.py @@ -13,8 +13,8 @@ from CCDumpList import getDumpList, DumpList from CCReporterDialog import ReporterDialog from SettingsDialog import SettingsDialog from CCReport import Report -from exception import installExceptionHandler, handleMyException import ABRTExceptions +from abrt_utils import _ try: import rpm @@ -22,22 +22,6 @@ except Exception, ex: rpm = None -PROGNAME = "abrt" -import locale -try: - locale.setlocale (locale.LC_ALL, "") -except locale.Error, e: - import os - os.environ['LC_ALL'] = 'C' - locale.setlocale (locale.LC_ALL, "") -import gettext -gettext.bind_textdomain_codeset(PROGNAME,locale.nl_langinfo(locale.CODESET)) -gettext.bindtextdomain(PROGNAME, '/usr/share/locale') -gettext.textdomain(PROGNAME) -_ = lambda x: gettext.lgettext(x) - -#installExceptionHandler("abrt-gui", "0.0.7") - class MainWindow(): ccdaemon = None def __init__(self): @@ -99,12 +83,12 @@ class MainWindow(): icon_column.set_attributes(icon_column.cell, pixbuf=(n-1), cell_background_set=5) # =============================================== columns = [None]*4 - columns[0] = gtk.TreeViewColumn('Package') - columns[1] = gtk.TreeViewColumn('Application') - columns[2] = gtk.TreeViewColumn('Date') - columns[3] = gtk.TreeViewColumn('Crash Rate') + columns[0] = gtk.TreeViewColumn(_("Package")) + columns[1] = gtk.TreeViewColumn(_("Application")) + columns[2] = gtk.TreeViewColumn(_("Date")) + columns[3] = gtk.TreeViewColumn(_("Crash Rate")) if os.getuid() == 0: - column = gtk.TreeViewColumn('User') + column = gtk.TreeViewColumn(_("User")) columns.append(column) # create list for column in columns: @@ -169,7 +153,7 @@ class MainWindow(): self.pBarWindow.hide() except Exception, e: pass - gui_error_message("Unable to get report!\n%s" % message,parent_dialog=self.window) + gui_error_message(_("Unable to get report!\n%s" % message),parent_dialog=self.window) def update_cb(self, daemon, message): message = message.replace('\n',' ') @@ -186,7 +170,7 @@ class MainWindow(): try: dumplist = getDumpList(self.ccdaemon, refresh=True) except Exception, e: - gui_error_message("Error while loading the dumplist, please check if abrt daemon is running\n %s" % e) + gui_error_message(_("Error while loading the dumplist, please check if abrt daemon is running\n %s" % e)) for entry in dumplist: try: icon = get_icon_for_package(self.theme, entry.getPackageName()) @@ -219,7 +203,7 @@ class MainWindow(): dump = dumpsListStore.get_value(dumpsListStore.get_iter(path[0]), dumpsListStore.get_n_columns()-1) #move this to Dump class if dump.isReported(): - report_label = "<b>This crash has been reported, you can find the report(s) at:</b>\n" + report_label = _("<b>This crash has been reported, you can find the report(s) at:</b>\n") for message in dump.getMessage().split('\n'): if message: if "http" in message or "file:///" in message: @@ -227,7 +211,7 @@ class MainWindow(): report_label += "%s\n" % message self.wTree.get_widget("lReported").set_markup(report_label) else: - self.wTree.get_widget("lReported").set_markup("<b>Not reported!</b>") + self.wTree.get_widget("lReported").set_markup(_("<b>Not reported!</b>")) lPackage = self.wTree.get_widget("lPackage") self.wTree.get_widget("lDescription").set_label(dump.getDescription()) @@ -279,7 +263,7 @@ class MainWindow(): # except Exception, e: # print e if not report: - gui_error_message("Unable to get report!\nDebuginfo is missing?") + gui_error_message(_("Unable to get report!\nDebuginfo is missing?")) return report_dialog = ReporterDialog(report) result = report_dialog.run() @@ -291,7 +275,7 @@ class MainWindow(): self.ccdaemon.Report(result) #self.hydrate() except Exception, e: - gui_error_message("Reporting failed!\n%s" % e) + gui_error_message(_("Reporting failed!\n%s" % e)) #ret = gui_question_dialog("GUI: Analyze for package %s crash with UUID %s is complete" % (entry.Package, UUID),self.window) #if ret == gtk.RESPONSE_YES: # self.hydrate() @@ -319,7 +303,7 @@ class MainWindow(): if self.timer: gobject.source_remove(self.timer) self.pBarWindow.hide() - gui_error_message("Error getting the report: %s" % e) + gui_error_message(_("Error getting the report: %s" % e)) return def sw_delete_event_cb(self, widget, event, data=None): diff --git a/src/Gui/CCReporterDialog.py b/src/Gui/CCReporterDialog.py index b83ac61c..bae5cf72 100644 --- a/src/Gui/CCReporterDialog.py +++ b/src/Gui/CCReporterDialog.py @@ -9,6 +9,7 @@ from CC_gui_functions import * from CCReport import Report import CellRenderers #from CCDumpList import getDumpList, DumpList +from abrt_utils import _ # FIXME - create method or smth that returns type|editable|content TYPE = 0 @@ -99,7 +100,7 @@ class ReporterDialog(): for item in self.report: if item == "Comment": buff = gtk.TextBuffer() - buff.set_text("Brief description how to reproduce this or what you did...") + buff.set_text(_("Brief description how to reproduce this or what you did...")) self.tvComment.set_buffer(buff) continue if self.report[item][TYPE] != 's': diff --git a/src/Gui/Makefile.am b/src/Gui/Makefile.am index fd48c7f2..6435c1f0 100644 --- a/src/Gui/Makefile.am +++ b/src/Gui/Makefile.am @@ -3,8 +3,8 @@ bin_SCRIPTS = abrt-gui PYTHON_FILES = CCDBusBackend.py CCDumpList.py CCDump.py CC_gui_functions.py \ - CCReporterDialog.py CCReport.py \ - CCMainWindow.py exception.py CellRenderers.py ABRTExceptions.py \ + CCReporterDialog.py CCReport.py abrt_utils.py \ + CCMainWindow.py CellRenderers.py ABRTExceptions.py \ SettingsDialog.py ABRTPlugin.py PluginList.py PluginSettingsUI.py GLADE_FILES = ccgui.glade report.glade settings.GtkBuilder dialogs.GtkBuilder diff --git a/src/Gui/PluginSettingsUI.py b/src/Gui/PluginSettingsUI.py index dfcda151..02c03171 100644 --- a/src/Gui/PluginSettingsUI.py +++ b/src/Gui/PluginSettingsUI.py @@ -1,5 +1,5 @@ import gtk - +from abrt_utils import _ class PluginSettingsUI(gtk.Dialog): def __init__(self, pluginfo): #print "Init PluginSettingsUI" @@ -14,11 +14,11 @@ class PluginSettingsUI(gtk.Dialog): self.plugin_gui.add_from_file(pluginfo.getGUI()) self.dialog = self.plugin_gui.get_object("PluginDialog") if not self.dialog: - raise Exception("Can't find PluginDialog widget in UI description!") + raise Exception(_("Can't find PluginDialog widget in UI description!")) self.dialog.set_title("%s" % pluginfo.getName()) else: # we shouldn't get here, but just to be safe - no_ui_label = gtk.Label("No UI for plugin %s" % pluginfo) + no_ui_label = gtk.Label(_("No UI for plugin %s" % pluginfo)) self.add(no_ui_label) no_ui_label.show() @@ -35,7 +35,7 @@ class PluginSettingsUI(gtk.Dialog): elif type(widget) == gtk.CheckButton: widget.set_active(value == "yes") elif type(widget) == gtk.ComboBox: - print "combo box is not implemented" + print _("combo box is not implemented") else: #print "Plugin %s has no configuration." % self.plugin_name pass @@ -44,7 +44,7 @@ class PluginSettingsUI(gtk.Dialog): pass else: - print "Nothing to hydrate!" + print _("Nothing to hydrate!") def dehydrate(self): #print "dehydrating %s" % self.pluginfo.getName() @@ -61,7 +61,7 @@ class PluginSettingsUI(gtk.Dialog): else: self.Settings[key] = "no" elif type(widget) == gtk.ComboBox: - print "combo box is not implemented" + print _("combo box is not implemented") def destroy(self): self.dialog.destroy() diff --git a/src/Gui/SettingsDialog.py b/src/Gui/SettingsDialog.py index a16a776b..33a89234 100644 --- a/src/Gui/SettingsDialog.py +++ b/src/Gui/SettingsDialog.py @@ -4,6 +4,7 @@ from PluginList import getPluginInfoList, PluginInfoList from CC_gui_functions import * from PluginSettingsUI import PluginSettingsUI from ABRTPlugin import PluginSettings +from abrt_utils import _ class SettingsDialog: def __init__(self, parent, daemon): @@ -18,7 +19,7 @@ class SettingsDialog: print e self.window = self.builder.get_object("wSettings") if not self.window: - raise Exception("Can't load gui description for SettingsDialog!") + raise Exception(_("Can't load gui description for SettingsDialog!")) #self.window.set_parent(parent) self.pluginlist = self.builder.get_object("tvSettings") @@ -29,7 +30,7 @@ class SettingsDialog: self.pluginlist.set_model(self.modelfilter) # =============================================== columns = [None]*1 - columns[0] = gtk.TreeViewColumn('Name') + columns[0] = gtk.TreeViewColumn(_("Name")) # create list for column in columns: @@ -43,7 +44,7 @@ class SettingsDialog: toggle_renderer = gtk.CellRendererToggle() toggle_renderer.set_property('activatable', True) toggle_renderer.connect( 'toggled', self.on_enabled_toggled, self.pluginsListStore ) - column = gtk.TreeViewColumn('Enabled', toggle_renderer) + column = gtk.TreeViewColumn(_('Enabled'), toggle_renderer) column.add_attribute( toggle_renderer, "active", 1) self.pluginlist.insert_column(column, 0) @@ -102,7 +103,7 @@ class SettingsDialog: try: ui = PluginSettingsUI(pluginfo) except Exception, e: - gui_error_message("Error while opening plugin settings UI: \n\n%s" % e) + gui_error_message(_("Error while opening plugin settings UI: \n\n%s" % e)) return ui.hydrate() response = ui.run() @@ -112,13 +113,13 @@ class SettingsDialog: try: self.ccdaemon.setPluginSettings(pluginfo.getName(), pluginfo.Settings) except Exception, e: - gui_error_message("Can't save plugin settings:\n %s", e) + gui_error_message(_("Can't save plugin settings:\n %s", e)) #for key, val in pluginfo.Settings.iteritems(): # print "%s:%s" % (key, val) elif response == gtk.RESPONSE_CANCEL: pass else: - print "unknown response from settings dialog" + print _("unknown response from settings dialog") ui.destroy() def on_bClose_clicked(self, button): diff --git a/src/Gui/ccgui.glade b/src/Gui/ccgui.glade index 80655ff5..7b8dd244 100644 --- a/src/Gui/ccgui.glade +++ b/src/Gui/ccgui.glade @@ -2,196 +2,6 @@ <glade-interface> <!-- interface-requires gtk+ 2.14 --> <!-- interface-naming-policy toplevel-contextual --> - <widget class="GtkWindow" id="main_window2"> - <property name="title" translatable="yes">Automatic Bug Reporting Tool</property> - <property name="window_position">center</property> - <child> - <widget class="GtkVBox" id="vbox4"> - <property name="visible">True</property> - <child> - <widget class="GtkMenuBar" id="menubar2"> - <property name="visible">True</property> - <child> - <widget class="GtkMenuItem" id="menuitem5"> - <property name="visible">True</property> - <property name="label" translatable="yes">_File</property> - <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu4"> - <property name="visible">True</property> - <child> - <widget class="GtkImageMenuItem" id="miQuit"> - <property name="label">gtk-quit</property> - <property name="visible">True</property> - <property name="use_underline">True</property> - <property name="use_stock">True</property> - </widget> - </child> - </widget> - </child> - </widget> - </child> - <child> - <widget class="GtkMenuItem" id="edit"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Edit</property> - <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu1"> - <property name="visible">True</property> - <child> - <widget class="GtkImageMenuItem" id="miPreferences"> - <property name="label">gtk-preferences</property> - <property name="visible">True</property> - <property name="use_underline">True</property> - <property name="use_stock">True</property> - </widget> - </child> - </widget> - </child> - </widget> - </child> - <child> - <widget class="GtkMenuItem" id="menuitem8"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Help</property> - <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu6"> - <property name="visible">True</property> - <child> - <widget class="GtkImageMenuItem" id="miAbout"> - <property name="label">gtk-about</property> - <property name="visible">True</property> - <property name="use_underline">True</property> - <property name="use_stock">True</property> - </widget> - </child> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="expand">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <widget class="GtkToolbar" id="toolbar1"> - <property name="visible">True</property> - <child> - <widget class="GtkToolButton" id="bDelete"> - <property name="visible">True</property> - <property name="sensitive">False</property> - <property name="label" translatable="yes">Delete</property> - <property name="stock_id">gtk-delete</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - <child> - <widget class="GtkToolButton" id="bReport"> - <property name="visible">True</property> - <property name="sensitive">False</property> - <property name="label" translatable="yes">Report</property> - <property name="stock_id">gtk-save</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - <child> - <widget class="GtkSeparatorToolItem" id="toolbutton1"> - <property name="visible">True</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - </widget> - <packing> - <property name="expand">False</property> - <property name="position">1</property> - </packing> - </child> - <child> - <widget class="GtkScrolledWindow" id="swDumps"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">automatic</property> - <property name="vscrollbar_policy">automatic</property> - <child> - <widget class="GtkTreeView" id="tvDumps"> - <property name="visible">True</property> - <property name="can_focus">True</property> - </widget> - </child> - </widget> - <packing> - <property name="position">2</property> - </packing> - </child> - <child> - <widget class="GtkEventBox" id="evDescription"> - <property name="visible">True</property> - <child> - <widget class="GtkLabel" id="Description"> - <property name="visible">True</property> - <property name="xalign">0.05000000074505806</property> - <property name="label" translatable="yes"><span color="white">Description</span></property> - <property name="use_markup">True</property> - </widget> - </child> - </widget> - <packing> - <property name="expand">False</property> - <property name="position">3</property> - </packing> - </child> - <child> - <widget class="GtkScrolledWindow" id="swDesscription"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">automatic</property> - <property name="vscrollbar_policy">automatic</property> - <child> - <widget class="GtkViewport" id="vDescription"> - <property name="visible">True</property> - <property name="resize_mode">queue</property> - <child> - <widget class="GtkLabel" id="lDescription"> - <property name="visible">True</property> - <property name="xalign">0.10000000149011612</property> - <property name="yalign">0.20000000298023224</property> - <property name="justify">fill</property> - <property name="selectable">True</property> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="position">4</property> - </packing> - </child> - <child> - <widget class="GtkStatusbar" id="statusbar1"> - <property name="visible">True</property> - <property name="spacing">2</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="position">5</property> - </packing> - </child> - </widget> - </child> - </widget> <widget class="GtkWindow" id="pBarWindow"> <property name="title" translatable="yes">Please wait..</property> <property name="modal">True</property> |