The intltool collection can be used to:

-Extract translatable strings from various source files (.xml.in,
 .glade, .desktop.in, .server.in, .oaf.in).
-Collect the extracted strings together with messages from 
 traditional source files (.c, .h) in po/$(PACKAGE).pot.
-Merge back the translations from .po files into .xml, .desktop and
 .oaf files.  This merge step will happen at build resp. installation
 time.

The intltool package has a script, intltoolize, which copies the various
scripts and does the other magic to your module. So users building
from tarballs don't need intltool, only folks building from cvs.
(This is modelled on gettextize.)
