Tuesday, 14 August 2007

Sharepoint 2007 - Set MySite Locale (Regional settings) to UK (EN-GB)

I spent much time recently investigating how to set regional settings (locale) on a MOSS 2007 Web Application level so that any new site collections inherit the appropriate regional settings (in my case EN-GB).

It is possible to set regional settings at site collection level and inherit down to all subsites, which works fine when you do not use self-service site creation, but not otherwise, especially for MySites. Back in May 2007 I opened a call with Microsoft about this (via the Education Support Centre http://www.escuk.net/) and recently received the news that Microsoft have identified this as a code change and the developers are considering the change. As it stands Microsoft may well need more persuasion in order to make this change, so if you are having this trouble please get in touch with me and we can build a case.

There are some work arounds to this if you are prepared to forefit Microsoft support for your Sharepoint implementation i.e.

1. Alter the Store procedure proc_CreateSite which performs the site creation process and accepts language and locale as parameters, to always use locale 2057 (English UK) for each portal (In the relevant _site database). Currently it will be set with no default, so will always use the 1033 locale (English US). If you were to do this, you could be asked to remove the setting from the settings from the store procedure and more importantly revert back any portals to before the changes were made.
2. Bulk update the webs table in the _site database for each Portal to have a locale of 2057 instead of 1033. This has the effect of changing all the sites to UK English.

Naturally I DO NOT recommend these changes due to supportability issues, but support from Microsoft may not be of concern in all implementations.

Another better workaround is to use feature stapling to provision a masterpage to new mysites by adding the regional settings to the featurereceiver (credit to Esben Kolind of Netcompany IT and Business Consulting for this suggestion):

mySiteWeb.RegionalSettings.LocaleId = 1030; //Danish
mySiteWeb.RegionalSettings.Time24 = true;


Microsoft have now developed a fix for this that has gone through testing, has been approved and is being rolled into a hotfix.

The initial fix released in October 07 broke the creation of MySites in my farm so was prompty uninstalled. A new version has now been released for pre-SP1. I'm awaiting Microsoft to send it to me. Microsoft plan to release a post-SP1 update in about eight weeks.

The second release of the fix works a treat and allows the administrator to set the locale in https://MySiteURL/_layouts/settings.aspx (the Personal Site Provider site) to whatever they want ie. UK and then this will be inherited to new My Sites.

A third release of the fix is now available for post SP1. Because this fix has not undergone full regression testing it is not available for general download. To obtain, contact Microsoft and quote KB942819.