Filtrando idiomas em um aplicativo de console mui
Um aplicativo de console mui pode dar suporte a configurações do sistema ou configurações específicas do aplicativo para seus idiomas de interface do usuário. Este tópico discute a filtragem de idiomas para esse tipo de aplicativo.
Limitar os idiomas a serem exibidos
Ao contrário de uma janela gráfica, o console do Windows não pode exibir scripts complexos, como árabe, hebraico, persa, hindi, urdu, tailandês e muitos outros. Portanto, muitas linguagens de interface do usuário não podem ser exibidas pelo console em nenhuma circunstância.
O console pode exibir apenas caracteres da página de código OEM única associada ao idioma atual para aplicativos não Unicode. Para cada página de código OEM, o console usa uma fonte específica e isso pode não fornecer cobertura completa para essa página de código.
Essas limitações relacionadas ao console reduzem o número de idiomas de interface do usuário que o console pode exibir em um computador específico. Por exemplo, se o idioma atual para aplicativos não Unicode for japonês e o usuário tentar exibir texto alemão no console, os caracteres com umlauts não serão exibidos corretamente. Se o idioma atual para aplicativos não Unicode for alemão e o usuário quiser exibir texto japonês no console, os resultados serão muito piores, tornando o texto quase incompreensível.
Observação
Ao fornecer suporte de console para seus aplicativos MUI, lembre-se de que o console fornece apenas suporte limitado para editores de método de entrada.
Definir o idioma para saída do console
No Windows Vista e posteriores, um aplicativo de console define o idioma para dar suporte à exibição do console chamando SetThreadPreferredUILanguages. Nessa chamada, o aplicativo passa MUI_CONSOLE_FILTER no parâmetro dwFlags e NULL para pwszLanguagesBuffer. Uma alternativa é chamar SetThreadUILanguage com um identificador de idioma igual a 0. Essa configuração faz com que a função selecione o idioma que melhor dá suporte à exibição do console.
No Windows XP, o aplicativo só pode definir o idioma para a saída do console chamando SetThreadUILanguage com um identificador de idioma igual a 0.
Tópicos relacionados