Welcome

首页 / 脚本样式 / Dojo Toolkit / 使用Dojo国际化Web应用程序

使用Dojo国际化Web应用程序2010-07-04 IBM developerWorks / Yoav Rubin简介

Wikipedia 将国际化定义为在无需进行工程性更改的前提下让所设计的软件应用程序能够适应各种语言和地区。(参见 参考资料)。根据这个定义,为了得到国际化的软件,有三个元素必不可少:

负责告知软件其所要运行的本地语言环境的一个元素

可应用到软件当前的本地语言环境的一组翻译文件

负责连接前两个元素的一个组件

在本文中,我们将创建一个简单的国际化 Web 应用程序并展示针对前两个元素的 Dojo 工具箱标准(更多有关 Dojo 的信息,参见 参考资料)。之后,我们将针对第三个元素仔细研究两个 Dojo 用例:html 文件或小部件。

在一个基于 Dojo 的应用程序内设置本地语言环境

本地语言环境是一个参数,用来定义应用程序用户界面应该使用的语言。有的时候,仅仅指定语言可能还不够。不同的国家有可能使用的是近乎相同的语言,只有一些细微差别,比如拼写不同(例如,在美语中的 “center”,在英语中则是 “centre”),再比如同一个意思的用词不同(比如美语中的 “Elevator”,在英语中则是 “Lift”)。 因此,本地语言环境参数除了语言代码之外还要包含国家代码,以此指定应该使用的这种特定的语言。

Dojo 提供了两种用来指定 Web 应用程序本地语言环境的机制。第一种是编程方式(在运行时或设计时),另一种是借助浏览器的默认本地语言环境(在浏览器安装期间定义)设置。

通过编程的方式设置本地语言环境,实际上是在全局对象 djConfig 内指定 “locale” 属性的值。清单 1 的示例展示了如何在设计时将本地语言环境设为 en-us:

清单 1:在设计时使用编程方式设置本地语言环境

<script type="text/javascript" SRC="dojo.js" djConfig="locale:"en-us""></script>

另一种可能性是通过编程方式计算本地语言环境(例如,通过从 URL 抽取),然后再设置本地语言环境。清单 2 的示例展示了如何在运行时使用编程方式设置本地语言环境:

清单 2: 在运行时使用编程方式设置本地语言环境

<script type="text/javascript">
// Note: this must be done before dojo loads!!!
var djConfig = new Object();
var theLocale = getLocale(); // this function is responsible to determine
// the appropriate locale
djConfig.locale = theLocale;
function getLocale()
{
return “en-us”;
}
</script>

最后一种可能性就是不指定本地语言环境,而是使用浏览器的默认本地语言环境,而这个默认设置是 Dojo 从导航对象提取出来的。默认的行为,正如任何默认设置一样,在您能预见客户机的浏览器和机器配置的情况下非常有用。但这种情况很少见,相反,比较常见的是浏览器使用非用户母语的语言安装或应用程序不熟悉的语言安装(所以应该要避免使用这种方式)。