// test script var translations = {}; Script.loadLangfile = function (fname) { var data = File.read(fname); eval("translations = " + data); } Script.minimize = function (fname) { var data = File.read(fname); var x = Script.tokenize(data); for(var i =0; i < x.length; i++) { if (x[i].tok == "whitespace") { if (x[i].val.indexOf("\n") > -1) { print("\n"); continue; } print(" "); continue; } var innerString = x[i].val.substring(1,x[i].val.length-1); // apply translations.. if ((x[i].tok == "string") && (x[i].qc != "'") && (typeof(translations[Path.getBaseName(fname)][innerString] != "undefined"))) { // need to escape it properly.. var ar = [ translations[Path.getBaseName(fname)][innerString] ]; var ars = ar.toSource(); print(ars.substring(1, ars.length-1); continue; } print(x[i].val); //println(x[i].toSource()); } print(";\n"); } Script.printStrings = function (fname){ var data = File.read(fname); var x = Script.tokenize(data); println("{\"" + Path.getBaseName(fname) + "\" : {"); var done = {}; var ndone = 0; for(var i =0; i < x.length; i++) { if (x[i].tok != "string") { continue; } if (x[i].qc == "'") { continue; } var kv = x[i].val.substring(1,x[i].val.length-1); var ln = { src: kv }; var lns = ln.toSource(); var lnq = lns.substring(5,lns.length-1) ; if (typeof(done[lnq]) != "undefined") { continue; } if (ndone > 0) { print(",\n"); } var pad = " ".substring( 0, (15 - lnq.length) < 0 ? 1 : (15 - lnq.length)); print(" " + lnq + ":" + pad + lnq); done[lnq]= 1; ndone++; } println("\n}};"); } var method = Script.minimize; var done = { }; for (var i =3; i< arguments.length; i ++) { switch(arguments[0]) { case '--strings': method = Script.printStrings; continue; case '--langfile': Script.loadLangfile(arguments[i+1]); i++; continue; default: if (typeof(done[arguments[i]]) == 'undefined') { method(arguments[i]); } done[arguments[i]] = 1; continue; } }