SharePoint 2010 language packs


Body:

Wow my first blog post of the year, been a crazy month, I wanted to write this blog post for quite some time, I have been in few large global projects where the program owner goes we need to install every language pack in our farm, it’s a global deployment blah blah blah. My first response is why? response I’ve gotten often is we are going to need it in future, might as well install it all, etc.

If you look at the list of Server language packs SharePoint 2010 has about 40 lets assume you have a 10 server farm 4 WFEs and 6 Application servers that’s 400 (40*10 servers) extra installs not counting other environments by the way. Each time service packs come out for Language packs that’s another 400 installs once again not counting other environments. Now of course as any good IT pro I know you will script this out but my point is you are shooting yourself on the foot. So before making decision on how many SharePoint language packs do you need, interview potential site owners and understand what their needs are as far as being able to create sites in different languages. Don’t assume that just because they are in a different region means the would want to create sites in different languages

Language packs are also needed if you want to leverage MUI which is a new feature in SharePoint 2010. If you are interested check out my posts on MUI

Automating Language pack Install using SPModule

Now lets look at scripting installation of SharePoint Server Language Packs using SPModule. If you don’t know what SPModule is, it’s a set of scripts provided by SharePoint product group for automating installation of SharePoint 2010, this can also be used to install the language packs. Download SPModule here http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6194

See Full list of language packs here http://technet.microsoft.com/en-us/library/ff463597.aspx download and take some time/planning to figure out exactly which language packs you need.

What about SP1 for Server Language Packs

Don’t just apply SP1 for your SharePoint Server, once you install language packs you now have to keep your language packs updated as well, so don’t ignore it. I recommend slipstreaming Server Language Pack 2010 RTM bits + SP1 for Server Language Pack 2010 if you are doing a fresh install, you can download SP1 for Server Language Packs here http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=26621 be sure to select the appropriate language before downloading otherwise you will get the same file, I had one customer called me back saying you are full of it, it English always Smile see image below

languagepack

Steps for slipstreaming language packs are exactly identical as slipstreaming SP1s and patches for SharePoint 2010, there is several posts so I won’t try to bore you with same details. One other thing, you don’t need to install SharePoint foundation language packs if you have SharePoint Server 2010, both Foundation and Server language packs are packaged together.

Preparing for Install

Create a folder in your build directory and lets call it Server Language Packs, for each language pack you will be installing create sub folders and name them to match the language code as show in image below

languagepack1

I’ve extracted the “ServerLanguagePack.exe” file using “/extract” switch on to folder that corresponds to each server language pack downloaded, additionally I extracted the SP1 for Server Language Pack 2010 to updates folder within each server language pack folder

PowerShell Script to Install Server Language Pack

Script below takes language pack folder as parameter and loops through every child item to kick off a language pack install using SPModule

Function InstallLanguagePacks
{
    param([string] $lpDir)
   
    Try
    {
        $runPsConfig = $false
        $PSConfig = "$env:CommonProgramFiles\Microsoft Shared\Web Server Extensions\14\BIN\psconfig.exe"
   
        if(!(Test-Path $lpDir))
        {
            Write-Warning "LanguagePack folder does not exist"
            break;
        }

        $installedOfficeServerLanguages = [string] (Get-Item "HKLM:\Software\Microsoft\Office Server\14.0\InstalledLanguages").GetValueNames() | ? {$_ -ne ""}
        ForEach ($folder in Get-ChildItem $lpDir)
        {
            If(!($installedOfficeServerLanguages.Contains($folder.Name.ToLower())))
            {
                Write-Host -ForeGroundColor White " – Installing Language Pack" $folder.Name
                $lpSetupDir = Join-Path $lpDir $folder.Name
               
                Install-SharePoint -DisplayLevel $displaylevel -LoggingType $loggingType -LogPath $logpath -LogTemplate $loggingtemplate -PhysicalSKU "SharePointLanguagePack" -SetupExePath $lpSetupDir -LanguagePacks $folder.Name -SkipPreReqInstaller
                $runPsConfig = $true ;
            }
            Else
            {
                Write-Host -ForeGroundColor White " – $folder.Name language pack already installed on server, skipping…"
            }
        }

        # If there were language packs installed we need to run psconfig to configure them
        If ($runPsConfig)
        {
            Write-Host -ForegroundColor White " – Running PSConfig & Configuring Language Packs…"
            Start-Sleep 20
            # Run PSConfig.exe
            Start-Process -FilePath $PSConfig -ArgumentList "-cmd upgrade -inplace v2v -passphrase `"$passphrasesecured`" -wait -force" -NoNewWindow -Wait
        }
    }
    Catch
    {
        Write-Host $_
        Break;
    }
}

InstallLanguagePacks -lpDir "C:\{customer farm}\Software\SharePoint Server Language Packs"

Hope this helps

Cheers,

</Ram>

Technorati Tags:
Published: 1/20/2012 9:06 PM

Comments (0)

Skip to main content