@modern-js/plugin-i18n 2.0.0-beta.0 → 2.0.0-beta.2

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 CHANGED
@@ -1,5 +1,49 @@
1
1
  # @modern-js/plugin-i18n
2
2
 
3
+ ## 2.0.0-beta.2
4
+
5
+ ### Major Changes
6
+
7
+ - dda38c9c3e: chore: v2
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [92f0ead]
12
+ - Updated dependencies [edd1cfb1af]
13
+ - Updated dependencies [cc971eabfc]
14
+ - Updated dependencies [5b9049f2e9]
15
+ - Updated dependencies [92004d1]
16
+ - Updated dependencies [b8bbe036c7]
17
+ - Updated dependencies [d5a31df781]
18
+ - Updated dependencies [dda38c9c3e]
19
+ - Updated dependencies [3bbea92b2a]
20
+ - Updated dependencies [abf3421a75]
21
+ - Updated dependencies [543be9558e]
22
+ - Updated dependencies [14b712da84]
23
+ - @modern-js/utils@2.0.0-beta.2
24
+
25
+ ## 2.0.0-beta.1
26
+
27
+ ### Major Changes
28
+
29
+ - dda38c9: chore: v2
30
+
31
+ ### Patch Changes
32
+
33
+ - Updated dependencies [92f0ead]
34
+ - Updated dependencies [edd1cfb1af]
35
+ - Updated dependencies [cc971eabfc]
36
+ - Updated dependencies [5b9049f]
37
+ - Updated dependencies [92004d1]
38
+ - Updated dependencies [b8bbe036c7]
39
+ - Updated dependencies [d5a31df781]
40
+ - Updated dependencies [dda38c9]
41
+ - Updated dependencies [3bbea92b2a]
42
+ - Updated dependencies [abf3421]
43
+ - Updated dependencies [543be9558e]
44
+ - Updated dependencies [14b712d]
45
+ - @modern-js/utils@2.0.0-beta.1
46
+
3
47
  ## 2.0.0-beta.0
4
48
 
5
49
  ### Major Changes
@@ -1,68 +1,49 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
2
  import { get } from '@modern-js/utils/lodash';
4
3
  import { getObjKeyMap } from "./utils";
5
-
6
4
  class I18n {
7
5
  constructor() {
8
6
  _defineProperty(this, "language", 'en');
9
-
10
7
  _defineProperty(this, "languageMap", {});
11
8
  }
12
-
13
9
  format(msg, vars) {
14
10
  return msg.replace(/\{([^}]+)\}/gm, (_match, capture) => Object.prototype.hasOwnProperty.call(vars, capture) ? vars[capture] : capture);
15
11
  }
16
-
17
12
  getMessage(lang, key, vars, fallbackText) {
18
13
  // 判断语言当前语料库是否存在,不存在使用 en 作为默认语言
19
14
  const languages = Object.keys(this.languageMap);
20
15
  const resultLang = languages.find(l => l === lang);
21
-
22
16
  if (!resultLang && languages.length === 0) {
23
17
  return fallbackText || key;
24
18
  }
25
-
26
19
  const model = this.languageMap[resultLang || 'en' || languages[0]];
27
-
28
20
  if (!model) {
29
21
  return fallbackText || key;
30
22
  }
31
-
32
23
  const message = get(model, key);
33
24
  const value = message || fallbackText || key;
34
-
35
25
  if (typeof value === 'string') {
36
26
  return this.format(value, vars || {});
37
27
  }
38
-
39
28
  throw new Error('key is not a string');
40
29
  }
41
-
42
30
  init(language, languageMap) {
43
31
  this.language = language || 'en';
44
-
45
32
  if (languageMap) {
46
33
  this.languageMap = languageMap;
47
34
  }
48
-
49
35
  return getObjKeyMap(this.languageMap[this.language]);
50
36
  }
51
-
52
37
  changeLanguage(config) {
53
38
  this.language = config.locale || 'en';
54
39
  }
55
-
56
40
  t(key, vars, fallbackText) {
57
41
  return this.getMessage(this.language, key, vars, fallbackText);
58
42
  }
59
-
60
43
  lang(lang) {
61
44
  return {
62
45
  t: (key, vars, fallbackText) => this.getMessage(lang, key, vars, fallbackText)
63
46
  };
64
47
  }
65
-
66
48
  }
67
-
68
49
  export { I18n };
@@ -2,29 +2,26 @@ class I18CLILanguageDetector {
2
2
  formatShellLocale(rawLC) {
3
3
  if (!rawLC) {
4
4
  return '';
5
- } // Get array of available languages
6
-
5
+ }
7
6
 
7
+ // Get array of available languages
8
8
  const LCs = rawLC.split(':');
9
- const LC = LCs[0] // Get `en_US` part from `en_US.UTF-8`
10
- .split('.')[0] // Slice en_US to en
11
- .split('_')[0] // slice en-US to en
9
+ const LC = LCs[0]
10
+ // Get `en_US` part from `en_US.UTF-8`
11
+ .split('.')[0]
12
+ // Slice en_US to en
13
+ .split('_')[0]
14
+ // slice en-US to en
12
15
  .split('-')[0];
13
-
14
16
  if (LC === 'C') {
15
17
  return '';
16
18
  }
17
-
18
19
  return LC;
19
20
  }
20
-
21
21
  detect() {
22
22
  var _ref, _ref2, _ref3, _process$env$LC_ALL;
23
-
24
23
  const shellLocale = (_ref = (_ref2 = (_ref3 = (_process$env$LC_ALL = process.env.LC_ALL) !== null && _process$env$LC_ALL !== void 0 ? _process$env$LC_ALL : process.env.LC_MESSAGES) !== null && _ref3 !== void 0 ? _ref3 : process.env.LANG) !== null && _ref2 !== void 0 ? _ref2 : process.env.LANGUAGE) !== null && _ref !== void 0 ? _ref : Intl.DateTimeFormat().resolvedOptions().locale;
25
24
  return this.formatShellLocale(shellLocale);
26
25
  }
27
-
28
26
  }
29
-
30
27
  export { I18CLILanguageDetector };
@@ -4,73 +4,52 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.I18n = void 0;
7
-
8
7
  var _lodash = require("@modern-js/utils/lodash");
9
-
10
8
  var _utils = require("./utils");
11
-
12
9
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
-
14
10
  class I18n {
15
11
  constructor() {
16
12
  _defineProperty(this, "language", 'en');
17
-
18
13
  _defineProperty(this, "languageMap", {});
19
14
  }
20
-
21
15
  format(msg, vars) {
22
16
  return msg.replace(/\{([^}]+)\}/gm, (_match, capture) => Object.prototype.hasOwnProperty.call(vars, capture) ? vars[capture] : capture);
23
17
  }
24
-
25
18
  getMessage(lang, key, vars, fallbackText) {
26
19
  // 判断语言当前语料库是否存在,不存在使用 en 作为默认语言
27
20
  const languages = Object.keys(this.languageMap);
28
21
  const resultLang = languages.find(l => l === lang);
29
-
30
22
  if (!resultLang && languages.length === 0) {
31
23
  return fallbackText || key;
32
24
  }
33
-
34
25
  const model = this.languageMap[resultLang || 'en' || languages[0]];
35
-
36
26
  if (!model) {
37
27
  return fallbackText || key;
38
28
  }
39
-
40
29
  const message = (0, _lodash.get)(model, key);
41
30
  const value = message || fallbackText || key;
42
-
43
31
  if (typeof value === 'string') {
44
32
  return this.format(value, vars || {});
45
33
  }
46
-
47
34
  throw new Error('key is not a string');
48
35
  }
49
-
50
36
  init(language, languageMap) {
51
37
  this.language = language || 'en';
52
-
53
38
  if (languageMap) {
54
39
  this.languageMap = languageMap;
55
40
  }
56
-
57
41
  return (0, _utils.getObjKeyMap)(this.languageMap[this.language]);
58
42
  }
59
-
60
43
  changeLanguage(config) {
61
44
  this.language = config.locale || 'en';
62
45
  }
63
-
64
46
  t(key, vars, fallbackText) {
65
47
  return this.getMessage(this.language, key, vars, fallbackText);
66
48
  }
67
-
68
49
  lang(lang) {
69
50
  return {
70
51
  t: (key, vars, fallbackText) => this.getMessage(lang, key, vars, fallbackText)
71
52
  };
72
53
  }
73
-
74
54
  }
75
-
76
55
  exports.I18n = I18n;
@@ -4,34 +4,30 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.I18CLILanguageDetector = void 0;
7
-
8
7
  class I18CLILanguageDetector {
9
8
  formatShellLocale(rawLC) {
10
9
  if (!rawLC) {
11
10
  return '';
12
- } // Get array of available languages
13
-
11
+ }
14
12
 
13
+ // Get array of available languages
15
14
  const LCs = rawLC.split(':');
16
- const LC = LCs[0] // Get `en_US` part from `en_US.UTF-8`
17
- .split('.')[0] // Slice en_US to en
18
- .split('_')[0] // slice en-US to en
15
+ const LC = LCs[0]
16
+ // Get `en_US` part from `en_US.UTF-8`
17
+ .split('.')[0]
18
+ // Slice en_US to en
19
+ .split('_')[0]
20
+ // slice en-US to en
19
21
  .split('-')[0];
20
-
21
22
  if (LC === 'C') {
22
23
  return '';
23
24
  }
24
-
25
25
  return LC;
26
26
  }
27
-
28
27
  detect() {
29
28
  var _ref, _ref2, _ref3, _process$env$LC_ALL;
30
-
31
29
  const shellLocale = (_ref = (_ref2 = (_ref3 = (_process$env$LC_ALL = process.env.LC_ALL) !== null && _process$env$LC_ALL !== void 0 ? _process$env$LC_ALL : process.env.LC_MESSAGES) !== null && _ref3 !== void 0 ? _ref3 : process.env.LANG) !== null && _ref2 !== void 0 ? _ref2 : process.env.LANGUAGE) !== null && _ref !== void 0 ? _ref : Intl.DateTimeFormat().resolvedOptions().locale;
32
30
  return this.formatShellLocale(shellLocale);
33
31
  }
34
-
35
32
  }
36
-
37
33
  exports.I18CLILanguageDetector = I18CLILanguageDetector;
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getObjKeyMap = getObjKeyMap;
7
-
8
7
  var _lodash = require("@modern-js/utils/lodash");
9
-
10
8
  function getObjKeyMap(obj, prefix = '') {
11
9
  const result = {};
12
10
  Object.keys(obj).forEach(key => {
@@ -3,16 +3,12 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
4
  import { get } from '@modern-js/utils/lodash';
5
5
  import { getObjKeyMap } from "./utils";
6
-
7
6
  var I18n = /*#__PURE__*/function () {
8
7
  function I18n() {
9
8
  _classCallCheck(this, I18n);
10
-
11
9
  _defineProperty(this, "language", 'en');
12
-
13
10
  _defineProperty(this, "languageMap", {});
14
11
  }
15
-
16
12
  _createClass(I18n, [{
17
13
  key: "format",
18
14
  value: function format(msg, vars) {
@@ -28,35 +24,27 @@ var I18n = /*#__PURE__*/function () {
28
24
  var resultLang = languages.find(function (l) {
29
25
  return l === lang;
30
26
  });
31
-
32
27
  if (!resultLang && languages.length === 0) {
33
28
  return fallbackText || key;
34
29
  }
35
-
36
30
  var model = this.languageMap[resultLang || 'en' || languages[0]];
37
-
38
31
  if (!model) {
39
32
  return fallbackText || key;
40
33
  }
41
-
42
34
  var message = get(model, key);
43
35
  var value = message || fallbackText || key;
44
-
45
36
  if (typeof value === 'string') {
46
37
  return this.format(value, vars || {});
47
38
  }
48
-
49
39
  throw new Error('key is not a string');
50
40
  }
51
41
  }, {
52
42
  key: "init",
53
43
  value: function init(language, languageMap) {
54
44
  this.language = language || 'en';
55
-
56
45
  if (languageMap) {
57
46
  this.languageMap = languageMap;
58
47
  }
59
-
60
48
  return getObjKeyMap(this.languageMap[this.language]);
61
49
  }
62
50
  }, {
@@ -75,15 +63,12 @@ var I18n = /*#__PURE__*/function () {
75
63
  function lang(_x) {
76
64
  return _lang.apply(this, arguments);
77
65
  }
78
-
79
66
  lang.toString = function () {
80
67
  return _lang.toString();
81
68
  };
82
-
83
69
  return lang;
84
70
  }(function (lang) {
85
71
  var _this = this;
86
-
87
72
  return {
88
73
  t: function t(key, vars, fallbackText) {
89
74
  return _this.getMessage(lang, key, vars, fallbackText);
@@ -91,8 +76,6 @@ var I18n = /*#__PURE__*/function () {
91
76
  };
92
77
  })
93
78
  }]);
94
-
95
79
  return I18n;
96
80
  }();
97
-
98
81
  export { I18n };
@@ -1,42 +1,38 @@
1
1
  import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
2
  import _createClass from "@babel/runtime/helpers/esm/createClass";
3
-
4
3
  var I18CLILanguageDetector = /*#__PURE__*/function () {
5
4
  function I18CLILanguageDetector() {
6
5
  _classCallCheck(this, I18CLILanguageDetector);
7
6
  }
8
-
9
7
  _createClass(I18CLILanguageDetector, [{
10
8
  key: "formatShellLocale",
11
9
  value: function formatShellLocale(rawLC) {
12
10
  if (!rawLC) {
13
11
  return '';
14
- } // Get array of available languages
15
-
12
+ }
16
13
 
14
+ // Get array of available languages
17
15
  var LCs = rawLC.split(':');
18
- var LC = LCs[0] // Get `en_US` part from `en_US.UTF-8`
19
- .split('.')[0] // Slice en_US to en
20
- .split('_')[0] // slice en-US to en
16
+ var LC = LCs[0]
17
+ // Get `en_US` part from `en_US.UTF-8`
18
+ .split('.')[0]
19
+ // Slice en_US to en
20
+ .split('_')[0]
21
+ // slice en-US to en
21
22
  .split('-')[0];
22
-
23
23
  if (LC === 'C') {
24
24
  return '';
25
25
  }
26
-
27
26
  return LC;
28
27
  }
29
28
  }, {
30
29
  key: "detect",
31
30
  value: function detect() {
32
31
  var _ref, _ref2, _ref3, _process$env$LC_ALL;
33
-
34
32
  var shellLocale = (_ref = (_ref2 = (_ref3 = (_process$env$LC_ALL = process.env.LC_ALL) !== null && _process$env$LC_ALL !== void 0 ? _process$env$LC_ALL : process.env.LC_MESSAGES) !== null && _ref3 !== void 0 ? _ref3 : process.env.LANG) !== null && _ref2 !== void 0 ? _ref2 : process.env.LANGUAGE) !== null && _ref !== void 0 ? _ref : Intl.DateTimeFormat().resolvedOptions().locale;
35
33
  return this.formatShellLocale(shellLocale);
36
34
  }
37
35
  }]);
38
-
39
36
  return I18CLILanguageDetector;
40
37
  }();
41
-
42
38
  export { I18CLILanguageDetector };
@@ -15,7 +15,6 @@ declare type TI18n = {
15
15
  export interface ChangeLanguageConfig {
16
16
  locale?: Language;
17
17
  }
18
-
19
18
  declare class I18n implements TI18n {
20
19
  private language;
21
20
  private languageMap;
@@ -32,5 +31,4 @@ declare class I18n implements TI18n {
32
31
  } | undefined, fallbackText?: string) => string;
33
32
  };
34
33
  }
35
-
36
34
  export { I18n };
@@ -2,5 +2,4 @@ declare class I18CLILanguageDetector {
2
2
  private formatShellLocale;
3
3
  detect(): string;
4
4
  }
5
-
6
5
  export { I18CLILanguageDetector };
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "2.0.0-beta.0",
14
+ "version": "2.0.0-beta.2",
15
15
  "jsnext:source": "./src/index.ts",
16
16
  "types": "./dist/types/index.d.ts",
17
17
  "main": "./dist/js/node/index.js",
@@ -42,15 +42,15 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "@babel/runtime": "^7.18.0",
45
- "@modern-js/utils": "2.0.0-beta.0"
45
+ "@modern-js/utils": "2.0.0-beta.2"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@types/jest": "^27",
49
49
  "@types/node": "^14",
50
50
  "typescript": "^4",
51
- "@scripts/build": "2.0.0-beta.0",
52
51
  "jest": "^27",
53
- "@scripts/jest-config": "2.0.0-beta.0"
52
+ "@scripts/build": "2.0.0-beta.2",
53
+ "@scripts/jest-config": "2.0.0-beta.2"
54
54
  },
55
55
  "sideEffects": false,
56
56
  "modernConfig": {},
@@ -59,8 +59,8 @@
59
59
  "access": "public"
60
60
  },
61
61
  "scripts": {
62
- "new": "modern new",
63
- "build": "modern build",
62
+ "new": "modern-lib new",
63
+ "build": "modern-lib build",
64
64
  "test": "jest --passWithNoTests"
65
65
  }
66
66
  }