本演练介绍如何将 ECMAScript (JavaScript) 文件作为嵌入式资源包括在程序集中,以及如何包括要在 JavaScript 文件中使用的本地化字符串。当您有一个必须随程序集分发的客户端脚本组件时,可在该程序集中嵌入一个 JavaScript 文件。该 JavaScript 文件可从注册程序集的 Web 应用程序中进行引用。当您必须修改该 JavaScript 文件所使用的值以适用于不同语言和区域性时,可嵌入本地化的资源。

创建包含嵌入的 JavaScript 文件的程序集

首先创建一个程序集(.dll 文件),其中包含要作为资源处理的 JavaScript 文件。这可以通过在 Visual Studio 中创建一个类库项目来实现,此过程将创建一个程序集作为输出。

在程序集中嵌入客户端脚本文件和资源

  1. 在 Visual Studio 中,创建一个名为 LocalizingScriptResources 的新类库项目。

  2. 向项目中添加对 System.Web 和 System.Web.Extensions 程序集的引用。

  3. 向名为 CheckAnswer.js 的项目添加一个新的 JScript 文件。

  4. 将下列代码添加到 CheckAnswer.js 文件。

为JavaScript 文件嵌入本地化资源function CheckAnswer()
}

上述脚本将检查用户给出的两个数字相加的结果。脚本使用 alert 函数来使用户知道答案是否正确。显示在 alert 对话框中的消息是从本地化资源中读取的,而不回发到服务器。

在脚本中使用一个名为 Answer 的占位符来标识哪些资源文件包含本地化字符串。Answer 占位符将在此过程中稍后进行定义。

  • 在 CheckAnswer.js 的“属性”窗口中,将“生成操作”设置为“嵌入的资源”

    为JavaScript 文件嵌入本地化资源
  • 向项目中添加一个名为 ClientVerification 的类。

  • 用下面的代码替换 ClientVerification 类文件中的所有代码:

  • 为JavaScript 文件嵌入本地化资源using System;
    为JavaScript 文件嵌入本地化资源
    using System.Collections.Generic;
    为JavaScript 文件嵌入本地化资源
    using System.Text;
    为JavaScript 文件嵌入本地化资源
    using System.Web.UI;
    为JavaScript 文件嵌入本地化资源
    using System.Web.UI.HtmlControls;
    为JavaScript 文件嵌入本地化资源
    using System.Web.UI.WebControls;
    为JavaScript 文件嵌入本地化资源
    using System.Resources;
    为JavaScript 文件嵌入本地化资源
    为JavaScript 文件嵌入本地化资源
    为JavaScript 文件嵌入本地化资源
    namespace LocalizingScriptResources
    }

    该代码创建一个自定义 ASP.NET 控件。它包含两个 CheckAnswer 函数。

  • 将资源文件添加到该项目中,并将其命名为“VerificationResources.resx”。

  • 添加一个名为 Correct 的字符串资源,其中包含值“Yes, your answer is correct.”。

  • 添加一个名为 Incorrect 的字符串资源,其中包含值“No, your answer is incorrect.”。

  • 添加一个名为 Verify 的字符串资源,其中包含值“Verify Answer”。

    此资源不是通过使用客户端脚本来检索的,而是用来在创建按钮时设置 Text 属性。

  • 保存并关闭 VerificationResources.resx 文件。

  • 将名为“VerificationResources.it.resx”的资源文件添加到项目中。

    此文件将包含意大利语的资源字符串。

  • 添加一个名为 Correct 的字符串资源,其中包含值“Si, la risposta e’ corretta.”。

  • 添加一个名为 Incorrect 的字符串资源,其中包含值“No, la risposta e’ sbagliata.”。

  • 添加一个名为 Verify 的字符串资源,其中包含值“Verificare la risposta”。

    与使用英语创建的“Verify”资源一样,此资源也不是通过使用客户端脚本来检索的,而是用来在创建按钮时设置 Text 属性。

  • 保存并关闭 VerificationResources.it.resx 文件。

  • 将下行添加到 AssemblyInfo 文件中。可以为 Answer。

  • 为JavaScript 文件嵌入本地化资源[assembly: System.Web.UI.WebResource("LocalizingScriptResources.CheckAnswer.js""application/x-javascript")]
    为JavaScript 文件嵌入本地化资源[assembly: System.Web.UI.ScriptResource(
    "LocalizingScriptResources.CheckAnswer.js""LocalizingScriptResources.VerificationResources""Answer")]

    WebResource 定义必须包含程序集的默认命名空间和 .js 文件的名称。ScriptResource 定义不包括文件扩展名或本地化的 .resx 文件。

  • 生成项目。

    完成编译后,将具有一个名为 LocalizingScriptResources.dll 的程序集。CheckAnswer.js 文件中的 JavaScript 代码和两个 .resx 文件中的资源将作为资源嵌入此程序集中。

    您还会有一个名为 LocalizingScriptResources.resources.dll 的程序集(一个附属程序集),其中包含用于服务器代码的意大利语资源。

  • 引用嵌入的脚本和资源

    现在可以在支持 AJAX 的 ASP.NET 网站中使用该程序集。您将能够在客户端脚本中读取 .js 文件和资源值。

    为JavaScript 文件嵌入本地化资源说明:

    虽然可以在同一 Visual Studio 解决方案中创建类库项目和网站,但本演练假定您没有进行这些操作。通过将项目放置在不同的解决方案中,可模拟控件开发人员和页面开发人员如何单独工作。但是,为方便期间,您可以在同一解决方案中创建这两个项目,并对本演练中的过程进行小小的调整。

    引用嵌入的脚本和资源

    1. 在 Visual Studio 中,创建新的支持 AJAX 的网站。

    2. 在网站的根目录下添加一个 Bin 文件夹。

    3. 将 LocalizingScriptResources.dll 程序集从类库项目添加到 Bin 文件夹中。

      为JavaScript 文件嵌入本地化资源说明:

      如果在同一 Visual Studio 解决方案中创建了类库项目和网站,则可从类库项目向网站添加一个引用。有关详细信息,请参见如何:在网站中添加对 Visual Studio 项目的引用

    4. 在 Bin 文件夹中创建一个文件夹,然后将其名称指定为 it(表示意大利语)。

    5. 将 LocalizingScriptResources.resources.dll 附属程序集从 LocalizingScriptResources 项目中的 it 文件添加到网站中的 it 文件夹中。

    6. 在项目中添加一个新的 ASP.NET 网页。

    7. 将该页中的代码替换为以下代码:

     

    为JavaScript 文件嵌入本地化资源<%@ Page Language="C#" AutoEventWireup="true" UICulture="auto" Culture="auto" %>
    为JavaScript 文件嵌入本地化资源
    <%@ Register TagPrefix="Samples" Namespace="LocalizingScriptResources" Assembly="LocalizingScriptResources" %>
    为JavaScript 文件嵌入本地化资源
    <script runat="server">
    为JavaScript 文件嵌入本地化资源
    为JavaScript 文件嵌入本地化资源    
    protected void Page_Load(object sender, EventArgs e)
    >

    在 LocalizingScriptResources 项目中创建的控件将包含在该页中。此控件将显示两个供用户相加的数字,并显示一个 CheckAnswer 函数在浏览器中运行,并显示一个本地化的消息,说明答案是否正确。

    必须将 ScriptManager 控件可以检索本地化的资源。还必须将区域性和 UI 区域性设置为“auto”以显示基于浏览器设置的字符串。

    该页包含一个 CurrentUICulture 属性将设置为您已选定的值。

  • 运行该项目。

    您将看到一个有关两个随机生成数的加法问题,还会显示一个 “Verify Answer”(验证答案)按钮时,您将在消息窗口中看到一个响应,指示答案是否正确。默认情况下,此响应将用英语返回。

    但是,如果在浏览器中将意大利语设置为首选语言,则答案将使用意大利语。可以通过在 DropDownList 控件中选择语言或在浏览器中更改首选语言,更改响应使用的语言。

  • 本演练介绍了将 JavaScript 文件作为资源嵌入程序集以及添加本地化字符串的概念。可在包含该程序集的 Web 应用程序中引用和访问嵌入的脚本文件。将根据浏览器中的语言设置或用户提供的语言显示本地化字符串。


    相关文章:

    • 2021-07-17
    • 2022-12-23
    • 2022-12-23
    • 2021-07-25
    • 2021-10-31
    • 2021-09-11
    • 2022-12-23
    • 2022-12-23
    猜你喜欢
    • 2021-11-22
    • 2021-10-19
    • 2022-12-23
    • 2022-12-23
    • 2021-11-06
    • 2022-12-23
    相关资源
    相似解决方案