next-translate 2.3.1 → 2.4.0-canary.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/_store/package.json +7 -0
- package/_store.d.ts +6 -0
- package/index.d.ts +5 -0
- package/lib/cjs/_store.js +22 -0
- package/lib/cjs/useTranslation.js +6 -5
- package/lib/esm/_store.js +20 -0
- package/lib/esm/useTranslation.js +6 -5
- package/package.json +3 -3
- package/lib/cjs/withTranslationClientComponent.js +0 -71
- package/lib/esm/withTranslationClientComponent.js +0 -45
- package/withTranslationClientComponent/package.json +0 -7
- package/withTranslationClientComponent.d.ts +0 -3
package/_store.d.ts
ADDED
package/index.d.ts
CHANGED
|
@@ -3,6 +3,11 @@ import type { NextConfig } from 'next';
|
|
|
3
3
|
export interface TranslationQuery {
|
|
4
4
|
[name: string]: any;
|
|
5
5
|
}
|
|
6
|
+
export type DataForStoreType = {
|
|
7
|
+
lang: string;
|
|
8
|
+
namespaces: Record<string, I18nDictionary>;
|
|
9
|
+
config: LoaderConfig;
|
|
10
|
+
};
|
|
6
11
|
export type Translate = <T extends unknown = string>(i18nKey: string | TemplateStringsArray, query?: TranslationQuery | null, options?: {
|
|
7
12
|
returnObjects?: boolean;
|
|
8
13
|
fallback?: string | string[];
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
var data;
|
|
15
|
+
exports.default = {
|
|
16
|
+
set: function (storeData) {
|
|
17
|
+
data = __assign(__assign({}, storeData), { namespaces: __assign(__assign({}, ((data === null || data === void 0 ? void 0 : data.namespaces) || {})), (storeData.namespaces || {})) });
|
|
18
|
+
},
|
|
19
|
+
get: function () {
|
|
20
|
+
return data;
|
|
21
|
+
},
|
|
22
|
+
};
|
|
@@ -15,6 +15,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
var react_1 = require("react");
|
|
18
|
+
var _store_1 = __importDefault(require("./_store"));
|
|
18
19
|
var wrapTWithDefaultNs_1 = __importDefault(require("./wrapTWithDefaultNs"));
|
|
19
20
|
var context_1 = __importDefault(require("./context"));
|
|
20
21
|
var transCore_1 = __importDefault(require("./transCore"));
|
|
@@ -23,11 +24,11 @@ function useTranslationInPages(defaultNS) {
|
|
|
23
24
|
return (0, react_1.useMemo)(function () { return (__assign(__assign({}, ctx), { t: (0, wrapTWithDefaultNs_1.default)(ctx.t, defaultNS) })); }, [ctx, defaultNS]);
|
|
24
25
|
}
|
|
25
26
|
function useTranslationAppDir(defaultNS) {
|
|
26
|
-
var _a =
|
|
27
|
-
var localesToIgnore =
|
|
27
|
+
var _a = _store_1.default.get(), lang = _a.lang, namespaces = _a.namespaces, config = _a.config;
|
|
28
|
+
var localesToIgnore = config.localesToIgnore || ['default'];
|
|
28
29
|
var ignoreLang = localesToIgnore.includes(lang);
|
|
29
30
|
var t = (0, transCore_1.default)({
|
|
30
|
-
config:
|
|
31
|
+
config: config,
|
|
31
32
|
allNamespaces: namespaces,
|
|
32
33
|
pluralRules: new Intl.PluralRules(ignoreLang ? undefined : lang),
|
|
33
34
|
lang: lang,
|
|
@@ -35,8 +36,8 @@ function useTranslationAppDir(defaultNS) {
|
|
|
35
36
|
return { t: (0, wrapTWithDefaultNs_1.default)(t, defaultNS), lang: lang };
|
|
36
37
|
}
|
|
37
38
|
function useTranslation(defaultNS) {
|
|
38
|
-
var
|
|
39
|
-
var useT =
|
|
39
|
+
var appDir = _store_1.default.get();
|
|
40
|
+
var useT = (appDir === null || appDir === void 0 ? void 0 : appDir.config) ? useTranslationAppDir : useTranslationInPages;
|
|
40
41
|
return useT(defaultNS);
|
|
41
42
|
}
|
|
42
43
|
exports.default = useTranslation;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var data;
|
|
13
|
+
export default {
|
|
14
|
+
set: function (storeData) {
|
|
15
|
+
data = __assign(__assign({}, storeData), { namespaces: __assign(__assign({}, ((data === null || data === void 0 ? void 0 : data.namespaces) || {})), (storeData.namespaces || {})) });
|
|
16
|
+
},
|
|
17
|
+
get: function () {
|
|
18
|
+
return data;
|
|
19
|
+
},
|
|
20
|
+
};
|
|
@@ -10,6 +10,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import { useContext, useMemo } from 'react';
|
|
13
|
+
import store from './_store';
|
|
13
14
|
import wrapTWithDefaultNs from './wrapTWithDefaultNs';
|
|
14
15
|
import I18nContext from './context';
|
|
15
16
|
import transCore from './transCore';
|
|
@@ -18,11 +19,11 @@ function useTranslationInPages(defaultNS) {
|
|
|
18
19
|
return useMemo(function () { return (__assign(__assign({}, ctx), { t: wrapTWithDefaultNs(ctx.t, defaultNS) })); }, [ctx, defaultNS]);
|
|
19
20
|
}
|
|
20
21
|
function useTranslationAppDir(defaultNS) {
|
|
21
|
-
var _a =
|
|
22
|
-
var localesToIgnore =
|
|
22
|
+
var _a = store.get(), lang = _a.lang, namespaces = _a.namespaces, config = _a.config;
|
|
23
|
+
var localesToIgnore = config.localesToIgnore || ['default'];
|
|
23
24
|
var ignoreLang = localesToIgnore.includes(lang);
|
|
24
25
|
var t = transCore({
|
|
25
|
-
config:
|
|
26
|
+
config: config,
|
|
26
27
|
allNamespaces: namespaces,
|
|
27
28
|
pluralRules: new Intl.PluralRules(ignoreLang ? undefined : lang),
|
|
28
29
|
lang: lang,
|
|
@@ -30,7 +31,7 @@ function useTranslationAppDir(defaultNS) {
|
|
|
30
31
|
return { t: wrapTWithDefaultNs(t, defaultNS), lang: lang };
|
|
31
32
|
}
|
|
32
33
|
export default function useTranslation(defaultNS) {
|
|
33
|
-
var
|
|
34
|
-
var useT =
|
|
34
|
+
var appDir = store.get();
|
|
35
|
+
var useT = (appDir === null || appDir === void 0 ? void 0 : appDir.config) ? useTranslationAppDir : useTranslationInPages;
|
|
35
36
|
return useT(defaultNS);
|
|
36
37
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "next-translate",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0-canary.2",
|
|
4
4
|
"description": "Tiny and powerful i18n tools (Next plugin + API) to translate your Next.js pages.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -42,12 +42,12 @@
|
|
|
42
42
|
"useTranslation*",
|
|
43
43
|
"setLanguage*",
|
|
44
44
|
"index*",
|
|
45
|
-
"
|
|
45
|
+
"_store*"
|
|
46
46
|
],
|
|
47
47
|
"scripts": {
|
|
48
48
|
"build": "yarn clean && cross-env NODE_ENV=production && yarn tsc",
|
|
49
49
|
"clean": "yarn clean:build && yarn clean:examples",
|
|
50
|
-
"clean:build": "rm -rf lib appWith* Dynamic* I18n* index context loadNa* setLang* Trans* useT* withT* getP* getC* *.d.ts getT transC* wrapT* types formatElements
|
|
50
|
+
"clean:build": "rm -rf lib appWith* Dynamic* I18n* index context loadNa* setLang* Trans* useT* withT* getP* getC* *.d.ts getT transC* wrapT* types formatElements _store*",
|
|
51
51
|
"clean:examples": "rm -rf examples/**/.next && rm -rf examples/**/node_modules && rm -rf examples/**/yarn.lock",
|
|
52
52
|
"example": "yarn example:complex",
|
|
53
53
|
"example:basic": "yarn build && yarn --cwd examples/basic && yarn --cwd examples/basic dev",
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
-
}
|
|
19
|
-
Object.defineProperty(o, k2, desc);
|
|
20
|
-
}) : (function(o, m, k, k2) {
|
|
21
|
-
if (k2 === undefined) k2 = k;
|
|
22
|
-
o[k2] = m[k];
|
|
23
|
-
}));
|
|
24
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
-
}) : function(o, v) {
|
|
27
|
-
o["default"] = v;
|
|
28
|
-
});
|
|
29
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
-
if (mod && mod.__esModule) return mod;
|
|
31
|
-
var result = {};
|
|
32
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
-
__setModuleDefault(result, mod);
|
|
34
|
-
return result;
|
|
35
|
-
};
|
|
36
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
-
var react_1 = __importStar(require("react"));
|
|
38
|
-
function withTranslationClientComponent(Component, i18nConfig) {
|
|
39
|
-
function WithTranslation(props) {
|
|
40
|
-
var forceUpdate = (0, react_1.useReducer)(function () { return []; })[1];
|
|
41
|
-
var isClient = typeof window !== 'undefined';
|
|
42
|
-
if (isClient && !window.__NEXT_TRANSLATE__) {
|
|
43
|
-
window.__NEXT_TRANSLATE__ = {
|
|
44
|
-
lang: i18nConfig.defaultLocale,
|
|
45
|
-
namespaces: {},
|
|
46
|
-
};
|
|
47
|
-
update(false);
|
|
48
|
-
}
|
|
49
|
-
if (isClient && !window.i18nConfig) {
|
|
50
|
-
window.i18nConfig = i18nConfig;
|
|
51
|
-
}
|
|
52
|
-
(0, react_1.useEffect)(update);
|
|
53
|
-
function update(rerender) {
|
|
54
|
-
if (rerender === void 0) { rerender = true; }
|
|
55
|
-
var el = document.getElementById('__NEXT_TRANSLATE_DATA__');
|
|
56
|
-
if (!el)
|
|
57
|
-
return;
|
|
58
|
-
var _a = el.dataset, lang = _a.lang, ns = _a.ns, pathname = _a.pathname;
|
|
59
|
-
var shouldRerender = lang !== window.__NEXT_TRANSLATE__.lang ||
|
|
60
|
-
pathname !== window.__NEXT_TRANSLATE__.pathname;
|
|
61
|
-
window.__NEXT_TRANSLATE__ = { lang: lang, namespaces: JSON.parse(ns), pathname: pathname };
|
|
62
|
-
if (shouldRerender && rerender)
|
|
63
|
-
forceUpdate();
|
|
64
|
-
}
|
|
65
|
-
return react_1.default.createElement(Component, __assign({}, props));
|
|
66
|
-
}
|
|
67
|
-
var displayName = Component.displayName || Component.name || 'Component';
|
|
68
|
-
WithTranslation.displayName = "withTranslationClientComponent(".concat(displayName, ")");
|
|
69
|
-
return WithTranslation;
|
|
70
|
-
}
|
|
71
|
-
exports.default = withTranslationClientComponent;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
import React, { useEffect, useReducer } from 'react';
|
|
13
|
-
export default function withTranslationClientComponent(Component, i18nConfig) {
|
|
14
|
-
function WithTranslation(props) {
|
|
15
|
-
var forceUpdate = useReducer(function () { return []; })[1];
|
|
16
|
-
var isClient = typeof window !== 'undefined';
|
|
17
|
-
if (isClient && !window.__NEXT_TRANSLATE__) {
|
|
18
|
-
window.__NEXT_TRANSLATE__ = {
|
|
19
|
-
lang: i18nConfig.defaultLocale,
|
|
20
|
-
namespaces: {},
|
|
21
|
-
};
|
|
22
|
-
update(false);
|
|
23
|
-
}
|
|
24
|
-
if (isClient && !window.i18nConfig) {
|
|
25
|
-
window.i18nConfig = i18nConfig;
|
|
26
|
-
}
|
|
27
|
-
useEffect(update);
|
|
28
|
-
function update(rerender) {
|
|
29
|
-
if (rerender === void 0) { rerender = true; }
|
|
30
|
-
var el = document.getElementById('__NEXT_TRANSLATE_DATA__');
|
|
31
|
-
if (!el)
|
|
32
|
-
return;
|
|
33
|
-
var _a = el.dataset, lang = _a.lang, ns = _a.ns, pathname = _a.pathname;
|
|
34
|
-
var shouldRerender = lang !== window.__NEXT_TRANSLATE__.lang ||
|
|
35
|
-
pathname !== window.__NEXT_TRANSLATE__.pathname;
|
|
36
|
-
window.__NEXT_TRANSLATE__ = { lang: lang, namespaces: JSON.parse(ns), pathname: pathname };
|
|
37
|
-
if (shouldRerender && rerender)
|
|
38
|
-
forceUpdate();
|
|
39
|
-
}
|
|
40
|
-
return React.createElement(Component, __assign({}, props));
|
|
41
|
-
}
|
|
42
|
-
var displayName = Component.displayName || Component.name || 'Component';
|
|
43
|
-
WithTranslation.displayName = "withTranslationClientComponent(".concat(displayName, ")");
|
|
44
|
-
return WithTranslation;
|
|
45
|
-
}
|