SharePoint 2016 base language and language packs

All over the world there are customers that want to install and use SharePoint in their preferred language (official language, e.g. in Germany it’s German). I can fully understand the backgrounds of this wish:

  • Not every employee speaks English
  • Not every administrator speaks English
  • Adopting a new System is easier, when it’s in the mother tongue.

The SharePoint 2016 sources are available in the following 24 languages. Additionally, there are the following 49 language packs:

Language Source Language Language Pack
Arabic x x
Azerbaijani x
Basque x
Bosnian x
Bulgarian x
Catalan x
Chinese – Simplified x x
Chinese – Traditional x x
Croatian x
Czech x x
Danish x x
Dari x
Dutch x x
English x x
Estonian x
Finnish x x
French x x
Galician x
German x x
Greek x x
Hebrew x x
Hindi x
Hungarian x x
Indonesian x
Irish x
Italian x x
Japanese x x
Kazakh x
Korean x x
Latvian x
Lithuanian x
Macedonian x
Malay x
Norwegian-Bokmal x x
Polish x x
Portuguese-Brazil x x
Portuguese-Portugal x x
Romanian x
Russian x x
Serbian x
Slovak x
Slovenian x
Spanish x x
Swedish x x
Thai x x
Turkish x x
Ukrainian x
Vietnamese x
Welsh x

There are many possible variations of base language and language packs.

I tend to install SharePoint with the Englisch Sources and prefer to install Language Packs afterwards!

The reason behind this philosophy: “Keep it simple!”

Working every day with different SharePoint farms can be challenging if the language of the SharePoint logs vary or the PowerShell commands do need to be modified to match the installed SharePoint language.

The tools available focus on English SharePoint sources:

…and I prefer Central Administration to be in English. The german translation does not feelt right 😉

What’s the best way to figure out the base language and the installed Language Packs?

I use the following PowerShell Script to figre out the base language and the installed Language Packs:

#Requires -RunAsAdministrator
function Get-SharePointLanguages
$baseLanguageKey = Get-Item 'HKLM:\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\16.0\ServerLanguage'
$baseLanguageValue = $baseLanguageKey.Property
if($null -ne $baseLanguageValue -and $baseLanguageValue.Count -eq 1)
$baseLanguageCulture = New-Object System.Globalization.CultureInfo([int]$baseLanguageValue[0])
Write-Host "SharePoint base language:" ForegroundColor Green
Write-Host $($baseLanguageCulture.DisplayName)
$languagePackKey = Get-Item 'HKLM:\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\16.0\InstalledLanguages'
if($null -ne $languagePackKey)
Write-Host "SharePoint Language Packs:" ForegroundColor Green
$languagePackKey.Property | ForEach-Object Process {
$languagePackCulture = New-Object System.Globalization.CultureInfo([int]$_)
Write-Host $languagePackCulture.DisplayName
Export-ModuleMember Function Get-*




Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.