@modern-js/plugin-i18n 1.2.1 → 1.2.4
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/.eslintrc.js +8 -0
- package/CHANGELOG.md +33 -0
- package/dist/js/modern/index.js +2 -3
- package/dist/js/modern/utils/index.js +3 -4
- package/dist/js/node/index.js +2 -4
- package/dist/js/node/utils/index.js +3 -7
- package/dist/js/treeshaking/index.js +2 -4
- package/dist/js/treeshaking/utils/index.js +3 -4
- package/jest.config.js +0 -1
- package/package.json +3 -6
- package/tests/.eslintrc.js +0 -6
- package/tests/index.test.ts +0 -83
- package/tests/tsconfig.json +0 -10
package/.eslintrc.js
ADDED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# @modern-js/plugin-i18n
|
|
2
2
|
|
|
3
|
+
## 1.2.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 6cffe99d: chore:
|
|
8
|
+
remove react eslint rules for `modern-js` rule set.
|
|
9
|
+
add .eslintrc for each package to speed up linting
|
|
10
|
+
- 04ae5262: chore: bump @modern-js/utils to v1.4.1 in dependencies
|
|
11
|
+
- 60f7d8bf: feat: add tests dir to npmignore
|
|
12
|
+
- Updated dependencies [b8599d09]
|
|
13
|
+
- Updated dependencies [60f7d8bf]
|
|
14
|
+
- Updated dependencies [3bf4f8b0]
|
|
15
|
+
- @modern-js/utils@1.5.0
|
|
16
|
+
|
|
17
|
+
## 1.2.3
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- 17d0cc46: feat: prebundle lodash to @modern-js/utils/lodash
|
|
22
|
+
- Updated dependencies [77ff9754]
|
|
23
|
+
- Updated dependencies [d2d1d6b2]
|
|
24
|
+
- Updated dependencies [07a4887e]
|
|
25
|
+
- Updated dependencies [ea2ae711]
|
|
26
|
+
- Updated dependencies [17d0cc46]
|
|
27
|
+
- Updated dependencies [d2d1d6b2]
|
|
28
|
+
- @modern-js/utils@1.4.0
|
|
29
|
+
|
|
30
|
+
## 1.2.2
|
|
31
|
+
|
|
32
|
+
### Patch Changes
|
|
33
|
+
|
|
34
|
+
- 1b22634e: fix: plugin-i18n exports
|
|
35
|
+
|
|
3
36
|
## 1.2.1
|
|
4
37
|
|
|
5
38
|
### Patch Changes
|
package/dist/js/modern/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { get } from '@modern-js/utils/lodash';
|
|
2
2
|
import { getObjKeyMap } from "./utils";
|
|
3
3
|
|
|
4
4
|
class I18n {
|
|
@@ -26,8 +26,7 @@ class I18n {
|
|
|
26
26
|
return fallbackText || key;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
const message =
|
|
30
|
-
|
|
29
|
+
const message = get(model, key);
|
|
31
30
|
const value = message || fallbackText || key;
|
|
32
31
|
|
|
33
32
|
if (typeof value === 'string') {
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import _isObject from "lodash/isObject";
|
|
1
|
+
import { isObject, isString } from '@modern-js/utils/lodash';
|
|
3
2
|
export function getObjKeyMap(obj, prefix = '') {
|
|
4
3
|
const result = {};
|
|
5
4
|
Object.keys(obj).forEach(key => {
|
|
6
|
-
if (
|
|
5
|
+
if (isString(obj[key])) {
|
|
7
6
|
result[key] = prefix ? `${prefix}.${key}` : key;
|
|
8
|
-
} else if (
|
|
7
|
+
} else if (isObject(obj[key])) {
|
|
9
8
|
result[key] = getObjKeyMap(obj[key], prefix ? `${prefix}.${key}` : key);
|
|
10
9
|
}
|
|
11
10
|
});
|
package/dist/js/node/index.js
CHANGED
|
@@ -5,12 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.I18n = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _lodash = require("@modern-js/utils/lodash");
|
|
9
9
|
|
|
10
10
|
var _utils = require("./utils");
|
|
11
11
|
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
12
|
class I18n {
|
|
15
13
|
constructor() {
|
|
16
14
|
this.language = 'en';
|
|
@@ -36,7 +34,7 @@ class I18n {
|
|
|
36
34
|
return fallbackText || key;
|
|
37
35
|
}
|
|
38
36
|
|
|
39
|
-
const message = (0,
|
|
37
|
+
const message = (0, _lodash.get)(model, key);
|
|
40
38
|
const value = message || fallbackText || key;
|
|
41
39
|
|
|
42
40
|
if (typeof value === 'string') {
|
|
@@ -5,18 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getObjKeyMap = getObjKeyMap;
|
|
7
7
|
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var _isObject2 = _interopRequireDefault(require("lodash/isObject"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
+
var _lodash = require("@modern-js/utils/lodash");
|
|
13
9
|
|
|
14
10
|
function getObjKeyMap(obj, prefix = '') {
|
|
15
11
|
const result = {};
|
|
16
12
|
Object.keys(obj).forEach(key => {
|
|
17
|
-
if ((0,
|
|
13
|
+
if ((0, _lodash.isString)(obj[key])) {
|
|
18
14
|
result[key] = prefix ? `${prefix}.${key}` : key;
|
|
19
|
-
} else if ((0,
|
|
15
|
+
} else if ((0, _lodash.isObject)(obj[key])) {
|
|
20
16
|
result[key] = getObjKeyMap(obj[key], prefix ? `${prefix}.${key}` : key);
|
|
21
17
|
}
|
|
22
18
|
});
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import _get from "lodash/get";
|
|
2
|
-
|
|
3
1
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
4
2
|
|
|
5
3
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
6
4
|
|
|
7
5
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
8
6
|
|
|
7
|
+
import { get } from '@modern-js/utils/lodash';
|
|
9
8
|
import { getObjKeyMap } from "./utils";
|
|
10
9
|
|
|
11
10
|
var I18n = /*#__PURE__*/function () {
|
|
@@ -42,8 +41,7 @@ var I18n = /*#__PURE__*/function () {
|
|
|
42
41
|
return fallbackText || key;
|
|
43
42
|
}
|
|
44
43
|
|
|
45
|
-
var message =
|
|
46
|
-
|
|
44
|
+
var message = get(model, key);
|
|
47
45
|
var value = message || fallbackText || key;
|
|
48
46
|
|
|
49
47
|
if (typeof value === 'string') {
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import _isObject from "lodash/isObject";
|
|
1
|
+
import { isObject, isString } from '@modern-js/utils/lodash';
|
|
3
2
|
export function getObjKeyMap(obj) {
|
|
4
3
|
var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
5
4
|
var result = {};
|
|
6
5
|
Object.keys(obj).forEach(function (key) {
|
|
7
|
-
if (
|
|
6
|
+
if (isString(obj[key])) {
|
|
8
7
|
result[key] = prefix ? "".concat(prefix, ".").concat(key) : key;
|
|
9
|
-
} else if (
|
|
8
|
+
} else if (isObject(obj[key])) {
|
|
10
9
|
result[key] = getObjKeyMap(obj[key], prefix ? "".concat(prefix, ".").concat(key) : key);
|
|
11
10
|
}
|
|
12
11
|
});
|
package/jest.config.js
CHANGED
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"modern",
|
|
12
12
|
"modern.js"
|
|
13
13
|
],
|
|
14
|
-
"version": "1.2.
|
|
14
|
+
"version": "1.2.4",
|
|
15
15
|
"jsnext:source": "./src/index.ts",
|
|
16
16
|
"types": "./dist/types/index.d.ts",
|
|
17
17
|
"main": "./dist/js/node/index.js",
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
"exports": {
|
|
21
21
|
".": {
|
|
22
22
|
"node": {
|
|
23
|
-
"jsnext:source": "./src/index.ts",
|
|
24
23
|
"import": "./dist/js/modern/index.js",
|
|
25
24
|
"require": "./dist/js/node/index.js"
|
|
26
25
|
},
|
|
@@ -29,11 +28,10 @@
|
|
|
29
28
|
},
|
|
30
29
|
"dependencies": {
|
|
31
30
|
"@babel/runtime": "^7",
|
|
32
|
-
"
|
|
31
|
+
"@modern-js/utils": "^1.5.0"
|
|
33
32
|
},
|
|
34
33
|
"devDependencies": {
|
|
35
34
|
"@types/jest": "^26",
|
|
36
|
-
"@types/lodash": "^4.14.126",
|
|
37
35
|
"@types/node": "^14",
|
|
38
36
|
"typescript": "^4",
|
|
39
37
|
"@scripts/build": "0.0.0",
|
|
@@ -44,8 +42,7 @@
|
|
|
44
42
|
"modernConfig": {},
|
|
45
43
|
"publishConfig": {
|
|
46
44
|
"registry": "https://registry.npmjs.org/",
|
|
47
|
-
"access": "public"
|
|
48
|
-
"types": "./dist/types/index.d.ts"
|
|
45
|
+
"access": "public"
|
|
49
46
|
},
|
|
50
47
|
"scripts": {
|
|
51
48
|
"new": "modern new",
|
package/tests/.eslintrc.js
DELETED
package/tests/index.test.ts
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { I18n } from '../src';
|
|
2
|
-
|
|
3
|
-
describe('i18n test', () => {
|
|
4
|
-
test('Init Default language', () => {
|
|
5
|
-
const i18n = new I18n();
|
|
6
|
-
const EN_LANGUAGE = {
|
|
7
|
-
lib_name: 'Library',
|
|
8
|
-
test_name: 'test {name}',
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const ZH_LANGUAGE = {
|
|
12
|
-
lib_name: '工具库',
|
|
13
|
-
test_name: '测试 {name}',
|
|
14
|
-
};
|
|
15
|
-
const languageKeys = i18n.init('en', { en: EN_LANGUAGE, zh: ZH_LANGUAGE });
|
|
16
|
-
expect(i18n.t(languageKeys.lib_name)).toBe(EN_LANGUAGE.lib_name);
|
|
17
|
-
expect(i18n.t(languageKeys.test_name, { name: 'library' })).toBe(
|
|
18
|
-
'test library',
|
|
19
|
-
);
|
|
20
|
-
});
|
|
21
|
-
test('Change language', () => {
|
|
22
|
-
const i18n = new I18n();
|
|
23
|
-
const EN_LANGUAGE = {
|
|
24
|
-
lib_name: 'Library',
|
|
25
|
-
test_name: 'test {name}',
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
const ZH_LANGUAGE = {
|
|
29
|
-
lib_name: '工具库',
|
|
30
|
-
test_name: '测试 {name}',
|
|
31
|
-
};
|
|
32
|
-
const languageKeys = i18n.init('en', { en: EN_LANGUAGE, zh: ZH_LANGUAGE });
|
|
33
|
-
i18n.changeLanguage({
|
|
34
|
-
locale: 'zh',
|
|
35
|
-
});
|
|
36
|
-
expect(i18n.t(languageKeys.lib_name)).toBe(ZH_LANGUAGE.lib_name);
|
|
37
|
-
expect(i18n.t(languageKeys.test_name, { name: 'library' })).toBe(
|
|
38
|
-
'测试 library',
|
|
39
|
-
);
|
|
40
|
-
});
|
|
41
|
-
test('Use object in language resource', () => {
|
|
42
|
-
const i18n = new I18n();
|
|
43
|
-
const EN_LANGUAGE = {
|
|
44
|
-
name: {
|
|
45
|
-
lib_name: 'Library',
|
|
46
|
-
test_name: 'test {name}',
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
const ZH_LANGUAGE = {
|
|
51
|
-
name: {
|
|
52
|
-
lib_name: '工具库',
|
|
53
|
-
test_name: '测试 {name}',
|
|
54
|
-
},
|
|
55
|
-
};
|
|
56
|
-
const languageKeys = i18n.init('en', { en: EN_LANGUAGE, zh: ZH_LANGUAGE });
|
|
57
|
-
i18n.changeLanguage({
|
|
58
|
-
locale: 'zh',
|
|
59
|
-
});
|
|
60
|
-
expect(i18n.t(languageKeys.name.lib_name)).toBe(ZH_LANGUAGE.name.lib_name);
|
|
61
|
-
expect(i18n.t(languageKeys.name.test_name, { name: 'library' })).toBe(
|
|
62
|
-
'测试 library',
|
|
63
|
-
);
|
|
64
|
-
});
|
|
65
|
-
test('Get language real time', () => {
|
|
66
|
-
const i18n = new I18n();
|
|
67
|
-
const EN_LANGUAGE = {
|
|
68
|
-
name: {
|
|
69
|
-
lib_name: 'Library',
|
|
70
|
-
test_name: 'test {name}',
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
const ZH_LANGUAGE = {
|
|
75
|
-
name: {
|
|
76
|
-
lib_name: '工具库',
|
|
77
|
-
test_name: '测试 {name}',
|
|
78
|
-
},
|
|
79
|
-
};
|
|
80
|
-
const keys = i18n.init('en', { en: EN_LANGUAGE, zh: ZH_LANGUAGE });
|
|
81
|
-
expect(i18n.lang('zh').t(keys.name.lib_name)).toBe('工具库');
|
|
82
|
-
});
|
|
83
|
-
});
|