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.
- package/dist/businessTools.js +4 -3
- package/dist/dataModel-6c68c88f.js +26 -0
- package/dist/dataModel-914b6226.js +26 -0
- package/dist/dataModel.js +2 -1
- package/dist/fileOperation.d.ts +19 -0
- package/dist/fileOperation.js +74 -10
- package/dist/hooks.js +36 -22
- package/dist/i18next.js +21 -0
- package/dist/index.js +5 -4
- package/dist/myIndexDb.d.ts +1 -1
- package/dist/print.d.ts +4 -5
- package/dist/print.js +4 -3
- package/dist/reqUrl.js +1 -1
- package/dist/request-1e442d5d.js +2982 -0
- package/dist/request-986d7090.js +2923 -0
- package/dist/request-d8d72b87.js +2982 -0
- package/dist/request-f600ad7a.js +2992 -0
- package/dist/request.d.ts +13 -0
- package/dist/request.js +2 -1
- package/dist/stompClient.js +21 -8
- package/dist/useFileIdToBase64.js +2 -0
- package/dist/validate-21164759.js +260 -0
- package/dist/validate-2de5a28f.js +260 -0
- package/dist/validate.js +2 -1
- package/dist/workflow.js +3 -5
- package/locales/en-US.json +64 -0
- package/locales/zh-CN.json +64 -0
- package/package.json +41 -4
- package/zti18n-cli/bin/index.js +3 -0
- package/zti18n-cli/index.js +23 -0
- package/zti18n-cli/src/command/collect.js +353 -0
- package/zti18n-cli/src/command/convert.js +17 -0
- package/zti18n-cli/src/command/convert2.js +35 -0
- package/zti18n-cli/src/command/initFileConf.js +133 -0
- package/zti18n-cli/src/command/publish.js +24 -0
- package/zti18n-cli/src/conf/BaseConf.js +21 -0
- package/zti18n-cli/src/conf/FileConf.js +116 -0
- package/zti18n-cli/src/index.js +75 -0
- package/zti18n-cli/src/translate/google.js +87 -0
- package/zti18n-cli/src/utils/isChinese.js +3 -0
- package/zti18n-cli/src/utils/log.js +8 -0
- package/zti18n-cli/src/utils/mergeOptions.js +45 -0
- package/zti18n-cli/src/utils/reactOptions.js +73 -0
- package/zti18n-cli/src/utils/vueOptions.js +69 -0
- package/zti18n-core/index.js +1 -0
- package/zti18n-core/src/index.js +5 -0
- package/zti18n-core/src/plugin/reactIntlToReactIntlUniversal.js +224 -0
- package/zti18n-core/src/plugin/reactIntlUniversalToDi18n.js +64 -0
- package/zti18n-core/src/transform/defaultPkMap.js +79 -0
- package/zti18n-core/src/transform/transformHtml.js +271 -0
- package/zti18n-core/src/transform/transformJs.js +489 -0
- package/zti18n-core/src/transform/transformPug.js +272 -0
- package/zti18n-core/src/transform/transformReactIntlToReactIntlUniversal.js +96 -0
- package/zti18n-core/src/transform/transformReactIntlUniveralToDi18n.js +90 -0
- package/zti18n-core/src/transform/transformToDi18n.js +22 -0
- package/zti18n-core/src/transform/transformTs.js +41 -0
- package/zti18n-core/src/transform/transformVue.js +126 -0
- package/zti18n-core/src/transform/transformZeroToDi18n.js +105 -0
- package/zti18n-core/src/translate/google.js +6 -0
- package/zti18n-core/src/utils/constants.js +3 -0
- package/zti18n-core/src/utils/getIgnoreLines.js +14 -0
- package/zti18n-core/src/utils/isChinese.js +3 -0
- 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,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
|
+
};
|