Preparazione di un file di configurazione delle risorse
Sia muIRCT che le utilità del compilatore RC descritte in Utilità risorse forniscono un'opzione della riga di comando che consente di specificare un file di configurazione delle risorse per le risorse del linguaggio di base. L'uso di questo file XML pubblico e leggibile consente un maggiore controllo sulla suddivisione delle risorse rispetto a quanto può essere ottenuto usando le opzioni della riga di comando regolari delle utilità. Tuttavia, anche se non si specifica un file di configurazione delle risorse come input, i file di risorsa specifici del linguaggio e LN conterrà i dati di configurazione delle risorse.
Tutti i file di configurazione delle risorse per le applicazioni Win32 iniziano e terminano in modo identico:
<?xml version="1.0" encoding="utf-8"?>
<localization>
<resources>
<!-- a single win32Resources element goes here -->
</resources>
</localization>
Questo argomento è incentrato sugli aspetti dello schema XML utili per la compilazione di codice non gestito in Windows Vista e versioni successive. In particolare, è interessato solo al comportamento dell'elemento win32Resources.
Elemento win32Resources
L'elemento win32Resources ha gli attributi descritti nella tabella seguente.
Nome attributo | Obbligatorio | Descrizione |
---|---|---|
fileType | No | Tipo di file. Deve sempre essere "Applicazione". |
checksum | No | Valore checksum da visualizzare nei dati di configurazione delle risorse dei file LN e dei file di risorse specifici della lingua. Ad esempio, questo attributo consente di copiare il checksum da un singolo file di risorse specifico della lingua, per convenzione quello per l'inglese (Stati Uniti) e inserire il checksum in un file di risorse specifico della lingua diverso. Il checksum può essere specificato come stringa di numero esadecimale che non è più di 32 caratteri. Il valore numerico deve essere contenente in un numero a 128 bit. |
Linguaggio | No | Tag linguistico conforme a IETF BCP 47 (Windows Vista e versioni successive), ad esempio en-US per l'inglese (Stati Uniti). |
ultimateFallbackLanguage | No | Lingua da inserire nei dati di configurazione delle risorse per il file LN, che rappresenta il linguaggio di fallback finale da usare in una ricerca di un file di risorse specifico della lingua corrispondente. Se il caricatore di risorse non riesce a caricare un file di risorse richiesto dalle lingue dell'interfaccia utente preferite del thread, usa un linguaggio di fallback finale come ultimo tentativo. Il tag linguistico conforme a IETF BCP 47 (Windows Vista e versioni successive), ad esempio en-US per l'inglese (Stati Uniti). |
ultimateFallbackLocation | No | Posizione di fallback. Specificare "internal" se le risorse di fallback finali vengono compilate nel file LN. Specificare "external" (impostazione predefinita) se il file LN fa riferimento a un file di risorse specifico del linguaggio per le risorse di fallback finali. |
Nel file di configurazione delle risorse l'elemento win32Resources contiene i sottoelementi descritti nella tabella successiva.
Nome dell'elemento | Descrizione |
---|---|
localizedResources | Risorse che incapsulano informazioni sui tipi di risorse e sulle singole risorse contenute in un file di risorse specifico del linguaggio. |
neutralResources | Risorse che incapsulano informazioni sui tipi di risorse contenuti in un file LN. |
Elemento localizedResources
Elemento risorse localizzate. Per impostazione predefinita, questo elemento non ha attributi e solo un tipo di elemento secondario. È solo un contenitore per gli elementi resourceType.
Nome attributo | Descrizione |
---|---|
resourceType | Tipo di una singola risorsa contenuta in un file di risorse specifico della lingua. |
Elemento neutralResources
Elemento Risorse neutrali. Questo elemento è solo un contenitore per gli elementi resourceType.
Nome attributo | Descrizione |
---|---|
resourceType | Tipo di una singola risorsa contenuta in un file LN. |
elemento resourceType
L'elemento resourceType incapsula informazioni su un singolo tipo di risorsa o su una singola risorsa. Contiene gli attributi elencati di seguito.
Attenzione
Alcuni difetti di configurazione delle risorse vengono rilevati solo dal compilatore RC o MUIRCT, a seconda del contenuto del file di risorse di input o del file binario. Gli errori resourceType nel file di configurazione delle risorse che non esistono nel file di input non vengono rilevati, causando un comportamento imprevisto. Gli utenti possono usare un file di configurazione delle risorse difettoso e non sanno fino a quando non introducono file binari che usano le parti interrotte del file di configurazione delle risorse, che crea l'aspetto che le interruzioni sono dai file binari correnti.
Nome attributo | Obbligatorio | Descrizione |
---|---|---|
typeNameId | Sì | Digitare il nome o l'identificatore per la risorsa. Specificare un nome stringa o un numero. Se si usa un numero, prependò la stringa con un "#" per indicare che rappresenta un numero. Ogni elemento resourceType deve avere un solo attributo typeNameId . |
itemName | No | Stringa nome elemento per la risorsa da inserire nel file di risorse specifico della lingua. È possibile specificare più nomi, separati da spazi vuoti, ad esempio "HTML MOFDATA". |
itemId | No | Identificatore di singolo elemento di risorsa da inserire nel file di risorse specifico della lingua. L'elemento può essere specificato come intervallo ,ad esempio "1-12") o da singoli identificatori separati da spazi vuoti ( ad esempio "1 3 4"). |
stringId | No | Identificatore di stringa per singolo elemento di risorsa da inserire nel file di risorse specifico della lingua. La stringa può essere specificata come intervallo ,ad esempio "1-12") o da singoli identificatori separati da spazi vuoti (ad esempio "1 3 4"). Questo attributo consente la specifica delle voci della tabella stringa localizzabili e non localizzabili. Deve essere usato insieme al valore typeNameId di "6", denotando un tipo di risorsa di una tabella stringa. Le stringhe vengono archiviate in blocchi di 16 in una tabella stringa. Ad esempio, le stringhe da 0 a 15 vengono archiviate in un singolo blocco di elementi di risorsa e possono essere referenziate nel file di configurazione della risorsa come itemId 1 o come stringId "0-15". Ad esempio, se sono presenti cinque stringhe localizzabili e tre stringhe nonlocalizzabili, è necessario assegnare identificatori di stringa 0-4 per le stringhe localizzabili e identificatori di stringa 16-18 per le stringhe non localizzate. Se non si organizzano stringhe in questo modo, i blocchi interessati di stringhe vengono inseriti sia nel file LN che nel file di risorse specifico del linguaggio. |
Se si specificano gli attributi itemName, itemId e/o stringId per un tipo di risorsa specifico nell'elemento localizedResource, solo questi elementi o stringhe specificati per il tipo di risorsa designato vengono inseriti nel file di risorse specifico del linguaggio. Se un elemento resourceType viene specificato senza alcun nome di elemento esplicito, identificatore di elemento o identificatore stringa, tutti gli elementi del tipo di risorsa specificato vengono inseriti nel file di risorse specifico della lingua. Gli elementi o i tipi non elencati in alcun elemento localizedResource vengono inseriti nel file LN.
Di seguito sono riportati i tipi di risorse standard e i relativi identificatori numerici:
- CURSOR(1)
- BITMAP(2)
- ICON(3)
- MENU(4)
- DIALOG(5)
- STRING(6)
- FONTDIR(7)
- FONT(8)
- ACCELERATORI(9)
- RCDATA(10)
- MESSAGETABLE(11)
- GROUP_CURSOR(12)
- GROUP_ICON(14)
- VERSION(16)
- HTML(23)
Esempio
<?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>
Commenti
Se si include qualsiasi tipo di risorsa ICON(3), DIALOG(5), STRING(6) o VERSION(16) nell'elemento neutralResources, è necessario duplicare tale voce nell'elemento localizedResources. Questo argomento è illustrato nell'esempio precedente, in cui il tipo di risorsa 16 viene visualizzato sia nelle sezioni delle risorse neutrali che localizzate.