1 | /** |
---|
2 | * Takes plain JSON structures and wraps them as to requireJS i18n bundles |
---|
3 | */ |
---|
4 | |
---|
5 | djConfig={baseUrl: "../../../dojo/", paths: {"dojo/_base/xhr": "../util/buildscripts/cldr/xhr"}}; |
---|
6 | |
---|
7 | load("../../../dojo/dojo.js"); |
---|
8 | load("../jslib/logger.js"); |
---|
9 | load("../jslib/fileUtil.js"); |
---|
10 | load("cldrUtil.js"); |
---|
11 | |
---|
12 | dojo.require("dojo.i18n"); |
---|
13 | |
---|
14 | var dir/*String*/ = arguments[0];// ${dojo}/dojo/cldr/nls |
---|
15 | var logDir = arguments[1]; |
---|
16 | var logStr = ""; |
---|
17 | |
---|
18 | print('wrap.js...'); |
---|
19 | |
---|
20 | var wrap = function(contents){ |
---|
21 | return "\n//begin v1.x content\n" + contents + "\n//end v1.x content\n"; |
---|
22 | }; |
---|
23 | |
---|
24 | // for each .js file in the top-level directory, make a filtered list |
---|
25 | // of all files matching that name in the directory tree |
---|
26 | var fileLists = fileUtil.getFilteredFileList(dir, /\.js$/, true, false, true) |
---|
27 | .map(function(file){ |
---|
28 | var name = file.substring(file.lastIndexOf("/")); |
---|
29 | return fileUtil.getFilteredFileList(dir, new RegExp(name+"$"), true); |
---|
30 | }); |
---|
31 | |
---|
32 | fileLists.forEach(function(fileList){ |
---|
33 | var map = {}, |
---|
34 | list = [], |
---|
35 | rootFile; |
---|
36 | fileList.forEach(function(file /*Java String*/){ |
---|
37 | logStr += "WRAP processing file: "+file.toString()+"\n"; |
---|
38 | var path = file.split("/"), |
---|
39 | locale = path[path.length-2], |
---|
40 | obj = dojo.fromJson(fileUtil.readFile(file)); |
---|
41 | |
---|
42 | if(locale=="nls"){ |
---|
43 | rootFile = file; |
---|
44 | map.root = obj; |
---|
45 | logStr += "rootFile="+file.toString()+"\n"; |
---|
46 | |
---|
47 | }else{ |
---|
48 | logStr += "locale added: "+locale+"\n"; |
---|
49 | list.push(locale); |
---|
50 | map[locale] = true; |
---|
51 | fileUtil.saveUtf8File(file, "define(" + wrap(dojo.toJson(obj, true)) + ");"); |
---|
52 | } |
---|
53 | }); |
---|
54 | |
---|
55 | logStr += "writing rootFile="+rootFile+"\n"; |
---|
56 | // var contents = wrap(dojo.toJson(map, true)); |
---|
57 | |
---|
58 | // Assemble file contents to include 1.x markers around map.root |
---|
59 | var contents = "{ root:\n"; |
---|
60 | contents += wrap(dojo.toJson(map.root, true)); |
---|
61 | if(list.length){ |
---|
62 | list.sort(); |
---|
63 | list.forEach(function(l){ |
---|
64 | contents += ',\n\t"' + l + '": true'; |
---|
65 | }); |
---|
66 | contents += "\n"; |
---|
67 | } |
---|
68 | contents += "}"; |
---|
69 | |
---|
70 | fileUtil.saveUtf8File(rootFile, "define(" + contents + ");"); |
---|
71 | }); |
---|
72 | |
---|
73 | fileUtil.saveUtf8File(logDir + '/wrap.log',logStr+'\n'); |
---|
74 | //print('wrap finished, please refer to logs at ' + logDir + ' for more details.'); |
---|