Поделиться через


Функция LocaleNameToLCID (winnls.h)

Преобразует имя языкового стандарта в идентификатор языкового стандарта.

Синтаксис

LCID LocaleNameToLCID(
  [in] LPCWSTR lpName,
  [in] DWORD   dwFlags
);

Параметры

[in] lpName

Указатель на строку, завершающуюся значением NULL, представляющую имя языкового стандарта или одно из следующих предопределенных значений.

[in] dwFlags

До Windows 7:Защищены; всегда должно быть равно 0.

Начиная с Windows 7: Можно задать значение LOCALE_ALLOW_NEUTRAL_NAMES , чтобы разрешить возврат нейтрального LCID.

Возвращаемое значение

В случае успешного выполнения возвращает идентификатор языкового стандарта, соответствующий имени языкового стандарта.

Если указанное имя языкового стандарта соответствует пользовательскому языковому стандарту по умолчанию, эта функция возвращает LOCALE_CUSTOM_DEFAULT.

Если имя языкового стандарта соответствует пользовательскому языковому стандарту, который не является пользовательским по умолчанию, является временным языковым стандартом или является языковым стандартом CLDR (репозиторий общих языковых стандартов Юникода), функция возвращает LOCALE_CUSTOM_UNSPECIFIED.

Функция возвращает значение 0, если не удалось. Чтобы получить расширенные сведения об ошибке, приложение может вызвать Метод GetLastError, который может возвращать ERROR_INVALID_PARAMETER, если какое-либо из значений параметров является недопустимым.

Комментарии

Для пользовательских языковых стандартов, в том числе созданных корпорацией Майкрософт, приложения должны предпочесть имена языкового стандарта идентификаторам языкового стандарта. Дополнительные сведения см. в статье Прекращение поддержки идентификаторов LCID .

Начиная с Windows 8. Если приложение передает языковые теги в эту функцию из пространства имен Windows.Globalization, оно должно сначала преобразовать теги, вызвав ResolveLocaleName.

Примеры


#include "stdafx.h"
#include "windows.h"
#include "stdio.h"

int _cdecl main(
    int argc,
    char *argv[])
{
    WCHAR strNameBuffer[LOCALE_NAME_MAX_LENGTH];
    DWORD error = ERROR_SUCCESS;
    LCID  lcid;

    // Get the name for locale 0x10407 (German (German), with phonebook sort)
    if (LCIDToLocaleName(0x10407, strNameBuffer, LOCALE_NAME_MAX_LENGTH, 0) == 0)
    {
        // There was an error
        error = GetLastError();
    }
    else
    {
        // Success, display the locale name we found
        wprintf(L"Locale Name for 0x10407 is %s\n", strNameBuffer);
    }

    // Get the LCID for the locale
    lcid = LocaleNameToLCID(strNameBuffer, 0);
    if (lcid == 0)
    {
        // There was an error
        error = GetLastError();
    }
    else
    {
        // Success, print the round trip LCID
        wprintf(L"LCID for %s is 0x%x\n", strNameBuffer, lcid);
    }
}

/* This code example produces the following output:

Locale Name for 0x10407 is de-DE_phoneb
LCID for de-DE_phoneb is 0x10407

*/


Требования

Требование Значение
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header winnls.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

DownlevelLocaleNameToLCID

NLS: пример API на основе имен

Поддержка национальных языков

Функции поддержки национальных языков