Package: debgtd Version: 1.2.1-1 Severity: wishlist Tags: patch Hi,
Please add support for gettext. A patch is attached, although I think some of DebGTD's strings could do with some attention before anyone attempts a serious translation. Regards, -- Chris Lamb, UK [EMAIL PROTECTED] GPG: 0x634F9A20
diff -urNad debgtd-1.2.1.orig/debgtd/gui.py debgtd-1.2.1/debgtd/gui.py --- debgtd-1.2.1.orig/debgtd/gui.py 2008-08-09 22:28:39.000000000 +0100 +++ debgtd-1.2.1/debgtd/gui.py 2008-08-09 22:33:20.000000000 +0100 @@ -19,6 +19,10 @@ import gtk.glade import os +import locale +import gettext +import __builtin__ + import debgtd from debgtd.controller import Controller @@ -33,10 +37,20 @@ if os.path.isfile("debgtd.glade"): self.gladefile = "debgtd.glade" + locale_dir = ['mo'] elif os.path.isfile("/usr/local/share/debgtd/debgtd.glade"): self.gladefile = "/usr/local/share/debgtd/debgtd.glade" + locale_dir = ['/usr/local/share/debgtd'] else: self.gladefile = "/usr/share/debgtd/debgtd.glade" + locale_dir = [] + + locale.setlocale(locale.LC_ALL, '') + for module in gettext, gtk.glade: + module.bindtextdomain('debgtd', *locale_dir) + module.textdomain('debgtd') + + __builtin__._ = gettext.gettext self.wTree = gtk.glade.XML(self.gladefile,"window1") @@ -73,8 +87,8 @@ ignored = len(model.get_ignored_bugs()) interested = total - sleeping - ignored - label.set_text("%d bugs (%d sleeping; %d ignored)" % \ - (interested,sleeping,ignored)) + label.set_text(_("%(interested)d bugs (%(sleeping)d sleeping; %(ignored)d ignored)") % \ + ({'interested': interested, 'sleeping': sleeping, 'ignored': ignored})) def populate_treeview(self): model = self.controller.model @@ -82,20 +96,20 @@ treestore = gtk.TreeStore(int,str,str,str) tree.set_model(treestore) - column = gtk.TreeViewColumn('id') + column = gtk.TreeViewColumn(_('id')) tree.append_column(column) cell = gtk.CellRendererText() column.pack_start(cell, False) column.add_attribute(cell, "text", 0) - column = gtk.TreeViewColumn('package') + column = gtk.TreeViewColumn(_('package')) tree.append_column(column) cell = gtk.CellRendererText() column.pack_start(cell, False) column.add_attribute(cell, "text", 1) column.set_sort_column_id(1) - column = gtk.TreeViewColumn('severity') + column = gtk.TreeViewColumn(_('severity')) tree.append_column(column) cell = gtk.CellRendererText() column.pack_start(cell,False) @@ -103,7 +117,7 @@ column.set_sort_column_id(2) treestore.set_sort_func(2, self.severity_sort_cb) - column = gtk.TreeViewColumn('subject') + column = gtk.TreeViewColumn(_('subject')) tree.append_column(column) cell = gtk.CellRendererText() column.pack_start(cell,False) @@ -142,7 +156,7 @@ def bug_added(self, bug): treestore = self.tree.get_model() - self.wTree.get_widget("refresh_data_button").set_label("Update") + self.wTree.get_widget("refresh_data_button").set_label(_("Update")) if not bug.sleeping() and not bug.ignoring() and not bug.is_done(): treestore.append(None, [bug['id'], bug['package'], @@ -162,7 +176,7 @@ def clear(self): treestore = self.tree.get_model() - self.wTree.get_widget("refresh_data_button").set_label("Fetch") + self.wTree.get_widget("refresh_data_button").set_label(_("Fetch")) treestore.clear() # XXX: should clear the user too? diff -urNad debgtd-1.2.1.orig/debgtd.glade debgtd-1.2.1/debgtd.glade --- debgtd-1.2.1.orig/debgtd.glade 2008-08-09 22:28:39.000000000 +0100 +++ debgtd-1.2.1/debgtd.glade 2008-08-09 22:33:20.000000000 +0100 @@ -20,7 +20,7 @@ <child> <widget class="GtkImageMenuItem" id="quit_menu_item"> <property name="visible">True</property> - <property name="label" translatable="yes">gtk-quit</property> + <property name="label">gtk-quit</property> <property name="use_underline">True</property> <property name="use_stock">True</property> </widget> diff -urNad debgtd-1.2.1.orig/debian/control debgtd-1.2.1/debian/control --- debgtd-1.2.1.orig/debian/control 2008-08-09 22:28:39.000000000 +0100 +++ debgtd-1.2.1/debian/control 2008-08-09 22:33:20.000000000 +0100 @@ -6,7 +6,7 @@ Standards-Version: 3.8.0 Homepage: http://jmtd.net/computing/software/debgtd/ Vcs-Git: http://alcopop.org/code/debian/gtd/git -Build-Depends: debhelper (>= 7), python-support (>= 0.8.1), python (>= 2.5), m4 +Build-Depends: debhelper (>= 7), python-support (>= 0.8.1), python (>= 2.5), m4, gettext Package: debgtd Architecture: all diff -urNad debgtd-1.2.1.orig/Makefile debgtd-1.2.1/Makefile --- debgtd-1.2.1.orig/Makefile 2008-08-09 22:28:39.000000000 +0100 +++ debgtd-1.2.1/Makefile 2008-08-09 22:33:20.000000000 +0100 @@ -12,7 +12,10 @@ debgtd.desktop: debgtd.desktop.in m4 -DPREFIX=$(BINDIR) < $< > $@ -install: +update-mo: + po/update-mo.sh + +install: update-mo install -D -m 0755 debgtd.py $(DESTDIR)$(BINDIR)/debgtd install -D -m 0644 debgtd.glade $(DESTDIR)$(SHAREDIR)/debgtd/debgtd.glade install -D -m 0644 debgtd/controller.py $(DESTDIR)$(LIBDIR)/debgtd/controller.py @@ -21,12 +24,19 @@ install -D -m 0644 debgtd/__init__.py $(DESTDIR)$(LIBDIR)/debgtd/__init__.py install -D -m 0644 debgtd.1 $(DESTDIR)$(MANDIR)/man1/debgtd.1 install -D -m 0644 debgtd.desktop $(DESTDIR)$(DESKTOPDIR)/debgtd.desktop + + set -e; if ls mo/* >/dev/null 2>&1; then \ + install -m 0755 -d $(DESTDIR)$(SHAREDIR)/locale; \ + cp -r mo/* $(DESTDIR)$(SHAREDIR)/locale; \ + chmod 755 $(DESTDIR)$(SHAREDIR)/locale; \ + fi clean: - rm -f *.pyc debgtd/*.pyc debgtd.desktop + rm -rf *.pyc debgtd/*.pyc debgtd.desktop mo/ FILES=$(DESTDIR)$(BINDIR)/debgtd \ $(DESTDIR)$(SHAREDIR)/debgtd/debgtd.glade \ + $(DESTDIR)$(SHAREDIR)/locale \ $(DESTDIR)$(LIBDIR)/debgtd/model.py \ $(DESTDIR)$(LIBDIR)/debgtd/controller.py \ $(DESTDIR)$(LIBDIR)/debgtd/gui.py \ @@ -38,6 +48,6 @@ ls -dl $(FILES) uninstall: - rm -f $(FILES) + rm -rf $(FILES) -.PHONY: default install list uninstall +.PHONY: default install list uninstall update-mo diff -urNad debgtd-1.2.1.orig/po/debgtd.pot debgtd-1.2.1/po/debgtd.pot --- debgtd-1.2.1.orig/po/debgtd.pot 1970-01-01 01:00:00.000000000 +0100 +++ debgtd-1.2.1/po/debgtd.pot 2008-08-09 22:33:20.000000000 +0100 @@ -0,0 +1,73 @@ +# SOME DESCRIPTIVE TITLE. +# This file is put in the public domain. +# FIRST AUTHOR <[EMAIL PROTECTED]>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: debgtd\n" +"Report-Msgid-Bugs-To: [EMAIL PROTECTED]" +"POT-Creation-Date: 2008-08-09 22:33+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <[EMAIL PROTECTED]>\n" +"Language-Team: LANGUAGE <[EMAIL PROTECTED]>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: debgtd/gui.py:90 +#, python-format +msgid "%(interested)d bugs (%(sleeping)d sleeping; %(ignored)d ignored)" +msgstr "" + +#: debgtd/gui.py:99 +msgid "id" +msgstr "" + +#: debgtd/gui.py:105 +msgid "package" +msgstr "" + +#: debgtd/gui.py:112 +msgid "severity" +msgstr "" + +#: debgtd/gui.py:120 +msgid "subject" +msgstr "" + +#: debgtd/gui.py:159 +msgid "Update" +msgstr "" + +#: debgtd/gui.py:179 debgtd.glade:92 +msgid "Fetch" +msgstr "" + +#: debgtd.glade:15 +msgid "_File" +msgstr "" + +#: debgtd.glade:35 +msgid "_Edit" +msgstr "" + +#: debgtd.glade:43 +msgid "Slee_p" +msgstr "" + +#: debgtd.glade:51 +msgid "_Ignore" +msgstr "" + +#: debgtd.glade:71 +msgid "user e-mail:" +msgstr "" + +#: debgtd.glade:133 +msgid "Sleep bug" +msgstr "" + +#: debgtd.glade:146 +msgid "Ignore bug" +msgstr "" diff -urNad debgtd-1.2.1.orig/po/gettext-config debgtd-1.2.1/po/gettext-config --- debgtd-1.2.1.orig/po/gettext-config 1970-01-01 01:00:00.000000000 +0100 +++ debgtd-1.2.1/po/gettext-config 2008-08-09 22:33:20.000000000 +0100 @@ -0,0 +1,4 @@ +APPLICATION="debgtd" +EMAIL="[EMAIL PROTECTED]" +EXTENSIONS="py glade" +DIRS="." diff -urNad debgtd-1.2.1.orig/po/update-mo.sh debgtd-1.2.1/po/update-mo.sh --- debgtd-1.2.1.orig/po/update-mo.sh 1970-01-01 01:00:00.000000000 +0100 +++ debgtd-1.2.1/po/update-mo.sh 2008-08-09 22:33:20.000000000 +0100 @@ -0,0 +1,25 @@ +#!/bin/sh + +set -eu + +. po/gettext-config + +Msgfmt () { + echo msgfmt "$@" + msgfmt "$@" +} + +rm -rf mo + +if ! ls po/*.po >/dev/null 2>&1 +then + exit 0 +fi + +for FILENAME in po/*.po +do + LANG="$(basename ${FILENAME} .po)" + DIR="mo/${LANG}/LC_MESSAGES" + mkdir -p "${DIR}" + Msgfmt "${FILENAME}" -o "${DIR}/${APPLICATION}.mo" +done diff -urNad debgtd-1.2.1.orig/po/update-pot.sh debgtd-1.2.1/po/update-pot.sh --- debgtd-1.2.1.orig/po/update-pot.sh 1970-01-01 01:00:00.000000000 +0100 +++ debgtd-1.2.1/po/update-pot.sh 2008-08-09 22:33:20.000000000 +0100 @@ -0,0 +1,27 @@ +#!/bin/sh + +set -eu + +. po/gettext-config + +if [ ! -d po/ ] && [ -d ../po/ ] +then + cd .. +fi + +FILES="$(mktemp)" +trap 'rm -f ${FILES}' EXIT + +find ${DIRS} -type f -printf "%p\n" > ${FILES} + +REGEX="$(echo ${EXTENSIONS} | sed 's@ @\\|@g')" +sed -i -n -e '/\('"${REGEX}"'\)$/p' ${FILES} + +exec xgettext \ + --files-from=${FILES} \ + --default-domain=${APPLICATION} \ + --force-po \ + --foreign-user \ + --package-name=${APPLICATION} \ + --msgid-bugs-address=${EMAIL} \ + --output=po/${APPLICATION}.pot
signature.asc
Description: PGP signature