.NET framework упрощает получение информации о различных локалях; API Win32 C++ немного сложнее понять.C++ Win32 API эквивалент CultureInfo.TwoLetterISOLanguageName
Есть ли эквивалентная функция в Win32 для получения двухбуквенного имени языка ISO с учетом целочисленного идентификатора локали?
В C# я хотел бы сделать:
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo(1034);
string iso = ci.TwoLetterISOLanguageName;
// iso == "es" now.
Код должен работать на XP и выше.
Ум, это не отвечает на вопрос, который был задан. Эта опция запрашивает трехбуквенные сокращения, а не двухбуквенные. Эта опция недоступна в Windows XP, только Vista и выше. –
Адриан, вы ошиблись по всем пунктам. Если вы прочтете более внимательно, вы увидите, что LOCALE_SISO639LANGNAME поддерживается обратно в Windows NT 4 и Win98 и содержит аббревиатуры с двумя символами. Параметр LOCALE_SISO639LANGNAME2 (обратите внимание на конечный «2») - это только Vista и предоставляет 3-буквенные сокращения. Пожалуйста, отмените свое голосование, поскольку оно необоснованно. –