如何:为 ASP.NET 网站创建资源文件 (Visual Studio)

更新:2007 年 11 月

“资源文件”是可以包含字符串和其他资源(如图像文件的路径)的 XML 文件。资源文件通常用于存储必须翻译为其他语言的用户界面字符串。这是因为,对于网站要翻译为的每种语言,您都可以为它创建一个单独的资源文件。

全局资源文件可用于网站中的任何页面和组件。局部资源文件与单个网页、用户控件或母版页相关联,只包含用于该页面的资源。有关更多信息,请参见 ASP.NET 网页资源概述

在 Visual Web Developer 中,可以使用托管资源编辑器来创建全局或局部资源文件。对于局部资源文件,您还可以在设计器中直接从网页生成非特定区域性的基资源文件。

手动创建资源

手动创建资源文件

  1. 通过执行以下操作之一,确保网站上有用于存储资源文件的文件夹:

    • 如果要创建全局资源文件,则必须有名为 App_GlobalResources 的文件夹。若要创建该文件夹,请在“解决方案资源管理器”中右击网站的名称,然后单击**“添加文件夹”,再单击“App_GlobalResources 文件夹”**。应用程序中只能有一个这样的文件夹,且它必须位于应用程序的根目录下。

    • 如果要创建局部资源文件,则必须有名为 App_LocalResources 的文件夹。若要创建该文件夹,请在“解决方案资源管理器”中右击网站的名称,然后单击**“添加文件夹”,再单击“App_LocalResources 文件夹”**。应用程序中可以有多个这样的文件夹,且它们可以位于应用程序中的任意一级目录中。

  2. 若要创建资源文件,请右击 App_GlobalResources 或 App_LocalResources 文件夹,然后单击**“添加新项”**。

    ms247246.alert_note(zh-cn,VS.90).gif说明:

    全局资源文件必须在 App_GlobalResources 文件夹中。如果您尝试在文件夹之外创建 .resx 文件,则 Visual Web Developer 将提示您应在此文件夹内创建它。

  3. 在**“添加新项”对话框中的“Visual Studio 已安装的模板”下,单击“程序集资源文件”**。

  4. 在**“名称”框中,键入资源文件的名称,然后单击“添加”**。

    Visual Web Developer 在托管资源编辑器中打开该文件。该编辑器显示一个网格,您可以在其中输入名称(键)、值和可选注释。

  5. 为应用程序中所需要的每个资源键入键名和值,然后保存文件。

    ms247246.alert_note(zh-cn,VS.90).gif说明:

    不要尝试直接将图形嵌入到资源文件中,因为控件不会将资源字符串读取为流图像文件。资源文件通过将图形的 URL 存储为字符串来表示图形。

  6. 若要创建其他语言的资源文件,请在“解决方案资源管理器”或 Windows 资源管理器中复制该文件,然后按照以下模式之一重命名它:

    • 对于全局资源文件:

      名称.语言.resx

      名称.语言-区域性.resx

    • 对于局部资源文件:

      页面或控件名称.扩展名.语言.resx

      页面或控件名称.扩展名.语言-区域性.resx

    例如,如果创建名为 WebResources.resx 的全局资源文件,且该文件将翻译为埃及阿拉伯语,则请将复制的文件命名为 WebResources.ar-eg.resx。若要创建将翻译为西班牙语而又不指定区域性的相关资源文件,请将复制的文件命名为 WebResources.es.resx。请注意,对于局部资源文件,资源文件名是页或控件的名称(包括文件扩展名),后面是语言和区域性信息。

  7. 打开文件并翻译所有值,并保持名称(键)不变。

  8. 对于要使用的每种其他语言,重复步骤 6 和 7。

从网页创建资源

下面的功能在 Visual Web Developer 速成版中不可用。

从 ASP.NET 网页生成局部资源文件

  1. 打开要创建资源文件的页。

  2. 切换到“设计”视图。

  3. 在**“工具”菜单中,单击“生成局部资源”**。

    如果 App_LocalResources 文件夹不存在,则 Visual Web Developer 将创建该文件夹。然后,Visual Web Developer 创建当前页面的非特定区域性的基资源文件,对于每个需要进行本地化的控件属性或页属性,该文件都包含相对应的键/名称对。最后,Visual Web Developer 向所有 ASP.NET Web 服务器控件添加 meta 属性,将这些控件配置为使用隐式本地化功能。有关隐式本地化和显式本地化的更多信息,请参见 ASP.NET 网页资源概述如何:在 Web 服务器控件中使用资源来设置属性值 (Visual Studio)

  4. 为应用程序中所需要的每个资源键入值,然后保存该文件。

    ms247246.alert_note(zh-cn,VS.90).gif说明:

    不要尝试直接将图形嵌入到资源文件中,因为控件不会将资源字符串读取为流图像文件。资源文件通过将图形的 URL 存储为字符串来表示图形。

  5. 如果未显示最新的资源更改,请切换到“源”视图,然后切换回“设计”视图,从而刷新“设计”视图。

  6. 按照上一过程中的步骤 6 和步骤 7 创建其他语言的资源文件。

在 Visual Web Developer 中生成全局资源文件

  1. 在解决方案资源管理器中,右击该网站的名称,再单击**“添加新项”,然后单击“资源文件”**。

    Visual Web Developer 将询问您是否要将该文件放在 App_GlobalResources 文件夹中,并提议创建该文件夹。

  2. 单击**“是”**。

  3. 为应用程序中所需要的每个资源键入值,然后保存该文件。

    ms247246.alert_note(zh-cn,VS.90).gif说明:

    不要尝试直接将图形嵌入到资源文件中,因为控件不会将资源字符串读取为流图像文件。资源文件通过将图形的 URL 存储为字符串来表示图形。

  4. 如果未显示最新的资源更改,请切换到“源”视图,然后切换回“设计”视图,从而刷新“设计”视图。

  5. 若要创建其他语言的资源文件,请在“解决方案资源管理器”或 Windows 资源管理器中复制该文件,然后按照以下模式之一重命名它:

    名称.语言.resx

    名称.语言-区域性.resx

    ms247246.alert_note(zh-cn,VS.90).gif说明:

    命名资源文件时,请勿在名称中包含 .aspx,否则会导致命名冲突。例如,Resource 文件夹中不能包含两个具有类似于 resTestPage.resx 和 resTestPage.aspx.resx 的名称的文件。如果出现这种情况,则在编译过程中解析文件名时将产生命名冲突,从而导致出现编译时错误。

请参见

任务

演练:将本地化资源用于 ASP.NET

如何:在 Web 服务器控件中使用资源来设置属性值 (Visual Studio)

概念

ASP.NET 网页资源概述