Função SetThreadUILanguage (winnls.h)

Define o idioma da interface do usuário para o thread atual.

Windows Vista e posterior: Essa função não pode limpar a lista de idiomas de interface do usuário preferenciais do thread. Seu aplicativo MUI deve chamar SetThreadPreferredUILanguages para limpar a lista de idiomas.

Windows XP: Essa função é limitada a permitir que o sistema operacional identifique e defina um valor seguro para usar no console do Windows.

Sintaxe

LANGID SetThreadUILanguage(
  [in] LANGID LangId
);

Parâmetros

[in] LangId

Identificador de idioma para o idioma da interface do usuário para o thread.

Windows Vista e posterior: O aplicativo pode especificar um identificador de idioma de 0 ou um identificador diferente de zero. Para obter mais informações, consulte a seção Comentários.

Windows XP: O aplicativo só pode definir esse parâmetro como 0. Essa configuração faz com que a função selecione o idioma que melhor dá suporte à exibição do console. Para obter mais informações, consulte a seção Comentários.

Retornar valor

Retorna o identificador de idioma de entrada se tiver êxito. Se o identificador de entrada for diferente de zero, a função retornará esse valor. Se o identificador de idioma for 0, a função sempre terá êxito e retornará o identificador do idioma que melhor dá suporte ao console do Windows. Consulte a seção Comentários.

Se o identificador de idioma de entrada for diferente de zero e a função falhar, o valor retornado será diferente do identificador de idioma de entrada. Para obter informações de erro estendidas, o aplicativo pode chamar GetLastError.

Comentários

Quando um thread é criado, a configuração de idioma da interface do usuário do thread fica vazia e a interface do usuário do thread é exibida no idioma selecionado pelo usuário. Essa função permite que o aplicativo altere o idioma da interface do usuário para o thread em execução atual.

Windows Vista e posterior: Chamar essa função e especificar 0 para o identificador de idioma é idêntico a chamar SetThreadPreferredUILanguages com o sinalizador MUI_CONSOLE_FILTER definido. Se o aplicativo especificar um identificador de linguagem diferente de zero válido, a função definirá uma linguagem de interface do usuário específica para o thread. Depois de especificar 0 para o identificador de idioma, o aplicativo não pode usar nenhuma das seguintes constantes para corresponder a um identificador de idioma:

Windows XP: Quando o aplicativo chama essa função com um identificador de linguagem igual a 0, a função primeiro verifica se a interface do usuário atual não requer Uniscribe e se ela tem suporte na página de código do console. Se a interface do usuário passar nesses testes, a função usará o valor fornecido. Caso contrário, a função altera o idioma da interface do usuário do thread para um idioma que o console do Windows pode exibir. O Windows XP não dá suporte a um conceito de linguagem de interface do usuário de thread separada da localidade do thread. Portanto, essa função altera a localidade do thread no Windows XP. É fácil para seu aplicativo definir um thread para usar o idioma mais apropriado para exibição do console, com base em idiomas de interface do usuário preferenciais do usuário e do sistema, o idioma para aplicativos não Unicode e os recursos do console.

Assinatura do C#

[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
        static extern System.UInt16 SetThreadUILanguage(
            System.UInt16 LangId
            );

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winnls.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

GetThreadUILanguage

Interface do Usuário Multilíngue

Funções de interface do usuário multilíngue

SetThreadPreferredUILanguages