@modern-js/i18n-utils 0.0.0-canary-20251119023553 → 0.0.0-canary-20251124060842

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/cjs/index.js CHANGED
@@ -1,73 +1,73 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var src_exports = {};
20
- __export(src_exports, {
21
- I18n: () => I18n
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ I18n: ()=>I18n
22
28
  });
23
- module.exports = __toCommonJS(src_exports);
24
- var import_lodash = require("@modern-js/utils/lodash");
25
- var import_utils = require("./utils");
29
+ const lodash_namespaceObject = require("@modern-js/utils/lodash");
30
+ const index_js_namespaceObject = require("./utils/index.js");
26
31
  class I18n {
27
- format(msg, vars) {
28
- return msg.replace(/\{(\w+)\}/g, (_match, capture) => Object.prototype.hasOwnProperty.call(vars, capture) ? vars[capture] : capture);
29
- }
30
- getMessage(lang, key, vars, fallbackText) {
31
- const languages = Object.keys(this.languageMap);
32
- const resultLang = languages.find((l) => l === lang);
33
- if (!resultLang && languages.length === 0) {
34
- return fallbackText || key;
32
+ format(msg, vars) {
33
+ return msg.replace(/\{(\w+)\}/g, (_match, capture)=>Object.prototype.hasOwnProperty.call(vars, capture) ? vars[capture] : capture);
35
34
  }
36
- const model = this.languageMap[resultLang || "en"];
37
- if (!model) {
38
- return fallbackText || key;
35
+ getMessage(lang, key, vars, fallbackText) {
36
+ const languages = Object.keys(this.languageMap);
37
+ const resultLang = languages.find((l)=>l === lang);
38
+ if (!resultLang && 0 === languages.length) return fallbackText || key;
39
+ const model = this.languageMap[resultLang || 'en'];
40
+ if (!model) return fallbackText || key;
41
+ const message = (0, lodash_namespaceObject.get)(model, key);
42
+ const value = message || fallbackText || key;
43
+ if ('string' == typeof value) return this.format(value, vars || {});
44
+ throw new Error('key is not a string');
39
45
  }
40
- const message = (0, import_lodash.get)(model, key);
41
- const value = message || fallbackText || key;
42
- if (typeof value === "string") {
43
- return this.format(value, vars || {});
46
+ init(language, languageMap) {
47
+ this.language = language || 'en';
48
+ if (languageMap) this.languageMap = languageMap;
49
+ return (0, index_js_namespaceObject.getObjKeyMap)(this.languageMap[this.language]);
44
50
  }
45
- throw new Error("key is not a string");
46
- }
47
- init(language, languageMap) {
48
- this.language = language || "en";
49
- if (languageMap) {
50
- this.languageMap = languageMap;
51
+ changeLanguage(config) {
52
+ this.language = config.locale || 'en';
53
+ }
54
+ t(key, vars, fallbackText) {
55
+ return this.getMessage(this.language, key, vars, fallbackText);
56
+ }
57
+ lang(lang) {
58
+ return {
59
+ t: (key, vars, fallbackText)=>this.getMessage(lang, key, vars, fallbackText)
60
+ };
61
+ }
62
+ constructor(){
63
+ this.language = 'en';
64
+ this.languageMap = {};
51
65
  }
52
- return (0, import_utils.getObjKeyMap)(this.languageMap[this.language]);
53
- }
54
- changeLanguage(config) {
55
- this.language = config.locale || "en";
56
- }
57
- t(key, vars, fallbackText) {
58
- return this.getMessage(this.language, key, vars, fallbackText);
59
- }
60
- lang(lang) {
61
- return {
62
- t: (key, vars, fallbackText) => this.getMessage(lang, key, vars, fallbackText)
63
- };
64
- }
65
- constructor() {
66
- this.language = "en";
67
- this.languageMap = {};
68
- }
69
66
  }
70
- // Annotate the CommonJS export names for ESM import in node:
71
- 0 && (module.exports = {
72
- I18n
67
+ exports.I18n = __webpack_exports__.I18n;
68
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
69
+ "I18n"
70
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
71
+ Object.defineProperty(exports, '__esModule', {
72
+ value: true
73
73
  });
@@ -1,51 +1,55 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var languageDetector_exports = {};
20
- __export(languageDetector_exports, {
21
- I18CLILanguageDetector: () => I18CLILanguageDetector,
22
- getLocaleLanguage: () => getLocaleLanguage
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ I18CLILanguageDetector: ()=>I18CLILanguageDetector,
28
+ getLocaleLanguage: ()=>getLocaleLanguage
23
29
  });
24
- module.exports = __toCommonJS(languageDetector_exports);
25
30
  class I18CLILanguageDetector {
26
- formatShellLocale(rawLC) {
27
- if (!rawLC) {
28
- return "";
31
+ formatShellLocale(rawLC) {
32
+ if (!rawLC) return '';
33
+ const LCs = rawLC.split(':');
34
+ const LC = LCs[0].split('.')[0].split('_')[0].split('-')[0];
35
+ if ('C' === LC) return '';
36
+ return LC;
29
37
  }
30
- const LCs = rawLC.split(":");
31
- const LC = LCs[0].split(".")[0].split("_")[0].split("-")[0];
32
- if (LC === "C") {
33
- return "";
38
+ detect() {
39
+ const shellLocale = process.env.LC_ALL ?? process.env.LC_MESSAGES ?? process.env.LANG ?? process.env.LANGUAGE ?? Intl.DateTimeFormat().resolvedOptions().locale;
40
+ return this.formatShellLocale(shellLocale);
34
41
  }
35
- return LC;
36
- }
37
- detect() {
38
- var _process_env_LC_ALL, _ref, _ref1, _ref2;
39
- 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;
40
- return this.formatShellLocale(shellLocale);
41
- }
42
42
  }
43
43
  function getLocaleLanguage() {
44
- const detector = new I18CLILanguageDetector();
45
- return detector.detect();
44
+ const detector = new I18CLILanguageDetector();
45
+ return detector.detect();
46
46
  }
47
- // Annotate the CommonJS export names for ESM import in node:
48
- 0 && (module.exports = {
49
- I18CLILanguageDetector,
50
- getLocaleLanguage
47
+ exports.I18CLILanguageDetector = __webpack_exports__.I18CLILanguageDetector;
48
+ exports.getLocaleLanguage = __webpack_exports__.getLocaleLanguage;
49
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
50
+ "I18CLILanguageDetector",
51
+ "getLocaleLanguage"
52
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
53
+ Object.defineProperty(exports, '__esModule', {
54
+ value: true
51
55
  });
@@ -1,39 +1,44 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var utils_exports = {};
20
- __export(utils_exports, {
21
- getObjKeyMap: () => getObjKeyMap
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ getObjKeyMap: ()=>getObjKeyMap
22
28
  });
23
- module.exports = __toCommonJS(utils_exports);
24
- var import_lodash = require("@modern-js/utils/lodash");
25
- function getObjKeyMap(obj, prefix = "") {
26
- const result = {};
27
- Object.keys(obj).forEach((key) => {
28
- if ((0, import_lodash.isString)(obj[key])) {
29
- result[key] = prefix ? `${prefix}.${key}` : key;
30
- } else if ((0, import_lodash.isObject)(obj[key])) {
31
- result[key] = getObjKeyMap(obj[key], prefix ? `${prefix}.${key}` : key);
32
- }
33
- });
34
- return result;
29
+ const lodash_namespaceObject = require("@modern-js/utils/lodash");
30
+ function getObjKeyMap(obj, prefix = '') {
31
+ const result = {};
32
+ Object.keys(obj).forEach((key)=>{
33
+ if ((0, lodash_namespaceObject.isString)(obj[key])) result[key] = prefix ? `${prefix}.${key}` : key;
34
+ else if ((0, lodash_namespaceObject.isObject)(obj[key])) result[key] = getObjKeyMap(obj[key], prefix ? `${prefix}.${key}` : key);
35
+ });
36
+ return result;
35
37
  }
36
- // Annotate the CommonJS export names for ESM import in node:
37
- 0 && (module.exports = {
38
- getObjKeyMap
38
+ exports.getObjKeyMap = __webpack_exports__.getObjKeyMap;
39
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
40
+ "getObjKeyMap"
41
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
42
+ Object.defineProperty(exports, '__esModule', {
43
+ value: true
39
44
  });
@@ -0,0 +1,39 @@
1
+ import { get } from "@modern-js/utils/lodash";
2
+ import { getObjKeyMap } from "./utils";
3
+ class I18n {
4
+ format(msg, vars) {
5
+ return msg.replace(/\{(\w+)\}/g, (_match, capture)=>Object.prototype.hasOwnProperty.call(vars, capture) ? vars[capture] : capture);
6
+ }
7
+ getMessage(lang, key, vars, fallbackText) {
8
+ const languages = Object.keys(this.languageMap);
9
+ const resultLang = languages.find((l)=>l === lang);
10
+ if (!resultLang && 0 === languages.length) return fallbackText || key;
11
+ const model = this.languageMap[resultLang || 'en'];
12
+ if (!model) return fallbackText || key;
13
+ const message = get(model, key);
14
+ const value = message || fallbackText || key;
15
+ if ('string' == typeof value) return this.format(value, vars || {});
16
+ throw new Error('key is not a string');
17
+ }
18
+ init(language, languageMap) {
19
+ this.language = language || 'en';
20
+ if (languageMap) this.languageMap = languageMap;
21
+ return getObjKeyMap(this.languageMap[this.language]);
22
+ }
23
+ changeLanguage(config) {
24
+ this.language = config.locale || 'en';
25
+ }
26
+ t(key, vars, fallbackText) {
27
+ return this.getMessage(this.language, key, vars, fallbackText);
28
+ }
29
+ lang(lang) {
30
+ return {
31
+ t: (key, vars, fallbackText)=>this.getMessage(lang, key, vars, fallbackText)
32
+ };
33
+ }
34
+ constructor(){
35
+ this.language = 'en';
36
+ this.languageMap = {};
37
+ }
38
+ }
39
+ export { I18n };
@@ -0,0 +1,18 @@
1
+ class I18CLILanguageDetector {
2
+ formatShellLocale(rawLC) {
3
+ if (!rawLC) return '';
4
+ const LCs = rawLC.split(':');
5
+ const LC = LCs[0].split('.')[0].split('_')[0].split('-')[0];
6
+ if ('C' === LC) return '';
7
+ return LC;
8
+ }
9
+ detect() {
10
+ const shellLocale = process.env.LC_ALL ?? process.env.LC_MESSAGES ?? process.env.LANG ?? process.env.LANGUAGE ?? Intl.DateTimeFormat().resolvedOptions().locale;
11
+ return this.formatShellLocale(shellLocale);
12
+ }
13
+ }
14
+ function getLocaleLanguage() {
15
+ const detector = new I18CLILanguageDetector();
16
+ return detector.detect();
17
+ }
18
+ export { I18CLILanguageDetector, getLocaleLanguage };
@@ -0,0 +1,10 @@
1
+ import { isObject, isString } from "@modern-js/utils/lodash";
2
+ function getObjKeyMap(obj, prefix = '') {
3
+ const result = {};
4
+ Object.keys(obj).forEach((key)=>{
5
+ if (isString(obj[key])) result[key] = prefix ? `${prefix}.${key}` : key;
6
+ else if (isObject(obj[key])) result[key] = getObjKeyMap(obj[key], prefix ? `${prefix}.${key}` : key);
7
+ });
8
+ return result;
9
+ }
10
+ export { getObjKeyMap };
@@ -0,0 +1,39 @@
1
+ import { get } from "@modern-js/utils/lodash";
2
+ import { getObjKeyMap } from "./utils/index.mjs";
3
+ class I18n {
4
+ format(msg, vars) {
5
+ return msg.replace(/\{(\w+)\}/g, (_match, capture)=>Object.prototype.hasOwnProperty.call(vars, capture) ? vars[capture] : capture);
6
+ }
7
+ getMessage(lang, key, vars, fallbackText) {
8
+ const languages = Object.keys(this.languageMap);
9
+ const resultLang = languages.find((l)=>l === lang);
10
+ if (!resultLang && 0 === languages.length) return fallbackText || key;
11
+ const model = this.languageMap[resultLang || 'en'];
12
+ if (!model) return fallbackText || key;
13
+ const message = get(model, key);
14
+ const value = message || fallbackText || key;
15
+ if ('string' == typeof value) return this.format(value, vars || {});
16
+ throw new Error('key is not a string');
17
+ }
18
+ init(language, languageMap) {
19
+ this.language = language || 'en';
20
+ if (languageMap) this.languageMap = languageMap;
21
+ return getObjKeyMap(this.languageMap[this.language]);
22
+ }
23
+ changeLanguage(config) {
24
+ this.language = config.locale || 'en';
25
+ }
26
+ t(key, vars, fallbackText) {
27
+ return this.getMessage(this.language, key, vars, fallbackText);
28
+ }
29
+ lang(lang) {
30
+ return {
31
+ t: (key, vars, fallbackText)=>this.getMessage(lang, key, vars, fallbackText)
32
+ };
33
+ }
34
+ constructor(){
35
+ this.language = 'en';
36
+ this.languageMap = {};
37
+ }
38
+ }
39
+ export { I18n };
@@ -0,0 +1,18 @@
1
+ class I18CLILanguageDetector {
2
+ formatShellLocale(rawLC) {
3
+ if (!rawLC) return '';
4
+ const LCs = rawLC.split(':');
5
+ const LC = LCs[0].split('.')[0].split('_')[0].split('-')[0];
6
+ if ('C' === LC) return '';
7
+ return LC;
8
+ }
9
+ detect() {
10
+ const shellLocale = process.env.LC_ALL ?? process.env.LC_MESSAGES ?? process.env.LANG ?? process.env.LANGUAGE ?? Intl.DateTimeFormat().resolvedOptions().locale;
11
+ return this.formatShellLocale(shellLocale);
12
+ }
13
+ }
14
+ function getLocaleLanguage() {
15
+ const detector = new I18CLILanguageDetector();
16
+ return detector.detect();
17
+ }
18
+ export { I18CLILanguageDetector, getLocaleLanguage };
@@ -0,0 +1,10 @@
1
+ import { isObject, isString } from "@modern-js/utils/lodash";
2
+ function getObjKeyMap(obj, prefix = '') {
3
+ const result = {};
4
+ Object.keys(obj).forEach((key)=>{
5
+ if (isString(obj[key])) result[key] = prefix ? `${prefix}.${key}` : key;
6
+ else if (isObject(obj[key])) result[key] = getObjKeyMap(obj[key], prefix ? `${prefix}.${key}` : key);
7
+ });
8
+ return result;
9
+ }
10
+ export { getObjKeyMap };
package/package.json CHANGED
@@ -15,13 +15,16 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "0.0.0-canary-20251119023553",
18
+ "version": "0.0.0-canary-20251124060842",
19
19
  "jsnext:source": "./src/index.ts",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "main": "./dist/cjs/index.js",
22
- "module": "./dist/esm/index.js",
22
+ "module": "./dist/esm/index.mjs",
23
23
  "typesVersions": {
24
24
  "*": {
25
+ ".": [
26
+ "./dist/types/index.d.ts"
27
+ ],
25
28
  "language-detector": [
26
29
  "./dist/types/languageDetector.d.ts"
27
30
  ]
@@ -30,32 +33,34 @@
30
33
  "exports": {
31
34
  ".": {
32
35
  "node": {
33
- "import": "./dist/esm-node/index.js",
36
+ "import": "./dist/esm-node/index.mjs",
34
37
  "require": "./dist/cjs/index.js"
35
38
  },
36
39
  "types": "./dist/types/index.d.ts",
37
- "default": "./dist/esm/index.js"
40
+ "default": "./dist/esm/index.mjs"
38
41
  },
39
42
  "./language-detector": {
40
43
  "node": {
41
- "import": "./dist/esm-node/languageDetector.js",
44
+ "import": "./dist/esm-node/languageDetector.mjs",
42
45
  "require": "./dist/cjs/languageDetector.js"
43
46
  },
44
47
  "types": "./dist/types/languageDetector.d.ts",
45
- "default": "./dist/esm/languageDetector.js"
48
+ "default": "./dist/esm/languageDetector.mjs"
46
49
  }
47
50
  },
48
51
  "dependencies": {
49
52
  "@swc/helpers": "^0.5.17",
50
- "@modern-js/utils": "0.0.0-canary-20251119023553"
53
+ "@modern-js/utils": "0.0.0-canary-20251124060842"
51
54
  },
52
55
  "devDependencies": {
56
+ "@rslib/core": "0.18.0",
53
57
  "@types/jest": "^29.5.14",
54
58
  "@types/node": "^20",
55
59
  "jest": "^29.7.0",
56
60
  "typescript": "^5",
57
- "@scripts/build": "0.0.0-canary-20251119023553",
58
- "@scripts/jest-config": "0.0.0-canary-20251119023553"
61
+ "@modern-js/rslib": "0.0.0-canary-20251124060842",
62
+ "@scripts/build": "0.0.0-canary-20251124060842",
63
+ "@scripts/jest-config": "0.0.0-canary-20251124060842"
59
64
  },
60
65
  "sideEffects": false,
61
66
  "publishConfig": {
@@ -64,7 +69,8 @@
64
69
  },
65
70
  "scripts": {
66
71
  "new": "modern-lib new",
67
- "build": "modern-lib build",
72
+ "dev": "rslib build --watch",
73
+ "build": "rslib build",
68
74
  "test": "jest --passWithNoTests"
69
75
  }
70
76
  }
@@ -0,0 +1,4 @@
1
+ import { rslibConfig } from '@modern-js/rslib';
2
+ import { defineConfig } from '@rslib/core';
3
+
4
+ export default defineConfig(rslibConfig);
package/dist/esm/index.js DELETED
@@ -1,61 +0,0 @@
1
- import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
2
- import { get } from "@modern-js/utils/lodash";
3
- import { getObjKeyMap } from "./utils";
4
- var I18n = /* @__PURE__ */ function() {
5
- "use strict";
6
- function I18n2() {
7
- _class_call_check(this, I18n2);
8
- this.language = "en";
9
- this.languageMap = {};
10
- }
11
- var _proto = I18n2.prototype;
12
- _proto.format = function format(msg, vars) {
13
- return msg.replace(/\{(\w+)\}/g, function(_match, capture) {
14
- return Object.prototype.hasOwnProperty.call(vars, capture) ? vars[capture] : capture;
15
- });
16
- };
17
- _proto.getMessage = function getMessage(lang, key, vars, fallbackText) {
18
- var languages = Object.keys(this.languageMap);
19
- var resultLang = languages.find(function(l) {
20
- return l === lang;
21
- });
22
- if (!resultLang && languages.length === 0) {
23
- return fallbackText || key;
24
- }
25
- var model = this.languageMap[resultLang || "en"];
26
- if (!model) {
27
- return fallbackText || key;
28
- }
29
- var message = get(model, key);
30
- var value = message || fallbackText || key;
31
- if (typeof value === "string") {
32
- return this.format(value, vars || {});
33
- }
34
- throw new Error("key is not a string");
35
- };
36
- _proto.init = function init(language, languageMap) {
37
- this.language = language || "en";
38
- if (languageMap) {
39
- this.languageMap = languageMap;
40
- }
41
- return getObjKeyMap(this.languageMap[this.language]);
42
- };
43
- _proto.changeLanguage = function changeLanguage(config) {
44
- this.language = config.locale || "en";
45
- };
46
- _proto.t = function t(key, vars, fallbackText) {
47
- return this.getMessage(this.language, key, vars, fallbackText);
48
- };
49
- _proto.lang = function lang(lang) {
50
- var _this = this;
51
- return {
52
- t: function(key, vars, fallbackText) {
53
- return _this.getMessage(lang, key, vars, fallbackText);
54
- }
55
- };
56
- };
57
- return I18n2;
58
- }();
59
- export {
60
- I18n
61
- };
@@ -1,33 +0,0 @@
1
- import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
2
- var I18CLILanguageDetector = /* @__PURE__ */ function() {
3
- "use strict";
4
- function I18CLILanguageDetector2() {
5
- _class_call_check(this, I18CLILanguageDetector2);
6
- }
7
- var _proto = I18CLILanguageDetector2.prototype;
8
- _proto.formatShellLocale = function formatShellLocale(rawLC) {
9
- if (!rawLC) {
10
- return "";
11
- }
12
- var LCs = rawLC.split(":");
13
- var LC = LCs[0].split(".")[0].split("_")[0].split("-")[0];
14
- if (LC === "C") {
15
- return "";
16
- }
17
- return LC;
18
- };
19
- _proto.detect = function detect() {
20
- var _process_env_LC_ALL, _ref, _ref1, _ref2;
21
- 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;
22
- return this.formatShellLocale(shellLocale);
23
- };
24
- return I18CLILanguageDetector2;
25
- }();
26
- function getLocaleLanguage() {
27
- var detector = new I18CLILanguageDetector();
28
- return detector.detect();
29
- }
30
- export {
31
- I18CLILanguageDetector,
32
- getLocaleLanguage
33
- };
@@ -1,16 +0,0 @@
1
- import { isObject, isString } from "@modern-js/utils/lodash";
2
- 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
- }
14
- export {
15
- getObjKeyMap
16
- };
@@ -1,49 +0,0 @@
1
- import { get } from "@modern-js/utils/lodash";
2
- import { getObjKeyMap } from "./utils";
3
- class I18n {
4
- format(msg, vars) {
5
- return msg.replace(/\{(\w+)\}/g, (_match, capture) => Object.prototype.hasOwnProperty.call(vars, capture) ? vars[capture] : capture);
6
- }
7
- getMessage(lang, key, vars, fallbackText) {
8
- const languages = Object.keys(this.languageMap);
9
- const resultLang = languages.find((l) => l === lang);
10
- if (!resultLang && languages.length === 0) {
11
- return fallbackText || key;
12
- }
13
- const model = this.languageMap[resultLang || "en"];
14
- if (!model) {
15
- return fallbackText || key;
16
- }
17
- const message = get(model, key);
18
- const value = message || fallbackText || key;
19
- if (typeof value === "string") {
20
- return this.format(value, vars || {});
21
- }
22
- throw new Error("key is not a string");
23
- }
24
- init(language, languageMap) {
25
- this.language = language || "en";
26
- if (languageMap) {
27
- this.languageMap = languageMap;
28
- }
29
- return getObjKeyMap(this.languageMap[this.language]);
30
- }
31
- changeLanguage(config) {
32
- this.language = config.locale || "en";
33
- }
34
- t(key, vars, fallbackText) {
35
- return this.getMessage(this.language, key, vars, fallbackText);
36
- }
37
- lang(lang) {
38
- return {
39
- t: (key, vars, fallbackText) => this.getMessage(lang, key, vars, fallbackText)
40
- };
41
- }
42
- constructor() {
43
- this.language = "en";
44
- this.languageMap = {};
45
- }
46
- }
47
- export {
48
- I18n
49
- };
@@ -1,26 +0,0 @@
1
- class I18CLILanguageDetector {
2
- formatShellLocale(rawLC) {
3
- if (!rawLC) {
4
- return "";
5
- }
6
- const LCs = rawLC.split(":");
7
- const LC = LCs[0].split(".")[0].split("_")[0].split("-")[0];
8
- if (LC === "C") {
9
- return "";
10
- }
11
- return LC;
12
- }
13
- detect() {
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
- return this.formatShellLocale(shellLocale);
17
- }
18
- }
19
- function getLocaleLanguage() {
20
- const detector = new I18CLILanguageDetector();
21
- return detector.detect();
22
- }
23
- export {
24
- I18CLILanguageDetector,
25
- getLocaleLanguage
26
- };
@@ -1,15 +0,0 @@
1
- import { isObject, isString } from "@modern-js/utils/lodash";
2
- function getObjKeyMap(obj, prefix = "") {
3
- const result = {};
4
- Object.keys(obj).forEach((key) => {
5
- if (isString(obj[key])) {
6
- result[key] = prefix ? `${prefix}.${key}` : key;
7
- } else if (isObject(obj[key])) {
8
- result[key] = getObjKeyMap(obj[key], prefix ? `${prefix}.${key}` : key);
9
- }
10
- });
11
- return result;
12
- }
13
- export {
14
- getObjKeyMap
15
- };