@bleedingdev/modern-js-plugin-i18n 3.2.0-ultramodern.11 → 3.2.0-ultramodern.110
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/cli/index.js +32 -5
- package/dist/cjs/runtime/I18nLink.js +21 -22
- package/dist/cjs/runtime/context.js +41 -10
- package/dist/cjs/runtime/hooks.js +17 -10
- package/dist/cjs/runtime/i18n/backend/config.js +9 -5
- package/dist/cjs/runtime/i18n/backend/defaults.js +15 -10
- package/dist/cjs/runtime/i18n/backend/defaults.node.js +16 -11
- package/dist/cjs/runtime/i18n/backend/index.js +9 -5
- package/dist/cjs/runtime/i18n/backend/middleware.common.js +9 -5
- package/dist/cjs/runtime/i18n/backend/middleware.js +9 -5
- package/dist/cjs/runtime/i18n/backend/middleware.node.js +13 -9
- package/dist/cjs/runtime/i18n/backend/sdk-backend.js +9 -5
- package/dist/cjs/runtime/i18n/backend/sdk-event.js +16 -11
- package/dist/cjs/runtime/i18n/detection/config.js +9 -5
- package/dist/cjs/runtime/i18n/detection/index.js +9 -5
- package/dist/cjs/runtime/i18n/detection/middleware.js +9 -5
- package/dist/cjs/runtime/i18n/detection/middleware.node.js +9 -5
- package/dist/cjs/runtime/i18n/index.js +9 -5
- package/dist/cjs/runtime/i18n/instance.js +17 -37
- package/dist/cjs/runtime/i18n/react-i18next.js +53 -0
- package/dist/cjs/runtime/i18n/utils.js +9 -17
- package/dist/cjs/runtime/index.js +27 -15
- package/dist/cjs/runtime/routerAdapter.js +167 -0
- package/dist/cjs/runtime/utils.js +72 -99
- package/dist/cjs/server/index.js +69 -13
- package/dist/cjs/shared/deepMerge.js +12 -8
- package/dist/cjs/shared/detection.js +9 -5
- package/dist/cjs/shared/localisedUrls.js +241 -0
- package/dist/cjs/shared/utils.js +15 -11
- package/dist/esm/cli/index.mjs +23 -0
- package/dist/esm/runtime/I18nLink.mjs +12 -17
- package/dist/esm/runtime/context.mjs +34 -7
- package/dist/esm/runtime/hooks.mjs +9 -6
- package/dist/esm/runtime/i18n/backend/defaults.mjs +1 -1
- package/dist/esm/runtime/i18n/backend/defaults.node.mjs +2 -2
- package/dist/esm/runtime/i18n/backend/middleware.node.mjs +3 -3
- package/dist/esm/runtime/i18n/instance.mjs +1 -19
- package/dist/esm/runtime/i18n/react-i18next.mjs +15 -0
- package/dist/esm/runtime/i18n/utils.mjs +0 -12
- package/dist/esm/runtime/index.mjs +19 -11
- package/dist/esm/runtime/routerAdapter.mjs +129 -0
- package/dist/esm/runtime/utils.mjs +11 -30
- package/dist/esm/server/index.mjs +53 -7
- package/dist/esm/shared/localisedUrls.mjs +191 -0
- package/dist/esm-node/cli/index.mjs +23 -0
- package/dist/esm-node/runtime/I18nLink.mjs +12 -17
- package/dist/esm-node/runtime/context.mjs +34 -7
- package/dist/esm-node/runtime/hooks.mjs +9 -6
- package/dist/esm-node/runtime/i18n/backend/defaults.mjs +1 -1
- package/dist/esm-node/runtime/i18n/backend/defaults.node.mjs +2 -2
- package/dist/esm-node/runtime/i18n/backend/middleware.node.mjs +3 -3
- package/dist/esm-node/runtime/i18n/instance.mjs +1 -19
- package/dist/esm-node/runtime/i18n/react-i18next.mjs +16 -0
- package/dist/esm-node/runtime/i18n/utils.mjs +0 -12
- package/dist/esm-node/runtime/index.mjs +19 -11
- package/dist/esm-node/runtime/routerAdapter.mjs +130 -0
- package/dist/esm-node/runtime/utils.mjs +11 -30
- package/dist/esm-node/server/index.mjs +53 -7
- package/dist/esm-node/shared/localisedUrls.mjs +192 -0
- package/dist/types/cli/index.d.ts +1 -0
- package/dist/types/runtime/I18nLink.d.ts +15 -0
- package/dist/types/runtime/context.d.ts +3 -0
- package/dist/types/runtime/hooks.d.ts +4 -2
- package/dist/types/runtime/i18n/backend/middleware.node.d.ts +1 -1
- package/dist/types/runtime/i18n/instance.d.ts +4 -6
- package/dist/types/runtime/i18n/react-i18next.d.ts +7 -0
- package/dist/types/runtime/index.d.ts +1 -0
- package/dist/types/runtime/routerAdapter.d.ts +26 -0
- package/dist/types/runtime/types.d.ts +1 -1
- package/dist/types/runtime/utils.d.ts +2 -7
- package/dist/types/server/index.d.ts +6 -0
- package/dist/types/shared/localisedUrls.d.ts +13 -0
- package/dist/types/shared/type.d.ts +12 -0
- package/package.json +23 -27
- package/rstest.config.mts +39 -0
- package/src/cli/index.ts +44 -1
- package/src/runtime/I18nLink.tsx +13 -17
- package/src/runtime/context.tsx +45 -7
- package/src/runtime/hooks.ts +13 -4
- package/src/runtime/i18n/backend/defaults.node.ts +2 -2
- package/src/runtime/i18n/backend/defaults.ts +3 -1
- package/src/runtime/i18n/backend/middleware.node.ts +1 -1
- package/src/runtime/i18n/instance.ts +3 -30
- package/src/runtime/i18n/react-i18next.ts +25 -0
- package/src/runtime/i18n/utils.ts +4 -26
- package/src/runtime/index.tsx +23 -10
- package/src/runtime/routerAdapter.tsx +333 -0
- package/src/runtime/types.ts +1 -1
- package/src/runtime/utils.ts +22 -34
- package/src/server/index.ts +117 -10
- package/src/shared/localisedUrls.ts +393 -0
- package/src/shared/type.ts +12 -0
- package/tests/i18nUtils.test.ts +52 -0
- package/tests/localisedUrls.test.ts +312 -0
- package/tests/routerAdapter.test.tsx +452 -0
- package/dist/esm/rslib-runtime.mjs +0 -18
- package/dist/esm-node/rslib-runtime.mjs +0 -19
package/dist/cjs/cli/index.js
CHANGED
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -41,7 +45,9 @@ const external_fs_namespaceObject = require("fs");
|
|
|
41
45
|
var external_fs_default = /*#__PURE__*/ __webpack_require__.n(external_fs_namespaceObject);
|
|
42
46
|
const external_path_namespaceObject = require("path");
|
|
43
47
|
var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
|
|
48
|
+
const localisedUrls_js_namespaceObject = require("../shared/localisedUrls.js");
|
|
44
49
|
const utils_js_namespaceObject = require("../shared/utils.js");
|
|
50
|
+
require("../runtime/types.js");
|
|
45
51
|
function hasJsonFiles(dirPath) {
|
|
46
52
|
try {
|
|
47
53
|
if (!external_fs_default().existsSync(dirPath) || !external_fs_default().statSync(dirPath).isDirectory()) return false;
|
|
@@ -120,6 +126,27 @@ const i18nPlugin = (options = {})=>({
|
|
|
120
126
|
plugins
|
|
121
127
|
};
|
|
122
128
|
});
|
|
129
|
+
api.modifyFileSystemRoutes(({ entrypoint, routes })=>{
|
|
130
|
+
if (!localeDetection) return {
|
|
131
|
+
entrypoint,
|
|
132
|
+
routes
|
|
133
|
+
};
|
|
134
|
+
const localeDetectionOptions = (0, utils_js_namespaceObject.getLocaleDetectionOptions)(entrypoint.entryName, localeDetection);
|
|
135
|
+
const { localePathRedirect, languages = [], localisedUrls } = localeDetectionOptions;
|
|
136
|
+
if (!localePathRedirect || 0 === languages.length) return {
|
|
137
|
+
entrypoint,
|
|
138
|
+
routes
|
|
139
|
+
};
|
|
140
|
+
const localisedUrlsConfig = (0, localisedUrls_js_namespaceObject.resolveLocalisedUrlsConfig)(localisedUrls);
|
|
141
|
+
if (!localisedUrlsConfig.enabled) return {
|
|
142
|
+
entrypoint,
|
|
143
|
+
routes
|
|
144
|
+
};
|
|
145
|
+
return {
|
|
146
|
+
entrypoint,
|
|
147
|
+
routes: (0, localisedUrls_js_namespaceObject.applyLocalisedUrlsToRoutes)(routes, languages, localisedUrlsConfig.map)
|
|
148
|
+
};
|
|
149
|
+
});
|
|
123
150
|
api._internalServerPlugins(({ plugins })=>{
|
|
124
151
|
const { serverRoutes, metaName } = api.getAppContext();
|
|
125
152
|
const normalizedConfig = api.getNormalizedConfig();
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -28,28 +32,23 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
28
32
|
default: ()=>runtime_I18nLink
|
|
29
33
|
});
|
|
30
34
|
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
31
|
-
const router_namespaceObject = require("@modern-js/runtime/router");
|
|
32
35
|
const external_context_js_namespaceObject = require("./context.js");
|
|
36
|
+
const external_routerAdapter_js_namespaceObject = require("./routerAdapter.js");
|
|
33
37
|
const external_utils_js_namespaceObject = require("./utils.js");
|
|
34
|
-
const useRouterHooks = ()=>{
|
|
35
|
-
const inRouter = (0, router_namespaceObject.useInRouterContext)();
|
|
36
|
-
return {
|
|
37
|
-
Link: inRouter ? router_namespaceObject.Link : null,
|
|
38
|
-
params: inRouter ? (0, router_namespaceObject.useParams)() : {},
|
|
39
|
-
hasRouter: inRouter
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
38
|
const I18nLink = ({ to, children, ...props })=>{
|
|
43
|
-
const { Link, params, hasRouter } =
|
|
44
|
-
const { language, supportedLanguages } = (0, external_context_js_namespaceObject.useModernI18n)();
|
|
39
|
+
const { Link, params, hasRouter } = (0, external_routerAdapter_js_namespaceObject.useI18nRouterAdapter)();
|
|
40
|
+
const { language, supportedLanguages, localisedUrls } = (0, external_context_js_namespaceObject.useModernI18n)();
|
|
45
41
|
const currentLang = language;
|
|
46
|
-
const localizedTo = (0, external_utils_js_namespaceObject.buildLocalizedUrl)(to, currentLang, supportedLanguages);
|
|
42
|
+
const localizedTo = (0, external_utils_js_namespaceObject.buildLocalizedUrl)(to, currentLang, supportedLanguages, localisedUrls);
|
|
47
43
|
if ('development' === process.env.NODE_ENV && hasRouter && !params.lang) console.warn("I18nLink is being used outside of a :lang dynamic route context. This may cause unexpected behavior. Please ensure I18nLink is used within a route that has a :lang parameter.");
|
|
48
|
-
if (!hasRouter || !Link)
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
44
|
+
if (!hasRouter || !Link) {
|
|
45
|
+
const { prefetch: _prefetch, preload: _preload, ...anchorProps } = props;
|
|
46
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("a", {
|
|
47
|
+
href: localizedTo,
|
|
48
|
+
...anchorProps,
|
|
49
|
+
children: children
|
|
50
|
+
});
|
|
51
|
+
}
|
|
53
52
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Link, {
|
|
54
53
|
to: localizedTo,
|
|
55
54
|
...props,
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -31,6 +35,7 @@ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
|
31
35
|
const runtime_namespaceObject = require("@modern-js/runtime");
|
|
32
36
|
const external_react_namespaceObject = require("react");
|
|
33
37
|
const index_js_namespaceObject = require("./i18n/detection/index.js");
|
|
38
|
+
const external_routerAdapter_js_namespaceObject = require("./routerAdapter.js");
|
|
34
39
|
const external_utils_js_namespaceObject = require("./utils.js");
|
|
35
40
|
const ModernI18nContext = /*#__PURE__*/ (0, external_react_namespaceObject.createContext)(null);
|
|
36
41
|
const ModernI18nProvider = ({ children, value })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ModernI18nContext.Provider, {
|
|
@@ -40,9 +45,33 @@ const ModernI18nProvider = ({ children, value })=>/*#__PURE__*/ (0, jsx_runtime_
|
|
|
40
45
|
const useModernI18n = ()=>{
|
|
41
46
|
const context = (0, external_react_namespaceObject.useContext)(ModernI18nContext);
|
|
42
47
|
if (!context) throw new Error('useModernI18n must be used within a ModernI18nProvider');
|
|
43
|
-
const { language: contextLanguage, i18nInstance, languages, localePathRedirect, ignoreRedirectRoutes, updateLanguage } = context;
|
|
44
|
-
const { navigate, location, hasRouter } = (0,
|
|
45
|
-
const
|
|
48
|
+
const { language: contextLanguage, i18nInstance, languages, localePathRedirect, ignoreRedirectRoutes, localisedUrls, updateLanguage } = context;
|
|
49
|
+
const { navigate, location, hasRouter } = (0, external_routerAdapter_js_namespaceObject.useI18nRouterAdapter)();
|
|
50
|
+
const pathLanguage = (0, external_react_namespaceObject.useMemo)(()=>{
|
|
51
|
+
if (!localePathRedirect || !location?.pathname) return;
|
|
52
|
+
const detected = (0, external_utils_js_namespaceObject.detectLanguageFromPath)(location.pathname, languages || [], localePathRedirect);
|
|
53
|
+
return detected.detected ? detected.language : void 0;
|
|
54
|
+
}, [
|
|
55
|
+
languages,
|
|
56
|
+
localePathRedirect,
|
|
57
|
+
location?.pathname
|
|
58
|
+
]);
|
|
59
|
+
const currentLanguage = pathLanguage || contextLanguage;
|
|
60
|
+
(0, external_react_namespaceObject.useEffect)(()=>{
|
|
61
|
+
if (!pathLanguage || pathLanguage === contextLanguage) return;
|
|
62
|
+
updateLanguage?.(pathLanguage);
|
|
63
|
+
i18nInstance?.setLang?.(pathLanguage);
|
|
64
|
+
i18nInstance?.changeLanguage?.(pathLanguage);
|
|
65
|
+
if ((0, runtime_namespaceObject.isBrowser)()) {
|
|
66
|
+
const detectionOptions = i18nInstance.options?.detection;
|
|
67
|
+
(0, index_js_namespaceObject.cacheUserLanguage)(i18nInstance, pathLanguage, detectionOptions);
|
|
68
|
+
}
|
|
69
|
+
}, [
|
|
70
|
+
contextLanguage,
|
|
71
|
+
i18nInstance,
|
|
72
|
+
pathLanguage,
|
|
73
|
+
updateLanguage
|
|
74
|
+
]);
|
|
46
75
|
const changeLanguage = (0, external_react_namespaceObject.useCallback)(async (newLang)=>{
|
|
47
76
|
try {
|
|
48
77
|
if (!newLang || 'string' != typeof newLang) throw new Error('Language must be a non-empty string');
|
|
@@ -59,7 +88,7 @@ const useModernI18n = ()=>{
|
|
|
59
88
|
const pathLanguage = (0, external_utils_js_namespaceObject.detectLanguageFromPath)(currentPath, languages || [], localePathRedirect);
|
|
60
89
|
if (pathLanguage.detected && pathLanguage.language === newLang) return;
|
|
61
90
|
if (!(0, external_utils_js_namespaceObject.shouldIgnoreRedirect)(relativePath, languages || [], ignoreRedirectRoutes)) {
|
|
62
|
-
const newPath = (0, external_utils_js_namespaceObject.buildLocalizedUrl)(relativePath, newLang, languages || []);
|
|
91
|
+
const newPath = (0, external_utils_js_namespaceObject.buildLocalizedUrl)(relativePath, newLang, languages || [], localisedUrls);
|
|
63
92
|
const newUrl = entryPath + newPath + location.search + location.hash;
|
|
64
93
|
await navigate(newUrl, {
|
|
65
94
|
replace: true
|
|
@@ -72,7 +101,7 @@ const useModernI18n = ()=>{
|
|
|
72
101
|
const pathLanguage = (0, external_utils_js_namespaceObject.detectLanguageFromPath)(currentPath, languages || [], localePathRedirect);
|
|
73
102
|
if (pathLanguage.detected && pathLanguage.language === newLang) return;
|
|
74
103
|
if (!(0, external_utils_js_namespaceObject.shouldIgnoreRedirect)(relativePath, languages || [], ignoreRedirectRoutes)) {
|
|
75
|
-
const newPath = (0, external_utils_js_namespaceObject.buildLocalizedUrl)(relativePath, newLang, languages || []);
|
|
104
|
+
const newPath = (0, external_utils_js_namespaceObject.buildLocalizedUrl)(relativePath, newLang, languages || [], localisedUrls);
|
|
76
105
|
const newUrl = entryPath + newPath + window.location.search + window.location.hash;
|
|
77
106
|
window.history.pushState(null, '', newUrl);
|
|
78
107
|
}
|
|
@@ -87,6 +116,7 @@ const useModernI18n = ()=>{
|
|
|
87
116
|
updateLanguage,
|
|
88
117
|
localePathRedirect,
|
|
89
118
|
ignoreRedirectRoutes,
|
|
119
|
+
localisedUrls,
|
|
90
120
|
languages,
|
|
91
121
|
hasRouter,
|
|
92
122
|
navigate,
|
|
@@ -127,6 +157,7 @@ const useModernI18n = ()=>{
|
|
|
127
157
|
changeLanguage,
|
|
128
158
|
i18nInstance,
|
|
129
159
|
supportedLanguages: languages || [],
|
|
160
|
+
localisedUrls,
|
|
130
161
|
isLanguageSupported,
|
|
131
162
|
isResourcesReady
|
|
132
163
|
};
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -33,6 +37,7 @@ const runtime_namespaceObject = require("@modern-js/runtime");
|
|
|
33
37
|
const external_react_namespaceObject = require("react");
|
|
34
38
|
const sdk_event_js_namespaceObject = require("./i18n/backend/sdk-event.js");
|
|
35
39
|
const index_js_namespaceObject = require("./i18n/detection/index.js");
|
|
40
|
+
const external_routerAdapter_js_namespaceObject = require("./routerAdapter.js");
|
|
36
41
|
const external_utils_js_namespaceObject = require("./utils.js");
|
|
37
42
|
function createMinimalI18nInstance(language) {
|
|
38
43
|
const minimalInstance = {
|
|
@@ -45,7 +50,7 @@ function createMinimalI18nInstance(language) {
|
|
|
45
50
|
};
|
|
46
51
|
return minimalInstance;
|
|
47
52
|
}
|
|
48
|
-
function createContextValue(lang, i18nInstance, entryName, languages, localePathRedirect, ignoreRedirectRoutes, setLang) {
|
|
53
|
+
function createContextValue(lang, i18nInstance, entryName, languages, localePathRedirect, ignoreRedirectRoutes, localisedUrls, setLang) {
|
|
49
54
|
const instance = i18nInstance || createMinimalI18nInstance(lang);
|
|
50
55
|
return {
|
|
51
56
|
language: lang,
|
|
@@ -54,6 +59,7 @@ function createContextValue(lang, i18nInstance, entryName, languages, localePath
|
|
|
54
59
|
languages,
|
|
55
60
|
localePathRedirect,
|
|
56
61
|
ignoreRedirectRoutes,
|
|
62
|
+
localisedUrls,
|
|
57
63
|
updateLanguage: setLang
|
|
58
64
|
};
|
|
59
65
|
}
|
|
@@ -103,9 +109,9 @@ function useSdkResourcesLoader(i18nInstance, setForceUpdate) {
|
|
|
103
109
|
setForceUpdate
|
|
104
110
|
]);
|
|
105
111
|
}
|
|
106
|
-
function useClientSideRedirect(i18nInstance, localePathRedirect, languages, fallbackLanguage, ignoreRedirectRoutes) {
|
|
112
|
+
function useClientSideRedirect(i18nInstance, localePathRedirect, languages, fallbackLanguage, ignoreRedirectRoutes, localisedUrls) {
|
|
107
113
|
const hasRedirectedRef = (0, external_react_namespaceObject.useRef)(false);
|
|
108
|
-
const { navigate, location, hasRouter } = (0,
|
|
114
|
+
const { navigate, location, hasRouter } = (0, external_routerAdapter_js_namespaceObject.useI18nRouterAdapter)();
|
|
109
115
|
(0, external_react_namespaceObject.useEffect)(()=>{
|
|
110
116
|
if ('browser' !== process.env.MODERN_TARGET) return;
|
|
111
117
|
if (!localePathRedirect || !i18nInstance) return;
|
|
@@ -124,7 +130,7 @@ function useClientSideRedirect(i18nInstance, localePathRedirect, languages, fall
|
|
|
124
130
|
const pathDetection = (0, external_utils_js_namespaceObject.detectLanguageFromPath)(currentPathname, languages, localePathRedirect);
|
|
125
131
|
if (pathDetection.detected) return;
|
|
126
132
|
const targetLanguage = i18nInstance.language || fallbackLanguage || languages[0] || 'en';
|
|
127
|
-
const newPath = (0, external_utils_js_namespaceObject.buildLocalizedUrl)(relativePath, targetLanguage, languages);
|
|
133
|
+
const newPath = (0, external_utils_js_namespaceObject.buildLocalizedUrl)(relativePath, targetLanguage, languages, localisedUrls);
|
|
128
134
|
const newUrl = entryPath + newPath + currentSearch + currentHash;
|
|
129
135
|
if (newUrl !== currentPathname + currentSearch + currentHash) {
|
|
130
136
|
hasRedirectedRef.current = true;
|
|
@@ -141,7 +147,8 @@ function useClientSideRedirect(i18nInstance, localePathRedirect, languages, fall
|
|
|
141
147
|
i18nInstance,
|
|
142
148
|
languages,
|
|
143
149
|
fallbackLanguage,
|
|
144
|
-
ignoreRedirectRoutes
|
|
150
|
+
ignoreRedirectRoutes,
|
|
151
|
+
localisedUrls
|
|
145
152
|
]);
|
|
146
153
|
}
|
|
147
154
|
function useLanguageSync(i18nInstance, localePathRedirect, languages, runtimeContextRef, prevLangRef, setLang) {
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -23,17 +27,13 @@ var __webpack_require__ = {};
|
|
|
23
27
|
})();
|
|
24
28
|
var __webpack_exports__ = {};
|
|
25
29
|
__webpack_require__.r(__webpack_exports__);
|
|
26
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
DEFAULT_I18NEXT_BACKEND_OPTIONS: ()=>DEFAULT_I18NEXT_BACKEND_OPTIONS,
|
|
28
|
-
convertBackendOptions: ()=>convertBackendOptions
|
|
29
|
-
});
|
|
30
30
|
const DEFAULT_I18NEXT_BACKEND_OPTIONS = {
|
|
31
31
|
loadPath: '/locales/{{lng}}/{{ns}}.json',
|
|
32
32
|
addPath: '/locales/{{lng}}/{{ns}}.json'
|
|
33
33
|
};
|
|
34
34
|
function convertPath(path) {
|
|
35
35
|
if (!path) return path;
|
|
36
|
-
if (path.startsWith('/')) return `${window.__assetPrefix__ || ''}${path}`;
|
|
36
|
+
if (path.startsWith('/')) return "u" < typeof window ? path : `${window.__assetPrefix__ || ''}${path}`;
|
|
37
37
|
return path;
|
|
38
38
|
}
|
|
39
39
|
function convertBackendOptions(options) {
|
|
@@ -45,6 +45,11 @@ function convertBackendOptions(options) {
|
|
|
45
45
|
if (converted.addPath) converted.addPath = convertPath(converted.addPath);
|
|
46
46
|
return converted;
|
|
47
47
|
}
|
|
48
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
49
|
+
convertBackendOptions: ()=>convertBackendOptions
|
|
50
|
+
}, {
|
|
51
|
+
DEFAULT_I18NEXT_BACKEND_OPTIONS: DEFAULT_I18NEXT_BACKEND_OPTIONS
|
|
52
|
+
});
|
|
48
53
|
exports.DEFAULT_I18NEXT_BACKEND_OPTIONS = __webpack_exports__.DEFAULT_I18NEXT_BACKEND_OPTIONS;
|
|
49
54
|
exports.convertBackendOptions = __webpack_exports__.convertBackendOptions;
|
|
50
55
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -23,13 +27,9 @@ var __webpack_require__ = {};
|
|
|
23
27
|
})();
|
|
24
28
|
var __webpack_exports__ = {};
|
|
25
29
|
__webpack_require__.r(__webpack_exports__);
|
|
26
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
DEFAULT_I18NEXT_BACKEND_OPTIONS: ()=>DEFAULT_I18NEXT_BACKEND_OPTIONS,
|
|
28
|
-
convertBackendOptions: ()=>convertBackendOptions
|
|
29
|
-
});
|
|
30
30
|
const DEFAULT_I18NEXT_BACKEND_OPTIONS = {
|
|
31
|
-
loadPath: './locales/{{lng}}/{{ns}}.json',
|
|
32
|
-
addPath: './locales/{{lng}}/{{ns}}.json'
|
|
31
|
+
loadPath: './config/public/locales/{{lng}}/{{ns}}.json',
|
|
32
|
+
addPath: './config/public/locales/{{lng}}/{{ns}}.json'
|
|
33
33
|
};
|
|
34
34
|
function convertPath(path) {
|
|
35
35
|
if (!path) return path;
|
|
@@ -45,6 +45,11 @@ function convertBackendOptions(options) {
|
|
|
45
45
|
if (converted.addPath) converted.addPath = convertPath(converted.addPath);
|
|
46
46
|
return converted;
|
|
47
47
|
}
|
|
48
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
49
|
+
convertBackendOptions: ()=>convertBackendOptions
|
|
50
|
+
}, {
|
|
51
|
+
DEFAULT_I18NEXT_BACKEND_OPTIONS: DEFAULT_I18NEXT_BACKEND_OPTIONS
|
|
52
|
+
});
|
|
48
53
|
exports.DEFAULT_I18NEXT_BACKEND_OPTIONS = __webpack_exports__.DEFAULT_I18NEXT_BACKEND_OPTIONS;
|
|
49
54
|
exports.convertBackendOptions = __webpack_exports__.convertBackendOptions;
|
|
50
55
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -37,14 +41,14 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
37
41
|
HttpBackendWithSave: ()=>HttpBackendWithSave,
|
|
38
42
|
useI18nextBackend: ()=>useI18nextBackend
|
|
39
43
|
});
|
|
40
|
-
const
|
|
41
|
-
var
|
|
44
|
+
const cjs_namespaceObject = require("i18next-fs-backend/cjs");
|
|
45
|
+
var cjs_default = /*#__PURE__*/ __webpack_require__.n(cjs_namespaceObject);
|
|
42
46
|
const external_middleware_common_js_namespaceObject = require("./middleware.common.js");
|
|
43
|
-
class FsBackendWithSave extends
|
|
47
|
+
class FsBackendWithSave extends cjs_default() {
|
|
44
48
|
save(_language, _namespace, _data) {}
|
|
45
49
|
}
|
|
46
50
|
const HttpBackendWithSave = FsBackendWithSave;
|
|
47
|
-
const useI18nextBackend = (i18nInstance, backend)=>(0, external_middleware_common_js_namespaceObject.useI18nextBackendCommon)(i18nInstance, FsBackendWithSave,
|
|
51
|
+
const useI18nextBackend = (i18nInstance, backend)=>(0, external_middleware_common_js_namespaceObject.useI18nextBackendCommon)(i18nInstance, FsBackendWithSave, cjs_default(), backend);
|
|
48
52
|
exports.FsBackendWithSave = __webpack_exports__.FsBackendWithSave;
|
|
49
53
|
exports.HttpBackendWithSave = __webpack_exports__.HttpBackendWithSave;
|
|
50
54
|
exports.useI18nextBackend = __webpack_exports__.useI18nextBackend;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -23,12 +27,6 @@ var __webpack_require__ = {};
|
|
|
23
27
|
})();
|
|
24
28
|
var __webpack_exports__ = {};
|
|
25
29
|
__webpack_require__.r(__webpack_exports__);
|
|
26
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
I18N_SDK_RESOURCES_LOADED_EVENT: ()=>I18N_SDK_RESOURCES_LOADED_EVENT,
|
|
28
|
-
createI18nSdkBackendId: ()=>createI18nSdkBackendId,
|
|
29
|
-
getI18nSdkBackendId: ()=>getI18nSdkBackendId,
|
|
30
|
-
setI18nSdkBackendId: ()=>setI18nSdkBackendId
|
|
31
|
-
});
|
|
32
30
|
const I18N_SDK_RESOURCES_LOADED_EVENT = 'i18n-sdk-resources-loaded';
|
|
33
31
|
const I18N_SDK_BACKEND_ID_KEY = '__modern_i18n_sdk_backend_id__';
|
|
34
32
|
let sdkBackendInstanceCount = 0;
|
|
@@ -49,6 +47,13 @@ function getI18nSdkBackendId(target) {
|
|
|
49
47
|
if (!target || 'object' != typeof target) return;
|
|
50
48
|
return target[I18N_SDK_BACKEND_ID_KEY];
|
|
51
49
|
}
|
|
50
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
51
|
+
createI18nSdkBackendId: ()=>createI18nSdkBackendId,
|
|
52
|
+
getI18nSdkBackendId: ()=>getI18nSdkBackendId,
|
|
53
|
+
setI18nSdkBackendId: ()=>setI18nSdkBackendId
|
|
54
|
+
}, {
|
|
55
|
+
I18N_SDK_RESOURCES_LOADED_EVENT: I18N_SDK_RESOURCES_LOADED_EVENT
|
|
56
|
+
});
|
|
52
57
|
exports.I18N_SDK_RESOURCES_LOADED_EVENT = __webpack_exports__.I18N_SDK_RESOURCES_LOADED_EVENT;
|
|
53
58
|
exports.createI18nSdkBackendId = __webpack_exports__.createI18nSdkBackendId;
|
|
54
59
|
exports.getI18nSdkBackendId = __webpack_exports__.getI18nSdkBackendId;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|