//>>built define("dojo/i18n", ["./_base/kernel", "require", "./has", "./_base/array", "./_base/config", "./_base/lang", "./_base/xhr"], function(dojo, require, has, array, config, lang, xhr) { // module: // dojo/i18n // summary: // This module implements the !dojo/i18n plugin and the v1.6- i18n API // description: // We choose to include our own plugin to leverage functionality already contained in dojo // and thereby reduce the size of the plugin compared to various loader implementations. Also, this // allows foreign AMD loaders to be used without their plugins. var thisModule= dojo.i18n= // the dojo.i18n module {}, nlsRe= // regexp for reconstructing the master bundle name from parts of the regexp match // nlsRe.exec("foo/bar/baz/nls/en-ca/foo") gives: // ["foo/bar/baz/nls/en-ca/foo", "foo/bar/baz/nls/", "/", "/", "en-ca", "foo"] // nlsRe.exec("foo/bar/baz/nls/foo") gives: // ["foo/bar/baz/nls/foo", "foo/bar/baz/nls/", "/", "/", "foo", ""] // so, if match[5] is blank, it means this is the top bundle definition. // courtesy of http://requirejs.org /(^.*(^|\/)nls)(\/|$)([^\/]*)\/?([^\/]*)/, getAvailableLocales= function( root, locale, bundlePath, bundleName ){ // return a vector of module ids containing all available locales with respect to the target locale // For example, assuming: // * the root bundle indicates specific bundles for "fr" and "fr-ca", // * bundlePath is "myPackage/nls" // * bundleName is "myBundle" // Then a locale argument of "fr-ca" would return // ["myPackage/nls/myBundle", "myPackage/nls/fr/myBundle", "myPackage/nls/fr-ca/myBundle"] // Notice that bundles are returned least-specific to most-specific, starting with the root. // // If root===false indicates we're working with a pre-AMD i18n bundle that doesn't tell about the available locales; // therefore, assume everything is available and get 404 errors that indicate a particular localization is not available // for(var result= [bundlePath + bundleName], localeParts= locale.split("-"), current= "", i= 0; i/ indicates not the root. if(preAmdResult===__evalError){ console.error("failed to evaluate i18n bundle; url=" + url, __evalError.e); return {}; } return preAmdResult ? (/nls\/[^\/]+\/[^\/]+$/.test(url) ? preAmdResult : {root:preAmdResult, _v1x:1}) : amdResult; }, syncRequire= function(deps, callback){ var results= []; array.forEach(deps, function(mid){ var url= require.toUrl(mid + ".js"); if(cache[url]){ results.push(cache[url]); }else{ try { var bundle= require(mid); if(bundle){ results.push(bundle); return; } }catch(e){} xhr.get({ url:url, sync:true, load:function(text){ var result = evalBundle(text, __evalError); results.push(cache[url]= fixup(url, result[0], result[1])); }, error:function(){ results.push(cache[url]= {}); } }); } }); callback && callback.apply(null, results); }, normalizeLocale = thisModule.normalizeLocale= function(locale){ var result = locale ? locale.toLowerCase() : dojo.locale; if(result == "root"){ result = "ROOT"; } return result; }, forEachLocale = function(locale, func){ // this function is equivalent to v1.6 dojo.i18n._searchLocalePath with down===true var parts = locale.split("-"); while(parts.length){ if(func(parts.join("-"))){ return true; } parts.pop(); } return func("ROOT"); }; checkForLegacyModules = function(target){ // legacy code may have already loaded [e.g] the raw bundle x/y/z at x.y.z; when true, push into the cache for(var names = target.split("/"), object = dojo.global[names[0]], i = 1; object && i