The client developer took the time to develop his own i18n facilities in the CMS. He completely bypassed the built-in objects. That was until I needed to change the format of a date by culture. To do this I created a table in the database to associate a custom date format string with specific cultures. I then set the executing thread to the culture provided by the client's custom objects. Finally, I set the date format provided by the database table. Simple.
Well, the client saw this and immediately wanted to set the ThreadCulture for the entire site. Now that would have been the right thing to do at the begining of the project. But we are only three weeks from testing. It took me a long time to explain to the client developer that ThreadCulture has an effect beyond data format.
Sometimes I really hate clients.