1) Mark up your source and templates by wrapping all
internationalizable strings in the _() function
2) Run xgettext to generate an initial .po file
3) (On the second and subsequent runs, when you've already got a
partial translation) Use msgmerge to combine the new .po file with the
old translations
4) Translate the .po files using a .po editor
5) Run msgfmt on the .po files to create .mo files that can be loaded
by tornado.locale.load_gettext_translations.
There is a little documentation at
http://www.tornadoweb.org/documentation/locale.html#tornado.locale.load_gettext_translations
with some command-line examples.
-Ben