アプリケーション リソースの管理
リソース ファイルとは、アプリケーションの一部ですが、コンパイルされないファイルのことであり、たとえばアイコン ファイルやオーディオ ファイルが該当します。 これらのファイルはコンパイル処理の一部ではないため、バイナリを再コンパイルする必要なしで変更することができます。 アプリケーションをローカライズすることを計画している場合は、アプリケーションをローカライズするときに変更する必要があるすべての文字列とその他のリソースに関して、リソース ファイルを使用する必要があります。
注意事項
セキュリティで保護されていない BinaryFormatter
を使用して .resx
ファイル内のリソースがシリアル化される場合があります。 信頼できる .resx
ファイルのみをビルド プロセスに含めてください。
.NET アプリのリソースの詳細については、「.NET アプリのリソース」を参照してください。
リソースの処理
マネージド コード プロジェクトで、プロジェクトのプロパティ ウィンドウを開きます。 次のいずれかで、[プロパティ] ウィンドウを開くことができます。
- ソリューション エクスプローラーでプロジェクト ノードを右クリックし、 [プロパティ] を選びます
- Ctrl+Q 検索ボックスでの「プロジェクト プロパティ」の入力
- ソリューション エクスプローラー で Alt+Enter キーを押します。
[リソース] タブをクリックします。プロジェクトにまだ .resx ファイルが含まれていない場合や、異なる種類のリソースを追加および削除する場合、また既存のリソースを変更する場合は、.resx ファイルを追加できます。
Visual Studio 2022 以降でのリソース エクスプローラーの機能強化
Visual Studio 2022 バージョン 17.11 以降では、リソース エクスプローラーが大幅に改善されました。 「改善された Visual Studio リソース エクスプローラーを導入する」を参照してください。
新しいリソース エクスプローラーを使用するには、1 つ以上のリソース ファイル (.resx
) を含む .NET プロジェクトが必要です。 リソース エクスプローラーを開くには、ソリューション エクスプローラー内の任意のリソース ファイルを右クリックし、[開く]>[リソース エクスプローラー] の順に選択します。 または、キーボード ショートカットの Ctrl+Alt+R も使用できます。
新しいリソース エクスプローラーを開くと、左側に、各ファイルのロケールと共に保存したすべてのリソースの概要が表示されます。 データグリッドに表示するロケールを構成できます。 このインターフェイスを使用すると、翻訳を並べて比較し、その場で編集することができます。
リソース文字列を検索する
グリッドの左上にある検索ボックスを使用して、すべてのリソース ファイルを検索するテキストを実行できます。 リソースを検索するには、ツールバーの検索ボックスに入力し、Enter キーを押します。 データ グリッドには、クエリに一致するリソースのみが名前、値、またはコメントに表示されます。 ワイルドカード (*
) を使用すると部分一致が実行され、引用符 ("
) を使用すると完全一致が実行されます。
リソースの特定の翻訳にコメントを追加する
コメントは、文字列の意味、使用法、トーンなど、リソースの詳細情報やコンテキストを提供する便利な方法です。 リソース エクスプローラーでは、リソースの各翻訳にコメントを追加し、データ グリッドで一度にすべてを表示できます。
リソースにコメントを追加するには、コメントする翻訳に対応するセルを選択し、ツールバーの [コメントの編集 ] ボタンをクリックするか、Shift+Enter キーを押します。 セルの下にコメント ボックスが表示され、ここでコメントを入力できます。 Enter キーを押してコメントを保存するか、Esc を押して破棄します。
コメント ボックスをクリックするか、同じキーボード ショートカットを使用すると、既存のコメントを編集または削除できます。 リソースのすべてのコメントを表示するには、コメントがある各セルの隅にある小さな三角形アイコンを探します。 アイコンの上にマウス ポインターを置くと、コメント テキストを含むヒントが表示されるか、クリックするとコメント ボックスが開きます。
コメントは、リソース ファイルの複数のユーザーが使用できます。 翻訳担当者、開発者、またはリソース マネージャーは、翻訳と共にメモ、質問、説明、または注意事項を残すことができます。 各セルの隅にある小さなアイコンは、コメントがあることを示します。
リソースをフィルター処理する
リソースをフィルター処理するには、ツール バーのフィルター アイコンをクリックし、適用する条件を選択します。 リソースは、名前、値、コメント、種類、またはファイルでフィルター処理できます。
Assert | 説明 |
---|---|
Name | 特定の名前またはプレフィックスを持つリソースのみを表示します。 |
Value | 特定の値を持つリソース、または特定の文字列を含むリソースのみを表示します。 |
コメント | コメントがあるリソース、またはコメントに特定の文字列が含まれているリソースのみを表示します。 |
Type | 文字列、画像、アイコンなど、特定の種類のリソースのみを表示します。 |
ファイル | 特定のファイルまたはカルチャに属するリソースのみを表示します。 |
複数のフィルタを組み合わせて結果を絞り込み、[フィルターのクリア] ボタンをクリックすると結果をクリアできます。
検証と警告
プレースホルダーは、実行時に動的な値 ({0}
、{1}
、{name}
など) に置き換えられる特別なトークンです。 リソースでプレースホルダーを使用する場合は、すべてのローカライズで一貫性があることを確認する必要があります。そうしないと、アプリでエラーや予期しない動作が発生する可能性があります。
新しいリソース エクスプローラーでは、各リソースのプレースホルダーが自動検証され、既定のカルチャとその他のローカライズの間に不一致がある場合は警告アイコンが表示されます。 たとえば、リソースの既定値が「Hello, {name}!」で、スペイン語の値が「Hola, {nombre}!」の場合、プレースホルダー名が異なっていることを示す警告アイコンが表示されます。 アイコンの上にマウス ポインターを置くと、不一致の詳細を含むヒントが表示され、それをクリックすると修正できます。
訳抜けは、もう一つの一般的な問題で、アプリのユーザー エクスペリエンスに影響を与える場合があります。 特定のカルチャ内のリソースの翻訳を提供しない場合、アプリは既定のカルチャにフォールバックします。これは、一部のユーザーにとって適切ではないか、望ましくない可能性があります。 リソース エクスプローラーは、特定のカルチャ内のリソースに値がない場合に警告アイコンを表示することで、この問題を回避するのに役立ちます。 たとえば、>File
の既定値が設定されているリソースがあり、フランス文化には値が無い場合、訳抜けを示す警告アイコンが表示されます。 アイコンの上にマウス ポインターを置くと、[値がありません] というメッセージが表示されたツールヒントが表示され、これを選択すると値を追加できます。
カスタマイズ オプション
Visual Studio 2022 以降のリソース エクスプローラーはスクリーン リーダーや支援技術と互換性があり、視覚障害がある開発者や障害がある開発者にとってアクセシビリティが高くなります。 キーボード ショートカットを使用すると、データ グリッド内を移動したり、値やコメントを編集したり、一般的な操作を実行したりできます。 ナレーターを使用すると、各セルの内容、およびヒントと警告を読み上げることができます。
ズーム レベルを調整するには、ツールバーのズーム スライダーを使用するか、キーボード ショートカット Ctrl+= + Ctrl+- を使用して拡大または縮小します。ズーム レベルを既定値にリセットするには、Ctrl+ + 0 を使用します。
リソース エクスプローラーのテーマは、Visual Studio 環境の残りの部分と一致しています。 明るいテーマ、暗いテーマ、または青のテーマを選択できます。リソース エクスプローラーはそれに応じて調整されます。 [ツール]>[オプション]>[環境]>[フォントと色のダイアログ] の順に選択しても、データ グリッドのフォントと色を変更できます。
他のプロジェクト タイプのリソース
.NET プロジェクトでのリソースの管理方法は、他のプロジェクト タイプと異なります。 リソースについて詳しくは、以下をご覧ください。
- ユニバーサル Windows プラットフォーム (UWP) アプリの場合は、「アプリ リソースとリソース管理システム」をご覧ください
- C++/CLI (マネージド) プロジェクト (「デスクトップ アプリのリソース」を参照)
- C++ プロジェクトの場合は、「リソース ファイルの操作」および「方法:リソースを作成する」を参照してください
- [リソース ビュー] ウィンドウ ([ビュー]>[その他のウィンドウ]>[リソース ビュー]) を使用して、プロジェクトに含まれるリソース ファイルを表示します。
サポート オプション
アプリケーション リソースの管理に関係する問題が発生した場合、「リソース エディターでのエラーのトラブルシューティング」を参照してください。