Préparation d’un fichier de configuration de ressources
Les utilitaires MUIRCT et RC Compiler décrits dans Utilitaires de ressources fournissent une option de ligne de commande qui vous permet de spécifier un fichier de configuration de ressources pour les ressources de langue de base. L’utilisation de ce fichier XML public et lisible par l’utilisateur permet un meilleur contrôle sur le fractionnement des ressources qu’il n’est possible d’obtenir à l’aide des commutateurs de ligne de commande standard des utilitaires. Toutefois, même si vous ne fournissez pas de fichier de configuration de ressources en tant qu’entrée, les fichiers de ressources LN et spécifiques à la langue contiennent des données de configuration des ressources.
Tous les fichiers de configuration des ressources pour les applications Win32 commencent et se terminent de la même manière :
<?xml version="1.0" encoding="utf-8"?>
<localization>
<resources>
<!-- a single win32Resources element goes here -->
</resources>
</localization>
Cette rubrique se concentre sur les aspects du schéma XML qui sont utiles pour créer du code non managé sur Windows Vista et versions ultérieures. En particulier, il s’agit uniquement du comportement de l’élément win32Resources.
élément win32Resources
L’élément win32Resources possède les attributs décrits dans le tableau suivant.
Nom de l’attribut | Obligatoire | Description |
---|---|---|
fileType | Non | Type de fichier. Doit toujours être « Application ». |
somme de contrôle | Non | Valeur de somme de contrôle à afficher dans les données de configuration des ressources du fichier LN et des fichiers de ressources spécifiques à la langue. Par exemple, cet attribut vous permet de copier la somme de contrôle à partir d’un seul fichier de ressources spécifique à une langue, par convention celle de l’anglais (États-Unis), et de placer la somme de contrôle dans un autre fichier de ressources propre à la langue. La somme de contrôle peut être spécifiée sous la forme d’une chaîne de nombre hexadécimal qui ne contient pas plus de 32 caractères. La valeur numérique doit être contenue dans un nombre de 128 bits. |
langage | Non | Balise de langue conforme à l’IETF BCP 47 (Windows Vista et versions ultérieures), par exemple, en-US pour l’anglais (États-Unis). |
ultimateFallbackLanguage | Non | Langue à insérer dans les données de configuration des ressources pour le fichier LN, représentant la langue de secours ultime à utiliser dans une recherche d’un fichier de ressources spécifique à la langue correspondante. Si le chargeur de ressources ne parvient pas à charger un fichier de ressources demandé à partir des langues d’interface utilisateur préférées du thread, il utilise une langue de secours ultime comme dernière tentative. Balise de langue conforme à l’IETF BCP 47 (Windows Vista et versions ultérieures), par exemple, en-US pour l’anglais (États-Unis). |
ultimateFallbackLocation | Non | Emplacement de secours. Spécifiez « interne » si les ressources de secours ultimes sont compilées dans le fichier LN. Spécifiez « externe » (par défaut) si le fichier LN doit référencer un fichier de ressources spécifique au langage pour ses ressources de secours ultimes. |
Dans le fichier de configuration des ressources, l’élément win32Resources contient les sous-éléments décrits dans le tableau suivant.
Nom de l’élément | Description |
---|---|
localizedResources | Ressources qui encapsulent des informations sur les types de ressources et les ressources individuelles contenues dans un fichier de ressources spécifique à la langue. |
neutralResources | Ressources qui encapsulent des informations sur les types de ressources contenus dans un fichier LN. |
élément localizedResources
Élément ressources localisées. Par défaut, cet élément n’a aucun attribut et un seul type de sous-élément. Il s’agit simplement d’un conteneur pour les éléments resourceType.
Nom d’attribut | Description |
---|---|
resourceType | Type d’une ressource individuelle contenue dans un fichier de ressources spécifique à la langue. |
neutralResources, élément
Élément ressources neutres. Cet élément n’est qu’un conteneur pour les éléments resourceType.
Nom d’attribut | Description |
---|---|
resourceType | Type d’une ressource unique contenue dans un fichier LN. |
élément resourceType
L’élément resourceType encapsule des informations sur un type de ressource unique ou une ressource individuelle. Il a les attributs répertoriés ci-dessous.
Attention
Certains défauts de configuration des ressources sont détectés uniquement par le compilateur RC ou MUIRCT, en fonction du contenu du fichier de ressources d’entrée ou du fichier binaire. Les erreurs resourceType dans le fichier de configuration des ressources qui n’existent pas dans le fichier d’entrée ne sont pas interceptées, ce qui entraîne un comportement inattendu. Les utilisateurs peuvent utiliser un fichier de configuration de ressources défectueux et ne le savent pas tant qu’ils n’introduisent pas des fichiers binaires qui utilisent les parties cassées du fichier de configuration de ressources, ce qui crée l’apparence que les interruptions proviennent des fichiers binaires actuels.
Nom de l’attribut | Obligatoire | Description |
---|---|---|
typeNameId | Oui | Nom de type ou identificateur de la ressource. Spécifiez un nom de chaîne ou un nombre. Si vous utilisez un nombre, ajoutez à la chaîne un « # » pour indiquer qu’elle représente un nombre. Chaque élément resourceType ne doit avoir qu’un seul attribut typeNameId . |
itemName | Non | Chaîne de nom d’élément pour la ressource, à placer dans le fichier de ressources spécifique à la langue. Vous pouvez spécifier plusieurs noms, séparés par des espaces blancs, par exemple« HTML MOFDATA ». |
itemId | Non | Identificateur d’un élément de ressource individuel, à placer dans le fichier de ressources spécifique à la langue. L’élément peut être spécifié sous forme de plage (par exemple, « 1-12 ») ou par des identificateurs individuels séparés par des espaces blancs (par exemple, « 1 3 4 »). |
stringId | Non | Identificateur de chaîne pour un élément de ressource individuel, à placer dans le fichier de ressources spécifique à la langue. La chaîne peut être spécifiée sous la forme d’une plage (par exemple, « 1-12 ») ou par des identificateurs individuels séparés par des espaces blancs (par exemple, « 1 3 4 »). Cet attribut permet de spécifier des entrées de table de chaîne localisables et non localisables. Il doit être utilisé conjointement avec la valeur typeNameId de « 6 », indiquant un type de ressource d’entrée de table de chaîne. Les chaînes sont stockées dans des blocs de 16 dans une table de chaînes. Par exemple, les chaînes 0 à 15 sont stockées dans un seul bloc d’élément de ressource et peuvent être référencées dans le fichier de configuration des ressources en tant que itemId 1, ou en tant que stringId « 0-15 ». Par exemple, s’il existe cinq chaînes localisables et trois chaînes non localisables, vous devez affecter des identificateurs de chaîne 0 à 4 pour les chaînes localisables et des identificateurs de chaîne 16 à 18 pour les chaînes non localisables. Si vous n’organisez pas les chaînes de cette façon, les blocs de chaînes affectés sont placés à la fois dans le fichier LN et dans le fichier de ressources propre à la langue. |
Si vous spécifiez les attributs itemName, itemId et/ou stringId pour un type de ressource particulier sous l’élément localizedResource, seuls ces éléments ou chaînes spécifiés pour le type de ressource désigné sont placés dans le fichier de ressources spécifique à la langue. Si un élément resourceType est spécifié sans nom d’élément explicite, identificateur d’élément ou identificateur de chaîne, tous les éléments du type de ressource spécifié sont placés dans le fichier de ressources spécifique à la langue. Les éléments ou types non répertoriés dans un élément localizedResource sont placés dans le fichier LN.
Voici les types de ressources standard et leurs identificateurs numériques :
- CURSOR(1)
- BITMAP(2)
- ICÔNE(3)
- MENU(4)
- DIALOG(5)
- STRING(6)
- FONTDIR(7)
- FONT(8)
- ACCÉLÉRATEURS(9)
- RCDATA(10)
- MESSAGETABLE(11)
- GROUP_CURSOR(12)
- GROUP_ICON(14)
- VERSION(16)
- HTML(23)
Exemple
<?xml version="1.0" encoding="utf-8"?>
<localization>
<resources>
<win32Resources fileType="Application">
<neutralResources>
<resourceType
typeNameId="#16"
/>
</neutralResources>
<localizedResources>
<resourceType
typeNameId="#2"
itemId="5 6 7 8 9 10 11 12"
itemName="HTML PRI"
/>
<resourceType
typeNameId="#4"
/>
<resourceType
typeNameId="#5"
/>
<resourceType
typeNameId="#6"
/>
<resourceType
typeNameId="#9"
/>
<resourceType
typeNameId="#11"
/>
<resourceType
typeNameId="#16"
/>
<resourceType
typeNameId="HTML"
/>
<resourceType
typeNameId="#23"
/>
<resourceType
typeNameId="#240"
/>
<resourceType
typeNameId="#1024"
/>
<resourceType
typeNameId="MY_TYPE"
/>
</localizedResources>
</win32Resources>
</resources>
</localization>
Notes
Si vous incluez un type de ressource ICON(3), DIALOG(5), STRING(6) ou VERSION(16) dans l’élément neutralResources, vous devez dupliquer cette entrée dans l’élément localizedResources. Vous pouvez le voir dans l’exemple ci-dessus, où le type de ressource 16 apparaît dans les sections ressources neutres et localisées.