Utilitaires de ressources

Cette rubrique décrit deux utilitaires utilisés pour générer des applications MUI. Bien que MUIRCT soit un outil spécifique à MUI, MUI utilise également l’utilitaire windows RC Compiler standard. Des instructions pour l’utilisation de ces utilitaires sont fournies dans Localisation des ressources et Génération de l’application.

Utilitaire MUIRCT

MUIRCT (Muirct.exe) est un utilitaire de ligne de commande permettant de fractionner un fichier exécutable standard en un fichier LN et des fichiers de ressources spécifiques au langage (c’est-à-dire localisables). Chacun des fichiers résultants contient des données de configuration de ressources pour l’association de fichiers. MUIRCT est inclus dans le Microsoft Windows SDK pour Windows Vista.

Notes

À compter de Windows Vista, le chargeur de ressources Win32 est mis à jour pour charger des ressources à partir de fichiers spécifiques à la langue ainsi qu’à partir de fichiers LN.

 

Utilisations de MUIRCT

  1. Fractionnez le fichier binaire en main fichier binaire et mui en fonction de rc_config fichier.

    Muirct -q rc_config [-c checksum_file [-b LangID]] [-x LangID] [-g LangId] [-f] [-m] [-v level] source_file [output_LN_file] [output_MUI_file]

  2. Extrayez la somme de contrôle de checksum_file et insérez-la dans output_file.

    Muirct -c checksum_file [-b LangID] -e output_file

  3. Calculez la somme de contrôle en fonction de checksum_file et insérez-la dans output_file.

    Muirct -c checksum_file [-b LangID] -q rc_config -z output_file

  4. Videz le contenu des données de configuration des ressources à partir de input_file.

    Muirct -d input_file

Syntaxe MUIRCT

MUIRCT peut prendre la direction des commutateurs de ligne de commande et/ou à partir d’un fichier de configuration de ressources, spécifié à l’aide du commutateur -q.

muirct [-h|-?] [ -c checksum_file] [-b langid]  ]
     [-g langid] [-q resource configuration file<RCF>] [-v level] [-x langid]
     [-e output_file]  [-z output_file] [-f] [-d MUI'ized file] [-m file_version]

source_filename [language_neutral_filename] [mui_filename]

Commutateurs et arguments

Option Objectif
-h ou -? Affiche l’écran d’aide.
-c Spécifie la checksum_file d’entrée à partir de laquelle extraire ou calculer la somme de contrôle des ressources. Checksum_file doit être un fichier binaire Win32 contenant des ressources localisables. Si checksum_file contient des ressources pour plusieurs langues, le commutateur -b doit être utilisé pour spécifier lequel d’entre eux doit être utilisé, sinon MUIRCT échoue.
-b Spécifie la langue à utiliser lorsque le checksum_file spécifié avec -c contient des ressources dans plusieurs langues. Ce commutateur ne peut être utilisé qu’avec le commutateur -c. L’identificateur de langue peut être au format décimal ou hexadécimal. MuIRCT échoue si l’checksum_file contient des ressources dans plusieurs langues et que -b n’est pas spécifié ou si la langue spécifiée par le commutateur -b est introuvable dans le checksum_file.
-g Spécifie l’ID de langue à inclure comme langue de secours ultime dans la section données de configuration des ressources du fichier LN. Si le chargeur de ressources ne parvient pas à charger un fichier .mui demandé à partir des langues d’interface utilisateur préférées du thread, il utilise le langage de secours ultime comme dernière tentative. La valeur LangID peut être spécifiée au format décimal ou hexadécimal. Par exemple, l’anglais (États-Unis) peut être spécifié par -g 0x409 ou -g 1033.
-q Spécifie que le source_file doit être fractionné en output_LN_file et le output_MUI_file en fonction de la disposition du fichier rc_config. Le fichier rc_config est un fichier au format XML qui spécifie les ressources qui seront extraites dans le fichier .mui et celles qui seront laissées dans le fichier LN. Le rc_config peut spécifier la distribution des types de ressources et des éléments nommés individuels entre les output_LN_file et les output_MUI_file. Le source_file doit être un binaire Win32 qui contient des ressources dans un seul langage, sinon MUIRCT échoue. MUIRCT ne fractionne pas le fichier s’il est indépendant de la langue, ce qui est indiqué par la seule valeur d’ID de langue 0 dans le fichier. Les output_LN_file et output_mui_file sont les noms du fichier .mui et de la langue neutre dans lequel le source_file est fractionné. Ces noms de fichiers sont facultatifs. Si elles ne sont pas spécifiées, MUIRCT ajoute les extensions .ln et .mui à source_file. En règle générale, vous devez supprimer l’extension « .ln » avant de déployer le fichier. MUIRCT associe les output_LN_file et les output_MUI_file en calculant une somme de contrôle basée sur le nom source_file et la version du fichier, puis en insérant le résultat dans la section de configuration des ressources de chaque fichier de sortie. Lorsqu’il est utilisé conjointement avec le commutateur -c, le commutateur -q est prioritaire. Si le fichier rc_config fourni avec le commutateur -q contient une somme de contrôle MUIRCT ignore le commutateur -c et insère la valeur de somme de contrôle de la valeur, rc_config fichier dans les fichiers LN et.mui. Si aucune valeur de somme de contrôle n’est trouvée dans le rc_config, MUIRCT calcule la somme de contrôle des ressources en fonction du comportement du commutateur -c.
-v Spécifie le niveau de détail pour la journalisation. Spécifiez 1 pour imprimer tous les messages d’erreur de base et les résultats des opérations. Spécifiez 2 pour inclure également les informations de ressource (type, nom, identificateur de langue) incluses dans le fichier .mui et le fichier LN. La valeur par défaut est -v 1
-X Spécifie l’ID de langue avec lequel MUIRCT marque tous les types de ressources ajoutés à la section de ressource du fichier .mui. La valeur LangID peut être spécifiée au format décimal ou hexadécimal. Par exemple, l’anglais (États-Unis) peut être spécifié par -x 0x409 ou -x 1033.
-E Extrait la somme de contrôle des ressources contenue dans l’checksum_file fournie avec le commutateur -c et l’insère dans le output_file spécifié. Lorsque -e est spécifié, MUIRCT ignore tous les commutateurs autres que le commutateur -c. Dans ce cas, le checksum_file doit être un fichier binaire Win32 qui contient une section de données de configuration des ressources avec une valeur de somme de contrôle. Le output_file doit être un fichier LN ou .mui existant.
-Z Calcule et insère les données de somme de contrôle des ressources dans le fichier de sortie spécifié. MUIRCT base le calcul de la somme de contrôle sur l’entrée fournie avec le commutateur -c et le commutateur facultatif -b. Si vous spécifiez un fichier de sortie pour le commutateur -z qui n’existe pas, MUIRCT se ferme avec un échec.
Exemple : calcule la somme de contrôle en fonction des ressources localisables dans Notepad.exe et insère la somme de contrôle dans le fichier de sortie Notepad2.exe.
muirct -c notepad.exe -q myprog.rcconfig -z notepad2.exe
-f Permet de créer un fichier .mui avec la ressource version étant la seule ressource localisable. Par défaut, MUIRCT ne l’autorise pas.
-d Recherche et affiche les données de configuration des ressources incorporées dans le fichier source. Lorsque vous spécifiez ce commutateur, MUIRCT ignore toutes les autres options de ligne de commande.
-M Spécifie le numéro de version à utiliser lors du calcul de la somme de contrôle pour associer les output_LN_file et output_MUI_file.
source_filename Nom du fichier source binaire localisé ; Les caractères génériques ne peuvent pas être utilisés. Ce fichier ne peut contenir des ressources que dans une seule langue. S’il existe des ressources dans plusieurs langues dans le fichier, MUIRCT échoue, sauf si le commutateur -b est utilisé. Si le fichier contient des ressources avec des identificateurs de langue ayant la valeur 0 uniquement, MUIRCT ne fractionne pas le fichier, car un identificateur de langue de 0 indique une langue neutre.
Pour le commutateur -d, source_filename est un fichier LN ou un fichier de ressources spécifique à la langue pour lequel MUIRCT doit afficher les données de configuration des ressources.
language_neutral_filename Optionnel. Nom du fichier LN. Si vous ne spécifiez pas le nom de ce fichier, MUIRCT ajoute une deuxième extension « .ln » au nom de fichier source à utiliser comme nom de fichier indépendant de la langue. En règle générale, vous devez supprimer l’extension « .ln » avant de déployer le fichier. Note: Le fichier LN ne doit pas contenir de chaînes ou de menus. Vous devez les supprimer manuellement.
mui_filename Optionnel. Nom du fichier de ressources spécifique à la langue. Si vous ne spécifiez pas de nom, MUIRCT ajoute une deuxième extension « .mui » au nom de fichier source à utiliser comme nom de fichier. Normalement, MUIRCT crée un fichier de ressources spécifique à la langue. Toutefois, il ne crée pas de fichier de ressources si l’une des conditions suivantes existe :
  • Aucune ressource localisable ne se trouve dans le fichier binaire d’origine.
  • La seule langue de ressource trouvée dans le fichier binaire d’origine est la langue neutre.
  • Le fichier binaire d’origine contient des ressources pour plusieurs langues, sans compter la langue neutre. Si le fichier binaire contient des ressources pour deux langues et que l’une d’elles est la langue neutre, l’utilitaire considère le fichier comme monolingue et crée un fichier de ressources propre à la langue s’il existe des ressources localisables.

 

Sortie du langage MUIRCT

MUIRCT choisit la valeur d’attribut « UltimateFallbackLanguage » à insérer dans les données de configuration des ressources du fichier LN en fonction de l’ordre suivant, de la priorité la plus élevée à la plus basse :

  1. Attribut « UltimateFallbackLanguage » dans le fichier de configuration de ressource source, s’il est transmis en tant qu’entrée.
  2. Langue spécifiée avec le commutateur -g.
  3. Langue du fichier d’entrée.

MUIRCT sélectionne la valeur de l’attribut « language » à insérer dans les données de configuration des ressources du fichier .mui en fonction de l’ordre suivant :

  1. Attribut « language » dans le fichier de configuration de ressource source, s’il est transmis en tant qu’entrée.
  2. Langue spécifiée par le commutateur -x (langue de force).
  3. Langue du fichier d’entrée.

Gestion de la somme de contrôle MUIRCT

Le système d’exploitation calcule normalement la somme de contrôle sur les ressources spécifiques à la langue dans un fichier, sauf si vous spécifiez la somme de contrôle via un fichier de configuration de ressources. Tant que la somme de contrôle est la même pour le fichier LN et tous les fichiers de ressources spécifiques à la langue associés, et que l’attribut de langue dans la configuration des ressources dans la correspondance LN et language dépendant de la langue, le chargeur de ressources peut charger des ressources avec succès.

MUIRCT prend en charge plusieurs méthodes pour placer des sommes de contrôle appropriées dans les données de configuration des ressources :

  1. Créez un exécutable pour chaque langage, contenant à la fois du code et des ressources. Après cela, utilisez MUIRCT pour fractionner chacun de ces fichiers en un fichier LN et un fichier de ressources spécifique à la langue. MUIRCT s’exécute plusieurs fois, une fois pour générer un fichier de ressources pour chaque langue. Vous pouvez effectuer la build des manières suivantes :
    1. Utilisez le commutateur -q pour spécifier une valeur de somme de contrôle dans le fichier de configuration des ressources. MUIRCT place cette valeur dans tous les fichiers LN et fichiers de ressources spécifiques à la langue produits. Vous devez adopter une stratégie pour choisir cette valeur, comme décrit plus loin dans cette rubrique.
    2. Utilisez le commutateur -c (et, éventuellement, le commutateur -b) pour choisir une seule langue contenant des ressources à partir de laquelle MUIRCT extrait la somme de contrôle.
    3. Utilisez le commutateur -z pour choisir une langue unique contenant des ressources à partir de laquelle MUIRCT extrait toujours la somme de contrôle. Appliquez cette somme de contrôle une fois que les fichiers ont été générés à l’aide d’autres méthodes.
  2. Créez un exécutable contenant à la fois du code et des ressources pour un seul langage. Après cela, utilisez MUIRCT pour fractionner les ressources entre le fichier LN et le fichier de ressources spécifique à la langue. Enfin, utilisez un outil de localisation binaire pour modifier le fichier de ressources résultant pour chaque langue.

La convention la plus courante pour la gestion de la somme de contrôle consiste à baser la somme de contrôle sur les ressources anglaises (États-Unis). Vous êtes libre d’adopter une convention différente, à condition qu’elle soit cohérente pour chaque fichier LN. Par exemple, il est tout à fait acceptable pour une entreprise de développement logiciel de baser ses sommes de contrôle dans les logiciels qu’elle s’appuie sur des ressources Français (France) au lieu de ressources anglaises (États-Unis), tant que toutes les applications ont des ressources Français (France) sur lesquelles baser les sommes de contrôle. Il est également acceptable d’utiliser le fichier de configuration des ressources pour affecter une valeur hexadécimale arbitraire allant jusqu’à 16 chiffres hexadécimaux comme somme de contrôle. Cette dernière stratégie empêche l’utilisation efficace des commutateurs -z, -c et -b de MUIRCT. Il nécessite l’adoption d’une méthode à l’aide de GuidGen ou d’un autre outil pour générer des valeurs de somme de contrôle. Cette stratégie vous oblige également à configurer une stratégie pour déterminer quand modifier la valeur lors de l’ajout de nouvelles ressources localisables.

Pour appliquer la somme de contrôle anglais (États-Unis) à tous les fichiers, vous pouvez utiliser l’une des méthodes de gestion de la somme de contrôle décrites ci-dessus. Par exemple, vous pouvez générer le fichier LN et le fichier de ressources spécifique à la langue pour l’anglais (États-Unis), puis utiliser le commutateur MUIRCT -d pour obtenir la somme de contrôle obtenue. Vous pouvez copier cette somme de contrôle dans votre fichier de configuration de ressources et utiliser le commutateur -q avec MUIRCT pour appliquer la somme de contrôle à tous les autres fichiers.

Utilisation d’un fichier de configuration de ressources avec MUIRCT

Vous pouvez spécifier des données de configuration des ressources lors de l’utilisation de MUIRCT. Que vous fournissez ou non explicitement un fichier de configuration de ressources, chaque fichier de ressources spécifique à une langue possède des données de configuration de ressources, comme le fait n’importe quel fichier LN avec un fichier de ressources associé. Par exemple :

  • Si vous utilisez le commutateur -q pour spécifier un fichier de configuration de ressource, mais qu’il n’existe aucune ressource localisable dans votre fichier source d’entrée, aucun fichier de ressources spécifique à la langue n’est généré et le fichier LN résultant ne contient pas de données de configuration des ressources. En outre, si le fichier source d’entrée a des ressources multilingues, MUIRCT ne fractionne pas le fichier.

Notes

Actuellement, le comportement de MUIRCT est incohérent lorsque l’élément neutralResources du fichier de configuration de ressource ne contient aucun élément resourceType et que l’élément localizedResources contient des chaînes et des menus, par exemple. Dans ce cas, MUIRCT fractionne les ressources comme suit :

  • Toutes les ressources du fichier binaire d’origine (y compris les chaînes et les menus), ainsi que les ressources MUI, sont placées dans le fichier LN.
  • Les chaînes, les menus et les ressources MUI sont placés dans le fichier de ressources approprié spécifique à la langue.

 

Exemples d’utilisation de MUIRCT

Exemples d’utilisation standard

muirct -q mui.MMF bar.exe barnew.exe barnew.exe.mui

muirct -d myprog.exe.mui

Exemple de sortie de fichier LN à l’aide du commutateur -d

Voici un exemple de sortie des données de configuration des ressources d’un fichier LN, Shell32.dll, à l’aide du commutateur -d avec MUIRCT :

Signature          -    fecdfecd
Length             -    148
RC Config Version  -    10000
FileType           -    11
SystemAttributes   -    100
UltimateFallback location    -  external
Service Checksum   -    14f44a8d86bef14af26d9a885964c935
Checksum           -    f5b3b7ab330439d6fcc07582c3afb613
MainNameTypes      -    AVI FTR ORDERSTREAM TYPELIB UIFILE XML MUI
MainIDTypes        -    1 2 3 12 14 16 24
MuiNameTypes       -    MUI
MuiIDTypes         -    2 3 4 5 6 9 14 16
UltimateFallbackLanguage   -   en-US

Exemple de sortie de fichier de ressources Language-Specific à l’aide du commutateur -d

Voici un exemple de sortie des données de configuration des ressources d’un fichier .mui, Shell32.dll.mui, à l’aide du commutateur -d pour MUIRCT :

Signature          -    fecdfecd
Length             -     c8
RC Config Version  -    10000
FileType           -    12
SystemAttributes   -    100
Service Checksum   -    14f44a8d86bef14af26d9a885964c935
Checksum           -    f5b3b7ab330439d6fcc07582c3afb613
MainNameTypes      -    MUI
MainIDTypes        -    2 3 4 5 6 9 14 16
Language           -    en-US

Utilitaire de compilateur RC

Le compilateur RC (Rc.exe) est un utilitaire de ligne de commande permettant de compiler un fichier de script de définition de ressource (extension .rc) dans des fichiers de ressources (extension .res). Le compilateur RC est inclus dans le Kit de développement logiciel (SDK) Windows. Ce document explique uniquement l’utilisation du compilateur RC avec les fonctionnalités liées à l’interface utilisateur utilisateur du chargeur de ressources. Pour obtenir des informations complètes sur le compilateur, consultez À propos des fichiers de ressources.

Le compilateur RC vous permet de générer, à partir d’un ensemble unique de sources, un fichier LN et un fichier de ressources distinct spécifique au langage. Comme pour MUIRCT, les fichiers sont associés par les données de configuration des ressources.

Syntaxe du compilateur RC utilisée pour les ressources MUI

Les commutateurs du compilateur RC sont définis en détail dans Utilisation de RC. Cette section définit uniquement les commutateurs utilisés pour générer des ressources MUI. N’oubliez pas que chaque commutateur ne respecte pas la casse. Les types de ressources sont supposés être non linguistiques, sauf indication contraire.

rc [-h|-?] -fm mui_res_name [-q rc_config_file_name] [-g langid] [-g1 ] [-g2 version]

Commutateurs et arguments

Option Fonction
-h ou -? Affiche l’écran d’aide.
-Fm Utilise le fichier de ressources spécifié pour les ressources spécifiques à la langue. Normalement, le compilateur de ressources crée un fichier de ressources spécifique au langage. Toutefois, il ne crée pas le fichier si l’une des conditions suivantes existe :
  • Il n’existe aucune ressource localisable dans le fichier .rc.
  • La seule langue de ressource trouvée dans le fichier .rc est la langue neutre.
  • Le fichier .rc contient des ressources pour plusieurs langues, sans compter la langue neutre. Si le fichier .rc contient des ressources pour deux langues et que l’une d’elles est la langue neutre, le compilateur considère le fichier comme monolingue. S’il existe des ressources localisables, le compilateur crée un fichier de ressources spécifique au langage.
-q Utilise le fichier de configuration de ressources spécifié pour obtenir les types de ressources à placer dans le fichier de ressources spécifique à la langue et le fichier LN. Pour plus d’informations, consultez Préparation d’un fichier de configuration de ressources. Comme alternative à ce commutateur, vous pouvez utiliser les commutateurs -j et -k, mais il est préférable d’utiliser un fichier de configuration de ressources.
En utilisant le commutateur -q avec un fichier de configuration de ressource, vous pouvez implémenter un fractionnement basé sur un élément et fournir des attributs qui aboutiront à la configuration de ressource binaire dans le LN et le fichier de ressources spécifique à la langue. Ce fractionnement n’est pas possible à l’aide des commutateurs -j et -k. Note: Le processus de fractionnement du compilateur RC ne fonctionne pas correctement si vous stockez des ressources et des informations de version dans différents fichiers de configuration des ressources. Dans ce cas, le compilateur RC ne fractionne pas les informations de version. Par conséquent, une erreur d’éditeur de liens se produit lors de la liaison du fichier de ressources spécifique à la langue, car le fichier ne dispose pas de ressources de version.
-g Spécifie l’identificateur de langue de secours ultime en hexadécimal.
-g1 Crée un fichier .res MUI même si la ressource VERSION est le seul contenu localisable. Par défaut, le compilateur RC ne produit pas de fichier .res si VERSION est la seule ressource localisable.
-g2 Spécifie le numéro de version personnalisé à utiliser lors du calcul de la somme de contrôle.
mui_res_name Fichier de ressources pour les ressources spécifiques à la langue.
rc_config_file_name Fichier de configuration des ressources.
langid Identificateur de langue.
version Numéro de version personnalisé, dans un format tel que « 6.2.0.0 ».

 

Exemple d’utilisation du compilateur RC pour générer des ressources MUI

Pour illustrer l’opération du compilateur RC avec des ressources MUI, examinons la ligne de commande suivante, pour le fichier de ressources Myfile.rc :

rc -fm myfile_res.res -q myfile.rcconfig myfile.rc

Cette ligne de commande amène le compilateur RC à effectuer les opérations suivantes :

  • Créez le fichier de ressources propre à la langue Myfile_res.res et un fichier de ressources indépendant de la langue qui est défini par défaut sur Myfile.res, en fonction du nom du fichier .rc.
  • Ajoutez les types de ressources 2 (élément 5 6 7 8 9 10 11 12), 4, 5, 6, 9, 11, 16, 23, 240, 1024 MY_TYPE au fichier .res spécifique à la langue s’ils se trouvent dans le fichier .rc.
  • Ajoutez le type de ressource 16, ainsi que tous les autres types de ressources décrits dans le fichier de ressources au fichier .res indépendant de la langue et au fichier .res propre à la langue. Notez que, dans cet exemple, le type de ressource 16 est ajouté à deux emplacements.
  • Choisissez la valeur de l’attribut « UltimateFallbackLanguage » à insérer dans les données de configuration des ressources du fichier LN en fonction des critères suivants, classés de la priorité la plus élevée à la plus basse :
    • Attribut « UltimateFallbackLanguage » dans le fichier de configuration de ressource s’il est passé en tant qu’entrée.
    • Valeur de l’attribut de langage à insérer dans les données de configuration des ressources en fonction de l’ordre du langage du compilateur RC (langage indépendant du langage et langue du fichier de ressources spécifique à la langue). Les considérations incluent la langue dans le fichier .rc, la valeur de langue du commutateur -gl et l’identificateur 0x0409 pour l’anglais (États-Unis).

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 dans le fichier de configuration de ressource.

Informations de référence sur l’interface utilisateur multilingue

Gestion des ressources MUI

Localisation des ressources et génération de l’application