b28-cli 1.7.1 → 1.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/.babelrc +13 -13
  2. package/README.MD +470 -466
  3. package/TestFile/output/lang/BRPT.json +24 -0
  4. package/TestFile/output/lang/CN.json +24 -0
  5. package/TestFile/output/lang/CS.json +24 -0
  6. package/TestFile/output/lang/DE.json +24 -0
  7. package/TestFile/output/lang/EN.json +24 -0
  8. package/TestFile/output/lang/ES.json +24 -0
  9. package/TestFile/output/lang/FR.json +24 -0
  10. package/TestFile/output/lang/HU.json +24 -0
  11. package/TestFile/output/lang/IT.json +24 -0
  12. package/TestFile/output/lang/KO.json +24 -0
  13. package/TestFile/output/lang/LAES.json +24 -0
  14. package/TestFile/output/lang/NL.json +24 -0
  15. package/TestFile/output/lang/PL.json +24 -0
  16. package/TestFile/output/lang/PT.json +24 -0
  17. package/TestFile/output/lang/RO.json +24 -0
  18. package/TestFile/output/lang/RU.json +24 -0
  19. package/TestFile/output/lang/TR.json +24 -0
  20. package/TestFile/output/lang/UK.json +24 -0
  21. package/TestFile/output/lang/ZH.json +24 -0
  22. package/TestFile/output/lang/brpt/translate.json +23 -0
  23. package/TestFile/output/lang/cn/translate.json +23 -0
  24. package/TestFile/output/lang/cs/translate.json +23 -0
  25. package/TestFile/output/lang/de/translate.json +23 -0
  26. package/TestFile/output/lang/es/translate.json +23 -0
  27. package/TestFile/output/lang/fr/translate.json +23 -0
  28. package/TestFile/output/lang/hu/translate.json +23 -0
  29. package/TestFile/output/lang/it/translate.json +23 -0
  30. package/TestFile/output/lang/ko/translate.json +23 -0
  31. package/TestFile/output/lang/laes/translate.json +23 -0
  32. package/TestFile/output/lang/nl/translate.json +23 -0
  33. package/TestFile/output/lang/pl/translate.json +23 -0
  34. package/TestFile/output/lang/pt/translate.json +23 -0
  35. package/TestFile/output/lang/ro/translate.json +23 -0
  36. package/TestFile/output/lang/ru/translate.json +23 -0
  37. package/TestFile/output/lang/tr/translate.json +23 -0
  38. package/TestFile/output/lang/uk/translate.json +23 -0
  39. package/TestFile/output/lang/zh/translate.json +23 -0
  40. package/TestFile/output/lang.json +25 -0
  41. package/b28n.js +739 -739
  42. package/b28nPigeonhole/11ac_ecos_b28n.js +677 -677
  43. package/b28nPigeonhole/11ac_linux_b28n_async.js +709 -709
  44. package/b28nPigeonhole/4G03_b28n_async.js +708 -708
  45. package/b28nPigeonhole/G5310P_b28n.js +650 -650
  46. package/b28nPigeonhole/es5b28n.js +711 -711
  47. package/b28nPigeonhole/es6b28n.js +857 -857
  48. package/b28nPigeonhole/readMe.md +20 -20
  49. package/b28nPigeonhole//345/276/256/344/274/201/350/267/257/347/224/261b28n.js +916 -916
  50. package/dist/ExtractLangExcel.js +138 -45
  51. package/dist/cmd.js +14 -9
  52. package/dist/excel2json.js +215 -54
  53. package/dist/extract/extract-html.js +2 -2
  54. package/dist/extract/extract-js.js +2 -2
  55. package/dist/extract/extract-regexp.js +2 -2
  56. package/dist/extract/extract-vue.js +9 -9
  57. package/dist/extract/extract.js +4 -4
  58. package/dist/extract/extractRegexp/index.js +6 -6
  59. package/dist/extract/vue/html-parser.js +16 -16
  60. package/dist/extract/vue/util.js +2 -2
  61. package/dist/extract/vue/vue-compiler.js +2 -2
  62. package/dist/extractOrigin/extract.js +2 -2
  63. package/dist/extractOrigin/extract_html_ori.js +2 -2
  64. package/dist/extractOrigin/extract_js_ori.js +2 -2
  65. package/dist/handle.js +57 -7
  66. package/dist/index.js +36 -7
  67. package/dist/mergeExcel.js +407 -0
  68. package/dist/mergeJson.js +423 -2
  69. package/dist/util/config.js +90 -32
  70. package/dist/util/index.js +48 -41
  71. package/index.js +5 -5
  72. package/package.json +63 -62
  73. package/result.txt +53 -53
  74. package/test.js +182 -182
@@ -38,17 +38,17 @@ var _htmlParser2 = _interopRequireDefault(_htmlParser);
38
38
 
39
39
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
40
40
 
41
- /**
42
- * 功能设定
43
- * 1. <template></template>中的词条支持添加翻译函数,script中的词条支持翻译函数的添加,只支持预设范围内的词条翻译函数的添加
44
- * 1. 只处理v-bind指令和alt,placeholder,title属性,属性内容的处理遵循下面的规则
45
- * 2. 如果文本段或代码段中存在_(),则只处理_()内的内容,其它内容不做处理
46
- * 3. 如果不存在_(),根据规则判断词条是否需要处理,进行翻译函数的添加(只对中文进行添加吧)
47
- * 4. 不是_('%s')内部的%s一律不作处理,解析后的%s不作处理
41
+ /**
42
+ * 功能设定
43
+ * 1. <template></template>中的词条支持添加翻译函数,script中的词条支持翻译函数的添加,只支持预设范围内的词条翻译函数的添加
44
+ * 1. 只处理v-bind指令和alt,placeholder,title属性,属性内容的处理遵循下面的规则
45
+ * 2. 如果文本段或代码段中存在_(),则只处理_()内的内容,其它内容不做处理
46
+ * 3. 如果不存在_(),根据规则判断词条是否需要处理,进行翻译函数的添加(只对中文进行添加吧)
47
+ * 4. 不是_('%s')内部的%s一律不作处理,解析后的%s不作处理
48
48
  */
49
49
 
50
- /**
51
- * VUE文件解析类
50
+ /**
51
+ * VUE文件解析类
52
52
  */
53
53
  var ExtractVUE = function (_Extract) {
54
54
  (0, _inherits3.default)(ExtractVUE, _Extract);
@@ -16,8 +16,8 @@ var _path2 = _interopRequireDefault(_path);
16
16
 
17
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
18
 
19
- /**
20
- * 词条提取、翻译基类
19
+ /**
20
+ * 词条提取、翻译基类
21
21
  */
22
22
  var Extract = function () {
23
23
  function Extract(option, name) {
@@ -151,8 +151,8 @@ var Extract = function () {
151
151
  });
152
152
  };
153
153
 
154
- /**
155
- * 如果只是提取词条,则直接返回空
154
+ /**
155
+ * 如果只是提取词条,则直接返回空
156
156
  */
157
157
 
158
158
 
@@ -9,15 +9,15 @@ var _lib2 = _interopRequireDefault(_lib);
9
9
 
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
 
12
- /**
13
- * 提取词条
12
+ /**
13
+ * 提取词条
14
14
  * */
15
15
  function getWords(content, onlyZH) {
16
16
  return new _lib2.default.getWords(content, onlyZH);
17
17
  }
18
18
 
19
- /**
20
- * 翻译检查, 返回未翻译词条
19
+ /**
20
+ * 翻译检查, 返回未翻译词条
21
21
  */
22
22
  function checkTranslate(content, langData, onlyZH) {
23
23
  var words = new _lib2.default.getWords(content, onlyZH);
@@ -37,8 +37,8 @@ function checkTranslate(content, langData, onlyZH) {
37
37
  return untransWords;
38
38
  }
39
39
 
40
- /**
41
- * 翻译文件
40
+ /**
41
+ * 翻译文件
42
42
  */
43
43
  function translate(content) {
44
44
  content = _lib2.default.translate(content);
@@ -59,10 +59,10 @@ var buildRegex = function buildRegex(delimiters, full) {
59
59
 
60
60
  var ignoreRE = [];
61
61
 
62
- /**
63
- * 解析字符串表达式,拆解成多个部分
64
- * 比如:<label>在线用户({{ online }}人)</label>
65
- * 解析成三部分:在线用户(,{{online}},人)
62
+ /**
63
+ * 解析字符串表达式,拆解成多个部分
64
+ * 比如:<label>在线用户({{ online }}人)</label>
65
+ * 解析成三部分:在线用户(,{{online}},人)
66
66
  */
67
67
  function parseText(text, delimiters // 纯文本插入分隔符。默认为["{{", "}}"]
68
68
  ) {
@@ -112,8 +112,8 @@ function parseText(text, delimiters // 纯文本插入分隔符。默认为["{{"
112
112
  return { tockens: tockens, needMerge: needMerge };
113
113
  }
114
114
 
115
- /**
116
- * 解析{{}}指令内部的表达式
115
+ /**
116
+ * 解析{{}}指令内部的表达式
117
117
  */
118
118
  function parseExp(tocken) {
119
119
  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
@@ -315,9 +315,9 @@ function getTockensFromStr(content, offset) {
315
315
  return ret;
316
316
  }
317
317
 
318
- /**
319
- * 解析parseExp的结果,即{{}}模板表达式内的ast,提取词条或者合并词条
320
- * 如果文本中存在翻译函数,则直接处理翻译函数,其它词条文本会被处理,但是不会进行任何的参数合并操作,只处理词条
318
+ /**
319
+ * 解析parseExp的结果,即{{}}模板表达式内的ast,提取词条或者合并词条
320
+ * 如果文本中存在翻译函数,则直接处理翻译函数,其它词条文本会被处理,但是不会进行任何的参数合并操作,只处理词条
321
321
  */
322
322
  function listModuleTockens(tockens, text) {
323
323
  var outData = {
@@ -492,17 +492,17 @@ function parseHTML(html, options) {
492
492
  }
493
493
  }
494
494
 
495
- /**
496
- * 从位置index + n处开始截断html
495
+ /**
496
+ * 从位置index + n处开始截断html
497
497
  */
498
498
  function advance(n) {
499
499
  index += n;
500
500
  html = html.substring(n);
501
501
  }
502
502
 
503
- /**
504
- * 解析开始标签[<xxx]到结束标签[>或/>]的内容,输出match
505
- * 只记录需要处理的attr
503
+ /**
504
+ * 解析开始标签[<xxx]到结束标签[>或/>]的内容,输出match
505
+ * 只记录需要处理的attr
506
506
  */
507
507
  function parseStartTag() {
508
508
  var start = html.match(startTagOpen);
@@ -579,8 +579,8 @@ function handleArgs(args) {
579
579
 
580
580
  function getWord() {}
581
581
 
582
- /**
583
- * html转AST,记录词条的位置信息
582
+ /**
583
+ * html转AST,记录词条的位置信息
584
584
  */
585
585
  function parseTemplate(template, target) {
586
586
  // vue {{}}分隔符
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- /**
5
- * 不执行任何操作
4
+ /**
5
+ * 不执行任何操作
6
6
  */
7
7
  function noop(a, b, c) {}
8
8
 
@@ -218,8 +218,8 @@ function parseHTML(html, options) {
218
218
 
219
219
  var isSpecialTag = (0, _util.makeMap)("script,style,template", true);
220
220
 
221
- /**
222
- * 解析单文件组件(*.vue)输出SFC描述对象
221
+ /**
222
+ * 解析单文件组件(*.vue)输出SFC描述对象
223
223
  */
224
224
  function parseComponent(content) {
225
225
  // SFC描述对象
@@ -16,8 +16,8 @@ var _path2 = _interopRequireDefault(_path);
16
16
 
17
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
18
 
19
- /**
20
- * 词条提取、翻译基类
19
+ /**
20
+ * 词条提取、翻译基类
21
21
  */
22
22
  var Extract = function () {
23
23
  function Extract(option, words) {
@@ -29,8 +29,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
29
29
  var jsdom = require("jsdom");
30
30
  var JSDOM = jsdom.JSDOM;
31
31
 
32
- /**
33
- * HTML解析
32
+ /**
33
+ * HTML解析
34
34
  */
35
35
  var ExtractHTML = function (_Extract) {
36
36
  (0, _inherits3.default)(ExtractHTML, _Extract);
@@ -22,8 +22,8 @@ var _index = require("../util/index");
22
22
 
23
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
24
 
25
- /**
26
- * JS文件解析类
25
+ /**
26
+ * JS文件解析类
27
27
  */
28
28
  var ExtractJs = function (_Extract) {
29
29
  (0, _inherits3.default)(ExtractJs, _Extract);
package/dist/handle.js CHANGED
@@ -6,6 +6,10 @@ var _path = require("path");
6
6
 
7
7
  var _path2 = _interopRequireDefault(_path);
8
8
 
9
+ var _fs = require("fs");
10
+
11
+ var _fs2 = _interopRequireDefault(_fs);
12
+
9
13
  var _ExtractFile = require("./ExtractFile.js");
10
14
 
11
15
  var _ExtractFile2 = _interopRequireDefault(_ExtractFile);
@@ -38,6 +42,10 @@ var _encode = require("./encode");
38
42
 
39
43
  var _encode2 = _interopRequireDefault(_encode);
40
44
 
45
+ var _mergeExcel = require("./mergeExcel");
46
+
47
+ var _mergeExcel2 = _interopRequireDefault(_mergeExcel);
48
+
41
49
  var _config = require("./util/config");
42
50
 
43
51
  var _index = require("./util/index");
@@ -76,6 +84,8 @@ function handle(cfg) {
76
84
  return getAllWords(cfg);
77
85
  case _config.COMMAD.TRANS_ENCODE:
78
86
  return (0, _encode2.default)(cfg.transFilePath, cfg.transOutPath, cfg.transEncode);
87
+ case _config.COMMAD.MERGE_EXCEL:
88
+ return mergeExcelFiles(cfg);
79
89
  }
80
90
 
81
91
  return Promise.resolve("没有匹配的操作");
@@ -93,8 +103,8 @@ function addTrans(cfg) {
93
103
  return extractOri.scanFile();
94
104
  }
95
105
 
96
- /**
97
- * 提取词条
106
+ /**
107
+ * 提取词条
98
108
  */
99
109
  function getWords(cfg) {
100
110
  var extract = new _ExtractFile2.default({
@@ -109,9 +119,9 @@ function getWords(cfg) {
109
119
  return extract.scanFile();
110
120
  }
111
121
 
112
- /**
113
- * 翻译的同时生成语言包
114
- * 翻译时的key列永远是CN,Value列永远是EN
122
+ /**
123
+ * 翻译的同时生成语言包
124
+ * 翻译时的key列永远是CN,Value列永远是EN
115
125
  */
116
126
  function translate(cfg) {
117
127
  var extract = void 0;
@@ -185,6 +195,31 @@ function jsonToExcel(cfg) {
185
195
  }
186
196
 
187
197
  function merge(cfg) {
198
+ // 兼容:既支持传入单个json文件,也支持传入两个目录进行批量合并
199
+ var isDir = function isDir(p) {
200
+ try {
201
+ return _fs2.default.existsSync(p) && _fs2.default.statSync(p).isDirectory();
202
+ } catch (e) {
203
+ return false;
204
+ }
205
+ };
206
+ var isFile = function isFile(p) {
207
+ try {
208
+ return _fs2.default.existsSync(p) && _fs2.default.statSync(p).isFile();
209
+ } catch (e) {
210
+ return false;
211
+ }
212
+ };
213
+
214
+ if (isDir(cfg.mainJsonPath) && isDir(cfg.mergeJsonPath)) {
215
+ return (0, _mergeJson.mergeJsonFolders)(cfg.mainJsonPath, cfg.mergeJsonPath, cfg.outMergeJsonPath, cfg.action);
216
+ }
217
+
218
+ // 防止“一个目录 + 一个文件”误走单文件合并逻辑,导致输出异常
219
+ if (isDir(cfg.mainJsonPath) && isFile(cfg.mergeJsonPath) || isFile(cfg.mainJsonPath) && isDir(cfg.mergeJsonPath)) {
220
+ return Promise.reject(new Error("JSON合并:mainJsonPath 与 mergeJsonPath 必须同时为目录或同时为json文件"));
221
+ }
222
+
188
223
  return (0, _mergeJson2.default)(cfg.mainJsonPath, cfg.mergeJsonPath, cfg.outMergeJsonPath, cfg.action);
189
224
  }
190
225
 
@@ -199,8 +234,8 @@ function checkExcel(cfg) {
199
234
  });
200
235
  }
201
236
 
202
- /**
203
- * 提取词条及json文件生成一个excel表格
237
+ /**
238
+ * 提取词条及json文件生成一个excel表格
204
239
  */
205
240
  function getAllWords(cfg) {
206
241
  var extract = new _ExtractFile2.default({
@@ -219,4 +254,19 @@ function getAllWords(cfg) {
219
254
  });
220
255
  }
221
256
 
257
+ /**
258
+ * 合并两个Excel文件中的语种词条
259
+ */
260
+ function mergeExcelFiles(cfg) {
261
+ return (0, _mergeExcel2.default)({
262
+ excelPath1: cfg.excelPath1,
263
+ excelPath2: cfg.excelPath2,
264
+ sheetName1: cfg.sheetName1,
265
+ sheetName2: cfg.sheetName2,
266
+ keyName: cfg.keyName,
267
+ valueName: cfg.valueName,
268
+ outPath: cfg.outPath
269
+ });
270
+ }
271
+
222
272
  exports.default = handle;
package/dist/index.js CHANGED
@@ -142,6 +142,19 @@ function gerArgs() {
142
142
  };
143
143
  console.log(config);
144
144
  break;
145
+ case _config.COMMAD.MERGE_EXCEL:
146
+ config = {
147
+ commandType: _config.COMMAD.MERGE_EXCEL,
148
+ excelPath1: args.from1 || args.from,
149
+ excelPath2: args.from2 || args.to,
150
+ sheetName1: args.sheet1 || args.sheet,
151
+ sheetName2: args.sheet2,
152
+ keyName: args.key,
153
+ valueName: args.value,
154
+ outPath: args.out || args.dest
155
+ };
156
+ console.log(config);
157
+ break;
145
158
  }
146
159
  return config;
147
160
  }
@@ -168,8 +181,8 @@ function getCfg() {
168
181
  });
169
182
  }
170
183
 
171
- /**
172
- * 验证和修正所有配置参数
184
+ /**
185
+ * 验证和修正所有配置参数
173
186
  */
174
187
  function correctCfg(cfg) {
175
188
  if (cfg.commandType === undefined || cfg.commandType === "") {
@@ -197,7 +210,7 @@ function correctCfg(cfg) {
197
210
  }
198
211
 
199
212
  function fullPath(cfg) {
200
- var fullField = ["baseReadPath", "baseOutPath", "baseTranslatePath", "baseTransOutPath", "hongPath", "languagePath", "baseCheckPath", "logPath", "langJsonPath", "excelPath", "outJsonPath", "jsonPath", "outExcelPath", "mainJsonPath", "mergeJsonPath", "outMergeJsonPath", "baseProPath", "baseProOutPath", "transFilePath", "transOutPath"];
213
+ var fullField = ["baseReadPath", "baseOutPath", "baseTranslatePath", "baseTransOutPath", "hongPath", "languagePath", "baseCheckPath", "logPath", "langJsonPath", "excelPath", "excelPath1", "excelPath2", "outJsonPath", "jsonPath", "outExcelPath", "mainJsonPath", "mergeJsonPath", "outMergeJsonPath", "baseProPath", "baseProOutPath", "transFilePath", "transOutPath", "outPath"];
201
214
 
202
215
  // 将相对地址转为绝对地址
203
216
  fullField.forEach(function (field) {
@@ -289,11 +302,12 @@ var validate = (_validate = {}, _validate[_config.COMMAD.GET_WORDS] = function (
289
302
  cfg.outExcelPath = cfg.outExcelPath || (0, _index.getDirname)(cfg.jsonPath);
290
303
  }, _validate[_config.COMMAD.MERGE_JSON] = function (cfg) {
291
304
  var error = [];
292
- if (_config.valid.existFile(cfg.mainJsonPath) !== true) {
293
- error.push(errorMess("mainJsonPath", ARG_TYPE.FILE, cfg));
305
+ // 支持文件或目录
306
+ if (_config.valid.fileOrFolder(cfg.mainJsonPath) !== true) {
307
+ error.push(errorMess("mainJsonPath", ARG_TYPE.FOLDER, cfg));
294
308
  }
295
- if (_config.valid.existFile(cfg.mergeJsonPath) !== true) {
296
- error.push(errorMess("mergeJsonPath", ARG_TYPE.FILE, cfg));
309
+ if (_config.valid.fileOrFolder(cfg.mergeJsonPath) !== true) {
310
+ error.push(errorMess("mergeJsonPath", ARG_TYPE.FOLDER, cfg));
297
311
  }
298
312
  if (error.length > 0) {
299
313
  return "--->>>" + error.join("--->>>");
@@ -332,6 +346,21 @@ var validate = (_validate = {}, _validate[_config.COMMAD.GET_WORDS] = function (
332
346
  if (_config.valid.folder(cfg.transFilePath) !== true && _config.valid.existFile(cfg.transFilePath) !== true) {
333
347
  return errorMess("transFilePath", ARG_TYPE.FOLDER, cfg);
334
348
  }
349
+ }, _validate[_config.COMMAD.MERGE_EXCEL] = function (cfg) {
350
+ var error = [];
351
+ cfg.keyName = cfg.keyName || "EN";
352
+ cfg.valueName = cfg.valueName || "ALL";
353
+
354
+ if (_config.valid.existFile(cfg.excelPath1) !== true) {
355
+ error.push(errorMess("excelPath1", ARG_TYPE.FILE, cfg));
356
+ }
357
+ if (_config.valid.existFile(cfg.excelPath2) !== true) {
358
+ error.push(errorMess("excelPath2", ARG_TYPE.FILE, cfg));
359
+ }
360
+ if (error.length > 0) {
361
+ return "--->>>" + error.join("--->>>");
362
+ }
363
+ cfg.outPath = cfg.outPath || (0, _index.getDirname)(cfg.excelPath1);
335
364
  }, _validate);
336
365
 
337
366
  function start(config) {