次の方法で共有


チュートリアル : サテライト アセンブリからのリソースの読み込み

更新 : 2007 年 11 月

このチュートリアルでは、Windows Presentation Foundation (WPF) Designer for Visual Studio を使用してサテライト アセンブリからリソース文字列を読み込む方法を説明します。これによって、WPF アプリケーションのローカライズが容易になります。

このチュートリアルでは次のタスクを行います。

  • プロジェクトを作成する。

  • サテライト アセンブリを有効にする。

  • リソース文字列を作成し、これにアクセスする。

ここでは、サテライト アセンブリから文字列を取得する簡単なアプリケーションを作成します。

Cc668131.alert_note(ja-jp,VS.90).gifメモ :

実際に画面に表示されるダイアログ ボックスやメニュー コマンドは、アクティブな設定やエディションによっては、ヘルプの説明と異なる場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。

前提条件

このチュートリアルを完了するには、次のコンポーネントが必要です。

  • Visual Studio 2008

プロジェクトの作成

最初にアプリケーションのプロジェクトを作成します。

プロジェクトを作成するには

  1. Visual Basic または Visual C# で ResourceTest という名前の新しい WPF アプリケーション プロジェクトを作成します。詳細については、「方法 : 新しい WPF アプリケーション プロジェクトを作成する」を参照してください。

    WPF デザイナで Window1.xaml が開きます。

  2. ツールボックスからデザイン サーフェイスに Button コントロールをドラッグします。

  3. このボタンをダブルクリックして、このボタン コントロールの Click イベント ハンドラを作成します。

サテライト アセンブリの有効化

AssemblyInfo ファイルおよびプロジェクト ファイルに小さな変更を行うことによって、サテライト アセンブリを有効にします。

サテライト アセンブリを有効にするには

  1. コード エディタで AssemblyInfo.cs または AssemblyInfo.vb を開きます。ソリューション エクスプローラでこれらのファイルを表示するには、[すべてのファイルを表示] をクリックする必要がある場合もあります。

  2. 次の行のコメントを解除します。

    //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
    
    '<Assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>
    
  3. ソリューションを保存します。

  4. ソリューション エクスプローラで、ResourceTest プロジェクトを右クリックし、[プロジェクトのアンロード] をクリックします。

    Visual Studio で ResourceTest プロジェクトがアンロードされます。

  5. ソリューション エクスプローラで、ResourceTest プロジェクトを右クリックし、[ResourceTest.csproj の編集] または [ResourceTest.vbproj の編集] をクリックします。

    XML エディタでプロジェクト ファイルが開きます。

  6. 次の XML を、他の <PropertyGroup> 要素と同じレベルに挿入します。

    <PropertyGroup>
        <UICulture>en-US</UICulture>
    </PropertyGroup>
    
  7. ファイルを保存して閉じます。

  8. ソリューション エクスプローラで、ResourceTest プロジェクトを右クリックし、[プロジェクトの再読み込み] をクリックします。

  9. ソリューション エクスプローラで、既定の RESX ファイルの名前を Resources.resx から Resources.en-US.resx に変更します。

  10. [プロパティ] ウィンドウで、リソース ファイルの [カスタム ツール] の値を削除します。

サテライト アセンブリ内のリソース文字列の作成

ここで、リソース ファイル内に文字列を作成します。

サテライト アセンブリ内のリソース文字列を作成するには

  1. ソリューション エクスプローラで、Resources.en-US.resx をダブルクリックします。

    リソース デザイナで Resources.en-US.resx が開きます。

  2. 既定の文字列の名前を String1 から helloWorldString に変更します。

  3. helloWorldString の値を Hello world に変更します。

  4. 変更を保存し、リソース エディタを終了します。

リソース文字列へのアクセス

ResourceManager クラスを使用して、サテライト アセンブリ内の文字列にアクセスします。

リソース文字列にアクセスするには

  1. コード エディタで Window1.xaml.cs または Window1.xaml.vb を開きます。

  2. Window1.xaml.cs または window1.xaml.vb の先頭に次のコードを挿入します。

    using System.Reflection;
    using System.Resources;
    
    Imports System.Reflection
    Imports System.Resources
    
  3. button1_Click イベント ハンドラ内に次のコードを挿入します。

    ResourceManager rm = new ResourceManager(
        "ResourceTest.Properties.Resources", 
         Assembly.GetExecutingAssembly());
    MessageBox.Show(rm.GetString("helloWorldString"));
    
    Dim rm As New ResourceManager( _
        "ResourceTest.Resources", _
        Assembly.GetExecutingAssembly())
    MessageBox.Show(rm.GetString("helloWorldString"))
    
  4. F5 キーを押してアプリケーションをビルドし、実行します。

  5. ボタンをクリックして、サテライト リソースから読み込まれた文字列値を確認します。

  6. Debug/en-US フォルダを開き、ResourceTest.resources.dll という名前のサテライト アセンブリを確認します。

参照

参照

ResourceManager

その他の技術情報

WPF デザイナを使用した配置とローカリゼーション

エンコーディングとローカリゼーション