On a Windows 8.1 machine, I'm seeing many more available cultures than on a Windows Server 2012 machine: 791 vs 378. To give a specific example, the server machine is missing the 'en-HK' culture.
Here is the test code I'm using to enumerate them:
foreach (var ci in CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures).OrderBy(ci => ci.Name))
{
Console.WriteLine("{0} ({1})", ci.Name, ci.EnglishName);
}
Question: how can I install the more complete culture list on Windows Server 2012 so that it matches what's available on Windows 8.1?
The fix is to upgrade the OS of the machine running your system. As documented here...
https://docs.microsoft.com/en-gb/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c
en-HK is supported in "Release 8.1"
Release 8.1 correlates to "Windows 8.1 and Windows Server 2012 R2. Supported in all later versions."
So yes you will see en-HK on Windows 8.1 to see it on your server install the R2 service pack.
Here's some Powershell I've used to add custom cultures to 2012. This is a hard-coded script (sorry, rough!). It bases a new culture (
$newCulture
) on an existing one, in this case en-US.This is based on sample C# code from MSDN, under "How To: Create Custom Cultures": https://msdn.microsoft.com/en-us/library/ms172469(v=vs.100).aspx
Hope it helps!