SPRegionalSettings.InstalledLanguages property

Gets the collection of languages installed on Web servers in the farm.

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaration
Public ReadOnly Property InstalledLanguages As SPLanguageCollection
    Get
'Usage
Dim instance As SPRegionalSettings
Dim value As SPLanguageCollection

value = instance.InstalledLanguages
public SPLanguageCollection InstalledLanguages { get; }

Property value

Type: Microsoft.SharePoint.SPLanguageCollection
An SPLanguageCollection object that represents the installed languages.

Remarks

The first language that is installed in a farm is the SKU language — the language in which SharePoint Foundation 2010 is installed. You can discover the SKU language by accessing the static GlobalServerLanguage property. Other languages are added to the collection by language packs that farm administrators can install on the Web servers in the farm. For a list of the language packs that are available, see Language Packs for SharePoint Foundation 2010.

When languages are installed in the farm, they are not automatically enabled for use in the multilingual user interface for a given Web site. This must be done as a separate step by the site owner, who can access Site Settings page in the user interface, then the Language Settings page. In the Alternate language(s) group is a list of installed languages. A language is added to the multilingual user interface by checking the box next to its name. The same task can be accomplished by executing code that enumerates the collection of installed languages and enables support for each language by calling the AddSupportedUICulture(CultureInfo) method.

Examples

The following example is a console application that enumerates the installed languages and adds any that are currently not supported to the list of cultures supported by the multilingual user interface.

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using Microsoft.SharePoint;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("https://localhost"))
            {
                using (SPWeb web = site.RootWeb)
                {
                    web.IsMultilingual = true;

                    SPLanguageCollection installed = web.RegionalSettings.InstalledLanguages;
                    IEnumerable<CultureInfo> supported = web.SupportedUICultures;

                    foreach (SPLanguage language in installed)
                    {
                        CultureInfo culture = new CultureInfo(language.LCID);

                        if (!supported.Contains(culture))
                        {
                            Console.WriteLine("Adding {0}", culture.Name);
                            web.AddSupportedUICulture(culture);
                        }
                    }
                    web.Update();
                }
            }
            Console.Write("\nPress ENTER to continue....");
            Console.Read();
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Linq
Imports Microsoft.SharePoint

Module ConsoleApp

    Sub Main()
        Using site As New SPSite("https://localhost")
            Using web As SPWeb = site.OpenWeb()

                web.IsMultilingual = True

                Dim installed As SPLanguageCollection = web.RegionalSettings.InstalledLanguages
                Dim supported As IEnumerable(Of CultureInfo) = web.SupportedUICultures

                For Each language As SPLanguage In installed
                    Dim culture As New CultureInfo(language.LCID)

                    If Not supported.Contains(culture) Then
                        Console.WriteLine("Adding {0}", culture.Name)
                        web.AddSupportedUICulture(culture)
                    End If
                Next
                web.Update()

            End Using
        End Using
        Console.Write(vbCrLf + "Press ENTER to continue....")
        Console.Read()
    End Sub
End Module

See also

Reference

SPRegionalSettings class

SPRegionalSettings members

Microsoft.SharePoint namespace

SupportedUICultures