Dienstag, 7. Oktober 2014

Powershell Scripts - Alternative Sprachen (Sprachpakete) in allen Websites aktivieren

Wer SharePoint mit mehreren Sprachen betreiben möchte, weiß dass es dazu grundsätzlich zwei Möglichkeiten gibt: Die sprachenabhängige Anpassung der Oberfläche über Sprachpakete sowie die Trennung der Inhalte in verschiedene Sprachen (sogenannte Variations). Das letztere ist ein eigenständiges Thema. Wir möchten in diesem Beitrag  kurz auf ein spezielles Thema / Problem beim Einsatz von Sprachpaketen eingehen.

Sobald man zusätzliche Sprachpakete auf dem SharePoint installiert hat (übrigens, hier immer darauf achten dass man unter Umständen auch die Service Packs für die Sprachpakete installieren muss), stehen die zusätzlichen Sprachen grundsätzlich zur Verfügung.

Ein Sprachpaket ermöglicht die Umschaltung auf eine der anderen Sprachen. Dieses Umschalten stellt alle SharePoint Standard Oberflächen Funktionen auf die jeweilige Sprache um, außerdem ist es damit möglich in der jeweils aktiven Sprache die Namen von Listen, Spalten sowie Navigationselementen anzupassen.

Der Nachteil ist allerdings dass die zusätzlichen Sprachen pro Website aktiviert werden müssen, um auch genutzt werden zu können. Da hier keine Vererbung möglich ist, ist der einfachste Weg (vor allem bei bereits bestehenden Websites) die zusätzliche Sprache über ein kleines Powershell Script zu aktivieren.

Ein einfaches Powershell Script dass für alle Websites einer anzugebenden URL einfach alle installieren Sprachpakete aktiviert wäre das folgende:

# Enables SELECTED installed languages for each subsite in a site collection
 $spSite = Get-SPSite -Identity
http://DemoURL
 foreach ($spWeb in $spSite.AllWebs)
 {
   $spWeb.IsMultilingual = $true
   $WebRegionSettings = New-Object Microsoft.SharePoint.SPRegionalSettings($spWeb)
   foreach ($language in $WebRegionSettings.InstalledLanguages)
   {
        write-host -BackgroundColor Green -ForegroundColor Black "Update -" $spWeb "site with LCID:" $language.DisplayName
        $culture = New-Object System.Globalization.CultureInfo($language.LCID)
        $spWeb.AddSupportedUICulture($Culture)
   }
   $spWeb.Update()
 }


 

Dieses Script bzw. die Logik davon kann man natürlich z.B. auch mittels einem Event Receiver und dem sogenannten Feature Stappling als SharePoint Solution bereitstellen, die automatisch bei jeder neu angelegten Website die Sprachen aktiviert.

Keine Kommentare:

Kommentar veröffentlichen