diff -urNp dogtail-0.6.0-orig/Makefile dogtail-0.6.0/Makefile
--- dogtail-0.6.0-orig/Makefile	2006-11-20 14:20:18.164203000 +0900
+++ dogtail-0.6.0/Makefile	2006-11-20 14:20:45.602687000 +0900
@@ -1,9 +1,17 @@
 # dogtail *development* Makefile
 
+SUBDIRS = po recorder sniff
+
 all:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	(cd $$subdir && $(MAKE) all) \
+	done; \
 	python setup.py build_ext --inplace
 
 install:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	(cd $$subdir && $(MAKE) DESTDIR=$(DESTDIR) install) \
+	done; \
 	python setup.py install
 
 clean:
diff -urNp dogtail-0.6.0-orig/configure.in dogtail-0.6.0/configure.in
--- dogtail-0.6.0-orig/configure.in	1970-01-01 09:00:00.000000000 +0900
+++ dogtail-0.6.0/configure.in	2006-11-20 14:20:45.611796000 +0900
@@ -0,0 +1 @@
+GETTEXT_PACKAGE=dogtail
diff -urNp dogtail-0.6.0-orig/dogtail/config.py dogtail-0.6.0/dogtail/config.py
--- dogtail-0.6.0-orig/dogtail/config.py	2006-11-20 14:20:18.239255000 +0900
+++ dogtail-0.6.0/dogtail/config.py	2006-11-20 14:20:45.583742000 +0900
@@ -7,6 +7,7 @@ import os
 import sys
 import locale
 
+GNOMELOCALEDIR="/usr/share/locale"
 def _scriptName():
     return os.path.basename(sys.argv[0]).replace('.py','')
 
diff -urNp dogtail-0.6.0-orig/dogtail/utils.py dogtail-0.6.0/dogtail/utils.py
--- dogtail-0.6.0-orig/dogtail/utils.py	2006-11-20 14:20:18.248891000 +0900
+++ dogtail-0.6.0/dogtail/utils.py	2006-11-20 14:20:45.580712000 +0900
@@ -12,11 +12,15 @@ David Malcolm <dmalcolm@redhat.com>
 
 import os
 import re
+import gettext
 from config import config
 from time import sleep
 from logging import debugLogger as logger
 from logging import TimeStamp
 from errors import DependencyNotFoundError
+gettext.bindtextdomain('dogtail')
+gettext.textdomain('dogtail')
+_ = gettext.gettext
 
 def screenshot(file = 'screenshot.png', timeStamp = True):
     """
@@ -184,15 +188,15 @@ def checkForA11yInteractively():
     """
     if isA11yEnabled(): return
     import gtk
-    dialog = gtk.Dialog('Enable Assistive Technolofy Support?',
+    dialog = gtk.Dialog(_('Enable Assistive Technolofy Support?'),
                      None,
                      gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
                      (gtk.STOCK_QUIT, gtk.RESPONSE_CLOSE, 
-                         "_Enable", gtk.RESPONSE_ACCEPT))
-    question = """Dogtail requires that Assistive Technology Support be enabled for it to function. Would you like to enable Assistive Technology support now?
+                         _("_Enable"), gtk.RESPONSE_ACCEPT))
+    question = _("""Dogtail requires that Assistive Technology Support be enabled for it to function. Would you like to enable Assistive Technology support now?
 
 Note that you will have to log out for the change to fully take effect.
-    """.strip()
+    """).strip()
     dialog.set_default_response(gtk.RESPONSE_ACCEPT)
     questionLabel = gtk.Label(question)
     questionLabel.set_line_wrap(True)
diff -urNp dogtail-0.6.0-orig/po/LINGUAS dogtail-0.6.0/po/LINGUAS
--- dogtail-0.6.0-orig/po/LINGUAS	1970-01-01 09:00:00.000000000 +0900
+++ dogtail-0.6.0/po/LINGUAS	2006-11-20 14:20:45.600439000 +0900
@@ -0,0 +1 @@
+#
diff -urNp dogtail-0.6.0-orig/po/Makefile dogtail-0.6.0/po/Makefile
--- dogtail-0.6.0-orig/po/Makefile	1970-01-01 09:00:00.000000000 +0900
+++ dogtail-0.6.0/po/Makefile	2006-11-20 14:20:45.598816000 +0900
@@ -0,0 +1,55 @@
+GETTEXT_PACKAGE = dogtail
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ..
+top_builddir = ..
+prefix = /usr
+DATADIRNAME = share
+itlocaledir = $(prefix)/$(DATADIRNAME)/locale
+
+INSTALL = /jds/cbe/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+mkdir_p = /jds/cbe/bin/install -d -m 755 -o root -g other
+GMSGFMT = /usr/bin/msgfmt
+MSGFMT = /usr/bin/msgfmt
+ALL_LINGUAS =
+
+PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi)
+
+POFILES=$(shell if test -n "$(PO_LINGUAS)"; then LINGUAS="$(PO_LINGUAS)"; else LINGUAS="$(ALL_LINGUAS)"; fi; for lang in $$LINGUAS; do printf "$$lang.po "; done)
+
+CATALOGS=$(shell if test -n "$(PO_LINGUAS)"; then LINGUAS="$(PO_LINGUAS)"; else LINGUAS="$(ALL_LINGUAS)"; fi; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
+
+.SUFFIXES: .gmo
+
+%.gmo: %.po
+	file=`echo $* | sed 's,.*/,,'`.gmo \
+	&& rm -f $$file && $(GMSGFMT) -o $$file $<
+
+all: all-yes
+
+all-yes: $(CATALOGS)
+
+install: install-data-yes
+install-data-yes: all
+	$(mkdir_p) $(DESTDIR)$(itlocaledir)
+	        if test -n "$(PO_LINGUAS)"; then \
+	  linguas="$(PO_LINGUAS)"; \
+	else \
+	  linguas="$(ALL_LINGUAS)"; \
+	fi; \
+	for lang in $$linguas; do \
+	  dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
+	  $(mkdir_p) $$dir; \
+	  if test -r $$lang.gmo; then \
+	    $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+	    echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
+	  else \
+	    $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+	    echo "installing $(srcdir)/$$lang.gmo as" \
+	         "$$dir/$(GETTEXT_PACKAGE).mo"; \
+	  fi; \
+	done
+
diff -urNp dogtail-0.6.0-orig/po/POTFILES.in dogtail-0.6.0/po/POTFILES.in
--- dogtail-0.6.0-orig/po/POTFILES.in	1970-01-01 09:00:00.000000000 +0900
+++ dogtail-0.6.0/po/POTFILES.in	2006-11-20 14:20:45.596851000 +0900
@@ -0,0 +1,8 @@
+build/lib/dogtail/utils.py
+dogtail/utils.py
+recorder/dogtail-recorder
+recorder/dogtail-recorder.desktop.in
+recorder/recorder.glade
+sniff/sniff
+sniff/sniff.desktop.in
+sniff/sniff.glade
diff -urNp dogtail-0.6.0-orig/recorder/Makefile dogtail-0.6.0/recorder/Makefile
--- dogtail-0.6.0-orig/recorder/Makefile	1970-01-01 09:00:00.000000000 +0900
+++ dogtail-0.6.0/recorder/Makefile	2006-11-20 14:20:45.577023000 +0900
@@ -0,0 +1,34 @@
+srcdir = .
+top_srcdir = ..
+top_builddir = ..
+datadir = /usr/share
+
+INTLTOOL_MERGE = ../intltool-merge
+
+desktopdir       = $(datadir)/applications
+desktop_in_files = dogtail-recorder.desktop.in
+desktop_DATA     = $(desktop_in_files:.desktop.in=.desktop)
+
+EXTRA_DIST = \
+	$(desktop_in_files) \
+	$(desktop_DATA)
+
+CLEANFILES = $(desktop_DATA)
+
+all: 
+	$(MAKE) $(DATA)
+
+DATA = $(desktop_DATA)
+
+install: all
+
+.PHONY: all DATA
+
+$(INTLTOOL_MERGE): $(INTLTOOL_MERGE).in
+	-sed -e 's|@INTLTOOL_PERL@|/usr/bin/perl|'\
+	     -e 's|@INTLTOOL_ICONV@|/usr/bin/iconv|'\
+	     -e 's|@INTLTOOL_LIBDIR@|/usr/share/locale|'\
+	$< > $@
+	-chmod a+x $@
+%.desktop:   %.desktop.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+.NOEXPORT:
diff -urNp dogtail-0.6.0-orig/recorder/Makefile.am dogtail-0.6.0/recorder/Makefile.am
--- dogtail-0.6.0-orig/recorder/Makefile.am	1970-01-01 09:00:00.000000000 +0900
+++ dogtail-0.6.0/recorder/Makefile.am	2006-11-20 14:20:45.574510000 +0900
@@ -0,0 +1,13 @@
+@INTLTOOL_DESKTOP_RULE@
+
+desktopdir       = $(datadir)/applications
+desktop_DATA     = $(desktop_in_files:.desktop.in=.desktop)
+desktop_in_files = \
+	dogtail-recorder.desktop.in
+
+EXTRA_DIST = \
+	$(desktop_in_files) \
+	$(desktop_DATA)
+
+CLEANFILES $(desktop_DATA)
+
diff -urNp dogtail-0.6.0-orig/recorder/dogtail-recorder dogtail-0.6.0/recorder/dogtail-recorder
--- dogtail-0.6.0-orig/recorder/dogtail-recorder	2006-11-20 14:20:18.236658000 +0900
+++ dogtail-0.6.0/recorder/dogtail-recorder	2006-11-20 14:20:45.569256000 +0900
@@ -2,9 +2,11 @@
 __author__ = 'David Malcolm <dmalcolm@redhat.com>, Zack Cerza <zcerza@redhat.com>'
 DR_NAME = 'Script Recorder'
 
+from dogtail import config
 from dogtail.utils import checkForA11yInteractively
 checkForA11yInteractively()
 
+import gettext
 import atspi
 import dogtail.tree
 import gtk.gdk
@@ -14,6 +16,11 @@ import dogtail.rawinput
 import gobject
 import gnome
 import gtk.glade
+gtk.glade.bindtextdomain('dogtail', config.GNOMELOCALEDIR)
+gtk.glade.textdomain('dogtail')
+gettext.bindtextdomain('dogtail', config.GNOMELOCALEDIR)
+gettext.textdomain('dogtail')
+_ = gettext.gettext
 class RecorderGUI(gnome.Program):
     def __init__(self):
         gnome.Program.__init__(self)
@@ -63,9 +70,9 @@ class RecorderGUI(gnome.Program):
 
     def setWriterClass (self, comboBox):
         selected = comboBox.get_active_text()
-        if selected == "Procedural":
+        if selected == _("Procedural"):
             recorder.writerClass = ProceduralScriptWriter
-        elif selected == "Object-Oriented":
+        elif selected == _("Object-Oriented"):
             recorder.writerClass = OOScriptWriter
         else:
             print selected, "isn't a ScriptWriter, but it is selected. How?"
@@ -104,7 +111,7 @@ class RecorderGUI(gnome.Program):
         """
         Brings up a file chooser dialog asking where to save the script.
         """
-        self.saveFileChooser = gtk.FileChooserDialog("Save Script...", None, \
+        self.saveFileChooser = gtk.FileChooserDialog(_("Save Script..."), None, \
             gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_CANCEL, \
             gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_OK))
         self.saveFileChooser.set_default_response(gtk.RESPONSE_OK)
diff -urNp dogtail-0.6.0-orig/recorder/dogtail-recorder.desktop.in dogtail-0.6.0/recorder/dogtail-recorder.desktop.in
--- dogtail-0.6.0-orig/recorder/dogtail-recorder.desktop.in	1970-01-01 09:00:00.000000000 +0900
+++ dogtail-0.6.0/recorder/dogtail-recorder.desktop.in	2006-11-20 14:20:45.571994000 +0900
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+_Name=Dogtail Script Recorder
+_Comment=Automate your desktop using Dogtail
+Exec=dogtail-recorder
+Terminal=false
+Type=Application
+Icon=dogtail-head.svg
+StartupNotify=true
+Categories=Application;Development;
diff -urNp dogtail-0.6.0-orig/sniff/Makefile dogtail-0.6.0/sniff/Makefile
--- dogtail-0.6.0-orig/sniff/Makefile	1970-01-01 09:00:00.000000000 +0900
+++ dogtail-0.6.0/sniff/Makefile	2006-11-20 14:20:45.587698000 +0900
@@ -0,0 +1,34 @@
+srcdir = .
+top_srcdir = ..
+top_builddir = ..
+datadir = /usr/share
+
+INTLTOOL_MERGE = ../intltool-merge
+
+desktopdir       = $(datadir)/applications
+desktop_in_files = sniff.desktop.in
+desktop_DATA     = $(desktop_in_files:.desktop.in=.desktop)
+
+EXTRA_DIST = \
+	$(desktop_in_files) \
+	$(desktop_DATA)
+
+CLEANFILES = $(desktop_DATA)
+
+all: 
+	$(MAKE) $(DATA)
+
+DATA = $(desktop_DATA)
+
+install: all
+
+.PHONY: all DATA
+
+$(INTLTOOL_MERGE): $(INTLTOOL_MERGE).in
+	-sed -e 's|@INTLTOOL_PERL@|/usr/bin/perl|'\
+	     -e 's|@INTLTOOL_ICONV@|/usr/bin/iconv|'\
+	     -e 's|@INTLTOOL_LIBDIR@|/usr/share/locale|'\
+	$< > $@
+	-chmod a+x $@
+%.desktop:   %.desktop.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+.NOEXPORT:
diff -urNp dogtail-0.6.0-orig/sniff/Makefile.am dogtail-0.6.0/sniff/Makefile.am
--- dogtail-0.6.0-orig/sniff/Makefile.am	1970-01-01 09:00:00.000000000 +0900
+++ dogtail-0.6.0/sniff/Makefile.am	2006-11-20 14:20:45.585787000 +0900
@@ -0,0 +1,13 @@
+@INTLTOOL_DESKTOP_RULE@
+
+desktopdir       = $(datadir)/applications
+desktop_DATA     = $(desktop_in_files:.desktop.in=.desktop)
+desktop_in_files = \
+	sniff.desktop.in
+
+EXTRA_DIST = \
+	$(desktop_in_files) \
+	$(desktop_DATA)
+
+CLEANFILES $(desktop_DATA)
+
diff -urNp dogtail-0.6.0-orig/sniff/sniff dogtail-0.6.0/sniff/sniff
--- dogtail-0.6.0-orig/sniff/sniff	2006-11-20 14:20:18.267132000 +0900
+++ dogtail-0.6.0/sniff/sniff	2006-11-20 14:19:12.039296000 +0900
@@ -9,11 +9,19 @@ checkForA11yInteractively()
 
 from dogtail import tree
 from dogtail import utils
+from dogtail import config
+import gettext
 import gobject
 import gnome
 import atspi
-program = gnome.program_init(appName, '0.1')
 import gtk.glade
+import gnome.ui
+gtk.glade.bindtextdomain('dogtail', config.GNOMELOCALEDIR)
+gtk.glade.textdomain('dogtail')
+gettext.bindtextdomain('dogtail', config.GNOMELOCALEDIR)
+gettext.textdomain('dogtail')
+program = gnome.program_init(appName, '0.1')
+_ = gettext.gettext
 
 try:
     x = gtk.glade.XML('sniff.glade')
@@ -59,7 +67,7 @@ def showAbout(*args):
     about = gtk.AboutDialog()
     about.set_name(appName)
     about.set_authors(appAuthors)
-    about.set_comments('Explore your desktop with Dogtail')
+    about.set_comments(_("Explore your desktop with Dogtail"))
     about.set_website('http://people.redhat.com/zcerza/dogtail/')
     about.show_all()
 
@@ -381,7 +389,7 @@ def main():
     col.pack_end(cellRenderer, expand = False)
     col.set_cell_data_func(cellRenderer, getNodeAttr, 'name')
 
-    col.set_title('Name')
+    col.set_title(_("Name"))
 
     view.insert_column(col, -1)
     #view.insert_column_with_data_func(-1, "Role Name", \
diff -urNp dogtail-0.6.0-orig/sniff/sniff.desktop.in dogtail-0.6.0/sniff/sniff.desktop.in
--- dogtail-0.6.0-orig/sniff/sniff.desktop.in	1970-01-01 09:00:00.000000000 +0900
+++ dogtail-0.6.0/sniff/sniff.desktop.in	2006-11-20 14:20:45.589482000 +0900
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+_Name=AT-SPI Browser
+_Comment=Browse your Assistive Technology-enabled desktop
+Exec=sniff
+Terminal=false
+Type=Application
+Icon=dogtail-head.svg
+StartupNotify=true
+Categories=Application;Development;
