演练:本地化列、内容类型和列表

上次修改时间: 2010年12月7日

适用范围: SharePoint Foundation 2010

本文内容
方案
创建 SharePoint 项目
创建网站集范围的功能
在项目中添加全局资源
创建网站栏、内容类型和列表定义
创建用于设置列表实例的功能
添加功能资源
测试项目

本演练演示如何提供和使用适用于您所创建和部署的栏、内容类型和列表的本地化资源。本演练中演示的任务包括:

  • 对栏、内容类型和列表使用 XML 定义中的资源表达式。

  • 部署特定于单个功能的本地化资源。

  • 部署可由许多功能共享的本地化资源。

先决条件

有关一般要求,请参阅开发 SharePoint 解决方案的要求(该链接可能指向英文页面)。另外,完成本演练的具体要求包括:

方案

在本演练中,您将在 Microsoft Visual Studio 2010 中创建一个名为 WingtipReports 的 SharePoint 项目。此项目包括两个功能,一个是网站范围的功能,以便可以为整个网站集激活该功能;另一个是 Web 范围的功能,以便可以为集合中的每个网站激活该功能。

第一个功能向网站集中添加几个新元素,包括若干自定义的网站栏、名为 Weekly Status Report 的自定义网站内容类型以及名为 Weekly Status Reports 的自定义列表模板。通过将硬编码的显示字符串替换为从语言资源 (.resx) 文件中检索本地化字符串值的 Microsoft ASP.NET 资源表达式,可本地化所有这些项。语言资源文件安装为全局资源,以便 Wingtip 的开发人员已在单独部署中创建的其他功能可以共享这些文件。

第二个 Web 范围的功能设置 Weekly Status Reports 列表的实例。此列表实例的许多显示文本都是由激活第一个功能时设置的网站栏和网站内容类型提供的。(因此,第二个功能定义为对第一个功能具有激活依赖性。)不过,列表实例确实具有自己的标题和说明,并且通过从其他一组资源文件中检索翻译来本地化此文本。因为这些资源只本地化单个列表实例,所以它们安装为本地资源,只可供安装它们的功能使用。

创建 SharePoint 项目

首先,在 Visual Studio 2010 中创建一个 SharePoint 项目,并将该项目命名为"WingtipReports"。

创建 SharePoint 项目

  1. 以管理员身份启动 Visual Studio 2010。

  2. 指向"文件"菜单上的"新建",然后单击"新建项目",将显示"新建项目"对话框。

  3. 展开"Visual C#"或"Visual Basic"下的"SharePoint"节点,然后单击"2010"。

  4. 在"模板"窗格中,单击"空白 SharePoint 项目",将该项目的名称更改为 WingtipReports,然后单击"确定"。

    将显示"SharePoint 自定义向导"。

  5. 在"指定用于调试的网站和安全级别"页上,输入要向其中添加新的自定义字段项的 SharePoint 网站的 URL,或使用默认位置(http://<系统名称>/)。

  6. 在"此 SharePoint 解决方案的信任级别是什么?"部分,选择"部署为场解决方案"。

  7. 单击"完成"。

    该项目将显示在"解决方案资源管理器"中。

  8. 在"解决方案资源管理器"中,单击项目节点,然后按 F4。

    将显示"属性"窗口。

  9. 将"将程序集包含在包中"属性设置为 False。

    该项目没有代码,并且无需部署程序集。

  10. 按 Ctrl+Shift+S 全部保存。

创建网站集范围的功能

您必须添加到此项目中的第一个主要元素是可用于设置网站栏、网站内容类型和列表模板的 XML 定义以及支持其中每项的本地化资源的功能。此功能将具有网站集范围,以便此功能设置的元素可供网站集中的所有网站使用。

创建网站集范围的功能

  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 文件夹中,以便它们可由许多功能共享,包括其他用户部署的功能。本演练假定您希望将当前创建的网站栏和内容类型用于在以后的项目中开发的其他功能。

在项目的此阶段,您将创建两个资源文件。首先,创建支持网站的默认语言的资源文件。然后,为网站支持的备用语言之一创建另一个资源文件。在生产环境中,您可以创建和部署许多其他特定语言的资源文件。

添加全局资源文件

  1. 在"解决方案资源管理器"中,单击项目节点。然后在"项目"菜单上单击"添加 SharePoint 映射文件夹"。

  2. 在"添加 SharePoint 映射文件夹"对话框中,选择"Resources",然后单击"确定"。

    Resources 文件夹将添加到项目中。检查此文件夹的属性。请注意,DeploymentLocation 属性设置为 {SharePointRoot}\Resources。

  3. 在"解决方案资源管理器"中,选择"Resources"文件夹。在"项目"菜单上单击"添加新项"。

  4. 在"添加新项"对话框中,展开"Visual C#"(如果您的开发语言是 C#)或"常用项"(如果您在 Visual Basic 中工作)的节点。选择"常规"。在模板窗格中,选择"资源文件"。将文件命名为 Wingtip.resx,然后单击"添加"。

    资源文件将添加到项目中并在"托管资源编辑器"中打开。

    提示提示

    当您设置全局 Resources 文件夹中的文件时,最好选择唯一的文件名以避免与其他应用程序设置的资源产生命名冲突。一个约定是使用您的公司名称作为文件名前缀。例如,如果您的公司是 Wingtip Toys,则您部署的资源文件的名称可以全部以"Wingtip"开头。

  5. 在"解决方案资源管理器"中,右键单击您刚才创建的资源文件,然后选择"打开方式"。

  6. 在"打开方式"对话框中的"选择要用来打开此文件的程序"下,选择"XML (文本)编辑器"。然后单击"确定"。

    将在 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.语言-国家/地区.resx,其中语言 是您的网站的默认语言的两个字母组成的代码,国家/地区 是子区域的两个字母组成的代码。

    例如,如果默认语言是英语(美国),则资源文件名为 Wingtip**.en-US**.resx。

    有关语言标识符的详细信息,请参阅 System.Globalization.CultureInfo 类。

    重要注释重要信息

    在资源表达式中,可以使用资源文件的基文件名(例如"Wingtip")来引用该文件。当 SharePoint Foundation 检索资源值时,它会查找此基文件名后跟与当前执行线程的 CurrentUICulture 属性值对应的语言标识符的资源文件。SharePoint Foundation 期望找到精确匹配项。例如,如果当前线程的语言标识符为"pt-BR",SharePoint Foundation 会查找名称为"基文件名.pt-BR.resx"的资源文件。它会忽略具有相同语言代码但子区域性代码不同的文件,例如"基文件名.pt.resx"和"基文件名.pt-PT.resx"。

    如果 SharePoint Foundation 找不到与执行线程的语言标识符匹配的资源文件,则查找回退 资源文件。回退的第一个选择是固定区域性的资源文件,即文件名末尾没有任何语言标识符的资源文件。例如,在当前项目中,固定区域性的资源文件是 Wingtip.resx。如果 SharePoint Foundation 无法找到固定区域性的资源文件,它会尝试回退到默认语言。如果它找不到默认语言的资源文件,则会显示资源名称。

  11. 重复步骤 9 和 10,这次为您的网站支持的备用语言追加区域性特定的标识符。

  12. 打开您刚才创建的两个区域性特定的语言资源文件,并将单词"invariant"替换为文件的语言标识符。例如,在 Wingtip.en-US.resx 中,"Accomplishments (invariant)"将变成"Accomplishments (en-US)"。

    对于本演练,无需翻译字符串值。只需为未翻译的字符串追加语言标识符。在测试 Web 部件时,语言标识符可指示显示的语言。

  13. 按 Ctrl+Shift+S 全部保存。

创建网站栏、内容类型和列表定义

现在即可使用您刚才创建的全局资源。在项目的此阶段,您将创建几个自定义网站栏,然后定义使用这些栏的内容类型。最后,您将创建基于内容类型的列表定义。

创建网站栏、内容类型和列表定义

  1. 在"解决方案资源管理器"中,单击项目节点。然后在"项目"菜单上单击"添加新项"。

  2. 展开"Visual 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. 单击"清单"(底部附近)。确认清单与以下 XML 相同(Id 属性值除外):

    <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 范围的功能,然后将列表实例的定义添加到该功能中。定义功能的 Feature 元素和定义列表实例的 ListInstance 元素都使用键属性的资源表达式。项目的最后任务是创建为这些表达式提供值的资源文件。

因为此功能依赖您创建的第一个功能所部署的元素,所以您将定义新功能的激活依赖项。必须首先激活它所依赖的功能,然后才能激活它。

创建用于设置列表实例的功能

  1. 在"解决方案资源管理器"中,右键单击"Features"文件夹,然后单击"添加功能"。

    将添加名为"Feature1"的文件夹,并打开"功能设计器"。

  2. 右键单击"Feature1"文件夹,选择"重命名",然后键入 WeeklyStatusList。

  3. 在"功能设计器"中,使用以下字符串替换"标题"字段中自动生成的值:

    $Resources:WeeklyStatusListFeature
    
  4. 在"说明"字段中,粘贴以下字符串:

    $Resources:WeeklyStatusListFeatureDesc
    
  5. 确认"范围"列表中的值为"Web"。

  6. 单击"功能激活依赖项"(底部附近)以展开依赖项窗格。然后单击"添加"。

    将显示"添加功能激活依赖项"对话框。

  7. 单击"$Resources:WeeklyStatusFeature",然后单击"添加"。

  8. 在"解决方案资源管理器"中,单击项目节点。然后在"项目"菜单上单击"添加新项"。

    将显示"添加新项"对话框。

  9. 展开"Visual 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. 在"解决方案资源管理器"中,右键单击"WeeklyStatusList"文件夹,然后单击"添加功能资源"。

  2. 在"添加资源"对话框中,为"选择资源文件的区域性"选择"固定语言(固定国家/地区)"。然后单击"确定"。

    该资源文件将添加到"WeeklyStatusList"文件夹中。请注意,基文件名是"Resources"。功能的本地资源始终使用此基文件名。在部署功能时,会将本地资源文件放在文件系统上功能的文件夹下的 Resources 文件夹中。

  3. 在"解决方案资源管理器"中,右键单击您刚才创建的资源文件,然后选择"打开方式"。

  4. 在"打开方式"对话框中的"选择要用来打开此文件的程序"下,选择"XML (文本)编辑器"。然后单击"确定"。

    将在 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,这次为您的网站的默认语言创建资源文件。在步骤 5 中,将单词"invariant"替换为默认语言的代码(例如"en-US")。

  8. 重复步骤 1–6,这次为您的网站支持的备用语言创建资源文件。在步骤 5 中,将单词"invariant"替换为备用语言的代码(例如"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 开始进行调试。

    "输出"窗格将报告生成和部署过程。最后,网站将显示在浏览器中。

  2. 在"快速启动"中,查找指向"Weekly Status Reports"列表的导航链接。链接标题应使用网站的默认显示语言显示列表标题。

  3. 单击网页右上角的用户名旁边的箭头。单击"显示语言",然后单击您在演练中使用的备用语言的名称。确认"Weekly Status Reports"列表的链接标题更改为备用语言。

  4. 单击指向"Weekly Status Reports"列表的链接。然后单击"添加新项"或备用语言中的对应项。

    将显示"新建项"表单。

  5. 确认表单上的所有字段的显示文本都使用备用语言。

  6. 以类似方式继续确认网站栏、内容类型和列表模板均能正确使用本地化资源。

  7. 确认 Weekly Status Reports 是网站集功能,Weekly Status Report 列表是网站功能。

请参阅

任务

演练:本地化 Web 部件

概念

了解多语言用户界面 (MUI)