言語パック ファーム ソリューションを使用する

最終更新日: 2011年2月2日

適用対象: SharePoint Foundation 2010

この記事の内容
カスタム言語パックについて
言語パックを作成する
フィーチャー関連のリソース
言語パックを追加および展開する

ここでは、言語パックとして指定されたソリューション パッケージを使用して、Microsoft SharePoint Foundationファーム ソリューションのローカライズを開発およびインストールする方法について説明します。

注意

このトピックで使用する言語パックという用語は、SharePoint Foundation および SharePoint Server 2010 の組み込みのユーザー インターフェイス (UI) のローカライズを提供する Microsoft 提供の SharePoint Foundation および Microsoft SharePoint Server 2010 言語パックを意味するものではありません。Microsoft が提供する言語パックは .exe ファイルで、Microsoft ダウンロード センターからダウンロードし、各フロントエンド Web サーバーにインストールできます。詳細については、「ローカライズされた SharePoint ソリューションを作成する準備を行う」、「Language Packs for SharePoint Foundation 2010」および「2010 Server Language Packs for SharePoint Server 2010, Project Server 2010, Search Server 2010, and Office Web Apps 2010」を参照してください。

カスタム言語パックについて

カスタム言語パックは、追加言語のサポートを既存のファーム ソリューションに追加するときに使用するリソースのみが含まれるソリューション パッケージ (.wsp ファイル) です。この言語パックのソリューション ID (GUID) は元のソリューションと同じです。また、元のソリューションを追加および展開した後しばらくしてから、ファームに追加および展開できます。ソリューション パッケージがまだ配布されていない場合、文字列などのローカライズ リソースが使用可能なときは、カスタム言語パックは不要です。こうしたリソースは、ソリューションの元のパッケージに含めることができます。カスタム言語パックの主な目的は、元のソリューション パッケージが配布された後、そのソリューション パッケージをアップグレードせずに、追加言語のローカライズを開発者が追加できるようにすることです。

必要に応じて、新しいソリューションの言語パックを作成し、それを元のソリューションと一緒に導入できます。ただし、この記事では、簡単にするために、元のソリューションの後に言語パックが配布されていることを前提としています。

注意

サンドボックス ソリューションではカスタム言語パックはサポートされません。サンドボックス ソリューションのローカライズについては、「サンドボックス ソリューションのローカライゼーション」を参照してください。

.wsp ファイル自体には、自身を言語パックとして指定するものは何もありません。これは言語パックの構成データベース エントリで指定され、指定された内容は、言語パックがファームのソリューション ストアに追加されるとき、およびその言語パックが展開されるときに記録されます。

重要重要

SharePoint 管理シェルまたはオブジェクト モデルを使用して、ソリューションを適切に追加および展開するのはファーム管理者の仕事です。これにより、ソリューションが言語パックとして指定されます。これを行う方法の詳細については、このトピックで後述します。管理者が使いやすいように、開発者が .wsp ファイルに名前を付けるとき、その名前にはロケール ID を含めることをお勧めします。

言語パックを開発するときは次の点に気を付けてください。また、言語パックの配布先のファーム管理者も、この点について考慮する必要があります。

  • 元のファーム ソリューションには、ゼロ以上の言語のローカライズ リソースを含めることができます。追加言語のリソースは言語パックによって追加されます。

  • 言語パックは 1 つの言語にしかバインドできません。

  • 言語パックを関連付けることができる元のソリューションは 1 つだけです。

  • 言語パックをソリューション ストアに追加するには、ローカライズ対象の元のソリューションもソリューション ストアに含まれていなければなりません。

  • 言語パックを展開するには、その言語パックが関連付けられている元のソリューションを事前に展開する必要があります。

  • ソリューションを取り消すには、そのソリューションに関連付けられているすべての言語パックを事前に取り消す必要があります。

言語パックを作成する

言語パックは、他のソリューション パッケージ (.wsp ファイル) と同じように作成します。

言語パックを作成するには

  1. Microsoft Visual Studio で空の SharePoint ソリューションを作成します。そのソリューションに、ローカライズ対象の元のソリューションと同じ名前を付けます。ただし、ソリューション名には、新しいソリューションがサポートする言語を示す LCID を追加します (カスタム言語パックがサポートする言語は 1 つだけです)。

  2. ソリューション エクスプローラーで .package ファイルをダブルクリックし、[プロパティ] ウィンドウを開きます。

  3. 自動的に生成されたソリューション ID を元のソリューションと同じソリューション ID に変更します。

  4. 次の点に気を付けながら、ローカライズされたファイルをソリューションに追加します。

    • コード ファイルまたはその他のローカライズできないファイルはパッケージに追加しないでください。

    • Visual Studio プロジェクトとして開いたとき、ソリューション エクスプローラーのフォルダー構造のほとんどの部分が、元のソリューションのフォルダー構造と一致している必要があります (ただし、ローカライズできないファイルのみが含まれるフォルダーを複製してはいけません)。たとえば、元のソリューションの %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\IMAGES に SharePoint のマップされたフォルダーがある場合は、言語パックのソリューションにも同様のフォルダーがあるはずです (フィーチャー関連のリソースは例外です。このトピックで後述する「フィーチャー関連のリソース」を参照してください)。

    • ローカライズ可能なすべてのリソースを含めることができます。よく使用されるリソースをいくつか次に示します。

      • リソース (.resx) ファイル。グローバルに展開したり、特定の Web アプリケーションにのみ展開したりできます。また、特定のフィーチャーまたは特定の Web パーツのリソース ファイルだけを展開することもできます。

      • サテライト アセンブリ。

      • 言語固有のサイト定義 (webtemp*.xml) ファイル。このファイルの詳細については、「[方法] カスタム サイト定義のローカライズしたバージョンを作成する」を参照してください。

      • 言語固有のアプリケーション ページ。

      • カルチャ固有のイメージ ファイル、CSS ファイル、および HTML ファイル。

  5. Visual Studio ソリューションを構築し、パッケージ化して、テスト用の開発環境に展開します。ローカライズ対象の元のソリューションは既に展開されていなければなりません。

  6. すべての言語について手順を繰り返します。各言語が個別のソリューション パッケージでなければなりません。

フィーチャー関連のリソース

ローカライズ ファイルが元のソリューション内の特定のフィーチャーにのみ適用される場合は、言語パック ソリューションのフォルダー構造が元のソリューションのフォルダー構造と一致しなければならないという通常の規則が適用されません。追加言語のリソースは、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES\MyOriginalFeature フォルダーのサブフォルダーに展開しなければならないからです。たとえば、RESX ファイルは、通常 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES\MyOriginalFeature\Resources に展開されます。ただし、元のソリューションのフィーチャー名と ID を再利用することはできません (再利用すると、ソリューションの展開時にエラーが発生する場合があります)。代わりに、ソリューション パッケージのマニフェストの RootFile 要素を使用して、ファイルの展開パスを指定します。次に例を示します。

<Solution ... >
  <RootFiles>
    <RootFile Location="TEMPLATE\FEATURES\MyOriginalFeature\Resources\Resources.fr-ca.resx" />
  </RootFiles>
</Solution>

言語パックを追加および展開する

ファーム管理者は言語パックをファームのソリューション ストアに展開し、それを SharePoint 管理シェルで展開します (または、SharePoint Foundation オブジェクト モデルを使用し、カスタム展開コードを実行して展開します)。

Add-SPSolution コマンドを SharePoint 管理シェルで使用して、ソリューションをファームのソリューション ストアに追加します。言語を指定するには -Language パラメーターを使用する必要があります。たとえば、次のコマンドは、カナダ系フランス語の言語パックを追加します。管理者が使いやすいように、LCID がソリューション ファイル名に追加されていることにも注意してください。

Add-SPSolution -LiteralPath C:\MySharePointSolutions\OriginalSolution_3084.wsp -Language 3084

ソリューションを展開するには、Install-SPSolution コマンドを使用します。ここでも、-Language パラメーターを指定します。

Install-SPSolution -Identity OriginalSolution_3084.wsp -Language 3084

また、管理者は、言語パックを取り消して削除するときにも、次の 2 つのコマンドで示すように -Language パラメーターを使用する必要があります。元のソリューション パッケージとそのすべての言語パックではソリューション ID が同じなので、これが重要です。

Uninstall-SPSolution -Identity OriginalSolution_3084.wsp -Language 3084
Remove-SPSolution -Identity OriginalSolution_3084.wsp -Language 3084

カスタム インストールおよび展開をプログラムするには、次のクラスを使用します。

  • SPSolution - サーバー ファーム上のソリューションを表します。

  • SPSolutionCollection - SPSolution オブジェクトのコレクションを表します。

  • SPSolutionLanguagePack - インストール時に言語パックとして指定されたソリューションを表します。

  • SPSolutionLanguagePackCollection - SPSolutionLanguagePack オブジェクトのコレクションを表します。

関連項目

概念

ソリューションを手動で作成する

Localization of Farm Solutions in SharePoint 2010