Dela via


Förbereda en resurskonfigurationsfil

Både MUIRCT- och RC Compiler-verktygen som beskrivs i Resource Utilities tillhandahålla ett kommandoradsalternativ som gör att du kan ange en resurskonfigurationsfil för basspråkresurserna. Användningen av den här offentliga, läsbara XML-filen ger mer kontroll över resursdelningen än vad som kan hämtas med hjälp av de vanliga kommandoradsväxlarna för verktygen. Dock, även om du inte anger en resurskonfigurationsfil som en indata, kommer resursfiler för LN och varje språk att innehålla resurskonfigurationsdata.

Alla resurskonfigurationsfiler för Win32-program börjar och slutar identiskt:

<?xml version="1.0" encoding="utf-8"?> 
<localization>

<resources>
        
        <!-- a single win32Resources element goes here -->

</resources>
</localization>

Det här avsnittet fokuserar på de aspekter av XML-schemat som är användbara för att skapa ohanterad kod i Windows Vista och senare. I synnerhet handlar det bara om beteendet för win32Resources-elementet.

win32Resources-element

Elementet win32Resources har attributen som beskrivs i följande tabell.

Attributnamn Obligatorisk Beskrivning
filtyp Nej Typ av fil. Ska alltid vara "Applikation".
kontrollsumma Nej Kontrollsumma som ska finnas med i resurskonfigurationsdata i LN-filen och språkspecifika resursfiler. Med det här attributet kan du till exempel kopiera kontrollsumman från en enda språkspecifik resursfil, enligt konventionen den för engelska (USA) och placera kontrollsumman i en annan språkspecifik resursfil. Kontrollsumman kan anges som en hexadecimal nummersträng som inte är längre än 32 tecken. Det numeriska värdet måste vara inneslutbart i ett 128-bitars tal.
Språk Nej Språktagg som är kompatibel med IETF BCP 47 (Windows Vista och senare), till exempel en-US för engelska (USA).
ultimateFallbackLanguage Nej Språk för att infoga i resurskonfigurationsdata för LN-filen, som representerar det ultimata återställningsspråket som ska användas i en sökning efter en motsvarande språkspecifik resursfil. Om resursinläsaren inte kan läsa in en begärd resursfil från trådens önskade gränssnittsspråk använder den ett ultimat återställningsspråk som sista försök. Språktaggen är kompatibel med IETF BCP 47 (Windows Vista och senare), till exempel en-US för engelska (USA).
ultimateFallbackLocation Nej Alternativ plats. Ange "intern" om ultimata reservresurser kompileras till LN-filen. Ange "extern" (standard) om LN-filen ska referera till en språkspecifik resursfil för dess ultimata återställningsresurser.

I resurskonfigurationsfilen har elementet win32Resources de underelement som beskrivs i nästa tabell.

Elementnamn Beskrivning
lokaliserade resurser Resurser som kapslar in information om resurstyperna och enskilda resurser som finns i en språkspecifik resursfil.
neutralResources Resurser som omfattar information om de resurstyper som finns i en LN-fil.

localizedResources Element

Elementet Lokaliserade resurser. Som standard har det här elementet inga attribut och endast en typ av underelement. Det är bara en container för resourceType-element.

Attributnamn Beskrivning
resurstyp Typ av en enskild resurs som finns i en språkspecifik resursfil.

neutralResources-elementet

Element för neutrala resurser. Det här elementet är bara en container för resourceType-element.

Attributnamn Beskrivning
resurstyp Typ av en enskild resurs som finns i en LN-fil.

resourceType-elementet

ResourceType-elementet kapslar in information om en enskild resurstyp eller enskild resurs. Den har attributen som anges nedan.

Försiktighet

Vissa resurskonfigurationsfel fångas endast av RC Compiler eller MUIRCT, beroende på indataresursfilen eller binärfilinnehållet. ResourceType-felen i resurskonfigurationsfilen som inte finns i indatafilen fångas inte, vilket resulterar i oväntat beteende. Användare kan använda en defekt resurskonfigurationsfil och vet inte om det förrän de introducerar binärfiler som använder de trasiga delarna av resurskonfigurationsfilen, vilket ger ett intryck av att felen kommer från de binärfiler som för närvarande används.

Attributnamn Obligatorisk Beskrivning
typeNameId Ja Ange namnet eller identifieraren för resursen. Ange ett strängnamn eller ett tal. Om du använder ett tal förbereder du strängen med "#" för att ange att den representerar ett tal. Varje resourceType-element får bara ha ett typeNameId-attribut.
artikelNamn Nej Objektnamnsträng för resursen som ska placeras i den språkspecifika resursfilen. Du kan ange flera namn, avgränsade med blanksteg, till exempel "HTML MOFDATA".
itemId Nej Identifierare för enskilda resursobjekt som ska placeras i den språkspecifika resursfilen. Objektet kan anges som ett intervall (till exempel "1–12") eller av enskilda identifierare avgränsade med blanksteg (till exempel "1 3 4").
stringId Nej Strängidentifierare för enskilda resursobjekt som ska placeras i den språkspecifika resursfilen. Strängen kan anges som ett intervall (till exempel "1–12") eller av enskilda identifierare avgränsade med blanksteg (till exempel "1 3 4"). Med det här attributet kan du ange både lokala och icke-lokaliserade strängtabellposter. Den måste användas tillsammans med typeNameId värdet "6", vilket anger resurstypen för en strängtabellpost.
Strängar lagras i block av 16 i en strängtabell. Strängarna 0 till 15 lagras till exempel i ett enda resursobjektblock och kan refereras i resurskonfigurationsfilen som itemId 1 eller som stringId "0–15". Om det till exempel finns fem lokala strängar och tre icke-lokaliserade strängar bör du tilldela strängidentifierare 0–4 för de lokala strängarna och strängidentifierare 16–18 för strängar som inte kan lokaliseras. Om du inte organiserar strängar på det här sättet placeras de berörda strängblocken i både LN-filen och den språkspecifika resursfilen.

Om du anger itemName, itemIdoch/eller stringId attribut för en viss resurstyp under elementet localizedResource placeras endast dessa angivna objekt eller strängar för den avsedda resurstypen i den språkspecifika resursfilen. Om ett resourceType-element anges utan explicit objektnamn, objektidentifierare eller strängidentifierare placeras alla objekt av den angivna resurstypen i den språkspecifika resursfilen. Objekt eller typer som inte visas i något localizedResource-element placeras i LN-filen.

Följande är standardresurstyperna och deras numeriska identifierare:

  • CURSOR(1)
  • BITMAP(2)
  • ICON(3)
  • MENY(4)
  • DIALOG(5)
  • STRING(6)
  • FONTDIR(7)
  • FONT(8)
  • ACCELERATORER(9)
  • RCDATA(10)
  • MESSAGETABLE(11)
  • GROUP_CURSOR(12)
  • GROUP_ICON(14)
  • VERSION(16)
  • HTML(23)

Exempel

<?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>

Anmärkningar

Om du inkluderar någon ICON(3), DIALOG(5), STRING(6) eller VERSION(16) resurstyp i neutralResources-elementet måste du duplicera posten i elementet localizedResources. Du kan se detta som illustreras i exemplet ovan, där resurstyp 16 visas i både neutrala och lokaliserade resursavsnitt.

Förbereda resurser