リソース構成ファイルの準備
「リソース ユーティリティ」で説明されている MUIRCT ユーティリティと RC コンパイラ ユーティリティの両方に、基本言語リソースのリソース構成ファイルを指定できるコマンド ライン オプションが用意されています。 このパブリックで人間が判読できる XML ファイルを使用すると、ユーティリティの通常のコマンド ライン スイッチを使用して取得できるよりも、リソースの分割をより詳細に制御できます。 ただし、リソース構成ファイルを入力として指定しない場合でも、LN および言語固有のリソース ファイルにはリソース構成データが含まれます。
Win32 アプリケーションのすべてのリソース構成ファイルは、同じ方法で開始および終了します。
<?xml version="1.0" encoding="utf-8"?>
<localization>
<resources>
<!-- a single win32Resources element goes here -->
</resources>
</localization>
このトピックでは、Windows Vista 以降でアンマネージド コードを構築する際に役立つ XML スキーマの側面について説明します。 特に、win32Resources 要素の動作にのみ関係します。
win32Resources 要素
win32Resources 要素には、次の表で説明する属性があります。
属性名 | Mandatory | 説明 |
---|---|---|
fileType | いいえ | ファイルの種類。 常に "アプリケーション" である必要があります。 |
チェックサム (checksum) | いいえ | LN ファイルと言語固有のリソース ファイルのリソース構成データに表示されるチェックサム値。 たとえば、この属性を使用すると、1 つの言語固有のリソース ファイルからチェックサムをコピーし、規則に従って英語用のファイル (米国) にコピーし、チェックサムを別の言語固有のリソース ファイルに配置できます。 チェックサムは、32 文字以下の 16 進数文字列として指定できます。 数値は、128 ビット数値で格納できる必要があります。 |
language | いいえ | IETF BCP 47 (Windows Vista 以降) に準拠している言語タグ (英語の en-US (米国など)。 |
ultimateFallbackLanguage | いいえ | LN ファイルのリソース構成データに挿入する言語。対応する言語固有のリソース ファイルの検索で使用する最終的なフォールバック言語を表します。 リソース ローダーがスレッド優先 UI 言語から要求されたリソース ファイルを読み込めなければ、最後の試行として最終的なフォールバック言語が使用されます。 IETF BCP 47 (Windows Vista 以降) に準拠している言語タグ (英語の en-US (米国)。 |
ultimateFallbackLocation | いいえ | フォールバックの場所。 最終的なフォールバック リソースが LN ファイルにコンパイルされる場合は、"internal" を指定します。 LN ファイルが最終的なフォールバック リソースに対して言語固有のリソース ファイルを参照する場合は、"external" (既定値) を指定します。 |
リソース構成ファイルの win32Resources 要素には、次の表で説明するサブ要素があります。
要素名 | 説明 |
---|---|
localizedResources | 言語固有のリソース ファイルに含まれるリソースの種類と個々のリソースに関する情報をカプセル化するリソース。 |
neutralResources | LN ファイルに含まれるリソースの種類に関する情報をカプセル化するリソース。 |
localizedResources 要素
ローカライズされた resources 要素。 既定では、この要素には属性がなく、サブ要素の型は 1 つだけです。 これは、resourceType 要素のコンテナーにすぎません。
属性名 | 説明 |
---|---|
resourceType | 言語固有のリソース ファイルに含まれる個々のリソースの種類。 |
neutralResources 要素
ニュートラル リソース要素。 この要素は、resourceType 要素のコンテナーにすぎません。
属性名 | 説明 |
---|---|
resourceType | LN ファイルに含まれる 1 つのリソースの種類。 |
resourceType 要素
resourceType 要素は、1 つのリソースの種類または個々のリソースに関する情報をカプセル化します。 以下に示す属性があります。
注意事項
一部のリソース構成の欠陥は、入力リソース ファイルまたはバイナリ ファイルの内容に応じて、RC コンパイラまたは MUIRCT によってのみキャッチされます。 入力ファイルに存在しないリソース構成ファイルの resourceType エラーがキャッチされず、予期しない動作が発生します。 ユーザーは、欠陥のあるリソース構成ファイルを使用している可能性があり、リソース構成ファイルの壊れた部分を使用するバイナリを導入するまではわかりません。これにより、現在のバイナリからの中断の外観が作成されます。
属性名 | Mandatory | 説明 |
---|---|---|
typeNameId | はい | リソースの名前または識別子を入力します。 文字列名または数値を指定します。 数値を使用する場合は、文字列の先頭に "#" を付けて、数値を表していることを示します。 各 resourceType 要素は、 typeNameId 属性を 1 つだけ持つ必要があります。 |
itemName | いいえ | 言語固有のリソース ファイルに配置されるリソースの項目名文字列。 "HTML MOFDATA" など、複数の名前を空白で区切って指定できます。 |
itemId | いいえ | 言語固有のリソース ファイルに配置される個々のリソース項目の識別子。 項目は、範囲 ("1-12" など) または空白で区切られた個々の識別子 ("1 3 4" など) で指定できます。 |
stringId | いいえ | 言語固有のリソース ファイルに配置される個々のリソース項目の文字列識別子。 文字列は、範囲 ("1-12" など) または空白で区切られた個々の識別子 ("1 3 4" など) で指定できます。この属性を使用すると、ローカライズ可能な文字列テーブルエントリとローカライズ不可能な文字列テーブルエントリの両方を指定できます。 文字列テーブルエントリリソースの種類を示す typeNameId 値 "6" と組み合わせて使用する必要があります。 文字列は、文字列テーブル内の 16 のブロックに格納されます。 たとえば、文字列 0 から 15 は 1 つのリソース項目ブロックに格納され、リソース構成ファイル内で itemId 1 または stringId "0-15" として参照できます。 たとえば、ローカライズ可能な文字列が 5 つあり、3 つの非ローカライズ可能な文字列がある場合は、ローカライズ可能な文字列に文字列識別子 0 から 4 を割り当て、非ローカライズ可能な文字列には文字列識別子 16 から 18 を割り当てる必要があります。 このように文字列を整理しない場合、影響を受ける文字列ブロックは LN ファイルと言語固有のリソース ファイルの両方に配置されます。 |
localizedResource 要素の特定のリソースの種類に itemName、 itemId、 stringId の属性を指定した場合、指定されたリソースの種類に対して指定されたこれらのアイテムまたは文字列のみが言語固有のリソース ファイルに配置されます。 resourceType 要素が明示的な項目名、項目識別子、または文字列識別子なしで指定されている場合、指定されたリソースの種類のすべての項目は言語固有のリソース ファイルに配置されます。 localizedResource 要素にリストされていないアイテムまたはタイプは、LN ファイルに配置されます。
標準リソースの種類とその数値識別子を次に示します。
- CURSOR(1)
- BITMAP(2)
- ICON(3)
- MENU(4)
- DIALOG(5)
- STRING(6)
- FONTDIR(7)
- FONT(8)
- ACCELERATORS(9)
- RCDATA(10)
- MESSAGETABLE(11)
- GROUP_CURSOR(12)
- GROUP_ICON(14)
- VERSION(16)
- HTML(23)
例
<?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>
解説
neutralResources 要素に ICON(3)、DIALOG(5)、STRING(6)、または VERSION(16) リソースの種類を含める場合は、localizedResources 要素でそのエントリを複製する必要があります。 これは上の例で示されています。この例では、リソースの種類 16 がニュートラル リソースセクションとローカライズされたリソース セクションの両方に表示されます。