-->

道场定制构建具有NLS /本地化(Dojo custom build with NLS / loca

2019-09-02 06:14发布

我已经在实施道场跨域自定义生成一个问题。 这种情况如下:我有一个相当大的应用,具有良好的本地化数捆,所以basicly目录结构是一样
核心\(我的模块)
NLS \
FR \
EN \
....
当建立我的模块的结果是一个大core.js / core.xd.js文件,其中,边河畔,不包含的本地化。 在本地化NLS目录(EN / FR /等)我构建每捆建造/精缩,并为每种语言,core_fr.js / core_en.fs一个更大的文件,该文件只包含道场/ Dijit的相关字符串后找到。

所以我的构建脚本

            layers: [
            {
    resourceName: "core",
            name: "../core/trusted.js",
            dependencies: [
                      "dojo.i18n",
                      //data
                      "dojox.data.JsonRestStore",
                      "dojox.data.XmlStore",
                      "dojox.rpc.Service",
                      "dojox.form.FileInput",
                       ...
                      "core.controller.Fusebox"                        
],
                  prefixes: [
                ["dijit","../dijit"],
            ["dojox","../dojox"],
                    ["core", "../core"]
                  ]

在core.controller.Fusebox类我尝试加载1个NLS

dojo["requireLocalization"]("core", "FuseboxContent");

这里会死但是,随着

availableFlatLocales is undefined
[Break on this error] var locales = availableFlatLocales.split(",");\r\n

我在HTML文件中的配置是:

// version build
  var djConfig = {
    baseUrl: 'https://..../',
    modulePaths: { 'core': 'core'},
    useXDomain: true,
    xdWaitSeconds: 10,
    parseOnLoad: true,
    afterOnLoad: true,
//  debugAtAllCosts: true,
    isDebug: true,
    locale: "fr"
  };

然后

<script type="text/javascript" src="http://xd.woopic.com/dojoroot/1.3.2-xd/dojo/dojo.xd.js.uncompressed.js"></script> 
<script type="text/javascript" src="https://..../core/trusted.js.uncompressed.js"></script>  

我用的是未压缩的调试,当然。 问题是,在运行时,道场尝试加载我的包,并不能找到他们,我想将它们嵌入在我的层文件,所以没有多余的负荷将是必需的。 能否实现这一目标? 虽然我们在这,是否有与跨域的本地化的任何工作场所/的例子吗? 更新:我继续我的分析,这个问题似乎在事实上,我正在dynamicaly加载NLS打好,所以构建解析器找不到requireLocalization()调用。 因此,该项目的NLS文件只包含道场/ dijit的相关内容。 然而,我在一个虚拟文件增加了几束负载和核心/ NLS的内容仍然由制造商忽略。

感谢您的任何信息,我在我的搜索结束差不多,没有太多关于这个问题的网。

Answer 1:

我有一个类似的问题,前几天。 首先,你可以通过设置可用语言作为requireLocalization调用的第四个参数绕过错误。

dojo.requireLocalization("core", "FuseboxContent", null, "en,fr");

虽然你不应该这样做。

你有没有尝试包括如下定位?

dojo.requireLocalization("core", "FuseboxContent"); // and not dojo["require..."]


文章来源: Dojo custom build with NLS / localisation