source: Dev/trunk/src/client/util/build/plugins/i18n.js @ 529

Last change on this file since 529 was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 1.2 KB
Line 
1define(function() {
2        var nlsRe=
3                // regexp for reconstructing the master bundle name from parts of the regexp match
4                // nlsRe.exec("foo/bar/baz/nls/en-ca/foo") gives:
5                // ["foo/bar/baz/nls/en-ca/foo", "foo/bar/baz/nls/", "/", "/", "en-ca", "foo"]
6                // nlsRe.exec("foo/bar/baz/nls/foo") gives:
7                // ["foo/bar/baz/nls/foo", "foo/bar/baz/nls/", "/", "/", "foo", ""]
8                // so, if match[5] is blank, it means this is the top bundle definition.
9                // courtesy of http://requirejs.org
10                /(^.*(^|\/)nls(\/|$))([^\/]*)\/?([^\/]*)/;
11
12        return {
13                start:function(
14                        mid,
15                        referenceModule,
16                        bc
17                ){
18                        var i18nPlugin = bc.amdResources["dojo/i18n"],
19                        match = nlsRe.exec(mid),
20                        bundleName = match[5] || match[4],
21                        bundlePath = bc.getSrcModuleInfo(match[1] + bundleName, referenceModule).mid.match(/(.+\/)[^\/]+/)[1],
22                        locale = (match[5] && match[4]),
23                        i18nResourceMid = bundlePath + (locale ? locale + "/" : "") + bundleName,
24                        i18nResource = bc.amdResources[i18nResourceMid];
25
26                        if(!i18nPlugin){
27                                throw new Error("i18n! plugin missing");
28                        }
29                        if(!i18nResource){
30                                throw new Error("i18n resource (" + i18nResourceMid + ") missing");
31                        }
32                        return [i18nPlugin, i18nResource];
33                }
34        };
35});
Note: See TracBrowser for help on using the repository browser.