Something here may help
http://osdir.com/ml/lang.perl.modules.html-template/2005-05/index.html
It seems to deal with the concept of locales and storing translations in databases and using one set of templates. Seems like a nice unique way of dealing with the problem. I am often a little uncomfortable when it comes to mangling paths in a cgi script.