UNPKG

4.7 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var Colors = require("colors.ts");
4var MainLanNs = /** @class */ (function () {
5 function MainLanNs(baseUrl) {
6 this.fs = require("fs");
7 this.path = require("path");
8 var self = this;
9 self._baseUrl = baseUrl;
10 self.transStr();
11 }
12 MainLanNs.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 //language_1
23 var lanArr_1 = [];
24 var newJson_1 = {};
25 var lanTxt_1 = "";
26 var useIds = [];
27 var maxId = 0;
28 var minId = 999999;
29 //language_2
30 for (var key in lanObj_1) {
31 var val_1 = lanObj_1[key];
32 var kArr = key.split("_");
33 var kName = kArr[0];
34 // 缺失id检查
35 var id = Number(kArr[1]);
36 if (id == undefined || kName != "k") {
37 self.sendErr(key, "[key不规范]");
38 }
39 else {
40 useIds.push(id);
41 if (id > maxId) {
42 maxId = id;
43 }
44 if (id < minId) {
45 minId = id;
46 }
47 }
48 if (lanArr_1.indexOf(val_1) < 0) {
49 var val_3 = val_1.replace(/\\\\n/g, "\\\\\\\\n");
50 val_3 = val_3.replace(/\r\n\n/g, "\\r\\n\\n");
51 val_3 = val_3.replace(/\r\n/g, "\\r\\n");
52 val_3 = val_3.replace(/\n/g, "\\n");
53 val_3 = val_3.replace(/\t/g, "\\t");
54 lanTxt_1 += "\n\t/**" + val_3 + "*/" + "\n\t" + key + ":string;";
55 newJson_1[key] = val_1;
56 lanArr_1.push(val_1);
57 }
58 else {
59 self.sendErr(key, "[文本重复]");
60 }
61 }
62 var content_1 = "namespace byh {\n export interface LanTxt\n{#a\n}".replace(/#a/g, lanTxt_1) + '\n export var lanTxt:LanTxt = {} as LanTxt;\n}';
63 fs.writeFileSync(path.join(baseUrl, "lanObj.json"), JSON.stringify(newJson_1, null, " "));
64 fs.writeFileSync(path.normalize(path.join(baseUrl, 'resource', 'config', 'lanJson.json')), JSON.stringify(newJson_1));
65 fs.writeFileSync(path.normalize(path.join(baseUrl, 'src', 'game', 'core', 'manager', 'LanTxt.ts')), content_1);
66 // 缺失id打印
67 var missIds = [];
68 for (var i = minId; i <= maxId; i++) {
69 if (useIds.indexOf(i) == -1) {
70 missIds.push(i);
71 }
72 }
73 var msg = self.compressIds(missIds);
74 console.log("[finish]".info + " [" + minId + "," + maxId + "] " + "missIds: ".error + msg);
75 };
76 /**发送错误 */
77 MainLanNs.prototype.sendErr = function (msg, head) {
78 if (head === void 0) { head = "[error]"; }
79 console.log(head.error + msg);
80 };
81 /**压缩id */
82 MainLanNs.prototype.compressIds = function (missIds) {
83 if (missIds.length <= 0) {
84 return "";
85 }
86 missIds.sort();
87 var i = 0;
88 var len = missIds.length;
89 if (len == 1) {
90 return missIds[0] + "";
91 }
92 if (len == 2) {
93 return missIds[0] + "," + missIds[1];
94 }
95 var splits = [0]; // 分割点
96 for (i = 0; i < len - 2; i++) {
97 if (missIds[i + 1] - missIds[i] > 1) {
98 splits.push(i + 1);
99 }
100 }
101 var slen = splits.length;
102 // 重组
103 var reformIds = [];
104 for (i = 0; i < slen; i++) {
105 if (i == slen - 1) {
106 reformIds.push(missIds.slice(splits[i]));
107 }
108 else {
109 reformIds.push(missIds.slice(splits[i], splits[i + 1]));
110 }
111 }
112 // msg
113 var msgs = [];
114 var rlen = reformIds.length;
115 for (i = 0; i < rlen; i++) {
116 var u = reformIds[i];
117 var ulen = u.length;
118 if (ulen <= 1) {
119 msgs.push(u[0] + "");
120 }
121 else {
122 msgs.push(u[0] + "-" + u[ulen - 1]);
123 }
124 }
125 return msgs.join(",");
126 };
127 return MainLanNs;
128}());
129function run(baseUrl) {
130 new MainLanNs(baseUrl);
131}
132exports.run = run;