Wednesday, January 26, 2011

Dojo Pre-Localization (faster to develop and load)

Embedding Dojo Resources During Early Development

Want to code for localization but don't want to take the time to build a resource file (or wait for the resource file to load)?


Declare your resources in code like this:


dojo.setObject("coretech.nls.res.en_us", {
  "R1": "HELLO",
  "R2": "WORLD"
});
dojo.provide("coretech.nls.res.en_us");

Then use the resources like normal:

dojo.requireLocalization("coretech", "res");
dojo.addOnLoad(function() {
    var res = dojo.i18n.getLocalization("coretech", "res", this.lang);
    alert(res.R1);
    alert(dojo.toJson(res, true));
});

How do I know?

The dojo.provide method (1.5) is implemented in loader.js and looks like this:

return (d._loadedModules[resourceName] = d.getObject(resourceName, true));

No comments:

Post a Comment