((http://www.gnu.org/software/gettext/ gettext)) is a package that includes everything you need to internationalize a piece of software and then let translators localize it on the run without worrying too much about it.
It’s not perfect (for example, it’s poor at using multiple languages simultaneously, i-e in the same output), but it’s still very useful… and the best I found! ;)