localization build dojo nls

localization - Dojo construcción personalizada con NLS/localización



build (1)

Tuve un problema similar hace unos días. En primer lugar, puede evitar el error configurando las configuraciones regionales disponibles como el 4º parámetro de la llamada requireLocalization.

p.ej

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

aunque no deberías tener que hacer eso.

¿Intentó incluir la localización de la siguiente manera?

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

Tengo un problema al implementar una compilación personalizada de dominio cruzado en Dojo. La situación es la siguiente: tengo una aplicación bastante grande, con un buen número de paquetes de localización, por lo que básicamente las estructuras de directorios son como
core / (mi módulo)
nls /
fr /
en /
....
Al construir mi módulo, el resultado es un gran archivo core.js / core.xd.js, que, bien sur, no contiene las localizaciones. En los directorios nls de localización (en / fr / etc) encuentro después de la compilación cada paquete incorporado / minificado, y un archivo más grande para cada idioma, core_fr.js / core_en.fs, que contiene solo cadenas relacionadas con Dojo / Dijit.

entonces mi script de compilación es

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"] ]

En la clase core.controller.Fusebox, intento cargar 1 nls

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

aquí morirá, sin embargo con

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

Mi configuración en el archivo html es:

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

y entonces

<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>

Usé el descomprimido para la depuración, por supuesto. El problema es que, en tiempo de ejecución, Dojo intenta cargar mis paquetes y no puede encontrarlos, y me gustaría incrustarlos en mi archivo de capa, por lo que no se requerirán cargas adicionales. ¿Se puede lograr esto? Y mientras estamos en ello, ¿hay sitios / ejemplos que funcionen con ubicaciones de dominios cruzados? ACTUALIZACIÓN: continué mi análisis y el problema parece residir en el hecho de que estoy cargando nls dinámicamente, por lo que el analizador de compilación no puede encontrar las llamadas a requireLocalization (). Por lo tanto, el archivo nls del proyecto contiene solo contenido relacionado con dojo / dijit. Sin embargo, agregué algunas cargas agrupadas en un archivo ficticio, y el constructor todavía ignora el contenido de core / nls.

Gracias por cualquier información, estoy casi al final de mis búsquedas, no hay mucho en la red sobre este tema.