Share via


列、コンテンツ タイプ、およびリストをローカライズする

最終更新日: 2010年12月7日

適用対象: SharePoint Foundation 2010

この記事の内容
シナリオ
SharePoint プロジェクトの作成
サイト コレクションを範囲とするフィーチャーの作成
グローバル リソースのプロジェクトへの追加
サイト列、コンテンツ タイプ、およびリストの作成
リスト インスタンスを準備するフィーチャーの作成
フィーチャー リソースの追加
プロジェクトをテストする

このチュートリアルでは、作成および展開する列、コンテンツ タイプ、およびリストについて、ローカライズ リソースを提供および使用する方法について説明します。このチュートリアルで説明するタスクを次に示します。

  • 列、コンテンツ タイプ、およびリストについて、XML 定義のリソース表現を使用する。

  • 1 つのフィーチャーに固有のローカライズ リソースを展開する。

  • 多数のフィーチャーで共有できるローカライズ リソースを展開する。

前提条件

一般的な要件については、「SharePoint ソリューションの開発要件 (英語)」を参照してください。さらに、このチュートリアルを完了するには、次の特別な要件を満たしている必要があります。

シナリオ

このチュートリアルでは、WingtipReports という名前の SharePoint プロジェクトを Microsoft Visual Studio 2010 に作成します。プロジェクトには、2 つのフィーチャーが含まれます。1 つはサイトを範囲とするフィーチャー、もう 1 つは Web を範囲とするフィーチャーです。サイトを範囲とするフィーチャーはサイト コレクション全体でアクティブ化でき、Web を範囲とするフィーチャーは、コレクション内の個別の Web サイトに対してアクティブ化できます。

最初のフィーチャーは、カスタム サイト列、Weekly Status Report というカスタム サイト コンテンツ タイプ、Weekly Status Reports というカスタム リスト テンプレートなど、複数の新しい要素をサイト コレクションに追加します。これらのアイテムはすべて、ハードコードされた表示文字列を、Microsoft ASP.NET リソース表現に置き換えることでローカライズされます。このリソース表現は、ローカライズされた文字列値を言語リソース (.resx) ファイルから取得します。言語リソース ファイルはグローバル リソースとしてインストールされるので、Wingtip の開発者が別の展開で作成した他のフィーチャーと共有できます。

2 番目の Web を範囲としたフィーチャーは、Weekly Status Reports リストのインスタンスを準備します。リストのこのインスタンスでは表示テキストの多くが、最初のフィーチャーがアクティブ化されたときに準備されたサイト列およびサイト コンテンツ タイプによって提供されます (このため、2 番目のフィーチャーは、最初のフィーチャーに対してアクティブ化の依存関係があるものとして定義されます)。ただし、リスト インスタンスには独自のタイトルと説明があり、このテキストは、他のリソース ファイル セットから翻訳を取得することでローカライズされます。これらのリソースは、単一のリスト インスタンスのみをローカライズするので、ローカル リソースとしてインストールされ、そのリソースがインストールされているフィーチャーでのみ使用できます。

SharePoint プロジェクトの作成

まず、Visual Studio 2010 で SharePoint プロジェクトを作成し、そのプロジェクトに WingtipReports という名前を付けます。

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

  1. 管理者として Visual Studio 2010 を開始します。

  2. [ファイル] メニューで [新規作成] をポイントし、[新しいプロジェクト] をクリックして、[新しいプロジェクト] ダイアログ ボックスを表示します。

  3. [C#] または [Visual Basic] で [SharePoint] ノードを展開して、[2010] をクリックします。

  4. [テンプレート] ウィンドウで [空の SharePoint プロジェクト] をクリックし、プロジェクトの名前を WingtipReports に変更して、[OK] をクリックします。

    SharePoint カスタマイズ ウィザードが表示されます。

  5. [デバッグのサイトとセキュリティ レベルの指定] ページで、新しいユーザー設定フィールドのアイテムを追加する SharePoint サイトの URL を入力するか、既定の場所 (http://< system name>/) を使用します。

  6. [この SharePoint ソリューションの信頼レベル] セクションで [ファーム ソリューションとして配置する] を選択します。

  7. [完了] をクリックします。

    プロジェクトがソリューション エクスプローラーに表示されます。

  8. ソリューション エクスプローラーでプロジェクト ノードをクリックし、F4 キーを押します。

    [プロパティ] ウィンドウが表示されます。

  9. [パッケージにアセンブリを含める] プロパティを False に設定します。

    プロジェクトにはコードがなく、アセンブリを展開する必要がありません。

  10. Ctrl + Shift + S キーを押すと、すべて保存されます。

サイト コレクションを範囲とするフィーチャーの作成

最初にこのプロジェクトに追加する必要がある主要な要素は、サイト列、サイト コンテンツ タイプ、およびリスト テンプレートの XML 定義を準備する際に使用できるフィーチャーと、この各アイテムをサポートするローカライズ リソースです。このフィーチャーは、サイト コレクションを範囲としているので、このフィーチャーが準備する要素はサイト コレクション内のすべての Web サイトで使用できます。

サイト コレクションを範囲とするフィーチャーを作成するには

  1. ソリューション エクスプローラーで、[Features] フォルダーを右クリックし、[フィーチャーの追加] をクリックします。

    Feature1 という名前のフォルダーが追加され、フィーチャー デザイナーが開きます。

  2. [Feature1] フォルダーを右クリックし、[名前の変更] を選択して、「WeeklyStatusReport」と入力します。

  3. フィーチャー デザイナーで [タイトル] フィールドに対して自動的に生成された値を、次の文字列に置き換えます。

    $Resources:WeeklyStatusFeature
    

    この文字列は ASP.NET 表現です。ドル記号 ($) はその後ろに表現が続くことを、プレフィックス Resources は表現の種類を示しています。コロン (:) の後ろに続くサフィックスは解決される表現の値で、この例の WeeklyStatusFeature はリソース ファイルのキーの名前です。SharePoint Foundation は表現を評価し、リソース ファイル内にあるローカライズ値と置き換えます。このチュートリアルの後半で、適切なキーと値のペアが含まれるリソース ファイルを作成します。

    リソース表現が次のように表示される場合があります。

    $Resources:wingtip,WeeklyStatusFeature
    

    コンマ (,) の前の値は、リソース ファイル wingtip の基本ファイル名です。この手順ではリソース表現に対して同じ構文を使用しますが、手順 8. で、基本ファイル名を指定しなくてもすむようにプロパティを設定します。

  4. [説明] フィールドに、次の文字列を貼り付けます。

    $Resources:WeeklyStatusFeatureDesc
    
  5. [範囲] リストで [サイト] を選択します。

  6. パッケージング エクスプローラー ウィンドウが開いていない場合は、[表示] メニューで [その他のウィンドウ] をポイントし、[パッケージング エクスプローラー] をクリックします。

  7. パッケージング エクスプローラーで、$Resources:WeeklyStatusFeature のノードをクリックし、F4 キーを押して [プロパティ] ウィンドウを表示します。

  8. [プロパティ] ウィンドウで、[既定のリソース ファイル] プロパティの値を wingtip に設定します。

  9. "展開パス" プロパティの値を WingtipReports に設定します。

  10. Ctrl + Shift + S キーを押すと、すべて保存されます。

グローバル リソースのプロジェクトへの追加

次の手順では、ローカライズ リソース ファイルを SharePoint ソリューションに追加します。この手順で追加するファイルはグローバル リソースとして展開されます。グローバル リソースは、ファーム上のすべてのサーバーの %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\Resources フォルダーにインストールされ、ここで、多くのフィーチャー (他のユーザーによって展開されたフィーチャーを含む) がリソースを共有できます。このチュートリアルでは、作成中のサイト列とコンテンツ タイプを、今後のプロジェクトで開発する他のフィーチャーでも使用する必要があることを前提としています。

プロジェクトのこのフェーズでは、2 つのリソース ファイルを作成します。まず、Web サイトの既定の言語をサポートするリソース ファイルを作成します。次に、Web サイトでサポートされる第 2 言語の 1 つに対応する 2 番目のリソース ファイルを作成します。本番環境では、他の多数の言語についても固有のリソース ファイルを作成し、展開する場合があります。

グローバル リソース ファイルを追加するには

  1. ソリューション エクスプローラーでプロジェクト ノードをクリックします。次に、[プロジェクト] メニューで [SharePoint のマップされたフォルダーの追加] をクリックします。

  2. [SharePoint のマップされたフォルダーの追加] ダイアログ ボックスで [Resources] を選択し、[OK] をクリックします。

    Resources フォルダーがプロジェクトに追加されます。このフォルダーのプロパティを確認します。DeploymentLocation プロパティが {SharePointRoot}\Resources に設定されています。

  3. ソリューション エクスプローラーで、[Resources] フォルダーを選択します。[プロジェクト] メニューで [新しいアイテムの追加] をクリックします。

  4. [新しい項目の追加] ダイアログ ボックスで、開発言語が C# の場合は [Visual C#] のノードを、Visual Basic で作業している場合は [共通項目] のノードを展開し、[全般] を選択します。テンプレート ウィンドウで [リソース ファイル] を選択します。Wingtip.resx ファイルを指定して、[追加] をクリックします。

    リソース ファイルがプロジェクトに追加され、マネージ リソース エディターで開きます。

    ヒントヒント

    グローバルな Resources フォルダーでファイルを準備している場合は必ず、他のアプリケーションで準備されているリソースと名前が競合しないように一意のファイル名を選択することをお勧めします。一つの方法として、会社名をファイル名の先頭に追加します。たとえば、Wingtip Toys 社の場合は、展開するすべてのリソース ファイルの名前の先頭に "Wingtip" を付けることができます。

  5. ソリューション エクスプローラーで、作成したばかりのリソース ファイルを右クリックし、[プログラムから開く] を選択します。

  6. [プログラムから開く] ダイアログ ボックスの [このファイルを開くプログラムを選択してください] で、[XML (テキスト) エディター] を選択します。次に、[OK] をクリックします。

    リソースが XML エディターで開きます。

  7. XML エディターでファイルの下部までスクロールし、最終的な </root> タグの上に空白行を挿入します。空白行にカーソルを置き、次の XML をファイルに貼り付けます。

    <data name="Accomplishments" xml:space="preserve">
        <value>Accomplishments (invariant)</value>
      </data>
      <data name="BlockingIssues" xml:space="preserve">
        <value>Blocking Issues (invariant)</value>
      </data>
      <data name="Direction" xml:space="preserve">
        <value>LTR</value>
        <comment>Can be LTR, RTL, or none</comment>
      </data>
      <data name="FromDate" xml:space="preserve">
        <value>From (invariant)</value>
      </data>
      <data name="PlanForNextWeek" xml:space="preserve">
        <value>Plan For Next Week (invariant)</value>
      </data>
      <data name="SubmittedBy" xml:space="preserve">
        <value>Submitted By (invariant)</value>
      </data>
      <data name="ToDate" xml:space="preserve">
        <value>To (invariant)</value>
      </data>
      <data name="WeeklyStatusFeature" xml:space="preserve">
        <value>Weekly Status Reports (invariant)</value>
      </data>
      <data name="WeeklyStatusFeatureDesc" xml:space="preserve">
        <value>Provides support for weekly status report lists. (invariant)</value>
      </data>
      <data name="WeeklyStatusListTemplate" xml:space="preserve">
        <value>Weekly Status Reports List (invariant)</value>
      </data>
      <data name="WeeklyStatusListTemplateDesc" xml:space="preserve">
        <value>A list of weekly progress reports. (invariant)</value>
      </data>
      <data name="WeeklyStatusReportCT" xml:space="preserve">
        <value>Weekly Status Report (invariant)</value>
      </data>
      <data name="WeeklyStatusReportCTDesc" xml:space="preserve">
        <value>Add a new weekly status report. (invariant)</value>
      </data>
    
  8. Ctrl + S キーを押してファイルを保存します。次に、[ファイル] メニューで [閉じる] をクリックしてファイルを閉じます。

  9. ソリューション エクスプローラーで Wingtip.resx ファイル選択します。[編集] メニューで [コピー] をクリックします。次に、[貼り付け] をクリックします。

    "Wingtip.resx のコピー" という名前のファイルが Resources フォルダーに追加されます。

  10. "Wingtip.resx のコピー" という名前のファイルを右クリックし、[名前の変更] をクリックします。ファイルの名前を Wingtip.language-COUNTRY/REGION.resx に変更します。ここで、language には Web サイトの既定の言語の 2 文字のコードを、COUNTRY/REGION にはサブカルチャの 2 文字のコードを指定します。

    たとえば、既定の言語が英語 (米国) の場合、リソース ファイル名は Wingtip**.en-US**.resx になります。

    言語識別子の詳細については、System.Globalization.CultureInfo クラスを参照してください。

    重要重要

    リソース表現では、"Wingtip" などの基本ファイル名を使用してリソース ファイル名を参照します。SharePoint Foundation は、リソース値を取得するとき、基本ファイル名の後に、現在実行中のスレッドの CurrentUICulture プロパティの値に対応する言語識別子が続くリソース ファイル名を参照します。SharePoint Foundation では、この名前は正確に一致する必要があります。たとえば、現在のスレッドの言語識別子が "pt-BR" の場合、SharePoint Foundation は、"BaseFilename.pt-BR.resx" という名前のリソース ファイルを参照します。"BaseFilename.pt.resx"、"BaseFilename.pt-PT.resx" など、言語コードが同じでもサブカルチャ コードが異なるファイルは無視されます。

    実行中のスレッドの言語識別子と一致するリソース ファイルが見つからなかった場合、SharePoint Foundation は、"フォールバック" リソース ファイルを参照します。最初に参照するのがインバリアント カルチャのリソース ファイル、つまり、ファイル名の後ろに言語識別子がないリソース ファイルです。たとえば、現在のプロジェクトのインバリアント カルチャのリソースファイルは Wingtip.resx です。SharePoint Foundation がインバリアント カルチャのリソース ファイルを見つけることができない場合は、既定の言語にフォールバックしようとします。既定の言語のリソース ファイルが見つからない場合は、リソース名が表示されます。

  11. 手順 9. と 10. を繰り返します。ここでは Web サイトで有効になっている第 2 言語のカルチャ固有の識別子が追加されます。

  12. 作成したばかりのカルチャ固有の言語リソース ファイルを両方とも開き、"invariant" という用語をファイルの言語識別子に置き換えます。たとえば、Wingtip.en-US.resx の場合、"Accomplishments (invariant)" は "Accomplishments (en-US)" になります。

    このチュートリアルでは、文字列値を翻訳する必要がありません。代わりに、言語識別子を未翻訳の文字列に追加します。Web パーツをテストするとき、この言語識別子が、表示されている言語を示します。

  13. Ctrl + Shift + S キーを押すと、すべて保存されます。

サイト列、コンテンツ タイプ、およびリストの作成

次は、作成したグローバル リソースを使用します。プロジェクトのこのフェーズでは、複数のカスタム サイト列を作成し、その列を使用するコンテンツ タイプを定義します。最後に、コンテンツ タイプに基づいてリスト定義を作成します。

サイト列、コンテンツ タイプ、およびリスト定義を作成するには

  1. ソリューション エクスプローラーでプロジェクト ノードをクリックします。次に、[プロジェクト] メニューで [新しいアイテムの追加] をクリックします。

  2. [C#] または [Visual Basic] で [SharePoint] ノードを展開して、[2010] をクリックします。

  3. [テンプレート] ウィンドウで [空の要素] をクリックし、要素の名前を Fields に変更して、[追加] をクリックします。

    Fields フォルダーがソリューション エクスプローラーに表示されます。フォルダー内には Elements.xml という名前のファイルがあります。

  4. Elements.xml がエディターで開いていない場合は、それを開きます。

  5. Elements.xml で、次のフィールド定義を開始 <Elements> タグと終了 </Elements> タグの間に追加します。

      <Field ID="{fcc46300-de6e-481e-ac2c-5bc369946712}"
             Name="SubmittedBy"
             DisplayName="$Resources:SubmittedBy"
             Type="User" List="UserInfo" ShowField="NameWithPicture"
             UserSelectionMode="PeopleOnly" UserSelectionScope="0"
             Required="TRUE" />
      <Field ID="{ab597cd8-5392-4c9a-bf99-51de026408d0}"
             Name="FromDate" 
             DisplayName="$Resources:FromDate"
             Type="DateTime" Format="DateOnly"
             Required="TRUE" >
        <Default>[today]</Default>
      </Field>
      <Field ID="{a69582b1-6756-40af-ab7a-7beab306afc9}"
             Name="ToDate" 
             DisplayName="$Resources:ToDate"
             Type="Calculated" Format="DateOnly" ResultType="DateTime" 
             ReadOnly="TRUE" Required="FALSE">
        <Formula>=StartDate+7</Formula>
        <FieldRefs>
          <FieldRef Name="FromDate"/>
        </FieldRefs>
      </Field>
      <Field ID="{3aaad916-127b-48ad-9c07-9b20d5c82aea}"
             Name="Accomplishments"
             DisplayName="$Resources:Accomplishments"
             Type="Note" NumLines="10" RichText="TRUE" RichTextMode="FullHtml"
             Required="TRUE"/>
      <Field ID="{300423a8-5cd6-43de-be09-58318aebe443}"
             Name="PlanForNextWeek"
             DisplayName="$Resources:PlanForNextWeek"
             Type="Note" NumLines="6" RichText="TRUE" RichTextMode="FullHtml"
             Required="FALSE" />   
      <Field ID="{a757c55d-85de-40ca-9cc9-b2ba31a0221d}"
             Name="BlockingIssues"
             DisplayName="$Resources:BlockingIssues"
             Type="Note" NumLines="4" RichText="TRUE" RichTextMode="FullHtml"
             Required="FALSE" />
    
  6. Ctrl + S キーを押して Elements.xml を保存し、ファイルを閉じます。

  7. ソリューション エクスプローラーでプロジェクト ノードをクリックします。次に、[プロジェクト] メニューで [新しいアイテムの追加] をクリックします。

  8. [テンプレート] ウィンドウで [コンテンツ タイプ] をクリックし、要素の名前を ContentTypes に変更して、[追加] をクリックします。

  9. SharePoint カスタマイズ ウィザードの [このコンテンツ タイプの継承元となる基本コンテンツ タイプ] で [アイテム] を選択します。次に、[完了] をクリックします。

    ContentTypes フォルダーがソリューション エクスプローラーに表示されます。フォルダー内には Elements.xml という名前の他のファイルがあります。

  10. 新しい Elements.xml で、開始 <Elements> タグと終了 </Elements> タグ間のすべての内容を削除します。次に、以下のコンテンツ タイプ定義を挿入します。

    <!-- Parent ContentType: Item (0x01) -->
      <ContentType ID="0x010013573845130047cdb90148d52e593cef"
                   Name="$Resources:WeeklyStatusReportCT"
                   Group="Custom Content Types"
                   Description="$Resources:WeeklyStatusReportCTDesc"
                   Inherits="TRUE"
                   Version="0">
        <FieldRefs>
          <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
          <FieldRef ID="{fcc46300-de6e-481e-ac2c-5bc369946712}" Name="SubmittedBy" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
          <FieldRef ID="{ab597cd8-5392-4c9a-bf99-51de026408d0}" Name="FromDate" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
          <FieldRef ID="{a69582b1-6756-40af-ab7a-7beab306afc9}" Name="ToDate" Required="FALSE" ShowInNewForm="FALSE" ShowInEditForm="FALSE"/>
          <FieldRef ID="{3aaad916-127b-48ad-9c07-9b20d5c82aea}" Name="Accomplishments" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
          <FieldRef ID="{300423a8-5cd6-43de-be09-58318aebe443}" Name="PlanForNextWeek" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
          <FieldRef ID="{a757c55d-85de-40ca-9cc9-b2ba31a0221d}" Name="BlockingIssues" Required="FALSE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
        </FieldRefs>
      </ContentType>
    
  11. Ctrl + S キーを押して Elements.xml を保存します。次に、ファイルを閉じます。

  12. ソリューション エクスプローラーでプロジェクト ノードをクリックします。次に、[プロジェクト] メニューで [新しいアイテムの追加] をクリックします。

  13. [テンプレート] ウィンドウで [コンテンツ タイプからのリスト定義] をクリックし、要素の名前を ListDefinitions に変更して、[追加] をクリックします。

  14. SharePoint カスタマイズ ウィザードの [リスト定義の表示名] に、次のリソース表現を貼り付けます。

    $Resources:WeeklyStatusListTemplate
    
  15. [リスト定義に使用するコンテンツ タイプ] の値が $Resources:WeeklyStatusReportCT (WingtipReports\ContentTypes) であることを確認します。

  16. [このリスト定義のリスト インスタンスを追加する] チェック ボックスをオフにして、[完了] をクリックします。

    ListDefinitions フォルダーがソリューション エクスプローラーに表示されます。フォルダー内には Elements.xml という名前の他のファイルと Schema.xml という名前のファイルがあります。

  17. 新しい Elements.xml ファイルで、Description 属性の値を、次のリソース表現に置き換えます。

    $Resources:WeeklyStatusListTemplateDesc"
    
  18. Ctrl + S キーを押して Elements.xml を保存します。次に、ファイルを閉じます。

  19. ソリューション エクスプローラーで、WeeklyStatusReport.feature をダブルクリックし、このファイルをデザイナーで開きます。

  20. フィーチャー デザイナーで、[フィーチャー内の項目] のリストに次の項目が含まれていることを確認します。

    • Resources

    • Fields

    • ContentTypes

    • ListDefinitions

  21. [マニフェスト] (下部の近く) をクリックします。マニフェストが (Id 属性値を除いて) 次の XML と同じであることを確認します。

    <Feature xmlns="https://schemas.microsoft.com/sharepoint/" 
             DefaultResourceFile="wingtip" 
             Description="$Resources:WeeklyStatusFeatureDesc" 
             Id="e18a0885-083e-43f6-94fe-b6d378a2468c" 
             Scope="Site" 
             Title="$Resources:WeeklyStatusFeature">
      <ElementManifests>
        <ElementManifest Location="Resources\Elements.xml" />
        <ElementManifest Location="Fields\Elements.xml" />
        <ElementManifest Location="ContentTypes\Elements.xml" />
        <ElementManifest Location="ListDefinitions\Elements.xml" />
        <ElementFile Location="ListDefinitions\Schema.xml" />
      </ElementManifests>
    </Feature>
    

リスト インスタンスを準備するフィーチャーの作成

次は、Web を範囲とする 2 番目のフィーチャーをプロジェクトに追加し、リスト インスタンスの定義をそのフィーチャーに追加します。フィーチャーを定義する Feature 要素とリスト インスタンスを定義する ListInstance 要素の両方が、キー属性のリソース表現を使用します。プロジェクトにおける最後の作業は、これらの表現に対して値を提供するリソース ファイルを作成します。

このフィーチャーは最初に作成したフィーチャーによって展開された要素に依存します。したがって、新しいフィーチャーのアクティブ化の依存関係を定義します。このフィーチャーは、依存先のフィーチャーがアクティブ化されない限りアクティブにすることはできません。

リスト インスタンスを準備するフィーチャーを作成するには

  1. ソリューション エクスプローラーで、[Features] フォルダーを右クリックし、[フィーチャーの追加] をクリックします。

    Feature1 という名前のフォルダーが追加され、フィーチャー デザイナーが開きます。

  2. [Feature1] フォルダーを右クリックし、[名前の変更] を選択して、「WeeklyStatusList」と入力します。

  3. フィーチャー デザイナーで [タイトル] フィールドに対して自動的に生成された値を、次の文字列に置き換えます。

    $Resources:WeeklyStatusListFeature
    
  4. [説明] フィールドに、次の文字列を貼り付けます。

    $Resources:WeeklyStatusListFeatureDesc
    
  5. [範囲] リストの値が [Web] であることを確認します。

  6. [フィーチャー アクティブ化依存関係] (下部の近く) をクリックし、依存関係ウィンドウを展開します。次に、[追加] をクリックします。

    [フィーチャー アクティブ化依存関係] ダイアログ ボックスが表示されます。

  7. [$Resources:WeeklyStatusFeature] をクリックし、[追加] をクリックします。

  8. ソリューション エクスプローラーでプロジェクト ノードをクリックします。次に、[プロジェクト] メニューで [新しいアイテムの追加] をクリックします。

    [新しいアイテムの追加] ダイアログ ボックスが表示されます。

  9. [C#] または [Visual Basic] で [SharePoint] ノードを展開して、[2010] をクリックします。

  10. [テンプレート] ウィンドウで [リスト インスタンス] をクリックし、既定の名前を受け入れて、[追加] をクリックします。

  11. SharePoint カスタマイズ ウィザードの [リストの表示名] の値を次の文字列に置き換えます。

    $Resources:WeeklyStatusList
    
  12. [インスタンス化するリスト] の値が $Resources:WeeklyStatusListTemplate (WingtipReports\ListDefinitions) であることを確認します。

  13. [説明] の値を次の文字列に置き換えます。

    $Resources:WeeklyStatusListDesc
    
  14. [このリスト インスタンスをクイック起動バーに追加する] チェック ボックスがオンになっていることを確認し、[完了] をクリックします。

    ListInstance1 という名前のフォルダーがソリューション エクスプローラーに表示され、そのフォルダーには Elements.xml ファイルが含まれます。このファイルはエディターで開かれます。リソース表現が、ListInstance 要素の Title 属性および Description 属性の値であることを確認します。

  15. Ctrl + Shift + S キーを押すと、すべて保存されます。

フィーチャー リソースの追加

最後に、リスト インスタンスのローカライズ リソースと、そのリスト インスタンスを展開するフィーチャーを作成します。これらのリソースは 1 つのフィーチャーに固有なので、グローバル リソースではなくローカル リソースとして作成できます。

ローカルのリソースをフィーチャーに追加するには

  1. ソリューション エクスプローラーで、[WeeklyStatusList] フォルダーを右クリックし、[フィーチャー リソースの追加] をクリックします。

  2. [リソースの追加] ダイアログ ボックスの [リソース ファイルのカルチャを選択してください] で、ロケールに依存しない言語 (ロケールに依存しない国) を選択します。次に、[OK] をクリックします。

    リソース ファイルが WeeklyStatusList フォルダーに追加されます。基本ファイル名が Resources であることに注意してください。ローカルのフィーチャー リソースは常にこの基本ファイル名を使用します。フィーチャーが展開されるとき、ローカル リソース ファイルは、ファイル システムにあるフィーチャーのフォルダーの Resources フォルダーに配置されます。

  3. ソリューション エクスプローラーで、作成したばかりのリソース ファイルを右クリックし、[プログラムから開く] を選択します。

  4. [プログラムから開く] ダイアログ ボックスの [このファイルを開くプログラムを選択してください] で、[XML (テキスト) エディター] を選択します。次に、[OK] をクリックします。

    リソースが XML エディターで開きます。

  5. XML エディターでファイルの下部までスクロールし、最終的な </root> タグの上に空白行を挿入します。空白行にカーソルを置き、次の XML をファイルに貼り付けます。

      <data name="WeeklyStatusList" xml:space="preserve">
        <value>Weekly Status Reports (invariant)</value>
      </data>
      <data name="WeeklyStatusListDesc" xml:space="preserve">
        <value>Use the Weekly Status Reports list to submit progress reports. (invariant)</value>
      </data>
      <data name="WeeklyStatusListFeature" xml:space="preserve">
        <value>Weekly Status Report List (invariant)</value>
      </data>
      <data name="WeeklyStatusListFeatureDesc" xml:space="preserve">
        <value>Creates a weekly status report list. (invariant)</value>
      </data>
    
  6. Ctrl + S キーを押してリソース ファイルを保存し、そのファイルを閉じます。

  7. 手順 1. ~ 6. を繰り返します。ここでは、Web サイトの既定の言語のリソース ファイルが作成されます。手順 5. で、"invariant" という用語を既定の言語のコード ("en-US" など) に置き換えます。

  8. 手順 1. ~ 6. を繰り返します。ここでは、Web サイトがサポートする第 2 言語のリソース ファイルが作成されます。手順 5. で、"invariant" という用語を第 2 言語のコード ("es-ES" など) に置き換えます。

  9. ソリューション エクスプローラーで、WeeklyStatusList.feature をダブルクリックし、フィーチャーをデザイナーで開きます。

  10. [フィーチャー内の項目] の唯一の項目が [ListInstance1 (WingtipReports)] であることを確認します。

  11. フィーチャー デザイナーで、[マニフェスト] (下部の近く) をクリックします。マニフェストが次の XML に似ていることを確認します。

    <Feature xmlns="https://schemas.microsoft.com/sharepoint/" 
             Title="$Resources:WeeklyStatusListFeature" 
             Description="$Resources:WeeklyStatusListFeatureDesc" 
             Id="30444f12-2c40-4d2a-92dd-68a30192f0ae" Scope="Web">
      <ActivationDependencies>
        <ActivationDependency FeatureDescription="$Resources:WeeklyStatusFeatureDesc" 
                              FeatureId="e18a0885-083e-43f6-94fe-b6d378a2468c"
                              FeatureTitle="$Resources:WeeklyStatusFeature" />
      </ActivationDependencies>
      <ElementManifests>
        <ElementManifest Location="ListInstance1\Elements.xml" />
        <ElementFile Location="Resources\Resources.en-US.resx" />
        <ElementFile Location="Resources\Resources.es-ES.resx" />
      </ElementManifests>
    </Feature>
    

    マニフェストの値は、Id 属性の値とは異なります。また、リソース ファイルのカルチャ名も異なる場合があります。

  12. Ctrl + Shift + S キーを押すと、すべて保存されます。

プロジェクトをテストする

プロジェクトをテストし、正しく動作することを確認します。

プロジェクトをテストするには

  1. Visual Studio で、F5 キーを押してデバッグを開始します。

    [出力] ウィンドウに構築および展開プロセスがレポートされ、最後に、Web サイトがブラウザーに表示されます。

  2. サイド リンク バーで、Weekly Status Reports リストへのナビゲーション リンクを確認します。リンク タイトルにタイトルのリストがサイトの既定の表示言語で表示されます。

  3. ページ右上隅のユーザー名の横にある矢印をクリックします。[表示言語] をクリックし、チュートリアルで使用した第 2 言語の名前をクリックします。Weekly Status Reports リストのリンク タイトルが第 2 言語に変更されることを確認します。

  4. Weekly Status Reports リストへのリンクをクリックします。次に、[新しいアイテムの追加] または第 2 言語でそれに対応するアイテムをクリックします。

    [新しいアイテム] フォームが表示されます。

  5. フォーム上のすべてのフィールドに第 2 言語の表示テキストがあることを確認します。

  6. 同様の方法で、サイト列、コンテンツ タイプ、リスト テンプレートのすべてがローカライズ リソースを適切に使用していることを確認します。

  7. Weekly Status Reports がサイト コレクション フィーチャーであること、および Weekly Status Report List がサイト フィーチャーであることを確認します。

関連項目

タスク

[チュートリアル] Web パーツをローカライズする

概念

多言語ユーザー インターフェイス (MUI) について