Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Babylonisches SharePoint

Wer sich etwas intensiver mit SharePoint beschäftigt, stolpert früher oder später über Sprachabhängigkeiten. So lassen sich beispielsweise Templates nicht verwenden, weil sie für eine andere Sprache entwickelt wurden oder Listenspalten heißen plötzlich anders.

Besonders interessant wird das Ganze, wenn man sich dann noch auf einem SharePoint mit installierten Language-Packs befindet, wo jedes Web eine andere Sprache haben kann.

Die Sprache eines Webs lässt sich recht einfach ermitteln, wenn man ein Objekt vom Typ SPWeb (Namespace: Microsoft.SharePoint) instanziiert hat. In diesem Fall kann man die Eigenschaft Language verwenden:

code view

Diese beinhaltet die LCID der Sprache in der das Web erstellt wurde.

Etwas spannender gestaltet es sich dann schon, wenn man in Erfahrung bringen möchte, in welcher Sprache der Server installiert wurde, denn danach richten sich z.B. die Namen der Search Scopes. Allerdings sucht man in der Definition von SPServer (Namespace: Microsoft.SharePoint.Administration) vergeblich nach einer Eigenschaft Language oder LCID.

Die Lösung ist – recht versteckt – zu finden in der Klasse SPRegionalSetting (Namespace: Microsoft.SharePoint).

Die statische Property SPRegionalSettings.GlobalServerLanguage bietet Zugriff auf die Sprache des Servers:

int globalLCID =  + SPRegionalSettings.GlobalServerLanguage.LCID;
string installed = "server was installed with LCID " + globalLCID.ToString();

Die statische Property SPRegionalSettings.GlobalInstalledLanguages zeigt an, auf welche Sprachen der SharePoint aufgrund von LanguagePacks erweitert wurde:

List<string> languageList = new List<string>();
SPLanguageCollection langColl = SPRegionalSettings.GlobalInstalledLanguages;
foreach (SPLanguage lang in langColl)
{
   languageList.Add(lang.LCID.ToString());
}
string installed = "installed Language Packs: "
   + string.Join(",", languageList.ToArray());

Kommentar hinterlassen


Pin It on Pinterest