使用语言包场解决方案

上次修改时间: 2011年2月2日

适用范围: SharePoint Foundation 2010

本文内容
什么是自定义语言包?
创建语言包
与功能相关的资源
添加和部署语言包

本主题介绍如何使用已被指定为语言包 的解决方案包开发和安装 Microsoft SharePoint Foundation 服务器场解决方案。

备注

本主题中使用的术语语言包 指的不是 Microsoft 提供的 SharePoint Foundation 和 Microsoft SharePoint Server 2010 语言包,这两个语言包提供 SharePoint Foundation 和 SharePoint Server 2010 的内置用户界面 (UI) 的本地化。Microsoft 提供的语言包是 .exe 文件,可从 Microsoft 下载中心下载此类文件并将其安装到每台前端 Web 服务器上。有关详细信息,请参阅准备创建本地化的 SharePoint 解决方案SharePoint Foundation 2010 的语言包SharePoint Server 2010、Project Server 2010、Search Server 2010 和 Office Web Apps 2010 的 2010 Server 语言包

什么是自定义语言包?

自定义语言包是一种解决方案包(.wsp 文件),它仅包含用于向现有服务器场解决方案中添加其他语言支持的资源。*它与原始解决方案共享同一解决方案 ID(一种 GUID)。*可在添加和部署原始解决方案后将该语言包添加和部署到服务器场。在分发解决方案包前,如果本地化资源(如字符串)可用,则并不需要自定义语言包。这些资源可包括在解决方案的原始包中。自定义语言包的主要目的是支持开发人员在已分发原始解决方案包后添加其他语言的本地化版本,而无需升级原始解决方案包。

如果愿意,您可为新解决方案创建语言包,并将它们包含在原始解决方案中。但是,为简便起见,本文假定在原始解决方案之后分发语言包。

备注

自定义语言包在沙盒解决方案中不受支持。有关本地化沙盒解决方案的信息,请参阅沙盒解决方案的本地化

.wsp 文件本身并不包含将其指定为语言包的内容。该指定设置位于语言包的配置数据库项中。在将语言包解决方案添加到服务器场的解决方案存储区中并对其进行部署时,会记录该指定设置。

重要注释重要信息

服务器场管理员负责使用 SharePoint Management Shell 或对象模型正确添加和部署解决方案,以便将它指定为语言包。本文后面介绍有关如何执行此操作的详细信息。为方便管理员,建议开发人员将区域设置 ID 包含在 .wsp 文件名中。

开发语言包时,请考虑以下几点,并确保要向其分发语言包的服务器场管理员也了解这几点:

  • 原始服务器场解决方案可以不包含或包含多种语言的本地化资源。语言包会添加其他语言的资源。

  • 一个语言包只能绑定到一种语言。

  • 一个语言包只能与一个原始解决方案相关联。

  • 除非语言包本地化的原始解决方案也在解决方案存储区中,否则不能将该语言包添加到解决方案存储区中。

  • 除非部署了与语言包关联的原始解决方案,否则不能部署该语言包。

  • 除非先收回与解决方案相关联的所有语言包,否则不能收回该解决方案。

创建语言包

可以像创建其他任何解决方案包(.wsp 文件)一样创建语言包。

创建语言包

  1. 在 Microsoft Visual Studio 中创建一个"空白 SharePoint 解决方案"。为该解决方案指定与要本地化的原始解决方案相同的名称,但向解决方案名称中添加一个 LCID,以指示新解决方案支持的语言。(自定义语言包只能支持一种语言。)

  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 Management Shell(或通过使用 SharePoint Foundation 对象模型运行自定义部署代码)部署它们。

Add-SPSolution 命令用于在 SharePoint Management Shell 中将解决方案添加到服务器场的解决方案存储区。必须使用 -Language 参数来指定语言。例如,以下命令将添加加拿大法语的语言包。注意,为方便管理员,还应将 LCID 添加到解决方案文件名中。

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

若要部署解决方案,请使用 Install-SPSolution 命令。请再次包括 -Language 参数。

Install-SPSolution -Identity OriginalSolution_3084.wsp -Language 3084

收回和移除语言包时,管理员还必须使用 -Language 参数,如下面两个命令所示。这一点非常重要,因为原始解决方案包及其所有语言包具有相同的解决方案 ID。

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

若要对自定义安装和部署进行编程,请使用以下类。

请参阅

概念

手动创建解决方案

Localization of Farm Solutions in SharePoint 2010