Menyiapkan File Konfigurasi Sumber Daya

Utilitas Kompilator MUIRCT dan RC yang dijelaskan dalam Utilitas Sumber Daya menyediakan opsi baris perintah yang memungkinkan Anda menentukan file konfigurasi sumber daya untuk sumber daya bahasa dasar. Penggunaan file XML publik yang dapat dibaca manusia ini memungkinkan kontrol lebih besar atas pemisahan sumber daya daripada yang dapat diperoleh menggunakan sakelar baris perintah reguler utilitas. Namun, bahkan jika Anda tidak menyediakan file konfigurasi sumber daya sebagai input, LN dan file sumber daya khusus bahasa akan berisi data konfigurasi sumber daya.

Semua file konfigurasi sumber daya untuk aplikasi Win32 dimulai dan berakhir identik:

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

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

</resources>
</localization>

Topik ini berfokus pada aspek skema XML yang berguna dalam membangun kode yang tidak dikelola pada Windows Vista dan yang lebih baru. Secara khusus, hanya berkaitan dengan perilaku elemen win32Resources.

Win32Resources Element

Elemen win32Resources memiliki atribut yang dijelaskan dalam tabel berikut.

Nama atribut Wajib Deskripsi
fileType Tidak Jenis file. Harus selalu "Aplikasi".
Checksum Tidak Nilai checksum muncul dalam data konfigurasi sumber daya file LN dan file sumber daya khusus bahasa. Misalnya, atribut ini memungkinkan Anda menyalin checksum dari satu file sumber daya khusus bahasa, dengan konvensi yang untuk bahasa Inggris (Amerika Serikat), dan menempatkan checksum dalam file sumber daya khusus bahasa yang berbeda. Checksum dapat ditentukan sebagai string angka heksadesimal yang tidak lebih dari 32 karakter. Nilai numerik harus dapat dimuat dalam angka 128-bit.
bahasa Tidak Tag bahasa sesuai dengan IETF BCP 47 (Windows Vista dan yang lebih baru), misalnya, en-US untuk bahasa Inggris (Amerika Serikat).
ultimateFallbackLanguage Tidak Bahasa yang akan dimasukkan ke dalam data konfigurasi sumber daya untuk file LN, mewakili bahasa fallback utama untuk digunakan dalam pencarian file sumber daya khusus bahasa yang sesuai. Jika pemuat sumber daya gagal memuat file sumber daya yang diminta dari bahasa UI pilihan utas, ia menggunakan bahasa fallback utama sebagai upaya terakhirnya. Tag bahasa yang sesuai dengan IETF BCP 47 (Windows Vista dan yang lebih baru), misalnya, en-US untuk bahasa Inggris (Amerika Serikat).
ultimateFallbackLocation Tidak Lokasi fallback. Tentukan "internal" jika sumber daya fallback utama dikompilasi ke dalam file LN. Tentukan "eksternal" (default) jika file LN adalah mereferensikan file sumber daya khusus bahasa untuk sumber daya fallback utamanya.

Dalam file konfigurasi sumber daya, elemen win32Resources memiliki sub-elemen yang dijelaskan dalam tabel berikutnya.

Nama Elemen Deskripsi
localizedResources Sumber daya yang merangkum informasi tentang jenis sumber daya dan sumber daya individual yang terkandung dalam file sumber daya khusus bahasa.
neutralResources Sumber daya yang merangkum informasi tentang jenis sumber daya yang terkandung dalam file LN.

Elemen localizedResources

Elemen sumber daya yang dilokalkan. Secara default, elemen ini tidak memiliki atribut dan hanya satu jenis sub-elemen. Ini hanyalah kontainer untuk elemen resourceType.

Nama Atribut Deskripsi
resourceType Jenis sumber daya individual yang terkandung dalam file sumber daya khusus bahasa.

Elemen neutralResources

Elemen sumber daya netral. Elemen ini hanyalah kontainer untuk elemen resourceType.

Nama Atribut Deskripsi
resourceType Jenis sumber daya tunggal yang terkandung dalam file LN.

resourceType Element

Elemen resourceType merangkum informasi tentang satu jenis sumber daya atau sumber daya individual. Ini memiliki atribut yang tercantum di bawah ini.

Perhatian

Beberapa cacat konfigurasi sumber daya hanya ditangkap oleh RC Compiler atau MUIRCT, tergantung pada file sumber daya input atau konten file biner. Kesalahan resourceType dalam file konfigurasi sumber daya yang tidak ada dalam file input tidak tertangkap, mengakibatkan perilaku yang tidak terduga. Pengguna dapat menggunakan file konfigurasi sumber daya yang rusak dan tidak tahu sampai mereka memperkenalkan biner yang menggunakan bagian rusak dari file konfigurasi sumber daya, yang menciptakan tampilan bahwa jeda berasal dari biner saat ini.

Nama atribut Wajib Deskripsi
typeNameId Ya Ketik nama atau pengidentifikasi untuk sumber daya. Tentukan nama string atau angka. Jika menggunakan angka, tambahkan string sebelumnya dengan "#" untuk menunjukkan bahwa string mewakili angka. Setiap elemen resourceType hanya boleh memiliki satu atribut typeNameId .
itemName Tidak String nama item untuk sumber daya, yang akan ditempatkan dalam file sumber daya khusus bahasa. Anda dapat menentukan beberapa nama, dipisahkan oleh spasi kosong, misalnya, "HTML MOFDATA".
itemId Tidak Pengidentifikasi item sumber daya individual, yang akan ditempatkan dalam file sumber daya khusus bahasa. Item dapat ditentukan sebagai rentang (misalnya, "1-12") atau oleh pengidentifikasi individual yang dipisahkan oleh spasi putih (misalnya, "1 3 4").
stringId Tidak Pengidentifikasi string untuk item sumber daya individual, yang akan ditempatkan dalam file sumber daya khusus bahasa. String dapat ditentukan sebagai rentang (misalnya, "1-12") atau oleh pengidentifikasi individual yang dipisahkan oleh spasi putih (misalnya, "1 3 4"). Atribut ini memungkinkan spesifikasi entri tabel string yang dapat dilokalkan dan tidak dapat dilokalisasi. Ini harus digunakan bersama dengan nilai typeNameId "6", yang menunjukkan jenis sumber daya entri tabel string.
String disimpan dalam blok 16 dalam tabel string. Misalnya, string 0 hingga 15 disimpan dalam satu blok item sumber daya dan dapat dirujuk dalam file konfigurasi sumber daya sebagai itemId 1, atau sebagai stringId "0-15". Misalnya, jika ada lima string yang dapat dilokalkan dan tiga string yang tidak dapat dilokalisasi, Anda harus menetapkan pengidentifikasi string 0-4 untuk string yang dapat dilokalkan, dan pengidentifikasi string 16-18 untuk string yang tidak dapat dilokalisasi. Jika Anda tidak mengatur string dengan cara ini, blok string yang terpengaruh ditempatkan dalam file LN dan file sumber daya khusus bahasa.

Jika Anda menentukan atribut itemName, itemId, dan/atau stringId untuk jenis sumber daya tertentu di bawah elemen localizedResource, hanya item atau string yang ditentukan ini untuk jenis sumber daya yang ditunjuk yang ditempatkan dalam file sumber daya khusus bahasa. Jika elemen resourceType ditentukan tanpa nama item eksplisit, pengidentifikasi item, atau pengidentifikasi string, semua item dari jenis sumber daya yang ditentukan ditempatkan dalam file sumber daya khusus bahasa. Item atau jenis yang tidak tercantum dalam elemen localizedResource ditempatkan dalam file LN.

Berikut ini adalah jenis sumber daya standar dan pengidentifikasi numeriknya:

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

Contoh

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

Keterangan

Jika Anda menyertakan jenis sumber daya ICON(3), DIALOG(5), STRING(6), atau VERSION(16) dalam elemen neutralResources, maka Anda harus menduplikasi entri tersebut dalam elemen localizedResources. Anda dapat melihat ini diilustrasikan dalam contoh di atas, di mana sumber daya jenis 16 muncul di bagian sumber daya netral dan lokal.

Menyiapkan Sumber Daya