@micromag/intl 0.4.71 → 0.4.74
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/es/index.js +74 -79
- package/package.json +7 -7
package/es/index.js
CHANGED
|
@@ -1,94 +1,89 @@
|
|
|
1
|
-
import
|
|
2
|
-
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
3
|
-
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
4
|
-
import _createClass from '@babel/runtime/helpers/createClass';
|
|
1
|
+
import { c } from 'react/compiler-runtime';
|
|
5
2
|
import React, { use, useMemo, useCallback } from 'react';
|
|
6
3
|
import { IntlContext, IntlProvider as IntlProvider$1 } from 'react-intl';
|
|
7
4
|
import { jsx } from 'react/jsx-runtime';
|
|
8
5
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
_classCallCheck(this, IntlManager);
|
|
6
|
+
class IntlManager {
|
|
7
|
+
constructor() {
|
|
12
8
|
this.locales = [];
|
|
13
9
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
key: "hasLocale",
|
|
35
|
-
value: function hasLocale(locale) {
|
|
36
|
-
return this.getLocale(locale) !== null;
|
|
37
|
-
}
|
|
38
|
-
}, {
|
|
39
|
-
key: "getMessages",
|
|
40
|
-
value: function getMessages(locale) {
|
|
41
|
-
var localeObj = this.locales.find(function (it) {
|
|
42
|
-
return it.locale === locale;
|
|
43
|
-
}) || null;
|
|
44
|
-
if (localeObj === null) {
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
return localeObj.messages;
|
|
10
|
+
addLocale(locale, messages, replace = false) {
|
|
11
|
+
const currentLocale = this.getLocale(locale);
|
|
12
|
+
this.locales = [...(currentLocale !== null ? this.locales.filter(it => it.locale !== locale) : this.locales), {
|
|
13
|
+
locale,
|
|
14
|
+
messages: currentLocale !== null && !replace ? {
|
|
15
|
+
...currentLocale.messages,
|
|
16
|
+
...messages
|
|
17
|
+
} : messages
|
|
18
|
+
}];
|
|
19
|
+
}
|
|
20
|
+
getLocale(locale) {
|
|
21
|
+
return this.locales.find(it => it.locale === locale) || null;
|
|
22
|
+
}
|
|
23
|
+
hasLocale(locale) {
|
|
24
|
+
return this.getLocale(locale) !== null;
|
|
25
|
+
}
|
|
26
|
+
getMessages(locale) {
|
|
27
|
+
const localeObj = this.locales.find(it => it.locale === locale) || null;
|
|
28
|
+
if (localeObj === null) {
|
|
29
|
+
return null;
|
|
48
30
|
}
|
|
49
|
-
|
|
50
|
-
}
|
|
31
|
+
return localeObj.messages;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
51
34
|
|
|
52
|
-
|
|
35
|
+
const intlManager = new IntlManager();
|
|
53
36
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
37
|
+
const defaultLocales = ['en', 'fr'];
|
|
38
|
+
const LocalesContext = /*#__PURE__*/React.createContext(defaultLocales);
|
|
39
|
+
const useLocales = () => use(LocalesContext);
|
|
40
|
+
const useOtherLocales = () => {
|
|
41
|
+
const $ = c(5);
|
|
42
|
+
const locales = useLocales();
|
|
43
|
+
const {
|
|
44
|
+
locale
|
|
45
|
+
} = use(IntlContext);
|
|
46
|
+
let t0;
|
|
47
|
+
if ($[0] !== locale || $[1] !== locales) {
|
|
48
|
+
let t1;
|
|
49
|
+
if ($[3] !== locale) {
|
|
50
|
+
t1 = it => it !== locale;
|
|
51
|
+
$[3] = locale;
|
|
52
|
+
$[4] = t1;
|
|
53
|
+
} else {
|
|
54
|
+
t1 = $[4];
|
|
55
|
+
}
|
|
56
|
+
t0 = locales.filter(t1);
|
|
57
|
+
$[0] = locale;
|
|
58
|
+
$[1] = locales;
|
|
59
|
+
$[2] = t0;
|
|
60
|
+
} else {
|
|
61
|
+
t0 = $[2];
|
|
62
|
+
}
|
|
63
|
+
const otherLocales = t0;
|
|
68
64
|
return otherLocales;
|
|
69
65
|
};
|
|
70
|
-
function IntlProvider(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
return _objectSpread(_objectSpread(_objectSpread({}, currentMessages), extraMessages), previousLocale === locale ? previousMessages : null);
|
|
66
|
+
function IntlProvider({
|
|
67
|
+
intlManager: intlManager$1 = intlManager,
|
|
68
|
+
locale = null,
|
|
69
|
+
locales = null,
|
|
70
|
+
children = null,
|
|
71
|
+
extraMessages = null
|
|
72
|
+
}) {
|
|
73
|
+
const previousLocales = useLocales();
|
|
74
|
+
const {
|
|
75
|
+
locale: previousLocale = null,
|
|
76
|
+
messages: previousMessages = null
|
|
77
|
+
} = use(IntlContext) || {};
|
|
78
|
+
const messages = useMemo(() => {
|
|
79
|
+
const currentMessages = intlManager$1.getMessages(locale);
|
|
80
|
+
return {
|
|
81
|
+
...currentMessages,
|
|
82
|
+
...extraMessages,
|
|
83
|
+
...(previousLocale === locale ? previousMessages : null)
|
|
84
|
+
};
|
|
90
85
|
}, [locale, previousLocale, previousMessages, extraMessages]);
|
|
91
|
-
|
|
86
|
+
const onError = useCallback(err => {
|
|
92
87
|
if (err.code === 'MISSING_TRANSLATION') {
|
|
93
88
|
return;
|
|
94
89
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micromag/intl",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.74",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"keywords": [
|
|
@@ -63,17 +63,17 @@
|
|
|
63
63
|
"build": "rm -rf ./locale && npm run intl && ../../scripts/prepare-package.sh --types"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"react": "^
|
|
67
|
-
"react-dom": "^
|
|
66
|
+
"react": "^19.0.0",
|
|
67
|
+
"react-dom": "^19.0.0"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
|
-
"react": "^
|
|
71
|
-
"react-dom": "^
|
|
70
|
+
"react": "^19.0.0",
|
|
71
|
+
"react-dom": "^19.0.0"
|
|
72
72
|
},
|
|
73
73
|
"dependencies": {
|
|
74
74
|
"@babel/runtime": "^7.28.6",
|
|
75
75
|
"@formatjs/cli": "^6.2.7",
|
|
76
|
-
"@micromag/core": "^0.4.
|
|
76
|
+
"@micromag/core": "^0.4.74",
|
|
77
77
|
"commander": "^12.0.0",
|
|
78
78
|
"fs-extra": "^11.2.0",
|
|
79
79
|
"gettext-parser": "^7.0.1",
|
|
@@ -90,6 +90,6 @@
|
|
|
90
90
|
"access": "public",
|
|
91
91
|
"registry": "https://registry.npmjs.org/"
|
|
92
92
|
},
|
|
93
|
-
"gitHead": "
|
|
93
|
+
"gitHead": "fe510ee87845280d0760cb292aef9d2eb69e67c1",
|
|
94
94
|
"types": "es/index.d.ts"
|
|
95
95
|
}
|