- There's no consistent use of upper/lower case in the locale and language columns of the ad_locales table so we need to do case insensitive searches. - ad_locales defines the language column as char(3). Searches for 2-letter language codes fail because (at least on PG) all 2-letter entries have a trailing space in the database.
Collaboraid: 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