Partager via


Utilisation de MS Shell Dlg et MS Shell Dlg 2

Windows est disponible dans les éditions localisées pour de nombreuses langues. Toutefois, l’édition en anglais peut également être utilisée pour exécuter des applications écrites dans des langues autres que l’anglais. Cela est vrai même lorsque le script utilisé pour ces langues est différent, comme lorsque les applications sont écrites en grec ou en japonais. Ces applications nécessitent une interface utilisateur avec des boîtes de dialogue, des icônes et des utilitaires qui fournissent des informations dans la langue de l’application, ce qui peut être différent de la langue utilisée dans l’interface utilisateur Windows actuelle.

Le problème de sélection de la police d’une interface utilisateur est évident. Par exemple, la police de l’interpréteur de commandes, également appelée police système ou par défaut, pour l’anglais (États-Unis) Windows 98 est MS Sans Serif, tandis que la police de l’interpréteur de commandes pour grec (Grèce) Windows 98 est MS Sans Serif Grec. Pour windows 98 japonais (Japon), la police de l’interpréteur de commandes est Gothique de l’interface utilisateur MS. Ces jeux de caractères ne peuvent pas être directement mappés les uns aux autres. Le remplacement de MS Sans Serif par MS Sans Serif Greek lorsque les paramètres régionaux sont définis sur Grec (Grèce) ne permet pas aux applications existantes de s’exécuter correctement ou d’afficher des caractères grecs dans les menus système, les boîtes de dialogue et les contrôles de modification.

Windows résout ce problème en utilisant les polices logiques MS Shell Dlg et MS Shell Dlg 2 pour permettre la sélection de la police appropriée pour l’affichage de script. Cette section aborde plusieurs considérations relatives à la programmation pour l’utilisation des polices logiques afin d’implémenter des boîtes de dialogue, des menus, etc. pour les interfaces utilisateur flexibles qui s’affichent correctement sur tous les systèmes d’exploitation Windows pris en charge et dans tous les langages. Pour plus d’informations, consultez Création et sélection de polices. Consultez également Interface utilisateur multilingue pour une présentation de l’utilisation de la technologie d’interface utilisateur multilingue (MUI) dans la création d’interfaces utilisateur pour vos applications multilingues.

À propos des polices logiques

Les polices logiques MS Shell Dlg et MS Shell Dlg 2 sont essentiellement des noms de visages utilisés pour le mappage afin de permettre la prise en charge des paramètres régionaux/cultures ayant des caractères qui ne sont pas contenus dans la page de codes 1252, jeu de caractères Windows pour le États-Unis et l’Europe de l’Ouest. MS Shell Dlg est mappé à la police d’interpréteur de commandes par défaut associée à la culture/paramètres régionaux actuels et prend en charge l’apparence de bureau Windows classique. Le nom du visage MS Shell Dlg 2 a été introduit dans Windows 2000 pour prendre en charge l’apparence introduite avec Windows 2000.

Par exemple, si votre application utilise MS Shell Dlg ou MS Shell Dlg 2 pour ses boîtes de dialogue, une équipe de localisation qui crée des ressources en grec pour votre application peut se concentrer sur la traduction de texte. Ils n’ont pas à se préoccuper de questions telles que la distinction entre MS Sans Serif et MS Sans Serif Grec.

Notes

Les polices générées par MS Shell Dlg et MS Shell Dlg 2 sont différentes sur différentes versions de Windows. Par conséquent, vous devez vous assurer que vos éléments d’interface utilisateur s’affichent correctement sur toutes les plateformes.

 

Gérer les noms de police Hard-Coded

L’utilisation d’Unicode permet aux applications de traiter des milliers de caractères différents, mais la plupart des polices ne couvrent pas tous les jeux de caractères Unicode. Vos applications ne doivent pas coder en dur les noms de police. L’une des raisons est que le codage en dur d’un nom de police qui affiche des caractères pour une langue et non des caractères pour une autre langue entraîne l’affichage incorrect de tout le texte localisé dans la deuxième langue. Une autre raison de ne pas coder en dur les noms de police est que la police souhaitée peut ne pas être chargée sur le système d’exploitation qui affiche le texte de l’application.

La meilleure façon de traiter les noms de police consiste à les considérer comme des ressources localisables. L’utilisation d’une police logique résout le problème d’exécution de votre interface à l’aide de n’importe quelle langue sur Windows NT ou Windows 2000, pour n’importe quelle langue. La définition d’un nom de police en tant que ressource localisable permet à votre localiseur de modifier la police de l’interface utilisateur localisée.

Gérer Hard-Coded tailles de police

Certains scripts sont complexes et nécessitent un grand nombre de pixels pour s’afficher correctement. Par exemple, la plupart des caractères anglais s’affichent sur une grille 5x7, mais les caractères japonais ont besoin d’au moins une grille 16 x 16 pour être clairement visibles. Alors que le chinois a besoin d’une grille 24x24, le thaï n’a besoin que de 8 pixels pour la largeur, mais d’au moins 22 pixels pour la hauteur. Il est facile de comprendre que certains caractères peuvent ne pas être lisibles à une petite taille de police.

L’interface utilisateur de votre application doit traiter les tailles de police comme des ressources localisables. L’utilisation d’une police logique résout le problème d’exécution de votre interface à l’aide de n’importe quelle langue sur Windows NT ou Windows 2000, pour n’importe quelle langue. La définition d’une taille de police en tant que ressource localisable permet à votre localiseur de modifier la police de l’interface utilisateur localisée.

Mapper les polices logiques

Chacune des polices logiques est mappée par une entrée du Registre à la police d’interpréteur de commandes appropriée pour les paramètres régionaux actifs. Lorsque l’une des polices logiques est utilisée, Windows bascule vers la police pour les paramètres régionaux actuellement sélectionnés au moment de l’exécution. Cette opération permet d’afficher correctement l’interface utilisateur de Windows (États-Unis) en anglais, ainsi que les caractères qui ne sont pas dans la page de codes 1252. Par conséquent, l’expédition des applications localisées peut s’exécuter sur la version anglaise (États-Unis) de Windows sans modification.

Chaque ordinateur Windows mappe MS Shell Dlg et MS Shell Dlg 2 à une police physique appropriée, en fonction du langage défini pour les programmes non Unicode, décrit dans Terminologie NLS. Les mappages réels sont stockés dans la clé de Registre HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\FontSubstitutes.

Mappage des polices sur Windows Me/98/95

MS Shell Dlg est généralement mappé à une version spécifique à la page de codes de MS Sans Serif.

Mappage des polices sur Windows NT 4.0

MS Shell Dlg mappe à MS Sans Serif pour l’Europe occidentale et centrale, le grec, le turc, la baltique et les langues à l’aide de l’écriture cyrillique; MS UI Gothic pour le japonais ; Gulim pour le coréen; Simsun pour le chinois simplifié; PMinglu pour le chinois traditionnel; Etc.

Mappage des polices sur Windows 2000, Windows XP, Windows Server 2003, Windows Vista et Windows 7

Les deux polices logiques sont mappées à des polices TrueType basées sur Unicode. MS Shell Dlg utilise Microsoft Sans Serif (distinct de MS Sans Serif) si la langue d’installation n’est pas le japonais. MS Shell Dlg est mappé à MS UI Gothic si la langue d’installation est le japonais.

Sur les systèmes MUI Windows XP, MS Shell Dlg est mappé à MS UI Gothic uniquement lorsque les paramètres régionaux système et la langue de l’interface utilisateur sont définis sur japonais. Sinon, MS Shell Dlg est mappé à Microsoft Sans Serif.

Sur Windows Vista et Windows 7, MS Shell Dlg est mappé à MS UI Gothic si la langue d’interface utilisateur par défaut de l’ordinateur est définie sur le japonais (quelle que soit la langue d’installation). MS Shell Dlg est mappé à Microsoft Sans Serif si la langue d’interface utilisateur par défaut de l’ordinateur est définie sur une langue autre que le japonais.

MS Shell Dlg 2 utilise simplement la police Tahoma, quelle que soit la langue. L’avantage main de Tahoma par rapport à Microsoft Sans Serif est que Tahoma a une police native en gras. Son main inconvénient est que les systèmes d’exploitation plus anciens peuvent ne pas l’avoir installé, et peut remplacer une police moins attrayante.

Les caractères qui ne sont pas implémentés dans Tahoma ou Microsoft Sans Serif peuvent être implémentés dans d’autres polices Windows utilisées pour l’affichage du texte dans les interfaces utilisateur. Selon les contrôles ou les API utilisés pour afficher du texte, le système peut utiliser différents mécanismes tels que la liaison de polices pour sélectionner automatiquement ces polices pour afficher ces caractères.

Les applications peuvent utiliser Microsoft Sans Serif ou Tahoma explicitement, et enregistrer le niveau d’indirection impliqué dans l’utilisation de MS Shell Dlg ou MS Shell Dlg 2. En raison de la liaison de polices, la spécification de Microsoft Sans Serif ou Tahoma fournit des glyphes appropriés pour toutes les langues.

Utiliser MS Shell Dlg pour une application non anglaise sur Windows Me/98/95

Sur Windows Me/98/95, MS Shell Dlg n’est pas destiné à être utilisé avec une application d’interface utilisateur statique non anglaise qui s’exécute lorsque l’utilisateur a choisi des paramètres régionaux avec un jeu de caractères de base Windows différent. Dans ce cas, la langue de l’interface utilisateur de l’application peut ne pas être prise en charge avec la police qui est remplacée par MS Shell Dlg.

Par exemple, si l’utilisateur utilise une version en allemand de Windows et souhaite installer une application non-Unicode en grec, il tente de modifier les paramètres régionaux en grec (Grèce). Cette action réinitialise MS Shell Dlg à une police grecque, mais cette police ne contient pas tous les glyphes nécessaires à l’affichage en allemand. Par conséquent, les caractères non ASCII de l’interface utilisateur en langue allemande ne s’affichent pas correctement. Pour prendre en charge ce scénario, une application doit définir MS Shell Dlg sur une police qui contient à la fois les glyphes d’Europe occidentale et les glyphes grecs.

Énumération et sélection de polices internationales

Interface utilisateur multilingue