如何在Dojo中检索标签以获取额外的区域设置

时间:2013-04-12 02:03:54

标签: dojo

如果您希望在同一页面上显示多种语言的奇怪场景,如何利用Dojo的extraLocale功能对辅助语言中的标签进行操作?

假设我在Dojo中定义了一个额外的语言环境,如下所示

var dojoConfig = {
locale : "en",
extraLocale: [ "zh-cn", "ja-jp" ]
};

如果我按照以下方式定义一个类,如果我尝试使用i18n,我总是得到一个已经包含MyClass_nls的所有英文标签的Object。如何指定其中一个额外的语言环境,例如“zh-cn”,以便它查找MyClass_nls的中文版本?

define(
    [   "dojo/_base/declare", "dojo/_base/lang",
    "dijit/_TemplatedMixin",
            "dijit/_WidgetsInTemplateMixin",
            "dojo/text!./templates/MyClass.html",
            "dojo/i18n!./nls/MyClass_nls" ],

    function(declare, lang, _TemplatedMixin,
            _WidgetsInTemplateMixin, template, i18n) {

        return declare(
                "group.test.MyClass",
                [ _TemplatedMixin, _WidgetsInTemplateMixin,
                        Evented ],
                {

这样的东西会起作用,但我相信这不需要dojoConfig中的extraLocale功能

var bundle = i18nResolver.getLocalization("group/mypath", "MyClass_nls", "zh-cn");

1 个答案:

答案 0 :(得分:0)

您可以通过在模块ID中包含区域设置来显式加载区域设置包。因此,dojo/i18n!./nls/MyClass_nls将成为dojo/i18n!./nls/zh-cn/MyClass_nls以显式加载zh-cn语言环境。您不需要使用extraLocale,这是在Dojo 1.6及更早版本中预加载语言环境的传统机制。