I have a requirement to implement globalization for the out of the box list forms i.e. displaying datetime, currency etc. based on culture of the region. I have referred this article on how SharePoint by default sets the thread culture using the SPRequest http module.
I have created a custom HttpModule that sets the CurrentCulture property of the thread and registered it after the SPRequest module. This works fine for layout pages and for custom webparts and I can see the datetime format being displayed on the region I choose. However this is not working for out of the box list forms i.e. AllItems.aspx, Editform.aspx, DisplayForm.aspx etc. I could see the thread culture being set in the httpmodule, but it does not have any effect on these forms.
This article says that list forms do not use .Net CultureInfo in these forms but instead use the LCID of SPWeb and then uses a COM library for formatting. This could well explain why changing the thread culture is not having any effect on list forms.
What is a good way to solve this? I don't have the option of creating one site per region based on locale. Also changing SPWeb.Locale is not an option.