Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
File INF harus memiliki setidaknya satu bagian String untuk menentukan setiap token% strkey %yang ditentukan di tempat lain di INF tersebut.
[Strings] |
[Strings.LanguageID] ...
strkey1 = ["]some string["]
strkey2 = " string-with-leading-or-trailing-whitespace " |
"very-long-multiline-string" |
"string-with-semicolon" |
"string-ending-in-backslash" |
""double-quoted-string-value""
...
Entri
strkey1, strkey2, ...
Setiap kunci string dalam file INF harus menentukan nama unik yang terdiri dari huruf, digit, dan/atau karakter lain yang terlihat secara eksplisit. Karakter % dalam token strkey tersebut harus dinyatakan sebagai %%.
beberapa string | "beberapa string"
Menentukan string, dibatasi secara opsional dengan menggunakan karakter tanda kutip ganda ("), yang berisi huruf, digit, tanda baca, dan mungkin bahkan karakter tertentu yang terlihat secara implisit, khususnya, ruang internal dan/atau karakter tab. Namun, string yang tidak dikutip tidak boleh berisi tanda kutip ganda internal ("), titik koma (;), linefeed, return, atau karakter kontrol yang tidak terlihat, dan tidak dapat memiliki garis miring terbalik () sebagai karakter akhirnya.
"* string-with-leading-or-trailing-whitespace* " |
"string multibaris yang sangat panjang" |
"string-ending-in-backslash" |
""double-quoted-string-value""
Nilai yang ditentukan untuk token% strkey %harus diapit dalam tanda kutip ganda (") jika memenuhi salah satu kriteria berikut:
Jika string tertentu memiliki spasi putih di depan atau di belakang yang harus dipertahankan sebagai bagian dari nilainya, string tersebut harus diapit dalam karakter tanda kutip ganda untuk mencegah spasi putih di depan dan/atau di belakangnya dibuang oleh pengurai INF.
Jika string panjang mungkin berisi karakter linefeed internal atau pengembalian karena pembungkusan baris di editor teks, string tersebut juga harus diapit dalam tanda kutip ganda untuk mencegah pemotongan string pada karakter linefeed internal awal atau karakter pengembalian.
Jika string tersebut berisi titik koma, string harus diapit dalam tanda kutip ganda untuk mencegah string dipotong di titik koma. (Seperti yang telah disebutkan dalam Aturan Sintaks Umum untuk File INF, karakter titik koma memulai setiap komentar dalam file INF.)
Jika string seperti itu berakhir dengan garis miring terbalik, string harus diapit dalam tanda kutip ganda untuk mencegah string digabungkan dengan entri berikutnya. (Seperti yang telah disebutkan dalam Aturan Sintaks Umum untuk File INF, karakter garis miring terbalik () digunakan sebagai kontinuator baris dalam file INF.)
Seperti spesifikasi string yang tidak dikutip, "string yang dikutip" seperti itu tidak dapat berisi karakter tanda kutip ganda internal. Namun, ini dapat ditentukan sebagai nilai string yang dikutip ganda secara eksplisit dengan menggunakan satu atau beberapa pasangan tambahan karakter tanda kutip ganda (misalnya, ""beberapa string"").
Pengurai INF tidak hanya membuang sepasang terluar dari tanda kutip ganda yang diapit untuk "string yang dikutip" di bagian ini, tetapi juga mengembun setiap pasangan tanda kutip ganda berurutan berikutnya ke dalam karakter tanda kutip ganda tunggal.
Misalnya, """beberapa string""" juga menjadi "beberapa string" ketika diurai.
Untuk meringkas, string apa pun harus diapit dalam sepasang karakter tanda kutip ganda (") jika salah satu dari berikut ini benar:
- String berisi spasi kosong di depan atau di belakang.
- String sangat panjang sehingga garis membungkus.
- String berisi titik koma atau karakter garis miring terbelakang akhir.
- String itu sendiri adalah string yang dikutip.
Pengurai INF sistem membuang sepasang tanda kutip ganda terluar yang mencakup karakter yang memisahkan string tersebut, bersama dengan karakter spasi putih di depan atau di belakang di luar pemisah string tanda kutip ganda.
Remarks
Karena pengurai INF sistem mencopot sepasang terluar dari tanda kutip ganda dari "string yang dikutip" yang mendefinisikan token% strkey %, banyak file INF sistem mendefinisikan semua %strkey% token sebagai "string yang dikutip" untuk menghindari hilangnya spasi awal dan akhir yang tidak diinginkan selama penguraian INF. Penggunaan "string yang dikutip"s juga memastikan bahwa terutama nilai string panjang yang membungkus di seluruh baris tidak dapat dipotong, dan bahwa string dengan garis miring terbalik yang berakhir tidak dapat digabungkan ke baris berikutnya dalam file INF.
Untuk membuat satu file INF internasional, INF dapat memiliki sekumpulan String khusus lokal .Bagian LanguageID , seperti yang ditunjukkan dalam pernyataan sintaks formal. Ekstensi LanguageID adalah nilai heksadesimal 4 digit (tanpa "0x") terkemuka yang didefinisikan sebagai berikut:
- 10 bit yang lebih rendah berisi ID bahasa utama dan 6 bit berikutnya berisi ID sublanguage, seperti yang ditentukan oleh makro MAKELANGID yang ditentukan dalam Winnt.h.
- ID bahasa dan sublanguasi harus sesuai dengan nilai yang ditentukan sistem dari konstanta Win32 LANG_XXXX dan SUBLANG_XXX yang ditentukan dalam Winnt.h.
Misalnya, nilai LanguageID 0407 mewakili ID bahasa utama LANG_GERMAN (07) dengan ID sublanguage SUBLANG_GERMAN (01) seperti dalam contoh berikut:
[Strings] ; No language ID implies English
DiskName="My Excellent Software"
LocaleSubDir="English"
[Strings.0407] ; 0407 is the language ID for German
DiskName="Meine ausgezeichnete Software"
LocaleSubDir="German"
File INF hanya dapat berisi satu bagian String , bersama dengan satu String.Bagian LanguageID untuk setiap nilai LanguageID .
Windows memilih satu bagian String yang digunakan untuk menerjemahkan semua token% strkey %untuk penginstalan. Bergantung pada lokal komputer tertentu saat ini, Windows memilih bagian String dengan cara berikut:
Windows pertama-tama mencari . Nilai LanguageID dalam INF yang cocok dengan lokal saat ini yang ditetapkan ke komputer. Jika kecocokan yang tepat ditemukan, Windows menggunakan String tersebut.LanguageID Bagian INF untuk menerjemahkan semua token% strkey %yang ditentukan dalam INF.
Anda perlu menduplikasi semua token string di semua String.* bagian, bahkan konstanta numerik/tetap yang tidak perlu dilokalkan.
Jika tidak, Windows mencari kecocokan berikutnya dengan nilai LANG_XXX dengan nilai SUBLANG_NEUTRAL sebagai SUBLANG_XXX. Jika kecocokan tersebut ditemukan, Windows menggunakan bagian INF tersebut untuk menerjemahkan semua token% strkey %yang ditentukan dalam INF.
Jika tidak, Windows mencari kecocokan berikutnya dengan nilai LANG_XXXX dan SUBLANG_XXX yang valid untuk keluarga LANG_XXX yang sama. Jika kecocokan parsial seperti itu ditemukan, gunakan String tersebut.LanguageID Bagian INF untuk menerjemahkan semua token% %strkey yang ditentukan dalam INF.
Jika tidak, Windows menggunakan bagian String yang tidak terdekorasi untuk semua menerjemahkan token% strkey %yang ditentukan dalam INF.
Menurut konvensi, dan untuk kenyamanan dalam membuat satu set file INF untuk pasar internasional, bagian String adalah yang terakhir dalam semua file INF sistem. Menggunakan %strkey% token untuk semua nilai string yang terlihat pengguna dalam INF, dan menempatkannya di bagian String per lokal, menyederhanakan terjemahan string tersebut. Untuk informasi selengkapnya tentang file INF khusus lokal, lihat Membuat File INF Internasional.
Meskipun bagian String adalah bagian terakhir dalam setiap file INF, setiap token %strkey% yang ditentukan di bagian String dapat digunakan berulang kali di tempat lain di INF, khususnya, di mana pun nilai yang diterjemahkan dari token tersebut diperlukan. Fungsi SetupAPI memperluas setiap %strkey% token ke string yang ditentukan lalu menggunakan nilai yang diperluas tersebut untuk pemrosesan INF lebih lanjut.
Penggunaan %token% strkey dalam file INF tidak dibatasi untuk nilai string yang terlihat pengguna. Token ini dapat digunakan dengan cara apa pun yang nyaman bagi penulis INF, selama setiap token didefinisikan dalam bagian String . Misalnya, ketika Anda menulis file INF yang memerlukan spesifikasi beberapa GUID, mungkin lebih mudah untuk membuat token %strkey% untuk setiap GUID, dengan menggunakan nama yang bermakna sebagai pengganti untuk setiap nilai GUID tersebut.
Menentukan sekumpulan % nilai strkey% = "{GUID}" di bagian String file INF mengharuskan Anda mengetik setiap nilai GUID eksplisit hanya sekali. Ini dapat membantu menyediakan dokumentasi INF internal yang lebih mudah dibaca daripada dengan menggunakan nilai GUID eksplisit di seluruh file INF.
Semua token% strkey %harus didefinisikan dalam file INF tempat token tersebut dirujuk. Oleh karena itu, untuk file INF apa pun yang memiliki entri Sertakan dan Kebutuhan , INF yang disertakan harus memiliki bagian String sendiri untuk menentukan semua token% strkey %yang dirujuk dalam INF tersebut.
Di bagian STRING INF, panjang maksimum, dalam karakter, dari string substitusi, termasuk karakter NULL yang mengakhiri, adalah 4096 (Windows Vista dan versi Windows yang lebih baru) dan 512 (Windows Server 2003, Windows XP, dan Windows 2000). Setelah penggantian string, panjang maksimum, dalam karakter, dari string file INF adalah 4096, termasuk karakter NULL yang mengakhiri.
Examples
Contoh berikut menunjukkan fragmen bagian String dari dvd khusus lokal yang disediakan sistem untuk penginstalan di negara/wilayah berbahasa Inggris.
[Strings]
Msft="Microsoft"
MfgToshiba="Toshiba"
Tosh404.DeviceDesc="Toshiba DVD decoder card"
; ...
Contoh berikut menunjukkan perangkaian string.
[OEM Windows System Component Verification]
OID = 1.3.6.1.4.1.311.10.3.7 ; WHQL OEM OID
Notice = "%A% %B% %C% %D% %E%"
[Strings]
A = "This certificate is used to sign untested drivers that have not passed the Windows Hardware Quality Labs (WHQL) testing process."
B = "This certificate and drivers signed with this certificate are intended for use in test environments only, and are not intended for use in any other context."
C = "Vendors who distribute this certificate or drivers signed with this certificate outside a test environment may be in violation of their driver signing agreement."
D = "Vendors who have their drivers signed with this certificate do so at their own risk."
E = "In particular, Microsoft assumes no liability for any damages that may result from the distribution of this certificate or drivers signed with this certificate outside the test environment described in a vendor's driver signing agreement."