ztxkutils 10.0.8 → 20.0.1

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 (63) hide show
  1. package/dist/businessTools.js +4 -3
  2. package/dist/dataModel-6c68c88f.js +26 -0
  3. package/dist/dataModel-914b6226.js +26 -0
  4. package/dist/dataModel.js +2 -1
  5. package/dist/fileOperation.d.ts +19 -0
  6. package/dist/fileOperation.js +74 -10
  7. package/dist/hooks.js +36 -22
  8. package/dist/i18next.js +21 -0
  9. package/dist/index.js +5 -4
  10. package/dist/myIndexDb.d.ts +1 -1
  11. package/dist/print.d.ts +4 -5
  12. package/dist/print.js +4 -3
  13. package/dist/reqUrl.js +1 -1
  14. package/dist/request-1e442d5d.js +2982 -0
  15. package/dist/request-986d7090.js +2923 -0
  16. package/dist/request-d8d72b87.js +2982 -0
  17. package/dist/request-f600ad7a.js +2992 -0
  18. package/dist/request.d.ts +13 -0
  19. package/dist/request.js +2 -1
  20. package/dist/stompClient.js +21 -8
  21. package/dist/useFileIdToBase64.js +2 -0
  22. package/dist/validate-21164759.js +260 -0
  23. package/dist/validate-2de5a28f.js +260 -0
  24. package/dist/validate.js +2 -1
  25. package/dist/workflow.js +3 -5
  26. package/locales/en-US.json +64 -0
  27. package/locales/zh-CN.json +64 -0
  28. package/package.json +41 -4
  29. package/zti18n-cli/bin/index.js +3 -0
  30. package/zti18n-cli/index.js +23 -0
  31. package/zti18n-cli/src/command/collect.js +353 -0
  32. package/zti18n-cli/src/command/convert.js +17 -0
  33. package/zti18n-cli/src/command/convert2.js +35 -0
  34. package/zti18n-cli/src/command/initFileConf.js +133 -0
  35. package/zti18n-cli/src/command/publish.js +24 -0
  36. package/zti18n-cli/src/conf/BaseConf.js +21 -0
  37. package/zti18n-cli/src/conf/FileConf.js +116 -0
  38. package/zti18n-cli/src/index.js +75 -0
  39. package/zti18n-cli/src/translate/google.js +87 -0
  40. package/zti18n-cli/src/utils/isChinese.js +3 -0
  41. package/zti18n-cli/src/utils/log.js +8 -0
  42. package/zti18n-cli/src/utils/mergeOptions.js +45 -0
  43. package/zti18n-cli/src/utils/reactOptions.js +73 -0
  44. package/zti18n-cli/src/utils/vueOptions.js +69 -0
  45. package/zti18n-core/index.js +1 -0
  46. package/zti18n-core/src/index.js +5 -0
  47. package/zti18n-core/src/plugin/reactIntlToReactIntlUniversal.js +224 -0
  48. package/zti18n-core/src/plugin/reactIntlUniversalToDi18n.js +64 -0
  49. package/zti18n-core/src/transform/defaultPkMap.js +79 -0
  50. package/zti18n-core/src/transform/transformHtml.js +271 -0
  51. package/zti18n-core/src/transform/transformJs.js +489 -0
  52. package/zti18n-core/src/transform/transformPug.js +272 -0
  53. package/zti18n-core/src/transform/transformReactIntlToReactIntlUniversal.js +96 -0
  54. package/zti18n-core/src/transform/transformReactIntlUniveralToDi18n.js +90 -0
  55. package/zti18n-core/src/transform/transformToDi18n.js +22 -0
  56. package/zti18n-core/src/transform/transformTs.js +41 -0
  57. package/zti18n-core/src/transform/transformVue.js +126 -0
  58. package/zti18n-core/src/transform/transformZeroToDi18n.js +105 -0
  59. package/zti18n-core/src/translate/google.js +6 -0
  60. package/zti18n-core/src/utils/constants.js +3 -0
  61. package/zti18n-core/src/utils/getIgnoreLines.js +14 -0
  62. package/zti18n-core/src/utils/isChinese.js +3 -0
  63. package/zti18n-core/src/utils/log.js +8 -0
@@ -0,0 +1,105 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const prettier = require('prettier');
4
+ const transformTs = require('./transformTs');
5
+ const transformJs = require('./transformJs');
6
+ const transformVue = require('./transformVue');
7
+ const log = require('../utils/log');
8
+
9
+ function transformReact(
10
+ codeFileInfo,
11
+ allTranslatedWord,
12
+ updatedTranslatedWord,
13
+ keysInUse,
14
+ option
15
+ ) {
16
+ const { filePath, currentEntry, currentOutput, noImport } = codeFileInfo;
17
+ const sourceCode = fs.readFileSync(filePath, 'utf8');
18
+ const isTSX = ['.ts', '.tsx'].includes(path.extname(filePath));
19
+
20
+ const transform = isTSX ? transformTs : transformJs;
21
+
22
+ const { source, hasTouch } = transform(
23
+ sourceCode,
24
+ {
25
+ allTranslated: allTranslatedWord,
26
+ allUpdated: updatedTranslatedWord,
27
+ allUsedKeys: keysInUse,
28
+ },
29
+ option
30
+ );
31
+
32
+ if (!option.extractOnly && hasTouch && !noImport) {
33
+ let code = source;
34
+ if (option.prettier) {
35
+ const parser = isTSX ? 'typescript' : 'babel';
36
+ code = prettier.format(source, { ...option.prettier, parser });
37
+ }
38
+
39
+ const target = currentOutput
40
+ ? filePath.replace(currentEntry, currentOutput)
41
+ : filePath;
42
+ fs.writeFileSync(target, code, { encoding: 'utf-8' });
43
+ }
44
+ }
45
+
46
+ function transformVueAdapter(
47
+ codeFileInfo,
48
+ allTranslatedWord,
49
+ updatedTranslatedWord,
50
+ keysInUse,
51
+ option
52
+ ) {
53
+ const { filePath, currentEntry, currentOutput } = codeFileInfo;
54
+ const sourceCode = fs.readFileSync(filePath, 'utf8');
55
+
56
+ const { source, hasTouch } = transformVue(
57
+ sourceCode,
58
+ {
59
+ allTranslated: allTranslatedWord,
60
+ allUpdated: updatedTranslatedWord,
61
+ allUsedKeys: keysInUse,
62
+ },
63
+ option
64
+ );
65
+
66
+ if (!option.extractOnly && hasTouch) {
67
+ let code = source;
68
+ if (option.prettier) {
69
+ const parser = 'vue';
70
+ code = prettier.format(source, { ...option.prettier, parser });
71
+ }
72
+
73
+ const target = currentOutput
74
+ ? filePath.replace(currentEntry, currentOutput)
75
+ : filePath;
76
+ fs.writeFileSync(target, code, { encoding: 'utf-8' });
77
+ }
78
+ }
79
+
80
+ /**
81
+ * 转换 react 和 普通 js 文件
82
+ * @param {object} codeFileInfo 源码文件信息
83
+ * @param {object} allTranslatedWord 现有的中文资源
84
+ * @param {object} updatedTranslatedWord 在远端做过中文文案修改的 key/value
85
+ * @param {array} keysInUse 使用中的key
86
+ * @param {object} option 透传过来的 di18n 配置
87
+ */
88
+ module.exports = function transformZeroToDi18n(
89
+ codeFileInfo,
90
+ allTranslatedWord,
91
+ updatedTranslatedWord,
92
+ keysInUse,
93
+ option
94
+ ) {
95
+ const { ext } = codeFileInfo;
96
+ const doTransform = ext === '.vue' ? transformVueAdapter : transformReact;
97
+ log.info(codeFileInfo.filePath);
98
+ doTransform(
99
+ codeFileInfo,
100
+ allTranslatedWord,
101
+ updatedTranslatedWord,
102
+ keysInUse,
103
+ option
104
+ );
105
+ };
@@ -0,0 +1,6 @@
1
+ // https://github.com/matheuss/google-translate-api/issues/79#issuecomment-427841889
2
+ const googleTranslate = require('@vitalets/google-translate-api');
3
+
4
+ module.exports = function translateByGoogle(text, targetLang) {
5
+ return googleTranslate(text, { client: 'gtx', to: targetLang });
6
+ };
@@ -0,0 +1,3 @@
1
+ exports.REACT_JS = 'js';
2
+ exports.REACT_TS = 'ts';
3
+ exports.VUE = 'vue';
@@ -0,0 +1,14 @@
1
+ module.exports = function getIgnoreLines(tpl) {
2
+ // 仅支持 // di18n-disable 和 // di18n-enable 注释指令
3
+ const ignores = [];
4
+ let ignoring = false;
5
+
6
+ const lines = tpl.split(/\n|\r\n/g);
7
+ for (let i = 0; i < lines.length; i++) {
8
+ if (lines[i].includes('zti18n-disable')) ignoring = true;
9
+ if (lines[i].includes('zti18n-enable')) ignoring = false;
10
+ if (ignoring) ignores.push(i + 1);
11
+ }
12
+
13
+ return ignores;
14
+ };
@@ -0,0 +1,3 @@
1
+ module.exports = function isChinese(text) {
2
+ return /[\u4e00-\u9fa5]/.test(text);
3
+ };
@@ -0,0 +1,8 @@
1
+ const chalk = require('chalk');
2
+
3
+ module.exports = {
4
+ info: (msg) => console.log(chalk.cyan(msg)),
5
+ warning: (msg) => console.log(chalk.yellow(msg)),
6
+ success: (msg) => console.log(chalk.green(msg)),
7
+ error: (msg) => console.log(chalk.red(msg)),
8
+ };