I was pinged many times for multilingual search in SharePoint in the past. One of the issues is word breaking – in SharePoint 2007 if you set browser language to some other language than you are searching in, you may trigger the wrong wordbreaker and have a bad result. SharePoint 2010 improved on this topic and now it is more multilingual friendly, for example it has Results Query language setting in the webpart. But what is the order of this process? If user set a browser language will it override the setting in the webpart? And do I have to install OS/SharePoint language packs to get my search working?
Luckily I just got a very detailed answer from Harneet Sidhana, Program Manager of SharePoint Productivity Search. So here’s the order of the language detection process:
- If the user specified a language preference using the advanced language preference setting. If there is only one language selected, then this becomes the language of query. If user selected multiple languages, then there is a dropdown enabled in the user interface to select the default language.
- If the above is not set by a user, an administer can set language on each search page as follows:
a. Edit the search results page
b. Edit the core results web part
c. Under Result Query Options – Use the Query Language Dropdown to select the preferred language for the results page
- If none of the above are set, then we use the default language of the browser as the language of the query:
- If none of the above are set (which is unlikely since most of the people do have a default language in their browser) we default to CultureInfo.InvariantCulture as the language of the query (fixed in a recent QFE. Without the QFE, the user will see an exception instead).
And for the second question, you don’t have to install OS language packs or SharePoint language packs to search in multilingual. All the wordbreakers and stemmers are included in the binaries you installed, no matter which language SKU you have. I know some of the trainers and “SME”s are telling people you have to do so, that maybe true for MUI(but not always), definitely not true for search.