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 the below articles 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 http://dotnet.lv/blogs/antonsm/archive/2008/12/21/change-date-format-in-sharepoint.aspx 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.