Dojo   发布时间:2022-04-21  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了国际化 – 使用NLS构建Dojo – requireLocalization(..)失败?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的问题,然起初有点类似于 this one,但似乎是一个更基本的问题 – 可能是构建系统中的一个错误信号.我为我的dojo应用程序创建了一个自定义构建.我现在只构建一个图层,这是配置文件脚本/对象的样子:
dependencies = {
    StripConsole: "all",action: "release",optimize: "shrinksafe",releasename: "myProject",// list of locales we want to expose
    localeList: "en-gb,en-us,de-de",layers: [
        {
            // Name: a relative path from the dojo.js in the desination directory.
            name: "../../myProject.js",dependencies: [
                "myPackage.MyDataStore",// MyWidget depends on a few other widgets,and has its own 
                //   translation files.
                "myPackage.MyWidget"
            ]
        }
    ],prefixes: [
        // these paths are relative to the LOCATIOn of dojo.js
        [ "dijit","../dijit" ],[ "dojox","../dojox" ],[ "myPackage","../../../src/myPackage" ]
    ]
}

当我使用该描述运行构建时,它将输出以下目录结构中的文件

release/
release/myProject/
release/myProject/dijit/
                       ... dijit ...
release/myProject/dojo/
                      ... dojo ...
release/myProject/dojox/
                       ... dojox ...
release/myProject/myPackage/
                           ... my custom package ...
release/nls/
           myProject_en-us.js
           myProject_de.js
           etc..
../myproject.js
../myProject.jS.Uncompressed.js

最后,在我的测试HTML页面中 – 我有以下内容

<script type="text/javascript">
    var djConfig = {
        debug: true,parSEOnLoad: false,modulePaths: { // paths to directories in relation to dojo's LOCATIOn.... hurr.
            'myPackage': '../myPackage','dojox':    '../dojox','dijit':    '../dijit'
        }
    };
</script>
<script type="text/javascript" src="./release/myProject/dojo/dojo.jS.Uncompressed.js"></script>
<script type="text/javascript" src="./release/myProject.jS.Uncompressed.js"></script>
<script type="text/javascript">
dojo.addOnLoad(function(){
    dojo.require('myPackage.MyDataStore');
    dojo.require('myPackage.MyWidget');

    var store = new myPackage.MyDataStore();
    var widget = new myPackage.MyWidget({
        store: store
    },dojo.byId('testWidget'));

    widget.startup();
});
</script>

但不幸的是,Firebug向我吐了出来:

Bundle not found: MyWidget in myPackage,locale=en-us

我认为发生了什么

我已经跟踪了导致上述错误的一些代码,似乎文件末尾的dojo.i18n._preloadLocalizations()调用实际上没有从./release/nls加载到正确的nls文件中.

知道如何解决这个问题,而无需手动将nls文件包含在< script>中.标签

这是dojo的一个错误,你不应该在你的图层名称中使用’..’,以防它生成一个NLS包.

请参http://bugs.dojotoolkit.org/ticket/5225

大佬总结

以上是大佬教程为你收集整理的国际化 – 使用NLS构建Dojo – requireLocalization(..)失败?全部内容,希望文章能够帮你解决国际化 – 使用NLS构建Dojo – requireLocalization(..)失败?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。