如果您希望在同一页面上显示多种语言的奇怪场景,如何利用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");
答案 0 :(得分:0)
您可以通过在模块ID中包含区域设置来显式加载区域设置包。因此,dojo/i18n!./nls/MyClass_nls
将成为dojo/i18n!./nls/zh-cn/MyClass_nls
以显式加载zh-cn语言环境。您不需要使用extraLocale
,这是在Dojo 1.6及更早版本中预加载语言环境的传统机制。