Changing the language of an existing SharePoint site

Recently we had a problem with a (pretty large) site. The problem was that the site was created in English, while it should have been created in Dutch.  All content was in Dutch of course, but for instance the Site Actions button still said Site Actions, and when adding a document the buttons were "New", "Upload" and "Actions".

In order to solve this a couple of possible solutions were explored:

  • Saving the site as template didn't work, because you can only see the saved site when you create a site in the original language of the site
  • Using backup and restore didn't work, the site kept it's original language
  • Changing the language through the object model didn't work, because the Language property of the SPWeb object is read-only

This last attempt did trigger me to think that the language of a site is stored at SPWeb level. It is also stored in the database in the Webs table. So I decided to do a little test with changing the language in de database. And it worked like a charm!

Now you need to know that you're not supposed to change data in the database and that doing so is not supported by Microsoft. For me this was a very simple solution though to a pretty big problem. And the best thing was that it only took me 30 seconds to write the query and about 0.02 seconds to run it. Everything in the site is now Dutch, except of course for already created lists and libraries. So the name of the Pages library is still Pages and does not change to Pagina's. But the Site Actions button calls itself Siteacties, the Master Pages are Hoofdpagina's and View All Site Content is called Alle site-inhoud weergeven. You get the picture.. ;-) 

Do note that this solution doesn't work well for publishing sites as they depend on all sorts of libraries that don't have their name changed when you change the language of the site via the database.

For changing the language of all sites in the content database to Dutch the query would be:
UPDATE dbo.Webs SET Language = 1043

Changing the language of one site collection can be done with:
UPDATE dbo.Webs SET Language = 1043 WHERE SiteId = [[SiteCollectionId]]

And for changing the language of a single web or subsite you can use:
UPDATE dbo.Webs SET Language = 1043 WHERE Id = [[WebId]]

Comments -
  1. Gravatar

    Great article. Do not forget first to be sure having first the Dutch LanguagePack for Moss 2007 already installed...

      
  2. Gravatar

    Interesting, but the only problem here is that modifying directly the DB will invalidate Microsoft's support.

      
  3. Gravatar

    Hi Johan,

    Names and columns of the people and groups list views are basically already created lists. They have their names directly attached to them and don't read the names out of the SharePoint resource files.
    Unfortunaly changing the language only effects texts that are read from the resource files.

    Regards,
    Mirjam

      
  4. Gravatar

    Hi Warren,

    Changing the Locale of your sites changes the Regional settings and will have no effect on the language of the site.

    Regards,
    Mirjam

      
  5. Gravatar

    Hi Leonardo,

    Just changing the language on an single page is not possible (except by skinning the page with a custom httphandler).
    Also changing the language of a site without access to the database is not possible. If you want to achieve that you should simply recreate the site in another language and rebuild it.

    Good luck.

    Mirjam

      
  6. Gravatar

    Just what I needed :-)

    Thx Mirjam

      
  7. Gravatar

    Interesting, but as Djavan said, wouldn't it invalidate MS support of the farm/site ?
    Anyone has experience dealing with this kind of case ?

      
  8. Gravatar
  9. Gravatar
  10. Gravatar
  11. Gravatar
  12. Gravatar
  13. Gravatar
  14. Gravatar
  15. Gravatar
  16. Gravatar
    ggs

    I changed the language code, and works perfect the translation of the text. But I have problem when I want to create a new page, the MOSS with the new language cannot find the templates pages installed, so, I cannot add new pages. Any idea? Or I have to create the site again with the other language, and migrate the content?

      
  17. Gravatar

    Hi all,
    I have some problems with my language in my sharepoint. I want to change my language also in dutch.

    What i did:
    -Installed WSS 3.0
    -Installed WSS3.0 ducht language pack
    -Installed MOSS2007
    -Installed MOSS2007 dutch language pack

    I can't find the solution to set the ducht language. Now is my question were can I find the file to change:
    UPDATE dbo.Webs SET Language = 1043

    I like to hear from you

      
  18. Gravatar

    I tried your solution, but now I can't access to the whole site collection. I h ave a 500 INTERNAL SERVER ERROR while I load my site. Any suggestion on how to fix it?

      
  19. Gravatar

    So does that mean that there is no supported way of changing a site's language?

      
  20. Gravatar

    Matthijs: that is a sql query that you need to run against the database, not a change to make on any file

      
  21. Gravatar

    Hi Xavier,

    Yes, that means there is no supported way to change the language of an already existing site.
    With SharePoint 2010 you can use the Multi-lingual User Interface (MUI) however, which does help a bit with that problem.

    Mirjam

      
  22. Gravatar

    Thanks buddy,

    great help

    its a great and easiest technic to change default lang

    thanks again buddy

      
Comments have been closed on this topic.