Localidades e idiomas

O termo "idioma" indica uma coleção de propriedades usadas na comunicação falada e escrita. Cada idioma tem um nome de idioma e um identificador de idioma que indicam a página de código específica (ANSI, DOS, Macintosh) usada para representar a localização geográfica do idioma no sistema operacional. Um idioma neutro é indicado por um nome como "en" para inglês. Uma linguagem mais geograficamente específica pode ser indicada por um nome que inclui informações de localidade e país/região. Por exemplo, o inglês de localidade (Estados Unidos) tem o nome do idioma "en-US".

Uma "localidade" é uma coleção de informações de preferência do usuário relacionadas à linguagem representadas como uma lista de valores. O Windows XP dá suporte a mais de 150 localidades, e o Windows Vista dá suporte a cerca de 200. Cada localidade é definida por um idioma e uma ordem de classificação e tem um nome de localidade e um identificador de localidade. Um exemplo de um nome de localidade para alemão (Alemanha) é "de-DE_phonebook".

Cada sistema operacional tem pelo menos uma localidade instalada e geralmente tem muitas localidades das quais o usuário pode selecionar. Cada localidade tem uma variedade de informações associadas a ela, além de seu nome e identificador. Os tipos de informações de localidade são descritos em Constantes de Informações de Localidade.

O sistema operacional atribui uma localidade a cada thread, atribuindo inicialmente a "localidade padrão do sistema", definida por LOCALE_SYSTEM_DEFAULT. Essa localidade é definida quando o sistema operacional é instalado ou quando o usuário o seleciona usando a parte de opções regionais e de idioma do Painel de Controle. Ao executar um thread em um processo pertencente ao usuário, o sistema operacional atribui a "localidade padrão do usuário" ao thread. Essa localidade é definida por LOCALE_USER_DEFAULT. Um aplicativo pode substituir qualquer um dos padrões usando a função SetThreadLocale para definir explicitamente a localidade de um thread.

A implementação de um idioma requer uma localidade correspondente. O sistema operacional implementa uma linguagem neutra selecionando os dados para a localidade associada a uma versão específica do idioma, geralmente a localidade mais difundida.

A partir do Windows Vista, é possível que um idioma específico corresponda a uma localidade complementar, que é um tipo de localidade personalizada. Como as localidades complementares compartilham um único identificador de localidade, seus aplicativos devem lidar com essas localidades e os idiomas correspondentes por nome em vez de por identificador.

Os conceitos de linguagem estão intimamente relacionados aos conceitos de localidade, mas os dois termos não são intercambiáveis. Como regra geral, as funções relacionadas à Interface do Usuário Multilíngue lidam com idiomas, enquanto as funções nls atuam em localidades.

Os tópicos a seguir são abordados nesta seção:

Sobre o Suporte à Linguagem Nacional

Páginas de código

Constantes de informações de localidade

Interface do Usuário Multilíngue

Tabela de localizações geográficas

Gerenciamento de Linguagem de Interface do Usuário

SetThreadLocale