本演练演示如何在 ECMAScript (JavaScript) 文件中包含本地化资源。本演练中的资源为字符串。在创建独立的 JavaScript 文件后,如果应用程序必须为多种语言和区域性提供不同值,则可以在 JavaScript 文件中包含本地化资源。
独立 JavaScript 不作为资源嵌入在程序集中,因此不能访问资源文件中的值。但您可以直接在脚本文件中包含本地化字符串值。当脚本在浏览器中运行时,将检索本地化值。
可以为每种受支持的语言和区域性创建一个单独的脚本文件。在每个脚本文件中,可以包含一个 JSON 格式的对象,该对象包含针对特定语言和区域性的本地化资源值。
若要实现本教程中的过程,您需要:
-
Microsoft Visual Studio 2005 或 Microsoft Visual Web Developer 速成版。
-
一个支持 AJAX 的 ASP.NET 网站。
创建一个包含本地化资源值的 JavaScript 文件
向 JavaScript 文件添加资源值
-
在网站的根目录中,添加一个名为 Scripts 的文件夹。
-
在 Scripts 文件夹中,添加一个名为 CheckAnswer.js 的 Jscript 文件,然后向该文件添加以下代码。
脚本代码将添加 Answer.Verify 的类中定义的值,而不是设置为字符串。这使代码可以使用本地化值。
该脚本还包含一个函数,可检查用户给出的两个数字相加的结果。该脚本使用 alert 函数来使用户知道答案是否正确。与按钮文本一样,alert 对话框中显示的消息设置为本地化字符串值,而无需回发到服务器。
该脚本中使用一个名为 Answer 的类型来定义要在文件中使用的本地化值集合。Answer 类型在 CheckAnswer.js 文件末尾以 JSON 格式定义。
在 Scripts 文件夹中,添加一个名为 CheckAnswer.it-IT.js 的 Jscript 文件。向该文件中添加以下代码。
此文件与 CheckAnswer.js 文件基本相同,区别在于它包含一个以意大利语表示值的 Answer 类型。
若要以其他语言提供本地化文本,可以创建更多 JavaScript 文件。JavaScript 代码总是相同的,但 Answer 类型中定义的值以不同语言表示。每个 JavaScript 文件的名称都必须包含相应的语言和区域设置。
现在,可以创建一个使用您已创建的脚本代码的 ASP.NET 网页。使用该页面可以测试更改语言的效果。
在 ASP.NET 网页中使用 JavaScript 资源值
-
创建一个 ASP.NET 网页。
-
用下面的标记和代码替换该网页的内容:
标记创建一个 CheckAnswer 函数。
使用 CurrentUICulture 属性将设置为您已选定的值。
ScriptManager 控件包含对 CheckAnswer.js 脚本文件的引用。这将使页面在运行时检索 CheckAnswer.js 文件。
该引用的 ScriptManager 对象将检索意大利语版本。
运行该页。
您将看到一个有关两个随机生成数的加法问题,以及一个用于输入答案的 “Verify Answer”(验证答案)按钮时,将在消息窗口中看到一个响应,指示答案是否正确。
默认情况下,此响应将用英语显示。
通过从下拉列表中选择“Italian”将语言更改为意大利语。
再次执行小测验。
这次答案将以意大利语显示。
本演练演示如何向独立 JavaScript 文件添加本地化资源值。本地化值被创建为 JSON 格式的对象,这些对象成为各个本地化 JavaScript 文件的一部分。通过引用 JSON 对象而不是使用硬编码字符串来显示本地化值。本地化字符串的显示取决于浏览器中的语言设置或用户提供的语言设置。