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,133 @@
1
+ const glob = require('glob');
2
+ const fs = require('fs');
3
+ const path = require('path');
4
+ const inquirer = require('inquirer');
5
+ const prettier = require('prettier');
6
+ const FileConf = require('../conf/FileConf');
7
+ const reactOptions = require('../utils/reactOptions');
8
+ const vueOptions = require('../utils/vueOptions');
9
+ const log = require('../utils/log');
10
+
11
+ function getLocaleFiles({ path, exclude }) {
12
+ return glob.sync(`${path}/**/*.json`, {
13
+ ignore: (exclude || []).map((e) => `${path}/${e}`),
14
+ });
15
+ }
16
+
17
+ async function doInquire() {
18
+ // 1. whether overwrite?
19
+ let configExist = true;
20
+ try {
21
+ fs.accessSync('./zti18n.config.js');
22
+ } catch (e) {
23
+ configExist = false;
24
+ }
25
+
26
+ if (configExist) {
27
+ const ans = await inquirer.prompt([
28
+ {
29
+ name: 'overwrite',
30
+ type: 'confirm',
31
+ message: '配置文件 zti18n.config.js 已存在,是否覆盖?',
32
+ },
33
+ ]);
34
+
35
+ if (!ans.overwrite) process.exit(0);
36
+ }
37
+
38
+ // 2. first i18n?
39
+ let ans = await inquirer.prompt([
40
+ {
41
+ name: 'firstI18n',
42
+ type: 'confirm',
43
+ message: '是否初次国际化?',
44
+ },
45
+ {
46
+ name: 'localePath',
47
+ type: 'input',
48
+ message: '请输入现有国际化资源路径:',
49
+ when(answers) {
50
+ return !answers.firstI18n;
51
+ },
52
+ },
53
+ ]);
54
+
55
+ return ans;
56
+ }
57
+
58
+ module.exports = async function initFileConf(isVue) {
59
+ const answers = await doInquire();
60
+ const { localePath = 'locales', firstI18n } = answers;
61
+
62
+ const defaultOptions = isVue ? vueOptions : reactOptions;
63
+ const options = {
64
+ ...defaultOptions,
65
+ localeConf: { type: 'file', folder: localePath },
66
+ };
67
+
68
+ // 配置信息写入文件
69
+ fs.writeFileSync(
70
+ './zti18n.config.js',
71
+ prettier.format('module.exports = ' + JSON.stringify(options), {
72
+ parser: 'babel',
73
+ singleQuote: true,
74
+ trailingComma: 'es5',
75
+ }),
76
+ 'utf8'
77
+ );
78
+
79
+ let createTasks = [];
80
+ const confService = new FileConf(options.localeConf.folder);
81
+
82
+ if (!firstI18n) {
83
+ // 非首次国际化,本地代码中已有国际化资源
84
+ const locales = getLocaleFiles({ path: localePath });
85
+
86
+ // 读取国际化资源
87
+ const data = locales.map((element) => {
88
+ // TODO: 支持国际化资源为 js 文件的情况,目前只支持为 json 文件。
89
+ const json = fs.readFileSync(element, {
90
+ encoding: 'utf-8',
91
+ });
92
+
93
+ // 使用现有文件名为语言 key
94
+ const key = path.parse(element).name;
95
+
96
+ return {
97
+ key,
98
+ value: JSON.parse(json),
99
+ confName: key,
100
+ };
101
+ });
102
+
103
+ createTasks = data.map(({ confName, value, key }) => {
104
+ let commentValue = {};
105
+ if (key !== options.primaryLocale) {
106
+ commentValue = data.find((d) => d.key === options.primaryLocale).value;
107
+ }
108
+ return confService.createConf(confName, value, commentValue, key);
109
+ });
110
+ } else {
111
+ // 首次国际化,只需要创建配置
112
+ createTasks = options.supportedLocales.map((key) => {
113
+ const value = { TBD: 'TBD' }; // 创建配置时,必须要有一个 k/V
114
+ const confName = key; // 初始化时,先创建测试环境的配置
115
+ return confService.createConf(confName, value, {}, key);
116
+ });
117
+ }
118
+
119
+ const createTaskResults = await Promise.all(createTasks);
120
+ log.success('[done] conf created');
121
+ console.log(createTaskResults);
122
+
123
+ // 将已有国际化资源的配置发布
124
+ if (!firstI18n) {
125
+ const publishTasks = options.supportedLocales.map((key) => {
126
+ return confService.publishConf(`${key}-test`);
127
+ });
128
+
129
+ const publishTaskResults = await Promise.all(publishTasks);
130
+ log.success('[done] conf published');
131
+ console.log(publishTaskResults);
132
+ }
133
+ };
@@ -0,0 +1,24 @@
1
+ const path = require('path');
2
+ const mergeOptions = require('../utils/mergeOptions');
3
+ const log = require('../utils/log');
4
+
5
+ module.exports = async function publish(programOption, env = '') {
6
+ const options = mergeOptions(programOption, ['locales']);
7
+
8
+ let confService = null;
9
+ if (options.localeConf.type === 'file') {
10
+ const FileConf = require('../conf/FileConf');
11
+ confService = new FileConf(options.locales);
12
+ } else {
13
+ const Conf = require(path.join(process.cwd(), options.localeConf.path));
14
+ confService = new Conf(options.localeConf);
15
+ }
16
+
17
+ const publishTasks = options.supportedLocales.map((key) => {
18
+ return confService.publishConf(`${key}-${env}`);
19
+ });
20
+
21
+ const publishTaskResults = await Promise.all(publishTasks);
22
+ log.success('[done] conf published');
23
+ console.log(publishTaskResults);
24
+ };
@@ -0,0 +1,21 @@
1
+ module.exports = class BaseConf {
2
+ createService() {
3
+ return Promise.resolve(true);
4
+ }
5
+
6
+ createConf() {
7
+ throw new Error('`createConf` must be overrided');
8
+ }
9
+
10
+ updateConf() {
11
+ throw new Error('`updateConf` must be overrided');
12
+ }
13
+
14
+ getConf() {
15
+ throw new Error('`getConf` must be overrided');
16
+ }
17
+
18
+ publishConf() {
19
+ return Promise.resolve(true);
20
+ }
21
+ };
@@ -0,0 +1,116 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const BaseConf = require('./BaseConf');
4
+ const log = require('../utils/log');
5
+
6
+ const cwdPath = process.cwd();
7
+
8
+ module.exports = class FileConf extends BaseConf {
9
+ constructor(folder) {
10
+ super();
11
+ this.localesDir = folder;
12
+ }
13
+
14
+ /**
15
+ * 创建一个服务
16
+ */
17
+ createService() {
18
+ log.info('No need to create service in FileConf');
19
+ return super.createService();
20
+ }
21
+
22
+ /**
23
+ * 创建一个配置
24
+ * @param {string} confName 配置名称
25
+ * @param {object} values KV值
26
+ * @param {object} refValues 参数备注
27
+ * @param {string} key locales标识
28
+ */
29
+ createConf(confName, values, refValues, key) {
30
+ const folder = this.localesDir.startsWith('/')
31
+ ? this.localesDir
32
+ : path.join(cwdPath, this.localesDir);
33
+
34
+ try {
35
+ fs.accessSync(folder);
36
+ } catch (e) {
37
+ fs.mkdirSync(folder);
38
+ }
39
+
40
+ const configFilePath = path.join(folder, `${key}.json`);
41
+ return new Promise((resolve, reject) => {
42
+ fs.writeFile(configFilePath, JSON.stringify(values, null, 2), (err) => {
43
+ if (err) {
44
+ reject(err);
45
+ } else {
46
+ resolve(configFilePath);
47
+ }
48
+ });
49
+ });
50
+ }
51
+
52
+ /**
53
+ * 更新一个配置
54
+ * @param {string} confName 配置名称
55
+ * @param {object} values KV值
56
+ * @param {object} refValues 参数备注
57
+ * @param {string} key locales标识
58
+ */
59
+ updateConf(confName, values, refValues, key) {
60
+ const configFilePath = path.join(cwdPath, this.localesDir, `${key}.json`);
61
+ return new Promise((resolve) => {
62
+ fs.writeFile(configFilePath, JSON.stringify(values, null, 2), (err) => {
63
+ if (err) {
64
+ resolve({
65
+ code: -1,
66
+ message: err.message,
67
+ });
68
+ } else {
69
+ resolve({
70
+ code: 0,
71
+ data: configFilePath,
72
+ });
73
+ }
74
+ });
75
+ });
76
+ }
77
+
78
+ /**
79
+ * 获取配置值
80
+ * @param {string} _ 配置名称
81
+ * @param {string} key key
82
+ */
83
+ getConf(confName, key) {
84
+ const configFilePath = path.join(cwdPath, this.localesDir, `${key}.json`);
85
+ return new Promise((resolve, reject) => {
86
+ if (fs.existsSync(configFilePath)) {
87
+ let data = {};
88
+ try {
89
+ const content = fs.readFileSync(configFilePath);
90
+ data = content.length > 0 ? JSON.parse(content) : {};
91
+ resolve({
92
+ code: 0,
93
+ data: Object.keys(data).map((k) => ({
94
+ key: k,
95
+ value: data[k],
96
+ })),
97
+ });
98
+ } catch (err) {
99
+ reject(
100
+ new Error(`请检查 ${configFilePath} 资源文件 JSON 格式是否正确`)
101
+ );
102
+ }
103
+ } else {
104
+ reject(new Error(`资源文件 ${configFilePath} 不存在`));
105
+ }
106
+ });
107
+ }
108
+
109
+ /**
110
+ * 发布指定的配置
111
+ */
112
+ publishConf() {
113
+ log.info('No need to publish in FileConf');
114
+ return super.publishConf();
115
+ }
116
+ };
@@ -0,0 +1,75 @@
1
+ const program = require('commander');
2
+ const convert = require('./command/convert');
3
+ const convert2 = require('./command/convert2');
4
+ const collect = require('./command/collect');
5
+ const publish = require('./command/publish');
6
+ const option = require('../../package.json');
7
+
8
+ module.exports = program;
9
+
10
+ program
11
+ .version(option.version)
12
+ .option(
13
+ '-c, --config <path>',
14
+ 'set config path. defaults to ./i18n.config.js'
15
+ );
16
+
17
+ program
18
+ .command('sync')
19
+ .alias('s')
20
+ .description('pick chinese words and snyc with locale conf')
21
+ .option('-p, --publish', 'to publish the synced conf or not, defautl : false')
22
+ .action(function (options) {
23
+ collect(program.opts(), !!options.publish);
24
+ })
25
+ .on('--help', function () {
26
+ console.log(' Examples:');
27
+ console.log();
28
+ console.log(' sync without publish:');
29
+ console.log(' $ zti18n sync -c ./config/prod.config.js');
30
+ console.log(' sync and then publish:');
31
+ console.log(' $ zti18n sync -p -c ./config/prod.config.js');
32
+ console.log();
33
+ });
34
+
35
+ program
36
+ .command('publish')
37
+ .description('publish locale confs')
38
+ .action(function () {
39
+ publish(program.opts());
40
+ })
41
+ .on('--help', function () {
42
+ console.log(' Examples:');
43
+ console.log();
44
+ console.log(' $ zti18n publish');
45
+ console.log();
46
+ });
47
+
48
+ // XXX: 不表意,需要改一下
49
+ program
50
+ .command('convert')
51
+ .alias('c')
52
+ .description('convert to react-intl-universal')
53
+ .action(function () {
54
+ convert(program.opts());
55
+ })
56
+ .on('--help', function () {
57
+ console.log(' Examples:');
58
+ console.log();
59
+ console.log(' $ zti18n convert -c ./config/prod.config.js');
60
+ console.log();
61
+ });
62
+
63
+ program
64
+ .command('convert2')
65
+ .alias('c2')
66
+ .description('convert to intl.t')
67
+ .action(function () {
68
+ convert2(program.opts());
69
+ })
70
+ .on('--help', function () {
71
+ console.log(' Examples:');
72
+ console.log();
73
+ console.log(' $ zti18n convert2 -c ./config/prod.config.js');
74
+ console.log();
75
+ });
@@ -0,0 +1,87 @@
1
+ const crypto = require('crypto');
2
+ const https = require('https');
3
+ const querystring = require('querystring');
4
+
5
+ function MD5(string) {
6
+ return crypto.createHash('md5').update(string).digest('hex');
7
+ }
8
+
9
+ function generateRandomString(length) {
10
+ // 定义包含所有可能字符的字符串
11
+ const characters =
12
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
13
+ let result = '';
14
+ const charactersLength = characters.length;
15
+ for (let i = 0; i < length; i++) {
16
+ // 生成一个0到字符集长度之间的随机索引
17
+ const randomIndex = Math.floor(Math.random() * charactersLength);
18
+ // 从字符集中取出对应索引的字符添加到结果字符串中
19
+ result += characters.charAt(randomIndex);
20
+ }
21
+ return result;
22
+ }
23
+
24
+ function translateByGoogle(text, targetLang, appid, privatekey) {
25
+ const data = {
26
+ appid,
27
+ nonce_str: generateRandomString(10),
28
+ from: 'zh',
29
+ to: targetLang,
30
+ text: text,
31
+ };
32
+ const translateData = {
33
+ ...data,
34
+ privatekey,
35
+ };
36
+ const stringA = Object.keys(translateData)
37
+ .sort()
38
+ .map((key) => `${key}=${translateData[key]}`)
39
+ .join('&');
40
+ const token = MD5(stringA).toUpperCase();
41
+
42
+ const agent = new https.Agent({
43
+ rejectUnauthorized: false,
44
+ });
45
+ const postData = querystring.stringify({
46
+ ...data,
47
+ token,
48
+ });
49
+ return new Promise((resolve, reject) => {
50
+ const req = https.request(
51
+ {
52
+ hostname: 'aify.zmd.com.cn',
53
+ path: '/TranslateApi/api/transText',
54
+ method: 'POST',
55
+ agent,
56
+ headers: {
57
+ 'Content-Type': 'application/x-www-form-urlencoded',
58
+ 'Content-Length': Buffer.byteLength(postData),
59
+ },
60
+ },
61
+ (res) => {
62
+ let data = [];
63
+
64
+ res.on('data', (chunk) => {
65
+ data.push(chunk);
66
+ });
67
+
68
+ res.on('end', () => {
69
+ const buffer = Buffer.concat(data);
70
+ const json = JSON.parse(buffer.toString());
71
+ resolve(json.data);
72
+ });
73
+ }
74
+ );
75
+
76
+ req.on('error', (error) => {
77
+ console.error(error);
78
+ reject(error);
79
+ });
80
+ // 写入请求数据
81
+ req.write(postData);
82
+ req.end();
83
+ });
84
+ }
85
+ // translateByGoogle('你好', 'en');
86
+
87
+ module.exports = translateByGoogle;
@@ -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
+ };
@@ -0,0 +1,45 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const defaultOptions = require('./reactOptions');
4
+ const log = require('./log');
5
+
6
+ const cwdPath = process.cwd();
7
+
8
+ module.exports = function mergeOptions(programOption, programParameter) {
9
+ const options = defaultOptions;
10
+ const configFileName = programOption.config || 'zti18n.config.js';
11
+
12
+ const configFilePath = path.join(cwdPath, configFileName);
13
+
14
+ // 读取 zti18n-ast.config.js 中设置的参数,然后并入 options
15
+ if (fs.existsSync(configFilePath)) {
16
+ let configurationFile = {};
17
+ try {
18
+ configurationFile = require(configFilePath);
19
+ } catch (err) {
20
+ log.error(`请检查 ${configFileName} 配置文件是否正确\n`);
21
+ }
22
+
23
+ Object.assign(options, configurationFile);
24
+ } else {
25
+ log.error(`配置文件 ${configFileName} 不存在\n`);
26
+ }
27
+
28
+ if (!Object.keys(programOption).length) {
29
+ return options;
30
+ }
31
+
32
+ // 处理命令行参数
33
+ programParameter.forEach((k) => {
34
+ const value = programOption[k];
35
+ if (value) {
36
+ if (k === 'exclude' && typeof value === 'string') {
37
+ options[k] = value.split(',');
38
+ } else {
39
+ options[k] = value;
40
+ }
41
+ }
42
+ });
43
+
44
+ return options;
45
+ };
@@ -0,0 +1,73 @@
1
+ // default options
2
+ module.exports = {
3
+ // source path, <string array>
4
+ // e.g. ['src']
5
+ entry: ['src'],
6
+
7
+ // exclude pattern, <string array>
8
+ // e.g. ['**/dist/**', '**/*.config.js', '**/*.data.js']
9
+ exclude: [],
10
+
11
+ // output path, <string array>
12
+ // e.g. ['dist']
13
+ output: ['src'], // default i18n in place
14
+
15
+ // auto translate flag, <boolean>
16
+ // e.g. true
17
+ disableAutoTranslate: true,
18
+
19
+ // only extract locales, not touch source code, <boolean>
20
+ // e.g. true
21
+ extractOnly: false,
22
+
23
+ // translator, <null | string>
24
+ // null: default google translator
25
+ // e.g. ../translate/google.js
26
+ translator: null,
27
+
28
+ // ignored components, <string array>
29
+ // e.g. ['EventTracker']
30
+ ignoreComponents: [],
31
+
32
+ // ignored methods, <string array>
33
+ // e.g. ['MirrorTrack']
34
+ ignoreMethods: [],
35
+
36
+ // XXX: json loose
37
+ // primaryRegx: /[\u4e00-\u9fa5]/,
38
+
39
+ // primary locale, <string>
40
+ // e.g. 'zh-CN'
41
+ primaryLocale: 'zh-CN',
42
+
43
+ // supported locales, <string array>
44
+ // e.g. ['zh-CN', 'en-US']
45
+ supportedLocales: ['zh-CN', 'en-US'],
46
+
47
+ // import codes, <string>
48
+ importCode: "import i18next from 'ztxkutils/dist/i18next';",
49
+
50
+ // i18n object, <string>
51
+ // e.g. 'intl'
52
+ i18nObject: 'i18next',
53
+
54
+ // i18n method, <string>
55
+ // e.g. 't'
56
+ i18nMethod: 't',
57
+
58
+ // prettier conf, <null | object>
59
+ // e.g. {}
60
+ prettier: {
61
+ singleQuote: true,
62
+ trailingComma: 'es5',
63
+ endOfLine: 'lf',
64
+ },
65
+
66
+ // i18n saving conf, <object>
67
+ // if localeConf.type !== 'file', localeConf.path is required
68
+ // e.g. { type: 'apollo', path: '../conf/ApolloConf.js', ... }
69
+ localeConf: {
70
+ type: 'file',
71
+ // others...
72
+ },
73
+ };
@@ -0,0 +1,69 @@
1
+ // default options
2
+ module.exports = {
3
+ // source path, <string array>
4
+ // e.g. ['src']
5
+ entry: ['src'],
6
+
7
+ // exclude pattern, <string array>
8
+ // e.g. ['**/dist/**', '**/*.config.js', '**/*.data.js']
9
+ exclude: [],
10
+
11
+ // output path, <string array>
12
+ // e.g. ['dist']
13
+ output: ['src'], // default i18n in place
14
+
15
+ // auto translate flag, <boolean>
16
+ // e.g. true
17
+ disableAutoTranslate: true,
18
+
19
+ // only extract locales, not touch source code, <boolean>
20
+ // e.g. true
21
+ extractOnly: false,
22
+
23
+ // translator, <null | string>
24
+ // null: default google translator
25
+ // e.g. ../translate/google.js
26
+ translator: null,
27
+
28
+ // ignored components, <string array>
29
+ // e.g. ['EventTracker']
30
+ ignoreComponents: [],
31
+
32
+ // ignored methods, <string array>
33
+ // e.g. ['MirrorTrack']
34
+ ignoreMethods: [],
35
+
36
+ // XXX: json loose
37
+ // primaryRegx: /[\u4e00-\u9fa5]/,
38
+
39
+ // primary locale, <string>
40
+ // e.g. 'zh-CN'
41
+ primaryLocale: 'zh-CN',
42
+
43
+ // supported locales, <string array>
44
+ // e.g. ['zh-CN', 'en-US']
45
+ supportedLocales: ['zh-CN', 'en-US'],
46
+
47
+ // import codes, <string>
48
+ importCode: "import { intl } from 'di18n-vue';",
49
+
50
+ // i18n object, <string>
51
+ // e.g. 'intl'
52
+ i18nObject: 'intl',
53
+
54
+ // i18n method, <string>
55
+ // e.g. '$t'
56
+ i18nMethod: '$t',
57
+
58
+ // prettier conf, <null | object>
59
+ // e.g. {}
60
+ prettier: null,
61
+
62
+ // i18n saving conf, <object>
63
+ // if localeConf.type !== 'file', localeConf.path is required
64
+ // e.g. { type: 'apollo', path: '../conf/ApolloConf.js', ... }
65
+ localeConf: {
66
+ type: 'file',
67
+ // others...
68
+ },
69
+ };
@@ -0,0 +1 @@
1
+ module.exports = require('./src');
@@ -0,0 +1,5 @@
1
+ exports.transformReactIntlToReactIntlUniversal = require('./transform/transformReactIntlToReactIntlUniversal');
2
+ exports.transformReactIntlUniveralToDi18n = require('./transform/transformReactIntlUniveralToDi18n');
3
+ exports.transformZeroToDi18n = require('./transform/transformZeroToDi18n');
4
+ exports.transformToDi18n = require('./transform/transformToDi18n');
5
+ exports.googleTranslate = require('./translate/google');