Winres.exe (Windows Resource Localization Editor)

Windows Resource Localization Editor (Winres.exe) は、ビジュアル レイアウト ツールです。ローカリゼーションの専門家は、このツールにより、フォームで使用される Windows フォームのユーザー インターフェイス (UI) リソースのローカライズが楽になります。 Winres.exe への入力として使用される .resx ファイルおよび .resources ファイルは、Microsoft Visual Studio などのビジュアル デザイン環境を使用して作成できます。 .NET Framework アプリケーションにリソースを配置する方法については、「.NET アプリのリソース」を参照してください。

Winres.exe が Visual Studio と共にインストールされます。 ツールを実行するには、、Visual Studio 開発者コマンド プロンプトまたは Visual Studio Developer PowerShell を使用します。

警告

信頼されていないファイルはこのツールで開かないでください。 ファイルがバイナリ ファイルの場合、安全ではないバイナリ逆シリアル化によって逆シリアル化されます。 詳細については、「BinaryFormatter および関連する型を使用するときの逆シリアル化のリスク」を参照してください。

構文

winres resourceFile
winres /?

引数

引数 説明
resourceFile ローカライズするリソース ファイル。 このファイルは Visual Studio デザイナーで作成した、Windows フォームの .resx ファイルまたは .resources ファイルである必要があります。 Winres.exe では、汎用的な .resx ファイルまたは .resources ファイルは開くことができません。
オプション 説明
/? このツールのコマンド構文とオプションを表示します。

Remarks

Windows フォーム プロジェクトのフォームの UI 要素の状態は、通常、リソース ファイルに格納されます。リソース ファイルは、拡張子 .resx を持つ XML ベースのファイル、または、これに対応する、拡張子 .resources が設定された、コンパイル済みのバイナリ形式のファイルのいずれかです。 Winres.exe ツールでは、上記いずれかの形式のファイルを、Visual Studio のデザイン環境を使用しないで編集できますが、制限があります。 具体的には、以下の編集操作を行うことができます。

  • ニュートラルまたは特定のカルチャ リソース ファイルを編集して、テキスト、サイズ、位置など、フォームやそのコントロールの UI プロパティを変更できます。
  • ニュートラルまたは特定のカルチャのリソース ファイルを、既定のリソース ファイルから作成できます。
  • カルチャ リソース ファイルを別のカルチャのリソース ファイルとして保存できます。 たとえば、英語 (U.S.) のリソース ファイルを、ポーランド語のリソース ファイルとして保存できます。 通常は、新しいファイルを引き続き編集して、新しいカルチャに対応させます。

ローカリゼーション用リソースの階層編成」または「ローカリゼーション用リソースの階層編成」も参照してください。

Winres.exe では、対応する .resources ファイルに .resx ファイルを変換できません。この場合は Resgen.exe ツールを使用してください。 Resgen.exe について詳しくは、「Resgen.exe (リソース ファイル ジェネレーター)」を参照してください。

Winres.exe はグラフィカル アプリケーションであり、ソース コードにアクセスすることなく、リソース ファイルだけを使用して、Windows フォームのデザイン時バージョンを再作成できます。 Winres.exe では、Visual Studio の Windows フォーム デザイナーおよび [プロパティ] ウィンドウがホストされます。 この機能を使用すると、Windows フォームが含まれている .resources ファイルや .resx ファイルをビジュアル編集できます。 通常、ローカライズ ツールでは Winres.exe を使用して、コントロールのラベルが編集されると共に、ターゲット カルチャのラベルが納まるようにコントロールの位置とサイズが調整されます。

Winres.exe がコントロールの型を解決できない場合、ローカライズされた .resx ファイルまたは .resources ファイルには、プレースホルダー コントロールが作成されます。 このプレースホルダー コントロールは、Windows フォーム上にハッチ ウィンドウとして表示されます。 このハッチ ウィンドウのサイズおよび位置は、実際のコントロールのサイズおよび位置と一致します。 プレースホルダー コントロールのプロパティでローカライズできるプロパティはすべて、 [プロパティ] ウィンドウに表示されます。 プレースホルダー コントロールに対して行ったすべての変更内容が、実際のコントロールに保存されます。

Winres.exe と Visual Studio の比較

通常、アプリケーションの Windows フォームのローカライズを開始する前に、ローカリゼーション ツールとして Visual Studio と Winres.exe のどちらを使用するのかを決定する必要があります。 この後で説明するバージョンの互換性の問題が原因で、途中でツールを切り替えることができない場合があるためです。

Visual Studio の利点は、アプリケーションの開発にもローカライズにも使用できる点です。 フォームをローカライズするには、開発を完了してから、フォームの LocalizableAttribute (プロパティ エディター内の Localizable プロパティ) を true に設定し、その Language プロパティを目的のカルチャに変更します。 次に、文字列を編集し、ターゲット カルチャに合わせて変更した文字列が納まるようにコントロールの位置およびサイズを調整します。 ローカライズ済み .resx file を保存するときに、Visual Studio は、ローカライズ可能なプロパティ (ターゲット カルチャで変更したプロパティ) だけをファイルに書き込みます。 Visual Studio は、ローカライズ済み .resx ファイル用のサテライト アセンブリを正しいディレクトリ位置に自動的に作成します。

Visual Studio には、開発およびローカリゼーション用の統合環境が用意されていますが、ローカリゼーションがサードパーティのローカライズ ツールによって行われる場合には Winres.exe をツールとして使用することをお勧めします。 Winres.exe はローカリゼーション専用のツールであるため、アプリケーションのコードとローカライズ対象のフォームを明確に分離でき、大規模なプロジェクトを管理するうえでより実用的です。

Winres.exe の使用

Winres.exe を使用してローカライズを行う場合は、まず、Visual Studio 内の Windows フォーム デザイナー などのビジュアル デザイナーを使用してアプリケーションを開発する必要があります。 開発が完了したら、フォームの LocalizableAttribute (プロパティ エディター内の Localizable プロパティ) を true に設定し、既定のカルチャの .resx ファイルを、サードパーティのローカライズ ツールに渡します。 この .resx ファイルには、Winres.exe が元のフォームのデザイン時バージョンを再作成するために使用する補足情報が含まれています。

Note

Winres.exe で既定のリソース ファイルを編集することはできません。 Winres.exe では、変更されたすべてのプロパティがローカライズされたプロパティと解釈され、ターゲット カルチャ リソース ファイルに保存されます。

カルチャ リソース ファイルの最終バージョンが完成したら、これを使用して、アプリケーションのローカライズ バージョンを作成できます。 詳細については、「.NET アプリのリソース」を参照してください。

Winres.exe には、以下の機能があります。

  • Winres は、単一ファイル モード (SFM: Single File Mode) または Visual Studio ファイル モード (VSFM: Visual Studio File Mode) で使用できます。 SFM は、フォームとその内容についての情報すべてをリソース ファイルに格納する、レガシなモードです。 VSFM では、カルチャの変更点のみがリソース ファイルに格納されます。

  • エラー レポート ウィンドウがメイン ウィンドウの左下にドッキングされます。

  • ホット キーの重複をチェックできます。 [書式] メニューの [ホット キーの確認] コマンドをクリックします。

バージョンの互換性

使用している .NET Framework と共にリリースされた Winres.exe のバージョンを使用する必要があります。 次の表は、互換性のあるバージョンの一覧です。

Visual Studio .NET Framework Winres.exe
Visual Studio .NET 2002 1.0 1.0
Visual Studio .NET 2003 1.1 1.1
Visual Studio 2005 2.0 2.0
Visual Studio 2008 3.0 と 3.5 3.0 と 3.5
Visual Studio 2010 4.0 4.0
Visual Studio 2017 4.6 4.6

Note

VSFM には、Visual Studio 互換であるという長所がありますが、変更点だけをリソース ファイルに格納するため、Winres.exe で VSFM を使用するには、現在のリソース ファイルの親ファイルが同じディレクトリに存在する必要があります。 たとえば、ドイツ語のリソース ファイル TestApp.de-DE.resources を編集している場合は、既定のリソース ファイル TestApp.resx が存在する必要があり、ときにはカルチャ ニュートラルなリソース ファイル TestApp.de.resources も必要となることがあります。

使用例

フォームに関連付けられた .resx ファイルまたは .resources ファイルをローカライズするには

  1. Winres.exe を実行するには、開発者コマンド プロンプトで「winres」と入力します。

  2. ローカライズするフォームの既定のリソースを開くには、[ファイル]、[開く] の順に選択し、ファイルに移動してそれを開きます。

    \- または -

    Winres.exe を起動するときに、コマンド ラインで開くファイルを指定します。 次のコマンドは、Winres.exe を起動し、TestApp.resx に関連付けられたフォームをフォーム デザイナーに読み込みます。

    winres TestApp.resx
    

    次のコマンドは、Winres.exe を起動し、TestApp.resources に関連付けられたフォームをフォーム デザイナーに読み込みます。

    winres TestApp.resources
    

    Note

    リソースが編集中であるフォームが他のフォームを継承したフォームである場合は、継承したフォームを含むアセンブリと、継承元 (派生元) のフォームを含むアセンブリの両方が、グローバル アセンブリ キャッシュ (GAC: Global Assembly Cache) に登録されているか、WinRes.exe と同じディレクトリに存在する必要があります。 .NET Framework のコンポーネントを GAC にインストールする方法の詳細については、「グローバル アセンブリ キャッシュ」を参照してください。

  3. フォーム上のコントロールを選択し、このコントロールの Text などのプロパティを変更して、ローカライズ後のカルチャおよび言語を反映します。 ローカライズされたテキストが納まるように、必要に応じてコントロールを移動したりそのサイズを変更したりします。

  4. .resx または .resources ファイルのローカライズされたバージョンを保存するには、[保存] アイコンをクリックするか、[ファイル]、[保存] の順に選択します。 [カルチャを選択する] ウィンドウが表示されます。

  5. 適切なカルチャおよびファイル モードを選択し、 [OK] をクリックします。

    ツールによってファイルが保存される場合は、ローカライズされたリソース ファイルに対してランタイムが予測した名前付け規則が使用されます。 たとえば、TestApp.resources をドイツのドイツ語用にローカライズする場合、ファイルは TestApp.de-DE.resources という名前で保存されます。 TestApp.resx をドイツのドイツ語用にローカライズする場合、ファイルは TestApp.de-DE.resx という名前で保存されます。 リソースの名前付け規則の詳細については、リソースのパッケージ化と配置に関するページを参照してください。 ランタイムで使用される定義済みカルチャ名の一覧については、「CultureInfo クラス」を参照してください。

関連項目