Compartilhar via


Usando MS Shell Dlg e MS Shell Dlg 2

O Windows está disponível em edições localizadas para muitos idiomas. No entanto, a edição em inglês também pode ser usada para executar aplicativos escritos em idiomas diferentes do inglês. Isso é verdadeiro mesmo quando o script usado para esses idiomas é diferente, como quando os aplicativos são escritos em grego ou japonês. Esses aplicativos exigem uma interface do usuário com caixas de diálogo, ícones e utilitários que fornecem informações no idioma do aplicativo, que podem ser diferentes do idioma que está sendo usado na interface do usuário atual do Windows.

O problema ao selecionar a fonte para uma interface do usuário é óbvio. Por exemplo, a fonte do shell, também conhecida como sistema ou fonte padrão, para inglês (Estados Unidos) Windows 98 é MS Sans Serif, enquanto a fonte de shell para Grego (Grécia) Windows 98 é MS Sans Serif Grego. Para o Windows 98 japonês (Japão), a fonte do shell é MS UI Gothic. Esses conjuntos de caracteres não podem ser mapeados diretamente um para o outro. Substituir o MS Sans Serif pelo GREGO MS Sans Serif quando a localidade é definida como grego (Grécia) não permite que os aplicativos existentes sejam executados adequadamente ou exibir caracteres gregos em menus do sistema, caixas de diálogo e controles de edição.

O Windows resolve esse problema usando as fontes lógicas MS Shell Dlg e MS Shell Dlg 2 para permitir a seleção da fonte apropriada para exibição de script. Esta seção aborda várias considerações de programação para usar as fontes lógicas para implementar caixas de diálogo, menus e similares para interfaces de usuário flexíveis que são exibidas bem em todos os sistemas operacionais Windows com suporte e em todos os idiomas. Para obter mais informações, consulte Criação e seleção de fontes. Consulte também Interface do Usuário Multilíngue para obter uma discussão sobre o uso da tecnologia MUI (Interface do Usuário Multilíngue) na criação de interfaces do usuário para seus aplicativos multilíngues.

Sobre as fontes lógicas

As fontes lógicas MS Shell Dlg e MS Shell Dlg 2 são essencialmente nomes de rosto usados para mapeamento para habilitar o suporte para localidades/culturas com caracteres que não estão contidos na página de código 1252, o conjunto de caracteres do Windows para o Estados Unidos e a Europa Ocidental. O MS Shell Dlg mapeia para a fonte de shell padrão associada à cultura/localidade atual e dá suporte à aparência clássica da área de trabalho do Windows. O nome do rosto do MS Shell Dlg 2 foi introduzido no Windows 2000 para dar suporte à aparência que foi introduzida com o Windows 2000.

Por exemplo, se seu aplicativo usa MS Shell Dlg ou MS Shell Dlg 2 para suas caixas de diálogo, uma equipe de localização que cria recursos de idioma grego para seu aplicativo pode se concentrar na tradução de texto. Eles não precisam se preocupar com questões como a distinção entre a MS Sans Serif e a MS Sans Serif Greek.

Observação

As fontes geradas por MS Shell Dlg e MS Shell Dlg 2 são diferentes em diferentes versões do Windows. Portanto, você deve garantir que os elementos da interface do usuário sejam exibidos bem em todas as plataformas.

 

Manipular nomes de fonte Hard-Coded

O uso do Unicode permite que os aplicativos lidem com milhares de caracteres diferentes, mas a maioria das fontes não abrange todo o conjunto de caracteres Unicode. Seus aplicativos não devem codificar nomes de fonte. Um motivo é que codificar um nome de fonte que exibe caracteres para um idioma e não caracteres para outro idioma faz com que todo o texto localizado no segundo idioma seja exibido incorretamente. Outro motivo para não codificar nomes de fonte é que a fonte desejada pode não ser carregada no sistema operacional que está exibindo o texto do aplicativo.

A melhor maneira de tratar nomes de fontes é considerá-los como recursos localizáveis. O uso de uma fonte lógica resolve o problema de executar sua interface usando qualquer idioma no Windows NT ou no Windows 2000, para qualquer idioma. Definir um nome de fonte como um recurso localizável possibilita que o localizador altere a fonte da interface do usuário localizada.

Manipular tamanhos de fonte Hard-Coded

Alguns scripts são complexos e exigem um grande número de pixels para serem exibidos corretamente. Por exemplo, a maioria dos caracteres em inglês é exibida em uma grade 5x7, mas os caracteres japoneses precisam de pelo menos uma grade 16x16 para serem vistos claramente. Enquanto o chinês precisa de uma grade 24x24, tailandês precisa apenas de 8 pixels para largura, mas pelo menos 22 pixels para altura. É fácil entender que alguns caracteres podem não ser legíveis em um tamanho de fonte pequeno.

A interface do usuário do aplicativo deve tratar os tamanhos de fonte como recursos localizáveis. O uso de uma fonte lógica resolve o problema de executar sua interface usando qualquer idioma no Windows NT ou no Windows 2000, para qualquer idioma. Definir um tamanho de fonte como um recurso localizável permite que o localizador altere a fonte da interface do usuário localizada.

Mapear as fontes lógicas

Cada uma das fontes lógicas é mapeada por uma entrada no registro para a fonte de shell apropriada para a localidade ativa no momento. Quando uma das fontes lógicas é usada, o Windows alterna para a fonte da localidade selecionada no momento em runtime. Essa operação permite a exibição correta da interface do usuário do Windows em inglês (Estados Unidos), bem como caracteres que não estão na página de código 1252. Portanto, atualmente, o envio de aplicativos localizados pode ser executado na versão em inglês (Estados Unidos) do Windows sem modificação.

Cada computador Windows mapeia MS Shell Dlg e MS Shell Dlg 2 para uma fonte física apropriada, com base na linguagem definida para programas não Unicode, descrita em Terminologia nls. Os mapeamentos reais são armazenados na chave do Registro HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\FontSubstitutes.

Mapeamento de fonte no Windows Me/98/95

O MS Shell Dlg geralmente é mapeado para uma versão específica da página de código do MS Sans Serif.

Mapeamento de fonte no Windows NT 4.0

MS Shell Dlg mapeia para MS Sans Serif para idiomas da Europa Ocidental e Central, Grego, Turco, Báltico e idiomas usando script cirílico; MS UI Gothic para japonês; Gulim para coreano; Simsun para chinês simplificado; PMinglu para chinês tradicional; Etc.

Mapeamento de fontes no Windows 2000, Windows XP, Windows Server 2003, Windows Vista e Windows 7

Ambas as fontes lógicas são mapeadas para fontes TrueType baseadas em Unicode. O MS Shell DLG usará o Microsoft Sans Serif (diferente do MS Sans Serif) se o idioma de instalação não for japonês. MS Shell Dlg mapeia para MS UI Gothic se o idioma de instalação for japonês.

Em sistemas MUI do Windows XP, o MS Shell Dlg é mapeado para MS UI Gothic somente quando a localidade do sistema e o idioma da interface do usuário são definidos como japonês. Caso contrário, o MS Shell Dlg é mapeado para o Microsoft Sans Serif.

No Windows Vista e no Windows 7, o MS Shell Dlg será mapeado para o MS UI Gothic se o idioma padrão da interface do usuário do computador estiver definido como japonês (independentemente do idioma de instalação). O MS Shell Dlg será mapeado para o Microsoft Sans Serif se o idioma da interface do usuário padrão do computador estiver definido como um idioma diferente do japonês.

O MS Shell Dlg 2 simplesmente usa a fonte Tahoma, independentemente da linguagem. A main vantagem do Tahoma em relação ao Microsoft Sans Serif é que Tahoma tem uma face de fonte nativa em negrito. Sua desvantagem main é que sistemas operacionais mais antigos podem não tê-lo instalado e podem substituir uma fonte menos atraente.

Os caracteres que não são implementados no Tahoma ou no Microsoft Sans Serif podem ser implementados em outras fontes do Windows que são usadas para exibição de texto em interfaces do usuário. Dependendo de quais controles ou APIs são usados para exibir texto, vários mecanismos, como vinculação de fonte , podem ser usados pelo sistema para selecionar automaticamente essas fontes para exibir esses caracteres.

Os aplicativos podem usar o Microsoft Sans Serif ou o Tahoma explicitamente e salvar o nível de indireção envolvido no uso do MS Shell Dlg ou do MS Shell Dlg 2. Devido à vinculação de fonte, especificar Microsoft Sans Serif ou Tahoma fornece glifos apropriados para todos os idiomas.

Usar o MS Shell Dlg para um aplicativo não inglês no Windows Me/98/95

No Windows Me/98/95, o MS Shell Dlg não se destina ao uso com um aplicativo de interface do usuário estático e não inglês que é executado quando o usuário escolheu uma localidade com um conjunto de caracteres base do Windows diferente. Nesse caso, a linguagem de interface do usuário do aplicativo pode não ter suporte com a fonte que é substituída por MS Shell Dlg.

Por exemplo, se o usuário estiver usando uma versão em alemão do Windows e quiser instalar um aplicativo de idioma grego não Unicode, o usuário tentará alterar a localidade para grego (Grécia). Essa ação redefine o MS Shell Dlg para uma fonte grega, mas essa fonte não contém todos os glifos necessários para exibição em alemão. Portanto, todos os caracteres não ASCII na interface do usuário de idioma alemão não serão exibidos corretamente. Para dar suporte a esse cenário, um aplicativo precisa definir o MS Shell Dlg como uma fonte que contenha os glifos europeus e gregos.

Enumeração e seleção de fontes internacionais

Interface do Usuário Multilíngue