HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideLegal TermsGitHubNuGetDev CommunitySubmit a ticketLog In

Add languages

Describes how to add a new language (custom culture) that does not appear in the list of available languages in the Manage Website Languages section in admin view.

This is useful when you want to add less commonly used language and local combinations to an Optimizely Content Management System (CMS) installation.

CMS takes the list of languages you can enable for a site from the languages installed on the host operating system. Available languages can present a problem because they vary between different machines. If you have a language enabled in your CMS database that is not installed on your target machine, an error occurs on start-up and disables the entire site.

To add a language, install it on your operating system through the CultureAndRegionInfoBuilder class in System.Globalization; you can create or copy a language (although you will have to run the code in the context of an Administrator account for it to work).

Add a language to the list of available languages

The following code sample shows how to use CultureAndRegionInfoBuilder to create and register a language based on an existing language, in this case, creating Hong Kong English (en-HK) from UK English (en-GB). You need a reference to sysglobl.dll in your project for this to compile.

📘

Note

Custom cultures such as ”sv-gb” and "en-fr" are not supported for solutions running in Optimizely Digital Experience Platform (DXP). See Optimizely DXP - Multisite Development.

public static void CreateCulture() {
  //* Get the base culture and region information
  CultureInfo cultureInfo = new CultureInfo("en-GB");
  RegionInfo regionInfo = new RegionInfo(cultureInfo.Name);

  //* Create the a locale for en-HK
  CultureAndRegionInfoBuilder cultureAndRegionInfoBuilder = new CultureAndRegionInfoBuilder("en-HK", CultureAndRegionModifiers.None);

  //* Load the base culture and region information
  cultureAndRegionInfoBuilder.LoadDataFromCultureInfo(cultureInfo);
  cultureAndRegionInfoBuilder.LoadDataFromRegionInfo(regionInfo);

  //* Set the culture name
  cultureAndRegionInfoBuilder.CultureEnglishName = "English (Hong Kong)";
  cultureAndRegionInfoBuilder.CultureNativeName = "English (Hong Kong)";

  //* Register with your operating system
  cultureAndRegionInfoBuilder.Register();

}
  1. Run the code.
  2. Start Optimizely CMS.
  3. Go to the admin view.
  4. Select Config tab > Manage Website Languages.
  5. Click Add Language. Your local combination is ready to use.