Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le stockage de chaînes codées en dur dans le Registre fait partie d’un modèle de localisation pré-Windows Vista. Elle n’est pas prise en charge par MUI. Dans le modèle actuel, l’interface utilisateur du système d’exploitation s’exécute dans des fichiers de ressources spécifiques à la langue au-dessus d’une base neutre en langage. Les composants du système d’exploitation utilisent le Registre de manière neutre en langage.
MUI utilise uniquement les chaînes de Registre redirigées définies par les ressources PE Win32 dans le fichier de ressources du langage de base. La redirection est définie séparément, par exemple, dans un fichier .inf. Ce type de stockage permet au chargeur de ressources de sélectionner automatiquement les ressources linguistiques appropriées pendant le chargement du module de ressources.
Remarque
Cette rubrique concerne uniquement les ressources Win32 PE. Si vous utilisez des ressources PE non Win32, vous devez fournir une redirection de chaîne de Registre personnalisée, si nécessaire.
Créer une ressource Language-Neutral
Une application MUI s’exécutant sur Windows Vista et utilise ultérieurement une ressource de chaîne neutre en langage pour autoriser l’accès à des chaînes spécifiques à la langue stockées dans une table de ressources de chaîne. Le code d'application qui extrait ces valeurs du registre est décrit dans la section Charger la valeur de registre Language-Neutral de Localisation des Chaînes Redirigées.
Les données d’une valeur de Registre neutre en langage ont le format «@<PE-path>,-<stringID>[;<comment>] », où :
-
PE-pathspécifie le chemin de l’exécutable. Vous pouvez spécifier le chemin à l’aide d’une variable d’environnement, telle que %ProgramFiles%, pour prendre en charge le déploiement. Une alternative pour créer une référence à votre chaîne consiste à omettre le chemin du fichier. Dans ce cas, votre application doit avoir certains moyens, par exemple, une autre valeur de Registre, pour communiquer son propre répertoire d’installation. -
stringIDspécifie l’identificateur de ressource numérique de la ressource de chaîne appropriée, qui est implémenté comme n’importe quelle autre ressource de chaîne localisable. -
commentspécifie des informations facultatives pour améliorer le débogage ou la lisibilité de la valeur du Registre. Les fonctions d’API de Registre ignorent le commentaire lors du chargement de la chaîne.
Remarque
Les données de la valeur de registre ne font aucune référence explicite au fichier de ressources spécifique à la langue. Le fichier correct est déterminé au moment de l’exécution, en fonction des préférences de langue de l’interface utilisateur actuelles.
Une valeur de Registre est entrée sans espace entre « », et « - ». Une valeur de Registre correcte est la suivante :
shell32.dll,-22912
Une valeur de Registre incorrecte est la suivante :
shell32.dll, -22912
Un exemple de Windows Vista est la valeur de Registre avec les données suivantes :
@%SystemRoot%\system32\input.dll,-5020
Créer des ressources pour les chaînes de raccourci
Lorsque l’application MUI affiche son nom dans l’interface shell utilisateur, une chaîne InfoTip s’affiche pour l’icône de l’application. Vous devez créer des ressources de chaîne pour le nom complet de votre application et la chaîne InfoTip associée pour chaque langue prise en charge. Lorsque les ressources sont prêtes, votre application peut utiliser les chaînes, comme décrit dans l’API Utiliser Shell pour charger des chaînes de raccourci à partir de la section Registre de la localisation des chaînes redirigées.
Préparer des ressources pour un raccourci créé avec Windows Installer
Si vous utilisez Windows Installer (MSI) pour créer un raccourci, les ressources de chaîne incluent le nom d’affichage et la description du raccourci. Dans la table de raccourcis MSI, la DLL de ressource est référencée dans les colonnes appropriées et les identificateurs de ressource pour le nom d’affichage et la description de votre raccourci sont utilisés dans les colonnes d’identificateur de ressource correspondantes.
Pour que le raccourci de l’application fonctionne correctement avec la technologie des ressources MUI, gardez à l’esprit les points suivants lors de la préparation des chaînes de raccourci :
- Utilisez des variables d’environnement ou un chemin d’accès relatif pour inscrire la DLL. Vous pouvez spécifier @%systemroot%\system32\shell32.dll tant que le type de chaîne de Registre est REG_EXPAND_SZ. L’identificateur de ressource de chaîne pour « Document texte » dans Shell32.dll est 12345.
- N’utilisez pas d’espaces autour des symboles « », et « - ». Un exemple correct est «shell32.dll,-22912 ».
- N’utilisez pas de nom de fichier court. Ce type de nom ne fonctionne pas avec le chargeur de ressources.
Préparer des ressources pour un raccourci à l’aide du format INF
Si vous utilisez le format de fichier INF pour créer des chaînes de raccourci, le fichier de ressources doit définir les paramètres de Registre suivants. Ces instructions supposent l’utilisation de la syntaxe ProfileItems de l’API d’installation.
- Modifiez la valeur InfoTip pour qu’elle pointe vers la référence de redirection de chaîne à l’aide du chemin d’accès et de l’identificateur de ressource.
- Ajoutez la nouvelle valeur DisplayResource sous les sections d’installation de ProfileItems.
Voici un exemple montrant l’ajout de l’application Calculatrice au menu Démarrer :
[CalcInstallItems]
"Name" = %Calc_DESC%
"CmdLine" = 11, calc.exe
"SubDir" = %Access_GROUP%
"WorkingDir" = 11
"InfoTip" = "@%systemroot%\system32\shell32.dll,-22531"
"DisplayResource" = "%systemroot%\system32\shell32.dll",22019
Utilisez la syntaxe ci-dessous lors de l’utilisation d’INF pour ajouter des éléments, par exemple, un dossier Groupe d’accès, au menu Démarrer . Cette syntaxe suppose l'utilisation du support [StartMenuItems] à partir du programme d’installation, similaire à la syntaxe utilisée dans Syssetup.inf.
[StartMenuItems]
<description> = <binary>,<commandline>,<iconfile>,<iconnum>,<infotip>,<resDLL,resID>
Définir la valeur infotip sur la référence de chaîne «@<path>,-resID ».
Le nom d'affichage est déterminé par les valeurs resDLL et resID. La valeur resID spécifie l’identificateur de ressource d’une ressource de chaîne associée au fichier neutre en langage. La valeur resDLL spécifie le chemin d’accès au fichier neutre en langage.
Créer des ressources pour les noms de types de documents conviviaux
Vous devez implémenter des chaînes de nom amical et d'info-bulle pour votre application en tant que ressources textuelles. Pour permettre aux noms conviviaux de types de documents de s'adapter à la langue de l'interface utilisateur, l'application doit enregistrer les noms en utilisant la valeur FriendlyTypeName sous la clé d'identificateur du programme pour le type de fichier. La valeur par défaut de la clé d’identificateur de programme doit être conservée pour maintenir la compatibilité descendante. Pour plus d’informations sur l’accès aux noms à partir de votre application, consultez la section Noms de types de documents adaptés aux requêtes dans le Registre de la localisation des chaînes redirigées.
Le travail spécifique implique les étapes suivantes :
- Implémentez le nom convivial et les chaînes InfoTip en tant que ressources de chaîne spécifiques au langage.
- Ajoutez la valeur FriendlyTypeName sous la clé de registre du type de document. Les données de la valeur suivent le modèle « »,
@<path>,-<resID>où le chemin indique l’exécutable et resID est l’identificateur de ressource d’une ressource de chaîne localisable associée à cet exécutable. - Spécifiez la valeur de Registre InfoTip au format «
@<path>,-<resID>».
L’exemple suivant montre les paramètres de Registre d’un fichier .txt :
HKCR\.txt
@="txtfile"
"Content Type"="text/plain"
HKCR\txtfile
@="Text Document"
"FriendlyTypeName" = "@%systemroot%\system32\shell32.dll,-12345"
"InfoTip" = "@%systemroot%\system32\shell32.dll,-12346"
Fournir des ressources pour ShellVerb les chaînes d'actions
Les chaînes d’action pour certains verbes, par exemple «open » et «edit », sont affichées dans le menu contextuel affiché lorsque l’utilisateur clique avec le bouton droit sur un fichier dans l’Explorateur Windows. Votre application n’a pas besoin de spécifier de chaînes pour les verbes courants shell, car le shell possède ses propres valeurs par défaut activées par MUI pour ces verbes. Toutefois, vous devez fournir des ressources de chaîne localisables pour les chaînes représentant des verbes rares.
Sur les systèmes d’exploitation antérieurs à Windows XP, les chaînes de verbes dans le Registre sont rendues à l’aide de la syntaxe suivante, où verb spécifie le nom réel verb :
HKCR\<progid>\shell\<verb>
@ = <friendly-name>
Voici un exemple :
HKCR\Sample.app\shell\Disc
@ = "Disconnect"
Sur Windows XP et versions ultérieures, vous pouvez utiliser un niveau d’indirection pour faire en sorte qu’une chaîne d’action dépende du langage de l’interface utilisateur. Ces systèmes d’exploitation prennent en charge une valeur MUIVerb pour la définition d’une chaîne compatible MUI. Voici un exemple d’entrée de registre pour une entrée peu commune verb:
HKCR\Sample.app\shell\Disc
@ = "Disconnect"
"MUIVerb" = "@%systemroot%\system32\sample.exe,-9875"
Votre application MUI doit également être en mesure d’inscrire l’ancienne valeur par défaut en tant que chaîne localisable, comme indiqué ci-dessous :
HKCR\Sample.app\shell\Disc
@ = "@%systemroot%\system32\sample.exe,-9875"
Remarque
L’inscription de l’ancienne valeur par défaut n’est pas recommandée, car elle nécessite une configuration différente sur Windows XP et ultérieurement de l’installation utilisée sur les systèmes d’exploitation antérieurs.
Créer des ressources pour Verb, Protocolet des chaînes AuxUserType
Vous devez créer des ressources de chaînes localisables pour les chaînes Verb, Protocol, et AuxUserType. Utilisez les paramètres de Registre suivants :
HKCR\CLSID\{<Your_CLSID>}\Verb\<number> @="<Your Verb>, <menu_flag>, <verb_flag>"
"LocalizedString"="@<resDLLpath\resDLL.DLL>,-resStrID"
...
HKCR\CLSID\{<Your_CLSID>}\AuxUserType\<number>
@="<Your Short Name>"
"LocalizedString"="@<resDLLpath\resDLL.DLL>,-resStrID1"
...
HKCR\<Your_Name>\protocol\StdFileEditing\verb\<number>
@="<Your Verb>"
"LocalizedString"="@<resDLLpath\resDLL.DLL>,-resStrID"
...
La valeur spécifiée pour LocalizedString contient uniquement ou remplace la valeur pour Your Verb, et non les deux valeurs d’indicateur.
Voici un résumé pour vous aider à garantir les paramètres de Registre corrects :
- Si CLSID a une clé HKCR\CLSID\{clsid}\Insertable, définissez la valeur CLSID par défaut à l’aide de HKCR\CLSID\{clsid}\LocalizedString.
- Si CLSID a une ou plusieurs sous-clés sous HKCR\CLSID\{clsid}\Verb, définissez chaque chaîne individuelle Verb à l’aide de HKCR\CLSID\{clsid}\Verb\xxx\LocalizedString.
- Si CLSID a une ou plusieurs sous-clés sous HKCR\{progid}\Protocol\Stdfileediting\Verb, définissez chaque chaîne individuelle Verb à l’aide de HKCR\{progid}\Protocol\Stdfileediting\Verb\xxx\LocalizedString.
- Si CLSID a une ou plusieurs sous-clés AuxUserType répertoriées sous HKCR\CLSID\{clsid}\AuxUserType, définissez chaque entrée AuxUserType à l’aide de HKCR\CLSID\{clsid}\AuxUserType\xxx\LocalizedString.
Créer une ressource pour le programme de désinstallation
Pour inscrire le programme de désinstallation de l’application, vous pouvez créer des valeurs de registre sous la sous-clé d’identificateur unique de l’application dans la clé de registre HKEY\_LOCAL\_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall. Les valeurs à définir sont les suivantes : DisplayName, DisplayVersion, PublisherProductID, RegOwner, RegCompany, UrlInfoAbout, HelpTelephone, HelpLink, InstallLocation, InstallSource, InstallDate, Contact, Comments, DisplayIcon, Readme, UrlUpdateInfo.
Remarque
Pour activer la technologie MUI pour chaque valeur, vous pouvez ajouter «_Localized » au nom de la valeur.
Les composants du système d’exploitation sont nécessaires pour fournir une valeur de manière spécifique à l'interface utilisateur multilingue (MUI) pour DisplayName_Localized. Vous devez placer le nom d'affichage dans une DLL, par exemple Res.dll, comme ressource de chaîne, en supposant que l'identifiant soit 1245. Ensuite, l’application peut inscrire le nom d’affichage comme DisplayName_Localized avec la valeur « @\res.DLL,-1245 ». Tous les autres paramètres de Registre doivent être conservés, y compris la valeur d’origine de DisplayName.
Créer des ressources pour les événements audio
Windows associe certains événements à des fichiers sonores, par exemple, un événement de notification par courrier électronique ou un événement d’alarme de batterie critique. Les noms d’événements doivent être affichés par l’interface utilisateur et doivent prendre en charge la globalisation. Par conséquent, vous devez implémenter une ressource de chaîne localisable pour la description de chaque description d’événement. Ajoutez une nouvelle valeur de Registre pour chaque nom d’événement, en plus de la valeur par défaut codée en dur.
Procédez comme suit pour activer un événement sonore :
- Implémentez la description en tant que ressource de chaîne localisable.
- Ajoutez une nouvelle valeur de registre pour le nom d'affichage, en plus de la valeur par défaut fixée en dur. La disposition du Registre associée est illustrée ci-dessous :
HKCR\AppEvents\EventLabels
<event_name>
(Default) REG_SZ "<description>"
DispFileName REG_EXPAND_SZ "@<path>,-<resID>"
Si shell ne peut pas trouver ou récupérer la valeur de DispFileName, il utilise la description par défaut.
Créer des ressources pour les chaînes de configuration du clavier
Si votre application implémente une disposition de clavier, elle nécessite une ressource de chaîne localisable pour le nom de la disposition pour l’affichage de l’écran, par exemple dans les listes de dispositions de clavier. Chaque disposition de clavier a une clé de Registre sous HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts.
Parmi les valeurs de cette clé sont Layout Text, un nom lisible par l’homme pour la compatibilité descendante, et Layout Display Name. Les données fournies Layout Display Name doivent être une référence de chaîne du formulaire @<path>,-resID, faisant référence à une ressource de chaîne localisable associée à la disposition du clavier.
Voici un exemple de paramètre de Registre pour la disposition du clavier espagnol :
HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\
0000040a
Layout Text REG_SZ "Spanish"
Layout Display Name REG_EXPAND_SZ "@%SystemRoot%\system32\input.dll,-5020"
Représenter les chaînes de dialogue courantes de l’objet OLE Insert
Vous pouvez implémenter le nom d'affichage d’un objet insertable OLE en tant que ressource de chaîne localisable associée au code qui implémente cet objet. La boîte de dialogue Insérer un Objet OLE obtient un nom d'affichage provenant de la clé de Registre HKCR\CLSID\{<GUID>}, où GUID identifie l’identificateur de classe d’un objet OLE insérable. Windows Vista et les versions ultérieures implémentent ce type d’objet de manière localisable, à l’aide d’un nom complet compatible MUI qui permet la personnalisation de la langue de l’interface utilisateur. En revanche, les systèmes d’exploitation pré-Windows Vista implémentent le nom complet de ce type d’objet à l’aide de la valeur par défaut de la clé de Registre correspondante. En règle générale, ce nom est un nom anglais (États-Unis) ou un nom dans la langue de l’interface utilisateur par défaut du système.
Remarque
Tous les objets qui correspondent à des sous-clés de la clé de Registre ne peuvent pas être insérés.
La valeur par défaut de la clé HKCR\CLSID\{<GUID>} doit conserver un nom lisible par l’homme pour la compatibilité descendante. Toutefois, il doit également définir la valeur LocalizedString, au format «@<path>,-ResID », où le chemin identifie le fichier exécutable implémentant l’objet. La valeur ResID spécifie l’identificateur de ressource de la chaîne localisable pour le nom d'affichage.
Par exemple, le script d’inscription de l’objet Clip multimédia insérable inclut les lignes suivantes :
HKCR,"CLSID\%CLSID_Media_Clip%",,,"%default description%"
HKCR,"CLSID\%CLSID_Media_Clip%","LocalizedString",,"@%systemroot%\system32\mplay32.exe,-9217"
La première ligne fournit une compatibilité descendante en plaçant une chaîne de texte simple dans le Registre comme nom d’affichage par défaut. La deuxième ligne fournit l'accès au nom d'affichage compatible avec MUI. Il indique l’identificateur de chaîne stocké dans Mplay32.exe. La chaîne avec l’identificateur 9217 dans Mplay32.exe peut être associée à des valeurs de ressource de chaîne pour un nombre quelconque de langues. Son nom anglais (États-Unis) est « Media Clip ».
Créer des ressources de chaîne pour la console de gestion Microsoft Snap-Ins
Vous devez créer une ressource de chaîne adaptative pour chaque snap-in MMC (Microsoft Management Console) utilisé par votre application MUI. Étant donné qu’un composant logiciel enfichable fait partie d’une console, il a une interface utilisateur et doit être globalisé pour fonctionner dans plusieurs langues.
Dans la plupart des cas, les composants logiciels enfichables MMC soulèvent les mêmes problèmes de globalisation et de localisation que l’application MUI elle-même. Un module MMC doit avoir son nom reflété dans le registre pour l'affichage. L’entrée de Registre doit inclure à la fois une référence indirecte à une ressource de chaîne localisable et une chaîne littérale pour la compatibilité descendante.
Chaque module d'extension MMC a une clé de registre sous HKEY\_LOCAL\_MACHINE\\Software\\Microsoft\\MMC\\SnapIns. Parmi les valeurs de cette clé, NameString, spécifiant un nom lisible par l’homme pour la compatibilité descendante et NameStringIndirect, spécifiant une référence indirecte à une ressource de chaîne localisable. Pour NameStringIndirect, vous devez fournir une référence de chaîne du formulaire «@<path>,-resID », représentant une ressource de chaîne localisable.
Par exemple, vous pouvez définir le paramétrage suivant pour Mymmc.dll, où 12345 est l’identificateur de la ressource de chaîne correspondante contenant le nom localisable du module enfichable.
NameStringIndirect=@%systemroot%@c:\windir\system32\mymmc.dll,-12345
Certains composants logiciels enfichables inscrivent d’autres valeurs de chaîne de Registre que MMC ne lit pas à partir du Registre. Pour plus d'informations sur l'utilisation de ces valeurs, consultez Enregistrer les chaînes Microsoft Management Console Snap-In qui ne sont pas lues à partir du registre dans Localisation des chaînes redirigées.
Créer des ressources de chaîne pour un service Windows
Bien qu’un service Windows ait généralement peu ou pas d’interface utilisateur, il doit afficher un nom compatible MUI et fournit généralement une description spécifique au langage compatible MUI. La clé de Registre qui décrit un service Windows prend uniquement en charge la DisplayName valeur du nom du service et la Description valeur de la description du service.
Les paramètres du service Windows sont créés à partir de l’application, comme décrit dans Définir le nom complet et la description d’un service Windows à partir du Registre dans la localisation des chaînes redirigées. Si votre application ne définit pas les valeurs du registre pour l’interface utilisateur du service, les valeurs dans le registre restent réglées sur English, même si l’interface utilisateur est dans une autre langue.
Rubriques connexes