UNPKG

5.72 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var Colors = require("colors.ts");
4var MainLanHw = /** @class */ (function () {
5 function MainLanHw(baseUrl) {
6 this.fs = require("fs");
7 this.path = require("path");
8 var self = this;
9 self._baseUrl = baseUrl;
10 self.transStr();
11 }
12 MainLanHw.prototype.transStr = function () {
13 var self = this;
14 var baseUrl = self._baseUrl;
15 var path = self.path;
16 var fs = self.fs;
17 // 定制控制台输出颜色
18 Colors.theme({ error: "red", info: "green" });
19 Colors.enable();
20 var lanStr_1 = fs.readFileSync(path.join(baseUrl, 'lanObj.json'), 'utf-8');
21 var lanObj_1 = JSON.parse(lanStr_1);
22 var lanStr_2 = fs.readFileSync(path.join(baseUrl, 'lanObj2.json'), 'utf-8');
23 var lanObj_2 = JSON.parse(lanStr_2);
24 //language_1
25 var lanArr_1 = [];
26 var newJson_1 = {};
27 var lanTxt_1 = "";
28 var useIds = [];
29 var maxId = 0;
30 var minId = 999999;
31 //language_2
32 var lanArr_2 = [];
33 var newJson_2 = {};
34 for (var key in lanObj_1) {
35 var val_1 = lanObj_1[key];
36 var kArr = key.split("_");
37 var kName = kArr[0];
38 // 缺失id检查
39 var id = Number(kArr[1]);
40 if (id == undefined || kName != "k") {
41 self.sendErr(key, "[key不规范]");
42 }
43 else {
44 useIds.push(id);
45 if (id > maxId) {
46 maxId = id;
47 }
48 if (id < minId) {
49 minId = id;
50 }
51 }
52 if (lanArr_1.indexOf(val_1) < 0) {
53 var val_3 = val_1.replace(/\\\\n/g, "\\\\\\\\n");
54 val_3 = val_3.replace(/\r\n\n/g, "\\r\\n\\n");
55 val_3 = val_3.replace(/\r\n/g, "\\r\\n");
56 val_3 = val_3.replace(/\n/g, "\\n");
57 val_3 = val_3.replace(/\t/g, "\\t");
58 lanTxt_1 += "\n\t/**" + val_3 + "*/" + "\n\t" + key + ":string;";
59 newJson_1[key] = val_1;
60 lanArr_1.push(val_1);
61 }
62 else {
63 self.sendErr(key, "[文本重复]");
64 }
65 }
66 for (var key in lanObj_2) {
67 var val_2 = lanObj_2[key];
68 var kArr_2 = key.split("_");
69 var kName_2 = kArr_2[0];
70 // 缺失id检查
71 var id = Number(kArr_2[1]);
72 if (id == undefined || kName_2 != "k") {
73 self.sendErr(key, "[key不规范]");
74 }
75 else {
76 }
77 if (lanArr_2.indexOf(val_2) < 0) {
78 newJson_2[key] = val_2;
79 lanArr_2.push(val_2);
80 }
81 else {
82 self.sendErr(key, "[文本重复]");
83 }
84 }
85 var content_1 = "interface LanTxt\n{#a\n}".replace(/#a/g, lanTxt_1) + '\nlet lanTxt:LanTxt = {} as LanTxt;';
86 fs.writeFileSync(path.join(baseUrl, "lanObj.json"), JSON.stringify(newJson_1, null, " "));
87 fs.writeFileSync(path.join(baseUrl, "lanObj2.json"), JSON.stringify(newJson_2, null, " "));
88 fs.writeFileSync(path.normalize(path.join(baseUrl, 'resource', 'language', 'language_1.json')), JSON.stringify(newJson_1));
89 fs.writeFileSync(path.normalize(path.join(baseUrl, 'resource', 'language', 'language_2.json')), JSON.stringify(newJson_2));
90 fs.writeFileSync(path.normalize(path.join(baseUrl, 'src', 'game', 'language', 'LanTxt.ts')), content_1);
91 // 缺失id打印
92 var missIds = [];
93 for (var i = minId; i <= maxId; i++) {
94 if (useIds.indexOf(i) == -1) {
95 missIds.push(i);
96 }
97 }
98 var msg = self.compressIds(missIds);
99 console.log("[finish]".info + " [" + minId + "," + maxId + "] " + "missIds: ".error + msg);
100 };
101 /**发送错误 */
102 MainLanHw.prototype.sendErr = function (msg, head) {
103 if (head === void 0) { head = "[error]"; }
104 console.log(head.error + msg);
105 };
106 /**压缩id */
107 MainLanHw.prototype.compressIds = function (missIds) {
108 if (missIds.length <= 0) {
109 return "";
110 }
111 missIds.sort();
112 var i = 0;
113 var len = missIds.length;
114 if (len == 1) {
115 return missIds[0] + "";
116 }
117 if (len == 2) {
118 return missIds[0] + "," + missIds[1];
119 }
120 var splits = [0]; // 分割点
121 for (i = 0; i < len - 2; i++) {
122 if (missIds[i + 1] - missIds[i] > 1) {
123 splits.push(i + 1);
124 }
125 }
126 var slen = splits.length;
127 // 重组
128 var reformIds = [];
129 for (i = 0; i < slen; i++) {
130 if (i == slen - 1) {
131 reformIds.push(missIds.slice(splits[i]));
132 }
133 else {
134 reformIds.push(missIds.slice(splits[i], splits[i + 1]));
135 }
136 }
137 // msg
138 var msgs = [];
139 var rlen = reformIds.length;
140 for (i = 0; i < rlen; i++) {
141 var u = reformIds[i];
142 var ulen = u.length;
143 if (ulen <= 1) {
144 msgs.push(u[0] + "");
145 }
146 else {
147 msgs.push(u[0] + "-" + u[ulen - 1]);
148 }
149 }
150 return msgs.join(",");
151 };
152 return MainLanHw;
153}());
154function run(baseUrl) {
155 new MainLanHw(baseUrl);
156}
157exports.run = run;