We have committed our changes so far to the acs-lang package and the changes that we have made to OpenACS core. The CVS commit comment for acs-lang was:
adding namespaces to the TCL API, adding new procedures for extracting keys from adp pages and parsing keys embedded in text, adding a translation web UI that was used at Greenpeace (at www/admin) and making it work with PostgreSQL, moving the old pages under www to be under www/admin/test, making the lang_messages table use locale rather than language, added upgrade scripts
The most important changes to OpenACS core include substituting #package_key.message_key# occurencies in adp pages with message lookups and setting up ad_conn locale in the request processor.
We are now working on committing Jeff Davis's magic script that can suck out translatable text from adp pages and replace them with message catalog lookups (yes I know, it's amazing, but it works!). As soon as we have committed this script we will encourage package owners to run those scripts on their packages and then test and go through pages and manually do any missing message lookups. We have started writing an I18N developers guide and you can find a snapshot of it here.