修飾子を使ってリソースに名前を付ける方法 (HTML)
[ この記事は、Windows ランタイム アプリを作成する Windows 8.x および Windows Phone 8.x 開発者を対象としています。Windows 10 向けの開発を行っている場合は、「最新のドキュメント」をご覧ください]
修飾子を使って、リソースに名前を付けることができます。修飾子は、リソースのバージョンが使われるコンテキストを特定します。
リソース修飾子
ファイルと文字列リソースを、複数の表示スケール、UI 言語、ハイ コントラスト設定などをサポートするように調整することができます。リソース修飾子は、リソースの特定のバージョンが使われるコンテキストを識別するフォルダーとファイル名の修飾子です。
標準の命名規則は次のとおりです。
foldername/qualifiername-value_qualifiername-value/filename.qualifiername-value_qualifiername-value.ext
たとえば、
Images/en-US/homeregion-USA/logo.scale-100_contrast-white.png
上記は、以下を参照して読み込まれます。
Images/logo.png
注 ファイルがローカライズされない場合や複数の解像度の画像が用意されている場合でも、文字列リソース ファイルに (en-US\resources.resw など) 既定の言語をマークし、画像 (logo.scale-100.png など) に既定のスケールをマークすることをお勧めします。
修飾子についてフォルダー名全体が解析されます。フォルダー名は、一連の修飾子に一致するか、論理ファイル パスの一部と見なされます。ファイル内の、ファイル拡張子の直前のドット付きのセグメントは、修飾子を示すトークンと見なされます。複数の修飾子がアンダースコアで区切られ、修飾子は一般に (フォルダー名に使われるときの言語を除き) 名前と値で指定されます。
アプリの開発者はフォルダー名またはファイル名のどちらかを使って、特定のコンテキスト セットのアセットを指定したり、ワークフローやアプリのニーズに応じて 2 種類の修飾子名を組み合わせて指定したりすることができます。
正しいリソースは、各リソースの修飾子と現在のコンテキストに基づいて実行時に自動的に選ばれます。たとえば、次のアセットが用意されている場合、
en-us\logo.scale-100.png
en-us\logo.scale-140.png
fr-fr\logo.scale-100.png
fr-fr\logo.scale-140.png
スケール 140 の画面で英語 (米国) を選んでいるユーザーには、en-us\logo.scale-140.png の画像が表示されます。さらに複雑なフォールバック シナリオでのリソースの選択について詳しくは、「リソース コンテキスト」をご覧ください。
このトピックの残りのセクションでは、一連の修飾子とリソース インフラストラクチャでサポートされている各次元に対して取り得るそれらの値について説明します。
重要 ここで説明する形式は、ファイル名 (または言語の場合はフォルダー名) の修飾子セグメント内で使われる形式です。1 つまたは複数の修飾子はすべて、リソース名とファイル拡張子の間に示される、完全なファイル名内の 1 つのセグメントとして表示されます。修飾子を含むリソース名全体の形式は、name**.qualifiers.**ext というプレース ホルダーの形式に従っています。このドットは重要です。ドットによって、セグメント間の構文の区切りが示されるためです。修飾子形式内以外の場所では、ドット文字を使うことはできません。
言語 (アプリ)
言語修飾子は、リソースの BCP-47 言語を指定します。ファイル名には言語タグのほかに lang または language 修飾子が必要ですが、フォルダーでは言語タグのみ必要です。言語の一覧については、IANA 言語サブタグ レジストリに関するページをご覧ください。
フォルダー名の形式:
- <Any BCP-47 language tag>
- lang-<Any BCP-47 language tag>
- language-<任意の BCP-47 言語タグ>
ファイル名の形式:
- lang-<Any BCP-47 language tag>
- language-<Any BCP-47 language tag>
例:
es-MX/resources.resw
language-de-DE/UI.resw
images/logo.lang-fr-FR.png
language 修飾子は、アプリ言語の一覧に基づいて照合されます。実行時にアプリの言語を変更すると、イベントとして伝達されます (ResourceContext.QualifierValues を参照)。アプリは、言語を設定または上書きする必要はありません。
スケール
scale 修飾子は、リソースの倍率を指定します。これは一般に、画像が DPI の高いデバイスで表示された場合や、アプリが拡大された場合に使われます。リソースのスケールは、Windows.Graphics.Display.DisplayProperties.ResolutionScale の値、または次に大きい拡大リソースに一致します。 リソースで scale 修飾子を使う場合は、targetsize 修飾子を使わないでください。
スケール修飾子:
- scale-80 (アプリ マニフェストで指定したリソースに対してのみ有効)
- scale-100
- scale-140
- scale-180 (Windows)
- scale-240 (Windows Phone)
実行時にスケールを変更すると、イベントとして伝達されます (ResourceContext.QualifierValues を参照)。
コントラスト
contrast 修飾子は、システムのコントラスト テーマ設定を指定します。すべてのハイ コントラスト テーマがオフのときには、Standard が使われます。 ハイ コントラスト モードのときは、High が有効です。Black は、黒い背景と白い前景の画像が選ばれる場合を示します。White は、白い背景と黒い前景の画像が選ばれる場合を示します。High Contrast #1 と High Contrast #2 のテーマ設定は、Black 修飾子の値と一致します。
contrast-standard
contrast-high
contrast-black
contrast-white
ホームの地域
home region 修飾子はユーザーの住んでいる地域を示します。これは通常 Windows のインストール時に指定され、コントロール パネルからアクセスできます。この修飾子 (ResourceContext.QualifierValues) は一般に、他のデータ プロバイダーの場所がわかった場合に上書きされます。値は、有効な BCP-47 地域タグ、つまり、任意の iso-3166-1 alpha 2 の 2 文字の地域番号に、構成地域用の iso-3166-1 numeric の 3 桁の地域番号のセットを加えた値となります (国連統計部 M49 地域番号構成に関するページをご覧ください)。また、"Selected economic and other groupings" の番号は有効ではありません。
ホームの地域の形式:
homeregion-<Region Code>
例:
homeregion-us
homeregion-jp
homeregion-419
home region 修飾子は親の構成地域と一致します。
ターゲット サイズ
targetsize 修飾子では、特定のサイズ (ピクセル単位) でリソースを指定できます。これは主に、デスクトップのエクスプローラーに表示されるファイルの種類の関連アイコンまたはプロトコル アイコンの指定に使います。この修飾子は一般的に、正方形の画像またはアイコンに使われ、一次元の画像のみ指定します。リソース (ResourceContext.QualifierValues) を要求しているシステムまたはアプリは、targetsize を明示的に指定する必要があります。既定値はありません。 リソースで targetsize 修飾子を使う場合は、scale 修飾子を使わないでください。
ターゲット サイズの形式:
targetsize-<any positive integer>
例:
targetsize-16
targetsize-96
targetsize コンテキストは次に大きい修飾リソースに一致します。
レイアウトの方向
特定の読む順とテキスト配置の方向を適用するリソースを指定するには、layout 修飾子を使います。 たとえば、アラビア語やヘブライ語などの右から左に記述する言語では画像は反転する必要がある場合があります。 多くのアプリは、自動フリッピング メカニズムを使って実行時に画像を反転できますが、この修飾子は単純なフリッピングでは十分でない場合に使います。詳しくは、「RTL 言語とローカライズ フォントのレイアウトを調整する方法」をご覧ください。
レイアウトの方向の形式:
- layoutdir-LTR
- layoutdir-RTL
- layoutdir-TTBLTR
- layoutdir-TTBRTL
構成
テストのみのリソースのような特定のオーサリング時間環境にのみ適用できるリソースを指定するには、構成修飾子を使います。 ほとんどのアプリ開発者は、この修飾子を使うことはありません。環境変数 MS_CONFIGURATION_ATTRIBUTE_VALUE を、関連するリソースに割り当てられた文字列値 (test など) に設定することができます。
構成の形式:
config-<MS_CONFIGURATION_ATTRIBUTE_VALUE>
例:
config-test
config-designer
代替フォーム
特別な目的でリソースの代替フォームを提供するには、代替フォーム修飾子を使います。 これは通常、日本のアプリ開発者だけがふりがなの文字列の提供に使うもので、値 msft-phonetic がこのために予約されます。システムまたはアプリは、特定の状況でこの修飾子を使うために、値を提供する必要があります。既定値はありません。独自のカスタム値に msft- プレフィックスを使わないでください。
代替フォームの形式:
altform-<Any string between 1 and 16 chars>
例:
altform-msft-phonetic
altform-myapp-special
DirectX 機能レベル
DirectX 機能レベル修飾子は、リソースのレンダリングに使われるグラフィックス アダプターの DirectX 機能レベルを表します。通常は、ゲームで使われる Direct3D ディスプレイ アセットに対して使われます。リソースの DirectX 機能レベルは、アプリによってリソース コンテキストに明示的に設定された値に対応します。まったく同じ DirectX 機能レベル値を持つリソースを利用できない場合は、利用可能な最も小さい値を持つリソースが使われます。
注 DirectX 機能レベル修飾子は、Windows 8.1 以降でサポートされます。
DirectX 機能レベル修飾子では、次の 2 つの形式を使うことができます。サポートされる値は、DX9、DX10、DX11 です。
DirectX 機能レベルの形式
- DXFeatureLevel-<value>
- DXFL-<value>
例:
DXFeatureLevel-DX10
DXFL-DX11
注釈
既に説明したように、同じリソースのシナリオで複数の修飾子のパターンをサポートする必要がある場合は、一連の修飾子に含まれる上記の各形式を組み合わせることができます。修飾子のパターンの間に使われる区切り文字は、アンダースコア (_) です。たとえば、構成、スケール、およびレイアウトの方向を明示的にサポートするようにリソース ファイルのパスを示す場合は、logo.config-test_scale-100_layoutdir-LTR.png のように指定します。
関連トピック
RTL 言語とローカライズ フォントのレイアウトを調整する方法
Windows.ApplicationModel.Resources.Core.ResourceContext.QualifierValues
Windows.Graphics.Display.DisplayProperties.ResolutionScale
外部リンク