@modern-js/plugin-i18n 2.15.0 → 2.17.0
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/CHANGELOG.md +19 -0
- package/dist/cjs/index.js +29 -37
- package/dist/cjs/languageDetector.js +13 -26
- package/dist/cjs/utils/index.js +11 -32
- package/dist/esm/index.js +102 -99
- package/dist/esm/languageDetector.js +51 -48
- package/dist/esm/utils/index.js +11 -12
- package/dist/esm-node/index.js +19 -11
- package/dist/esm-node/languageDetector.js +4 -7
- package/dist/esm-node/utils/index.js +2 -8
- package/package.json +9 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @modern-js/plugin-i18n
|
|
2
2
|
|
|
3
|
+
## 2.17.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- @modern-js/utils@2.17.0
|
|
8
|
+
|
|
9
|
+
## 2.16.0
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 4e876ab: chore: package.json include the monorepo-relative directory
|
|
14
|
+
|
|
15
|
+
chore: 在 package.json 中声明 monorepo 的子路径
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [5954330]
|
|
18
|
+
- Updated dependencies [7596520]
|
|
19
|
+
- Updated dependencies [4e876ab]
|
|
20
|
+
- @modern-js/utils@2.16.0
|
|
21
|
+
|
|
3
22
|
## 2.15.0
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,37 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var src_exports = {};
|
|
19
|
-
__export(src_exports, {
|
|
20
|
-
I18n: () => I18n
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
21
4
|
});
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
5
|
+
Object.defineProperty(exports, "I18n", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: () => I18n
|
|
8
|
+
});
|
|
9
|
+
const _lodash = require("@modern-js/utils/lodash");
|
|
10
|
+
const _utils = require("./utils");
|
|
11
|
+
function _define_property(obj, key, value) {
|
|
12
|
+
if (key in obj) {
|
|
13
|
+
Object.defineProperty(obj, key, {
|
|
14
|
+
value,
|
|
15
|
+
enumerable: true,
|
|
16
|
+
configurable: true,
|
|
17
|
+
writable: true
|
|
18
|
+
});
|
|
19
|
+
} else {
|
|
20
|
+
obj[key] = value;
|
|
29
21
|
}
|
|
22
|
+
return obj;
|
|
23
|
+
}
|
|
24
|
+
class I18n {
|
|
30
25
|
format(msg, vars) {
|
|
31
|
-
return msg.replace(
|
|
32
|
-
/\{(\w+)\}/g,
|
|
33
|
-
(_match, capture) => Object.prototype.hasOwnProperty.call(vars, capture) ? vars[capture] : capture
|
|
34
|
-
);
|
|
26
|
+
return msg.replace(/\{(\w+)\}/g, (_match, capture) => Object.prototype.hasOwnProperty.call(vars, capture) ? vars[capture] : capture);
|
|
35
27
|
}
|
|
36
28
|
getMessage(lang, key, vars, fallbackText) {
|
|
37
29
|
const languages = Object.keys(this.languageMap);
|
|
@@ -43,7 +35,7 @@ class I18n {
|
|
|
43
35
|
if (!model) {
|
|
44
36
|
return fallbackText || key;
|
|
45
37
|
}
|
|
46
|
-
const message = (0,
|
|
38
|
+
const message = (0, _lodash.get)(model, key);
|
|
47
39
|
const value = message || fallbackText || key;
|
|
48
40
|
if (typeof value === "string") {
|
|
49
41
|
return this.format(value, vars || {});
|
|
@@ -55,7 +47,7 @@ class I18n {
|
|
|
55
47
|
if (languageMap) {
|
|
56
48
|
this.languageMap = languageMap;
|
|
57
49
|
}
|
|
58
|
-
return (0,
|
|
50
|
+
return (0, _utils.getObjKeyMap)(this.languageMap[this.language]);
|
|
59
51
|
}
|
|
60
52
|
changeLanguage(config) {
|
|
61
53
|
this.language = config.locale || "en";
|
|
@@ -68,8 +60,8 @@ class I18n {
|
|
|
68
60
|
t: (key, vars, fallbackText) => this.getMessage(lang, key, vars, fallbackText)
|
|
69
61
|
};
|
|
70
62
|
}
|
|
63
|
+
constructor() {
|
|
64
|
+
_define_property(this, "language", "en");
|
|
65
|
+
_define_property(this, "languageMap", {});
|
|
66
|
+
}
|
|
71
67
|
}
|
|
72
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
73
|
-
0 && (module.exports = {
|
|
74
|
-
I18n
|
|
75
|
-
});
|
|
@@ -1,26 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
6
|
for (var name in all)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var languageDetector_exports = {};
|
|
19
|
-
__export(languageDetector_exports, {
|
|
7
|
+
Object.defineProperty(target, name, {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: all[name]
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
_export(exports, {
|
|
20
13
|
I18CLILanguageDetector: () => I18CLILanguageDetector,
|
|
21
14
|
getLocaleLanguage: () => getLocaleLanguage
|
|
22
15
|
});
|
|
23
|
-
module.exports = __toCommonJS(languageDetector_exports);
|
|
24
16
|
class I18CLILanguageDetector {
|
|
25
17
|
formatShellLocale(rawLC) {
|
|
26
18
|
if (!rawLC) {
|
|
@@ -34,8 +26,8 @@ class I18CLILanguageDetector {
|
|
|
34
26
|
return LC;
|
|
35
27
|
}
|
|
36
28
|
detect() {
|
|
37
|
-
var
|
|
38
|
-
const shellLocale = (
|
|
29
|
+
var _process_env_LC_ALL, _ref, _ref1, _ref2;
|
|
30
|
+
const shellLocale = (_ref2 = (_ref1 = (_ref = (_process_env_LC_ALL = process.env.LC_ALL) !== null && _process_env_LC_ALL !== void 0 ? _process_env_LC_ALL : process.env.LC_MESSAGES) !== null && _ref !== void 0 ? _ref : process.env.LANG) !== null && _ref1 !== void 0 ? _ref1 : process.env.LANGUAGE) !== null && _ref2 !== void 0 ? _ref2 : Intl.DateTimeFormat().resolvedOptions().locale;
|
|
39
31
|
return this.formatShellLocale(shellLocale);
|
|
40
32
|
}
|
|
41
33
|
}
|
|
@@ -43,8 +35,3 @@ function getLocaleLanguage() {
|
|
|
43
35
|
const detector = new I18CLILanguageDetector();
|
|
44
36
|
return detector.detect();
|
|
45
37
|
}
|
|
46
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
47
|
-
0 && (module.exports = {
|
|
48
|
-
I18CLILanguageDetector,
|
|
49
|
-
getLocaleLanguage
|
|
50
|
-
});
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -1,41 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var utils_exports = {};
|
|
19
|
-
__export(utils_exports, {
|
|
20
|
-
getObjKeyMap: () => getObjKeyMap
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
21
4
|
});
|
|
22
|
-
|
|
23
|
-
|
|
5
|
+
Object.defineProperty(exports, "getObjKeyMap", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: () => getObjKeyMap
|
|
8
|
+
});
|
|
9
|
+
const _lodash = require("@modern-js/utils/lodash");
|
|
24
10
|
function getObjKeyMap(obj, prefix = "") {
|
|
25
11
|
const result = {};
|
|
26
12
|
Object.keys(obj).forEach((key) => {
|
|
27
|
-
if ((0,
|
|
13
|
+
if ((0, _lodash.isString)(obj[key])) {
|
|
28
14
|
result[key] = prefix ? `${prefix}.${key}` : key;
|
|
29
|
-
} else if ((0,
|
|
30
|
-
result[key] = getObjKeyMap(
|
|
31
|
-
obj[key],
|
|
32
|
-
prefix ? `${prefix}.${key}` : key
|
|
33
|
-
);
|
|
15
|
+
} else if ((0, _lodash.isObject)(obj[key])) {
|
|
16
|
+
result[key] = getObjKeyMap(obj[key], prefix ? `${prefix}.${key}` : key);
|
|
34
17
|
}
|
|
35
18
|
});
|
|
36
19
|
return result;
|
|
37
20
|
}
|
|
38
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
39
|
-
0 && (module.exports = {
|
|
40
|
-
getObjKeyMap
|
|
41
|
-
});
|
package/dist/esm/index.js
CHANGED
|
@@ -1,109 +1,112 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
function _class_call_check(instance, Constructor) {
|
|
2
|
+
if (!(instance instanceof Constructor)) {
|
|
3
|
+
throw new TypeError("Cannot call a class as a function");
|
|
4
|
+
}
|
|
5
5
|
}
|
|
6
6
|
function _defineProperties(target, props) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
for (var i = 0; i < props.length; i++) {
|
|
8
|
+
var descriptor = props[i];
|
|
9
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
10
|
+
descriptor.configurable = true;
|
|
11
|
+
if ("value" in descriptor)
|
|
12
|
+
descriptor.writable = true;
|
|
13
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
14
|
+
}
|
|
14
15
|
}
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
17
|
+
if (protoProps)
|
|
18
|
+
_defineProperties(Constructor.prototype, protoProps);
|
|
19
|
+
if (staticProps)
|
|
20
|
+
_defineProperties(Constructor, staticProps);
|
|
21
|
+
return Constructor;
|
|
19
22
|
}
|
|
20
|
-
function
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
function _define_property(obj, key, value) {
|
|
24
|
+
if (key in obj) {
|
|
25
|
+
Object.defineProperty(obj, key, {
|
|
26
|
+
value,
|
|
27
|
+
enumerable: true,
|
|
28
|
+
configurable: true,
|
|
29
|
+
writable: true
|
|
30
|
+
});
|
|
31
|
+
} else {
|
|
32
|
+
obj[key] = value;
|
|
33
|
+
}
|
|
34
|
+
return obj;
|
|
32
35
|
}
|
|
33
36
|
import { get } from "@modern-js/utils/lodash";
|
|
34
37
|
import { getObjKeyMap } from "./utils";
|
|
35
|
-
var I18n =
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
throw new Error("key is not a string");
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
key: "init",
|
|
75
|
-
value: function init(language, languageMap) {
|
|
76
|
-
this.language = language || "en";
|
|
77
|
-
if (languageMap) {
|
|
78
|
-
this.languageMap = languageMap;
|
|
79
|
-
}
|
|
80
|
-
return getObjKeyMap(this.languageMap[this.language]);
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
key: "changeLanguage",
|
|
85
|
-
value: function changeLanguage(config) {
|
|
86
|
-
this.language = config.locale || "en";
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
key: "t",
|
|
91
|
-
value: function t(key, vars, fallbackText) {
|
|
92
|
-
return this.getMessage(this.language, key, vars, fallbackText);
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
key: "lang",
|
|
97
|
-
value: function lang(lang) {
|
|
98
|
-
var _this = this;
|
|
99
|
-
return {
|
|
100
|
-
t: function(key, vars, fallbackText) {
|
|
101
|
-
return _this.getMessage(lang, key, vars, fallbackText);
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
}
|
|
38
|
+
var I18n = /* @__PURE__ */ function() {
|
|
39
|
+
"use strict";
|
|
40
|
+
function I18n2() {
|
|
41
|
+
_class_call_check(this, I18n2);
|
|
42
|
+
_define_property(this, "language", "en");
|
|
43
|
+
_define_property(this, "languageMap", {});
|
|
44
|
+
}
|
|
45
|
+
_create_class(I18n2, [
|
|
46
|
+
{
|
|
47
|
+
key: "format",
|
|
48
|
+
value: function format(msg, vars) {
|
|
49
|
+
return msg.replace(/\{(\w+)\}/g, function(_match, capture) {
|
|
50
|
+
return Object.prototype.hasOwnProperty.call(vars, capture) ? vars[capture] : capture;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
key: "getMessage",
|
|
56
|
+
value: function getMessage(lang, key, vars, fallbackText) {
|
|
57
|
+
var languages = Object.keys(this.languageMap);
|
|
58
|
+
var resultLang = languages.find(function(l) {
|
|
59
|
+
return l === lang;
|
|
60
|
+
});
|
|
61
|
+
if (!resultLang && languages.length === 0) {
|
|
62
|
+
return fallbackText || key;
|
|
63
|
+
}
|
|
64
|
+
var model = this.languageMap[resultLang || "en"];
|
|
65
|
+
if (!model) {
|
|
66
|
+
return fallbackText || key;
|
|
67
|
+
}
|
|
68
|
+
var message = get(model, key);
|
|
69
|
+
var value = message || fallbackText || key;
|
|
70
|
+
if (typeof value === "string") {
|
|
71
|
+
return this.format(value, vars || {});
|
|
105
72
|
}
|
|
106
|
-
|
|
107
|
-
|
|
73
|
+
throw new Error("key is not a string");
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
key: "init",
|
|
78
|
+
value: function init(language, languageMap) {
|
|
79
|
+
this.language = language || "en";
|
|
80
|
+
if (languageMap) {
|
|
81
|
+
this.languageMap = languageMap;
|
|
82
|
+
}
|
|
83
|
+
return getObjKeyMap(this.languageMap[this.language]);
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
key: "changeLanguage",
|
|
88
|
+
value: function changeLanguage(config) {
|
|
89
|
+
this.language = config.locale || "en";
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
key: "t",
|
|
94
|
+
value: function t(key, vars, fallbackText) {
|
|
95
|
+
return this.getMessage(this.language, key, vars, fallbackText);
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
key: "lang",
|
|
100
|
+
value: function lang(lang) {
|
|
101
|
+
var _this = this;
|
|
102
|
+
return {
|
|
103
|
+
t: function(key, vars, fallbackText) {
|
|
104
|
+
return _this.getMessage(lang, key, vars, fallbackText);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
]);
|
|
110
|
+
return I18n2;
|
|
108
111
|
}();
|
|
109
112
|
export { I18n };
|
|
@@ -1,55 +1,58 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
function _class_call_check(instance, Constructor) {
|
|
2
|
+
if (!(instance instanceof Constructor)) {
|
|
3
|
+
throw new TypeError("Cannot call a class as a function");
|
|
4
|
+
}
|
|
5
5
|
}
|
|
6
6
|
function _defineProperties(target, props) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
for (var i = 0; i < props.length; i++) {
|
|
8
|
+
var descriptor = props[i];
|
|
9
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
10
|
+
descriptor.configurable = true;
|
|
11
|
+
if ("value" in descriptor)
|
|
12
|
+
descriptor.writable = true;
|
|
13
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
14
|
+
}
|
|
14
15
|
}
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
17
|
+
if (protoProps)
|
|
18
|
+
_defineProperties(Constructor.prototype, protoProps);
|
|
19
|
+
if (staticProps)
|
|
20
|
+
_defineProperties(Constructor, staticProps);
|
|
21
|
+
return Constructor;
|
|
19
22
|
}
|
|
20
|
-
var I18CLILanguageDetector =
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
var LCs = rawLC.split(":");
|
|
33
|
-
var LC = LCs[0].split(".")[0].split("_")[0].split("-")[0];
|
|
34
|
-
if (LC === "C") {
|
|
35
|
-
return "";
|
|
36
|
-
}
|
|
37
|
-
return LC;
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
key: "detect",
|
|
42
|
-
value: function detect() {
|
|
43
|
-
var _process_env_LC_ALL, _ref, _ref1, _ref2;
|
|
44
|
-
var shellLocale = (_ref2 = (_ref1 = (_ref = (_process_env_LC_ALL = process.env.LC_ALL) !== null && _process_env_LC_ALL !== void 0 ? _process_env_LC_ALL : process.env.LC_MESSAGES) !== null && _ref !== void 0 ? _ref : process.env.LANG) !== null && _ref1 !== void 0 ? _ref1 : process.env.LANGUAGE) !== null && _ref2 !== void 0 ? _ref2 : Intl.DateTimeFormat().resolvedOptions().locale;
|
|
45
|
-
return this.formatShellLocale(shellLocale);
|
|
46
|
-
}
|
|
23
|
+
var I18CLILanguageDetector = /* @__PURE__ */ function() {
|
|
24
|
+
"use strict";
|
|
25
|
+
function I18CLILanguageDetector2() {
|
|
26
|
+
_class_call_check(this, I18CLILanguageDetector2);
|
|
27
|
+
}
|
|
28
|
+
_create_class(I18CLILanguageDetector2, [
|
|
29
|
+
{
|
|
30
|
+
key: "formatShellLocale",
|
|
31
|
+
value: function formatShellLocale(rawLC) {
|
|
32
|
+
if (!rawLC) {
|
|
33
|
+
return "";
|
|
47
34
|
}
|
|
48
|
-
|
|
49
|
-
|
|
35
|
+
var LCs = rawLC.split(":");
|
|
36
|
+
var LC = LCs[0].split(".")[0].split("_")[0].split("-")[0];
|
|
37
|
+
if (LC === "C") {
|
|
38
|
+
return "";
|
|
39
|
+
}
|
|
40
|
+
return LC;
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: "detect",
|
|
45
|
+
value: function detect() {
|
|
46
|
+
var _process_env_LC_ALL, _ref, _ref1, _ref2;
|
|
47
|
+
var shellLocale = (_ref2 = (_ref1 = (_ref = (_process_env_LC_ALL = process.env.LC_ALL) !== null && _process_env_LC_ALL !== void 0 ? _process_env_LC_ALL : process.env.LC_MESSAGES) !== null && _ref !== void 0 ? _ref : process.env.LANG) !== null && _ref1 !== void 0 ? _ref1 : process.env.LANGUAGE) !== null && _ref2 !== void 0 ? _ref2 : Intl.DateTimeFormat().resolvedOptions().locale;
|
|
48
|
+
return this.formatShellLocale(shellLocale);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
]);
|
|
52
|
+
return I18CLILanguageDetector2;
|
|
50
53
|
}();
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
export { I18CLILanguageDetector };
|
|
55
|
+
export function getLocaleLanguage() {
|
|
56
|
+
var detector = new I18CLILanguageDetector();
|
|
57
|
+
return detector.detect();
|
|
54
58
|
}
|
|
55
|
-
export { I18CLILanguageDetector, getLocaleLanguage };
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { isObject, isString } from "@modern-js/utils/lodash";
|
|
2
|
-
function getObjKeyMap(obj) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
export function getObjKeyMap(obj) {
|
|
3
|
+
var prefix = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "";
|
|
4
|
+
var result = {};
|
|
5
|
+
Object.keys(obj).forEach(function(key) {
|
|
6
|
+
if (isString(obj[key])) {
|
|
7
|
+
result[key] = prefix ? "".concat(prefix, ".").concat(key) : key;
|
|
8
|
+
} else if (isObject(obj[key])) {
|
|
9
|
+
result[key] = getObjKeyMap(obj[key], prefix ? "".concat(prefix, ".").concat(key) : key);
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
return result;
|
|
13
13
|
}
|
|
14
|
-
export { getObjKeyMap };
|
package/dist/esm-node/index.js
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
|
+
function _define_property(obj, key, value) {
|
|
2
|
+
if (key in obj) {
|
|
3
|
+
Object.defineProperty(obj, key, {
|
|
4
|
+
value,
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true
|
|
8
|
+
});
|
|
9
|
+
} else {
|
|
10
|
+
obj[key] = value;
|
|
11
|
+
}
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
1
14
|
import { get } from "@modern-js/utils/lodash";
|
|
2
15
|
import { getObjKeyMap } from "./utils";
|
|
3
16
|
class I18n {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.language = "en";
|
|
6
|
-
this.languageMap = {};
|
|
7
|
-
}
|
|
8
17
|
format(msg, vars) {
|
|
9
|
-
return msg.replace(
|
|
10
|
-
/\{(\w+)\}/g,
|
|
11
|
-
(_match, capture) => Object.prototype.hasOwnProperty.call(vars, capture) ? vars[capture] : capture
|
|
12
|
-
);
|
|
18
|
+
return msg.replace(/\{(\w+)\}/g, (_match, capture) => Object.prototype.hasOwnProperty.call(vars, capture) ? vars[capture] : capture);
|
|
13
19
|
}
|
|
14
20
|
getMessage(lang, key, vars, fallbackText) {
|
|
15
21
|
const languages = Object.keys(this.languageMap);
|
|
@@ -46,7 +52,9 @@ class I18n {
|
|
|
46
52
|
t: (key, vars, fallbackText) => this.getMessage(lang, key, vars, fallbackText)
|
|
47
53
|
};
|
|
48
54
|
}
|
|
55
|
+
constructor() {
|
|
56
|
+
_define_property(this, "language", "en");
|
|
57
|
+
_define_property(this, "languageMap", {});
|
|
58
|
+
}
|
|
49
59
|
}
|
|
50
|
-
export {
|
|
51
|
-
I18n
|
|
52
|
-
};
|
|
60
|
+
export { I18n };
|
|
@@ -11,16 +11,13 @@ class I18CLILanguageDetector {
|
|
|
11
11
|
return LC;
|
|
12
12
|
}
|
|
13
13
|
detect() {
|
|
14
|
-
var
|
|
15
|
-
const shellLocale = (
|
|
14
|
+
var _process_env_LC_ALL, _ref, _ref1, _ref2;
|
|
15
|
+
const shellLocale = (_ref2 = (_ref1 = (_ref = (_process_env_LC_ALL = process.env.LC_ALL) !== null && _process_env_LC_ALL !== void 0 ? _process_env_LC_ALL : process.env.LC_MESSAGES) !== null && _ref !== void 0 ? _ref : process.env.LANG) !== null && _ref1 !== void 0 ? _ref1 : process.env.LANGUAGE) !== null && _ref2 !== void 0 ? _ref2 : Intl.DateTimeFormat().resolvedOptions().locale;
|
|
16
16
|
return this.formatShellLocale(shellLocale);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
|
|
19
|
+
export { I18CLILanguageDetector };
|
|
20
|
+
export function getLocaleLanguage() {
|
|
20
21
|
const detector = new I18CLILanguageDetector();
|
|
21
22
|
return detector.detect();
|
|
22
23
|
}
|
|
23
|
-
export {
|
|
24
|
-
I18CLILanguageDetector,
|
|
25
|
-
getLocaleLanguage
|
|
26
|
-
};
|
|
@@ -1,18 +1,12 @@
|
|
|
1
1
|
import { isObject, isString } from "@modern-js/utils/lodash";
|
|
2
|
-
function getObjKeyMap(obj, prefix = "") {
|
|
2
|
+
export function getObjKeyMap(obj, prefix = "") {
|
|
3
3
|
const result = {};
|
|
4
4
|
Object.keys(obj).forEach((key) => {
|
|
5
5
|
if (isString(obj[key])) {
|
|
6
6
|
result[key] = prefix ? `${prefix}.${key}` : key;
|
|
7
7
|
} else if (isObject(obj[key])) {
|
|
8
|
-
result[key] = getObjKeyMap(
|
|
9
|
-
obj[key],
|
|
10
|
-
prefix ? `${prefix}.${key}` : key
|
|
11
|
-
);
|
|
8
|
+
result[key] = getObjKeyMap(obj[key], prefix ? `${prefix}.${key}` : key);
|
|
12
9
|
}
|
|
13
10
|
});
|
|
14
11
|
return result;
|
|
15
12
|
}
|
|
16
|
-
export {
|
|
17
|
-
getObjKeyMap
|
|
18
|
-
};
|
package/package.json
CHANGED
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
"description": "A Progressive React Framework for modern web development.",
|
|
4
4
|
"homepage": "https://modernjs.dev",
|
|
5
5
|
"bugs": "https://github.com/web-infra-dev/modern.js/issues",
|
|
6
|
-
"repository":
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/web-infra-dev/modern.js",
|
|
9
|
+
"directory": "packages/cli/plugin-i18n"
|
|
10
|
+
},
|
|
7
11
|
"license": "MIT",
|
|
8
12
|
"keywords": [
|
|
9
13
|
"react",
|
|
@@ -11,7 +15,7 @@
|
|
|
11
15
|
"modern",
|
|
12
16
|
"modern.js"
|
|
13
17
|
],
|
|
14
|
-
"version": "2.
|
|
18
|
+
"version": "2.17.0",
|
|
15
19
|
"jsnext:source": "./src/index.ts",
|
|
16
20
|
"types": "./dist/types/index.d.ts",
|
|
17
21
|
"main": "./dist/cjs/index.js",
|
|
@@ -41,15 +45,15 @@
|
|
|
41
45
|
},
|
|
42
46
|
"dependencies": {
|
|
43
47
|
"@babel/runtime": "^7.18.0",
|
|
44
|
-
"@modern-js/utils": "2.
|
|
48
|
+
"@modern-js/utils": "2.17.0"
|
|
45
49
|
},
|
|
46
50
|
"devDependencies": {
|
|
47
51
|
"@types/jest": "^29",
|
|
48
52
|
"@types/node": "^14",
|
|
49
53
|
"typescript": "^4",
|
|
50
54
|
"jest": "^29",
|
|
51
|
-
"@scripts/build": "2.
|
|
52
|
-
"@scripts/jest-config": "2.
|
|
55
|
+
"@scripts/build": "2.17.0",
|
|
56
|
+
"@scripts/jest-config": "2.17.0"
|
|
53
57
|
},
|
|
54
58
|
"sideEffects": false,
|
|
55
59
|
"modernConfig": {},
|