Onde está a lista de locais do Windows disponíveis?

14

Se você abrir a Regional and Language Options(via Control Panel) e clicar na Regional Optionsguia, haverá uma lista suspensa de todos os locais disponíveis.

De onde esta lista é preenchida?

(Quero comparar as configurações de cada localidade; estou bem em como fazer isso, mas preciso de uma lista de nomes de localidades para alternar.)


EDIT: Depois de navegar pelo diretório do Windows (provavelmente deve mencionar que estou usando o XP), o arquivo

C:\WINDOWS\system32\locale.nls

parece um candidato plausível, mas é um arquivo binário. É isso que eu deveria estar olhando? Se sim, como eu o leio?

Richard Cotton
fonte
Eu tive uma situação semelhante há pouco tempo. Então, vim a saber que não há uma maneira direta de conhecer os locais suportados pelo Windows. Eu escrevi um programa para imprimir todos os nomes de códigos de idioma suportados no Windows. Aqui está o link stackoverflow.com/questions/27614666/… . Eu também tenho um executável, se você quiser.
user1

Respostas:

9

A Microsoft não facilita as coisas para você. O arquivo NLS mencionado na pergunta contém as informações de localidade, mas está em HEX. Mesmo com um editor hexadecimal, o conteúdo está longe de ser legível por humanos. Decidi adotar uma estratégia alternativa, inspirada na resposta da r0ca.

Há uma lista mais precisa de códigos de idioma disponíveis publicados pela Microsoft . Infelizmente, mesmo esta lista não está certa. (Instalei todos os locais disponíveis e tenho o norte do país, que não está na lista da Microsoft, mas não o espanhol tradicional, o espanhol moderno ou o macedônio. O ucraniano está na lista duas vezes.)

Os nomes também não estão certos na lista da Microsoft.

Em geral, os nomes devem ter o formato "Idioma" ou "Nome do país do idioma", por exemplo, "Inglês" ou "Inglês do Reino Unido"

Isso significa que os sublinhados após o primeiro devem ser substituídos por espaços e os nomes das pessoas precisam ser substituídos pelos nomes dos países, por exemplo, "Malay_Brunei_Darussalam" se torna "Malay_Brunei Darussalam" "Dutch_Belgian" torna-se "Dutch_Belgium"

Existem muitas outras esquisitices. Latim, cirílico e algumas outras palavras precisam ser colocadas entre colchetes, por exemplo, "Sérvio_Cirílico_Bósnia_Herzegovina" se torna "Sérvio (Cirílico) _Bósnia e Herzegovina"

Da mesma forma, "Sami_Inari" se torna "Sami (Inari) _Finland"

Existem muitos outros exemplos de adivinhar nomes de países apropriados "English_Filipines" se torna "English_Republic of the Philippines"

Eu descobri a maioria dessas exceções alterando meu código de idioma do Windows no painel de controle, depois carregando R e digitando

Sys.getlocale()

Infelizmente, esse método atualmente não funciona com as localidades indianas (mais algumas outras). Veja o relatório de erros aqui .

Richard Cotton
fonte
5

Você tem todos eles listados aqui . Espero que isto seja o que procuras

r0ca
fonte
Obrigado, embora eu realmente queira a lista de quais idiomas estão disponíveis no meu sistema. Por exemplo, não tenho chinês instalado, mas tenho o norte do Sotho (que não estava na lista). (Veja as opções ...) O ponto é que o Windows deve armazenar uma lista do que está instalado em algum lugar; Eu simplesmente não consigo encontrar.
Richard Cotton
Ainda estou tentando fazer com que esse leitor de arquivos .nls funcione ... Droga!
R0ca
Obrigado pela sua persistência. Parece que a versão mais recente do leitor NLS da Gudu Software está corrompida. Enviei um e-mail a eles para contar, então teremos que esperar para ver.
Richard Cotton
Sim, eu tinha o mesmo, mas não enviei um email. Também tentei de vários espelhos, mas ... sem sorte!
R0ca