Utilità risorse

In questo argomento vengono descritte due utilità usate per compilare applicazioni MUI. Anche se MUIRCT è uno strumento specifico di MUI, MUI usa anche l'utilità del compilatore WINDOWS RC standard. Le istruzioni per l'uso di queste utilità sono disponibili in Localizzazione delle risorse e creazione dell'applicazione.

Utilità MUIRCT

MUIRCT (Muirct.exe) è un'utilità della riga di comando per suddividere un file eseguibile standard in un file LN e in file di risorse specifici della lingua (ovvero localizzabili). Ognuno dei file risultanti contiene i dati di configurazione delle risorse per l'associazione di file. MUIRCT è incluso nella Microsoft Windows SDK per Windows Vista.

Nota

A partire da Windows Vista, il caricatore di risorse Win32 viene aggiornato per caricare le risorse da file specifici della lingua e da file LN.

 

Utilizzi MUIRCT

  1. Dividere il file binario in file binario principale e mui in base rc_config file.

    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. Estrarre il checksum da checksum_file e inserirlo in output_file.

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

  3. Calcolare il checksum in base checksum_file e inserirlo in output_file.

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

  4. Eseguire il dump del contenuto dei dati di configurazione delle risorse da input_file.

    Muirct -d input_file

Sintassi MUIRCT

MUIRCT può prendere la direzione dalle opzioni della riga di comando e/o da un file di configurazione delle risorse, specificato usando l'opzione -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]

Opzioni e argomenti

Opzione Scopo
-h o -? Visualizza la schermata della Guida.
-c Specifica il checksum_file di input da cui estrarre o calcolare il checksum della risorsa. Checksum_file deve essere un file binario Win32 contenente risorse localizzabili. Se checksum_file contiene risorse per più di una lingua, l'opzione -b deve essere usata per specificare quale di queste devono essere usate altrimenti MUIRCT ha esito negativo.
-b Specifica la lingua da usare quando il checksum_file specificato con -c contiene risorse in più lingue. Questa opzione può essere usata solo in combinazione con l'opzione -c. L'identificatore di lingua può essere in formato decimale o esadecimale. MUIRCT ha esito negativo se il checksum_file contiene risorse in più lingue e -b non è specificato o se la lingua specificata dall'opzione -b non può essere trovata nel checksum_file.
-g Specifica l'ID lingua da includere come lingua di fallback finale nella sezione dei dati di configurazione delle risorse del file LN. Se il caricatore di risorse non riesce a caricare un file mui richiesto dalle lingue dell'interfaccia utente preferite del thread, usa la lingua di fallback finale come ultimo tentativo. Il valore LangID può essere specificato in formato decimale o esadecimale. Ad esempio, l'inglese (Stati Uniti) può essere specificato da -g 0x409 o -g 1033.
-Q Specifica che il source_file deve essere suddiviso nel output_LN_file e nel output_MUI_file in base al layout del file di rc_config. Il file rc_config è un file in formato XML che specifica le risorse che verranno estratte nel file mui e che verranno lasciate nel file LN. Il rc_config può specificare la distribuzione dei tipi di risorse e dei singoli elementi denominati tra il output_LN_file e il output_MUI_file. Il source_file deve essere un file binario Win32 che contiene risorse in un unico linguaggio; in caso contrario, MUIRCT ha esito negativo. MUIRCT non suddivide il file se è indipendente dalla lingua, indicata con solo il valore ID lingua 0 nel file. I output_LN_file e output_mui_file sono i nomi del file mui e indipendente dalla lingua in cui è divisa la source_file. Questi nomi di file sono facoltativi. Se non sono specificati, MUIRCT aggiunge le estensioni .ln e .mui a source_file. In genere è necessario rimuovere l'estensione ".ln" prima di distribuire il file. MUIRCT associa il output_LN_file e output_MUI_file calcolando un checksum in base al nome source_file e alla versione del file e inserendo il risultato nella sezione di configurazione delle risorse di ogni file di output. Se usato in combinazione con l'opzione -c, l'opzione -q ha la precedenza. Se il file rc_config fornito con l'opzione -q contiene un MUIRCT checksum ignora l'opzione -c e inserisce il valore checksum dal valore, rc_config file nei file LN e mui. Se nel rc_config non viene trovato alcun valore di checksum, MUIRCT calcola il checksum della risorsa in base al comportamento dell'opzione -c.
-v Specifica il livello di dettaglio per la registrazione. Specificare 1 per stampare tutti i messaggi di errore di base e i risultati dell'operazione. Specificare 2 per includere anche le informazioni sulla risorsa (tipo, nome, identificatore di lingua) incluse nel file mui e nel file LN. Il valore predefinito è -v 1
-X Specifica l'ID lingua con cui MUIRCT contrassegna tutti i tipi di risorse aggiunti alla sezione della risorsa del file mui. Il valore LangID può essere specificato in formato decimale o esadecimale. Ad esempio, l'inglese (Stati Uniti) può essere specificato da -x 0x409 o -x 1033.
-E Estrae il checksum della risorsa contenuto nel checksum_file fornito con l'opzione -c e lo inserisce nel output_file specificato. Quando si specifica -e, MUIRCT ignora tutte le opzioni diverse dall'opzione -c. In questo caso il checksum_file deve essere un file binario Win32 che contiene una sezione dei dati di configurazione delle risorse con un valore di checksum. Il output_file deve essere un file LN o mui esistente.
-Z Calcola e inserisce i dati del checksum delle risorse nel file di output specificato. MUIRCT basa il calcolo del checksum sull'input fornito con l'opzione -c e l'opzione facoltativa -b. Se si specifica un file di output per l'opzione -z che non esiste, MUIRCT viene chiuso con un errore.
Esempio: calcola il checksum in base alle risorse localizzabili in Notepad.exe e inserisce il checksum nel file di output Notepad2.exe.
muirct -c notepad.exe -q myprog.rcconfig -z notepad2.exe
-f Consente di creare un file con estensione mui con la risorsa versione che rappresenta l'unica risorsa localizzabile. Per impostazione predefinita, MUIRCT non lo consente.
-d Individua e visualizza i dati di configurazione delle risorse incorporati nel file di origine. Quando si specifica questa opzione, MUIRCT ignora tutte le altre opzioni della riga di comando.
-M Specifica il numero di versione da utilizzare per calcolare il checksum per l'associazione del output_LN_file e output_MUI_file.
source_filename Nome del file di origine binaria localizzato; Non è possibile utilizzare caratteri jolly. Questo file può contenere solo risorse in una sola lingua. Se nel file sono presenti risorse in più lingue, MUIRCT ha esito negativo, a meno che non venga usata l'opzione -b. Se il file contiene risorse con identificatori di lingua con valore 0 solo, MUIRCT non suddivide il file perché un identificatore di lingua 0 indica una lingua neutra.
Per l'opzione -d, source_filename è un file LN o un file di risorse specifico della lingua per cui MUIRCT deve visualizzare i dati di configurazione delle risorse.
language_neutral_filename Facoltativa. Nome del file LN. Se non si specifica il nome di questo file, MUIRCT aggiunge un'estensione ".ln" al nome del file di origine da usare come nome di file indipendente dalla lingua. In genere è necessario rimuovere l'estensione ".ln" prima di distribuire il file. Nota: Il file LN non deve contenere stringhe o menu. È necessario rimuoverli manualmente.
mui_filename Facoltativa. Nome del file di risorse specifico della lingua. Se non si specifica un nome, MUIRCT aggiunge un'estensione ".mui" al nome del file di origine da usare come nome file. In genere, MUIRCT crea un file di risorse specifico della lingua. Tuttavia, non crea un file di risorse se esistono una delle condizioni seguenti:
  • Nel file binario originale non sono presenti risorse localizzabili.
  • L'unico linguaggio di risorse trovato nel file binario originale è il linguaggio neutro.
  • Il file binario originale include risorse per più di una lingua, senza contare la lingua neutra. Se il file binario contiene risorse per due lingue e una di esse è la lingua neutrale, l'utilità considera il file monolinguale e crea un file di risorse specifico del linguaggio se sono disponibili risorse localizzabili.

 

Output del linguaggio MUIRCT

MUIRCT sceglie il valore dell'attributo "UltimateFallbackLanguage" da inserire nei dati di configurazione delle risorse file LN in base all'ordine seguente, dalla priorità più alta al minimo:

  1. Attributo "UltimateFallbackLanguage" nel file di configurazione della risorsa di origine, se viene passato come input.
  2. Lingua specificata con l'opzione -g.
  3. Linguaggio di file di input.

MUIRCT seleziona il valore dell'attributo "language" da inserire nei dati di configurazione della risorsa file mui in base all'ordine seguente:

  1. Attributo "language" nel file di configurazione della risorsa di origine, se ne viene passato uno come input.
  2. Lingua specificata dall'opzione -x (forza lingua).
  3. Linguaggio di file di input.

Gestione del checksum MUIRCT

Il sistema operativo calcola normalmente il checksum sulle risorse specifiche della lingua in un file, a meno che non si specifichi il checksum tramite un file di configurazione delle risorse. Purché il checksum sia lo stesso per il file LN e tutti i file di risorse specifici del linguaggio associati e l'attributo della lingua nella configurazione della risorsa nella corrispondenza dipendente dalla rete LN e dalla lingua, il caricatore di risorse può caricare correttamente le risorse.

MUIRCT supporta diversi metodi per inserire i checksum appropriati nei dati di configurazione delle risorse:

  1. Creare un eseguibile per ogni linguaggio contenente sia codice che risorse. In seguito, usare MUIRCT per suddividere ognuno di questi file in un file LN e in un file di risorse specifico del linguaggio. MUIRCT viene eseguito più volte, una volta per generare un file di risorse per ogni lingua. È possibile eseguire la compilazione nei modi seguenti:
    1. Usare l'opzione -q per specificare un valore checksum nel file di configurazione della risorsa. MUIRCT inserisce questo valore in tutti i file LN e i file di risorse specifici del linguaggio prodotti. È necessario adottare una strategia per scegliere questo valore, come descritto più avanti in questo argomento.
    2. Usare l'opzione -c (e, facoltativamente, l'opzione -b) per scegliere una singola lingua con risorse da cui MUIRCT estrae il checksum.
    3. Usare l'opzione -z per scegliere una singola lingua con risorse da cui MUIRCT estrae sempre il checksum. Applicare questo checksum dopo la compilazione dei file usando altri metodi.
  2. Creare un eseguibile contenente sia codice che risorse per un singolo linguaggio. In seguito, usare MUIRCT per suddividere le risorse tra il file LN e il file di risorse specifico del linguaggio. Infine, usare uno strumento di localizzazione binario per modificare il file di risorse risultante per ogni lingua.

La convenzione più comune per la gestione del checksum consiste nel basare il checksum nelle risorse inglese (Stati Uniti). È possibile adottare una convenzione diversa, purché sia coerente per ogni file LN. Ad esempio, è perfettamente accettabile per un'azienda di sviluppo software basare i propri checksum nel software che si basa sulle risorse francesi (Francia) anziché le risorse inglesi (Stati Uniti), purché tutte le applicazioni abbiano risorse francesi (Francia) su cui basare i checksum. È anche accettabile usare il file di configurazione delle risorse per assegnare un valore esadecimale arbitrario di fino a 16 cifre esadecimali come checksum. Questa ultima strategia impedisce l'uso effettivo delle opzioni -z, -c e -b di MUIRCT. Richiede l'adozione di un metodo usando GuidGen o altri strumenti per generare valori checksum. Questa strategia richiede inoltre di configurare un criterio per determinare quando modificare il valore quando si aggiungono nuove risorse localizzabili.

Per applicare il checksum inglese (Stati Uniti) a tutti i file, è possibile usare uno dei metodi di gestione checksum descritti in precedenza. Ad esempio, è possibile generare il file LN e il file di risorse specifici della lingua per l'inglese (Stati Uniti), quindi usare l'opzione MUIRCT -d per ottenere il checksum risultante. È possibile copiare questo checksum nel file di configurazione delle risorse e usare l'opzione -q con MUIRCT per applicare il checksum a tutti gli altri file.

Uso di un file di configurazione delle risorse con MUIRCT

È possibile specificare i dati di configurazione delle risorse quando si usa MUIRCT. Indipendentemente dal fatto che si fornisca in modo esplicito un file di configurazione delle risorse, ogni file di risorsa specifico della lingua dispone di dati di configurazione delle risorse, come avviee per qualsiasi file LN con un file di risorse associato. Ad esempio:

  • Se si usa l'opzione -q per specificare un file di configurazione delle risorse, ma non sono presenti risorse localizzabili nel file di origine di input, non viene generato alcun file di risorse specifico della lingua e il file LN risultante non contiene dati di configurazione delle risorse. Inoltre, se il file di origine di input ha risorse multilingue, MUIRCT non dividerà il file.

Nota

Attualmente il comportamento di MUIRCT è incoerente quando l'elemento neutralResources del file di configurazione della risorsa non contiene elementi resourceType e l'elemento localizedResources contiene stringhe e menu, ad esempio. In tal caso, MUIRCT divide le risorse come indicato di seguito:

  • Tutte le risorse nel file binario originale (incluse stringhe e menu), oltre alle risorse MUI, vengono inserite nel file LN.
  • Le stringhe, i menu e le risorse MUI vengono posizionate nel file di risorse specifico del linguaggio appropriato.

 

Esempi per l'uso di MUIRCT

Esempi di utilizzo standard

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

muirct -d myprog.exe.mui

Esempio di output file LN usando -d Switch

Ecco un esempio dell'output dei dati di configurazione delle risorse da un file LN, Shell32.dll, usando l'opzione -d con 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

Esempio di output del file di risorse Language-Specific tramite -d Switch

Ecco un esempio dell'output dei dati di configurazione delle risorse da un file con estensione mui, Shell32.dll.mui, usando l'opzione -d per 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

Utilità del compilatore RC

Il compilatore RC (Rc.exe) è un'utilità della riga di comando per la compilazione di un file di script di definizione delle risorse (estensione rc) nei file di risorse (estensione con estensione res). Il compilatore RC è incluso in Windows SDK. Questo documento illustra solo l'uso del compilatore RC con funzionalità correlate al muI del caricatore di risorse. Per informazioni complete sul compilatore, vedere Informazioni sui file di risorse.

Il compilatore RC consente di compilare, da un singolo set di origini, un file LN e un file di risorse specifico del linguaggio separato. Come per MUIRCT, i file sono associati ai dati di configurazione delle risorse.

Sintassi del compilatore RC come usata per le risorse MUI

Le opzioni del compilatore RC vengono definite in dettaglio in Uso di RC. Questa sezione definisce solo le opzioni usate per compilare le risorse MUI. Tenere presente che ogni opzione è senza distinzione tra maiuscole e minuscole. Si presuppone che i tipi di risorse siano in lingua neutrale, a meno che non sia indicato in caso contrario.

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

Opzioni e argomenti

Opzione Funzione
-h o -? Mostra la schermata della Guida.
-Fm Usa il file di risorse specificato per le risorse specifiche del linguaggio. In genere, il compilatore di risorse crea un file di risorse specifico del linguaggio. Tuttavia, non crea il file se esistono alcune delle condizioni seguenti:
  • Nel file rc non sono disponibili risorse localizzabili.
  • L'unico linguaggio di risorsa trovato nel file rc è la lingua neutrale.
  • Il file rc include risorse per più di una lingua, senza contare la lingua neutrale. Se il file rc contiene risorse per due lingue e uno è il linguaggio neutrale, il compilatore considera il file monolinguale. Se sono presenti risorse localizzabili, il compilatore crea un file di risorse specifico del linguaggio.
-Q Usa il file di configurazione delle risorse specificato per ottenere i tipi di risorse da inserire nel file di risorse specifico della lingua e nel file LN. Per altre informazioni, vedere Preparazione di un file di configurazione delle risorse. In alternativa a questa opzione, è possibile usare le opzioni -j e -k, ma è preferibile usare un file di configurazione delle risorse.
Usando l'opzione -q con un file di configurazione delle risorse, è possibile implementare una suddivisione basata su elementi e fornire attributi che finiranno con la configurazione della risorsa binaria nel file di risorse LN e nella risorsa specifica del linguaggio. Questa suddivisione non è possibile usando i commutatori -j e -k. Nota: Il processo di suddivisione del compilatore RC non funziona correttamente se si archiviano risorse e informazioni sulla versione in file di configurazione di risorse diversi. In questo caso, il compilatore RC non divide le informazioni sulla versione. Pertanto, un errore del linker si verifica durante il collegamento del file di risorse specifico della lingua perché il file non dispone di risorse di versione.
-g Specifica l'identificatore del linguaggio di fallback finale nell'esadecimale.
-g1 Crea un file con estensione RES MUI anche se la risorsa VERSION è l'unico contenuto localizzabile. Per impostazione predefinita, il compilatore RC non produce un file con estensione res se VERSION è l'unica risorsa localizzabile.
-g2 Specifica il numero di versione personalizzato da usare per il calcolo del checksum.
mui_res_name File di risorse per le risorse specifiche della lingua.
rc_config_file_name File di configurazione delle risorse.
langid Identificatore di lingua.
version Numero di versione personalizzato, in un formato come "6.2.0.0".

 

Esempio per l'uso del compilatore RC per compilare risorse MUI

Per illustrare l'operazione del compilatore RC con le risorse MUI, esaminare la riga di comando seguente per il file di risorse Myfile.rc:

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

Questa riga di comando fa in modo che il compilatore RC eseeva le operazioni seguenti:

  • Creare il file di risorse specifico della lingua Myfile_res.res e un file di risorse indipendente dalla lingua che per impostazione predefinita è Myfile.res, in base al nome del file RC.
  • Aggiungere 2 (elemento 5 6 7 8 9 10 11 12), 4, 5, 6, 9, 11, 16, 23, 240, 1024 MY_TYPE tipi di risorse al file res specifico della lingua se si trovano nel file RC.
  • Aggiungere il tipo di risorsa 16, insieme a qualsiasi altro tipo di risorsa descritto nel file di risorse al file res indipendente dalla lingua e al file res specifico della lingua. Si noti che, in questo esempio, il tipo di risorsa 16 viene aggiunto in due posizioni.
  • Scegliere il valore dell'attributo "UltimateFallbackLanguage" da inserire nei dati di configurazione delle risorse del file LN in base ai criteri seguenti, ordinati dalla priorità più alta alla più bassa:
    • Attributo "UltimateFallbackLanguage" nel file di configurazione della risorsa se ne viene passato uno come input.
    • Valore dell'attributo del linguaggio da inserire nei dati di configurazione delle risorse in base all'ordine del linguaggio del compilatore RC (linguaggio indipendente dal linguaggio e dal linguaggio specifico del file di risorse). Le considerazioni includono la lingua nel file RC, il valore della lingua dell'opzione -gl e l'identificatore 0x0409 per l'inglese (Stati Uniti).

Commenti

Se si include un tipo di risorsa ICON(3), DIALOG(5), STRING(6) o VERSION(16) nell'elemento neutralResources, è necessario duplicare tale voce nell'elemento localizedResources nel file di configurazione della risorsa.

Informazioni di riferimento sulle interfacce utente multilingue

Gestione risorse MUI

Localizzazione delle risorse e compilazione dell'applicazione