サンドボックス ソリューションでフィーチャーの属性をローカライズする

このトピックでは、サンドボックス ソリューションでフィーチャーのプロパティ (タイトル、説明など) をローカライズする方法について説明します。

最終更新日: 2011年4月14日

適用対象: SharePoint Foundation 2010

サンドボックス ソリューションに展開されるフィーチャーのプロパティ (タイトル、説明など) をローカライズするプロセスは、ファーム ソリューションで使用されるプロセスとはいくつかの点で異なります。

注意

このトピックでは、「ローカライズされた SharePoint ソリューションを作成する準備を行う」の手順に従って操作したことを前提としています。また、英語とスペイン語が開発ファームで利用できることを前提としていますが、この言語のペアは他の言語に置き換えることができます。

SharePoint フィーチャーすべての基本的なプロパティが Features.xml ファイルで定義されています (Microsoft Visual Studio SharePoint プロジェクトでは、ファイルの拡張子は .xml ではなく .feature です)。このファイルで定義されているカスタム プロパティが存在できますが、組み込みプロパティは、Feature 要素の属性として指定されます。Title、Description など、これらの属性の一部はローカライズできるので、サイト コレクションまたは Web サイトのフィーチャー ギャラリーでは、フーチャーのタイトルおよび説明はサイト コレクションまたは Web の言語で表示されます。SharePoint のフィーチャーおよびフィーチャー マークアップの詳細については、「フィーチャーの使用」および「Feature.xml ファイル」を参照してください。

サンドボックス ソリューションでは、サーバーのファイル システムにファイルを展開できませんが、コンテンツ データベースに展開された .resx ファイルでローカライズされた文字列を使用する方法はあります。このトピックの手順では、このテクニックを使用する方法について説明します。

リソース ファイルを作成するには

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

  2. [リソースの追加] ダイアログ ボックスで [ロケールに依存しない言語 (ロケールに依存しない国)] を選択し、[OK] をクリックします。ソリューション エクスプローラーで Resource.resx ファイルがフィーチャーのフォルダーに追加され、そのファイルが Visual Studioリソース エディターで開きます。

    編集時、この "ロケールに依存しない言語" ファイルには、ローカライズ文字列を提供しない言語のすべてのサイトのフィーチャー ギャラリーで使用されるフィーチャーのタイトルと説明が含まれます。したがって、このファイルの文字列で使用される言語は、ほとんどの場合、文字列の翻訳を提供しない言語で SharePoint を使用するユーザーの第 2 言語になります。一般的には英語が使用されますが、例外もあります。たとえば、フィーチャーが主にフランスの旧植民地で使用される場合は、英語よりもフランス語の方が第 2 言語として使用されることが多いでしょう。このトピックの例では、ロケールに依存しない言語として英語を使用しています。

  3. リソース エディターの先頭行の [名前] 列に、「FeatureTitle」と入力します。

  4. [] 列に、適切なタイトルを入力します。この例では、Localized Sandboxed Solution を使用します。

  5. 次の行では、名前として FeatureDescription を、として適切な説明を使用します。この例では、This is a Localized Solution を使用します。

  6. ファイルを保存します。

  7. 以前の手順に従って、別のリソース ファイルをフィーチャーに追加します。ただし、ここでは [ロケールに依存しない言語 (ロケールに依存しない国)] ではなく、特定の言語を選択します。この例では、[スペイン語 (スペイン)] を使用します。ソリューション エクスプローラーで Resource.LL-CC.resx ファイル (ここで、LL は言語コード、CC は国またはカルチャ コードです) がフィーチャーのフォルダーに追加され、そのファイルが Visual Studio リソース エディターで開きます。

  8. リソース エディターを使用して、Resource.resx のすべての行をコピーし、新しい Resource.LL-CC.resx ファイルに貼り付けます。

  9. Resource.LL-CC.resx ファイルで、[] セルを、翻訳された文字列値に置き換えます。この例では、FeatureTitle には Solución aislada localizada を、FeatureDescription には Esto es una solución localizada を使用します。

  10. 新しいファイルを保存します。

  11. 外国語ごとに前の 3 つの手順を繰り返します。この例では、英語 (米国) に対してもう 1 つ追加します。

    注意

    言語固有のリソース ファイルの対象が、ロケールに依存しない言語として使用している言語の場合は、文字列の値を変更せずに行をコピーできます。多くの状況で、特にファイル内のリソースが文字列のみである場合は、ロケールに依存しない言語のリソース ファイルで使用されている言語と同じ言語の言語固有ファイルは必要ありません。しかし、リソース ファイルには画像、アイコン、ファイルなど、さまざまな種類のリソースが含まれていることがあります。場合によっては、ロケールに依存しない言語のリソース ファイルで、任意の言語固有のファイルの対応するリソースとは異なる画像または他のリソースを使用する必要があります。

Features.xml ファイルのリソース ファイルを参照するには

  1. ソリューション エクスプローラーで .feature ファイルをダブルクリックして、そのファイルを開きます。

  2. デザイナーの下部にある [マニフェスト] タブをクリックし、フィーチャー デザイナー ビューから未処理のマークアップ ビューに切り替えます。

  3. [編集オプション] の横にある [+] をクリックし、ビューの [編集オプション] 部分を展開します。マニフェスト テンプレートが編集可能なテキスト ボックスで開きます。

  4. Title="" 属性および Description="" 属性を Feature 要素に追加します。

  5. Title 属性の値として $Resources:FeatureTitle を、Description 属性の値として $Resources:FeatureDescription を使用します (これらの値にはリソースファイル名が使用されていないことに注意してください)。

  6. ファイルを保存します。

    注意

    フィーチャー デザイナーのフィーチャーのタイトルは変更できません。

ローカライズをテストするには

  1. ソリューションを構築してパッケージ化します。

  2. 外国語の 1 つで作成されたサイト コレクションのソリューション ギャラリーにソリューション パッケージを展開し、ソリューションをアクティブ化します。

  3. [サイトの設定] ページに移動し、サイト コレクションまたはルート Web サイトのどちらかのフィーチャー ギャラリーを開きます。どちらのフィーチャー ギャラリーを開くかは、フィーチャーがサイトWeb のどちらを範囲としているかによって異なります。サイト コレクションの言語に対して指定したタイトルと説明と共にフィーチャーが表示されます。

  4. 言語固有のリソース ファイルを作成した外国語ごとに前の 2 つの手順を繰り返します。

  5. 言語固有のリソース ファイルを作成しなかった外国語サイト コレクションで、展開とアクティブ化を繰り返します。言語がロケールに依存しないリソース ファイルで指定したタイトルと説明と共にフィーチャーが表示されます。

関連項目

概念

サンドボックス ソリューションのアーキテクチャ

その他の技術情報

サンドボックス ソリューションのローカライゼーション