0

我正在尝试创建一个自定义 Dojo 小部件,这就是我的文件结构的外观:

customwidget
  |
  +--nls
  |   |
  |   +--en
  |       |
  |       +--CustomWidget.js (My localization code)
  +--CustomWidget.js (My actual custom widget code)

现在在我的代码中我正在写:

dojo.requireLocalization("customwidget", "CustomWidget", "en");

为了获得这种本地化,我写道:

dojo.i18n.getLocalization('timeago', "Timeago", "en")

我的小部件中有很多行代码,它适用于customwidget > nls > en中的本地化。但问题出在我的 Google Chrome 控制台中,出现以下错误:

GET http://******/******/******/customwidget/nls/CustomWidget.js 404 (Not Found)

为什么 Dojo 还需要“customwidget > nls”中的本地化代码文件?尽管控制台出现错误,但我的代码实际上运行没有任何问题。

我正在阅读全球化指南,它说dojo.requireLocalization("my.app", "bar", "zh-cn");我们应该使用而不是写作dojo.requireLocalization("my.app", "bar");。情况也是如此dojo.i18n.getLocalization。为什么?

4

1 回答 1

0

对于您的第一个问题,我不完全确定为什么它仍然发出请求(IMO 它不应该),但 dojo 正在尝试获取默认语言包。最好在 nls 文件夹的根目录下放置一个默认包,以便在使用不受支持的语言的用户浏览页面时显示某些内容。

对于第二个问题 - 您应该允许 dojo 选择正确的语言包,当然如果您自己指定它,您最终会复制大量代码来决定使用哪种语言并传递它。

于 2013-03-22T09:18:24.047 回答