react-i18next 11.11.2 → 11.13.0
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 +17 -0
- package/dist/amd/react-i18next.js +14 -9
- package/dist/amd/react-i18next.min.js +1 -1
- package/dist/commonjs/Trans.js +11 -7
- package/dist/commonjs/useTranslation.js +3 -2
- package/dist/es/Trans.js +11 -7
- package/dist/es/useTranslation.js +3 -2
- package/dist/umd/react-i18next.js +14 -9
- package/dist/umd/react-i18next.min.js +1 -1
- package/index.d.ts +1 -0
- package/package.json +2 -2
- package/react-i18next.js +14 -9
- package/react-i18next.min.js +1 -1
- package/src/Trans.js +18 -12
- package/src/useTranslation.js +6 -2
- package/ts4.1/index.d.ts +74 -19
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
### 11.13.0
|
|
2
|
+
|
|
3
|
+
- feat(types): add type-safe support to keyPrefix option [1390](https://github.com/i18next/react-i18next/pull/1390)
|
|
4
|
+
- feat(types): allow key separator augmentation [1367](https://github.com/i18next/react-i18next/pull/1367)
|
|
5
|
+
|
|
6
|
+
### 11.12.0
|
|
7
|
+
|
|
8
|
+
- feature: add key prefix support to useTranslation hook [1371](https://github.com/i18next/react-i18next/pull/1371)
|
|
9
|
+
|
|
10
|
+
### 11.11.4
|
|
11
|
+
|
|
12
|
+
- typescript: add returnNull and returnEptyString options to TypeOptions interface [1341](https://github.com/i18next/react-i18next/pull/1341)
|
|
13
|
+
|
|
14
|
+
### 11.11.3
|
|
15
|
+
|
|
16
|
+
- Trans: parse first, then interpolate [1345](https://github.com/i18next/react-i18next/pull/1345)
|
|
17
|
+
|
|
1
18
|
### 11.11.2
|
|
2
19
|
|
|
3
20
|
- feat(typings): support readonly namespaces in TFuncKey [1340](https://github.com/i18next/react-i18next/pull/1340)
|
|
@@ -565,8 +565,9 @@ define(['exports', 'react'], function (exports, React) { 'use strict';
|
|
|
565
565
|
}
|
|
566
566
|
|
|
567
567
|
getData(children);
|
|
568
|
-
var
|
|
569
|
-
|
|
568
|
+
var ast = c.parse("<0>".concat(targetString, "</0>"));
|
|
569
|
+
|
|
570
|
+
var opts = _objectSpread2(_objectSpread2({}, data), combinedTOpts);
|
|
570
571
|
|
|
571
572
|
function renderInner(child, node, rootReactNode) {
|
|
572
573
|
var childs = getChildren(child);
|
|
@@ -585,7 +586,7 @@ define(['exports', 'react'], function (exports, React) { 'use strict';
|
|
|
585
586
|
var reactNodes = getAsArray(reactNode);
|
|
586
587
|
var astNodes = getAsArray(astNode);
|
|
587
588
|
return astNodes.reduce(function (mem, node, i) {
|
|
588
|
-
var translationContent = node.children && node.children[0] && node.children[0].content;
|
|
589
|
+
var translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);
|
|
589
590
|
|
|
590
591
|
if (node.type === 'tag') {
|
|
591
592
|
var tmp = reactNodes[parseInt(node.name, 10)];
|
|
@@ -600,7 +601,8 @@ define(['exports', 'react'], function (exports, React) { 'use strict';
|
|
|
600
601
|
var isKnownComponent = _typeof(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);
|
|
601
602
|
|
|
602
603
|
if (typeof child === 'string') {
|
|
603
|
-
|
|
604
|
+
var value = i18n.services.interpolator.interpolate(child, opts, i18n.language);
|
|
605
|
+
mem.push(value);
|
|
604
606
|
} else if (hasChildren(child) || isValidTranslationWithChildren) {
|
|
605
607
|
var inner = renderInner(child, node, rootReactNode);
|
|
606
608
|
pushTranslatedJSX(child, inner, mem, i);
|
|
@@ -649,12 +651,14 @@ define(['exports', 'react'], function (exports, React) { 'use strict';
|
|
|
649
651
|
} else if (node.type === 'text') {
|
|
650
652
|
var wrapTextNodes = i18nOptions.transWrapTextNodes;
|
|
651
653
|
|
|
654
|
+
var _content = i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
655
|
+
|
|
652
656
|
if (wrapTextNodes) {
|
|
653
657
|
mem.push(React__default.createElement(wrapTextNodes, {
|
|
654
658
|
key: "".concat(node.name, "-").concat(i)
|
|
655
|
-
},
|
|
659
|
+
}, _content));
|
|
656
660
|
} else {
|
|
657
|
-
mem.push(
|
|
661
|
+
mem.push(_content);
|
|
658
662
|
}
|
|
659
663
|
}
|
|
660
664
|
|
|
@@ -664,7 +668,7 @@ define(['exports', 'react'], function (exports, React) { 'use strict';
|
|
|
664
668
|
|
|
665
669
|
var result = mapAST([{
|
|
666
670
|
dummy: true,
|
|
667
|
-
children: children
|
|
671
|
+
children: children || []
|
|
668
672
|
}], ast, getAsArray(children || []));
|
|
669
673
|
return getChildren(result[0]);
|
|
670
674
|
}
|
|
@@ -755,7 +759,8 @@ define(['exports', 'react'], function (exports, React) { 'use strict';
|
|
|
755
759
|
|
|
756
760
|
var i18nOptions = _objectSpread2(_objectSpread2(_objectSpread2({}, getDefaults()), i18n.options.react), props);
|
|
757
761
|
|
|
758
|
-
var useSuspense = i18nOptions.useSuspense
|
|
762
|
+
var useSuspense = i18nOptions.useSuspense,
|
|
763
|
+
keyPrefix = i18nOptions.keyPrefix;
|
|
759
764
|
var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;
|
|
760
765
|
namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];
|
|
761
766
|
if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);
|
|
@@ -764,7 +769,7 @@ define(['exports', 'react'], function (exports, React) { 'use strict';
|
|
|
764
769
|
});
|
|
765
770
|
|
|
766
771
|
function getT() {
|
|
767
|
-
return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0]);
|
|
772
|
+
return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);
|
|
768
773
|
}
|
|
769
774
|
|
|
770
775
|
var _useState = React.useState(getT),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
define(["exports","react"],(function(e,n){"use strict";var t="default"in n?n.default:n;function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){c(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function u(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==t)return;var r,i,a=[],o=!0,c=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(a.push(r.value),!n||a.length!==n);o=!0);}catch(e){c=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(c)throw i}}return a}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return l(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return l(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var f={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},p=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function d(e){var n={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=e.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(n.name=t[1],(f[t[1]]||"/"===e.charAt(e.length-2))&&(n.voidElement=!0),n.name.startsWith("!--"))){var r=e.indexOf("--\x3e");return{type:"comment",comment:-1!==r?e.slice(4,r):""}}for(var i=new RegExp(p),a=null;null!==(a=i.exec(e));)if(a[0].trim())if(a[1]){var o=a[1].trim(),c=[o,""];o.indexOf("=")>-1&&(c=o.split("=")),n.attrs[c[0]]=c[1],i.lastIndex--}else a[2]&&(n.attrs[a[2]]=a[3].trim().substring(1,a[3].length-1));return n}var m=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,h=/^\s*$/,g=Object.create(null);var v,y=function(e,n){n||(n={}),n.components||(n.components=g);var t,r=[],i=[],a=-1,o=!1;if(0!==e.indexOf("<")){var c=e.indexOf("<");r.push({type:"text",content:-1===c?e:e.substring(0,c)})}return e.replace(m,(function(c,s){if(o){if(c!=="</"+t.name+">")return;o=!1}var u,l="/"!==c.charAt(1),f=c.startsWith("\x3c!--"),p=s+c.length,m=e.charAt(p);if(f){var g=d(c);return a<0?(r.push(g),r):((u=i[a]).children.push(g),r)}if(l&&(a++,"tag"===(t=d(c)).type&&n.components[t.name]&&(t.type="component",o=!0),t.voidElement||o||!m||"<"===m||t.children.push({type:"text",content:e.slice(p,e.indexOf("<",p))}),0===a&&r.push(t),(u=i[a-1])&&u.children.push(t),i[a]=t),(!l||t.voidElement)&&(a>-1&&(t.voidElement||t.name===c.slice(2,-1))&&(a--,t=-1===a?r:i[a]),!o&&"<"!==m&&m)){u=-1===a?r:i[a].children;var v=e.indexOf("<",p),y=e.slice(p,-1===v?void 0:v);h.test(y)&&(y=" "),(v>-1&&a+u.length>=0||" "!==y)&&u.push({type:"text",content:y})}})),r},b={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0},O=t.createContext();function w(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};b=i(i({},b),e)}function j(){return b}var x=function(){function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.usedNamespaces={}}var n,t,r;return n=e,(t=[{key:"addUsedNamespaces",value:function(e){var n=this;e.forEach((function(e){n.usedNamespaces[e]||(n.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}])&&o(n.prototype,t),r&&o(n,r),e}();function E(e){v=e}function S(){return v}var N={type:"3rdParty",init:function(e){w(e.options.react),E(e)}};function I(e){return function(n){return new Promise((function(t){var r=k();e.getInitialProps?e.getInitialProps(n).then((function(e){t(i(i({},e),r))})):t(r)}))}}function k(){var e=S(),n=e.reportNamespaces?e.reportNamespaces.getUsedNamespaces():[],t={},r={};return e.languages.forEach((function(t){r[t]={},n.forEach((function(n){r[t][n]=e.getResourceBundle(t,n)||{}}))})),t.initialI18nStore=r,t.initialLanguage=e.language,t}function P(){if(console&&console.warn){for(var e,n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];"string"==typeof t[0]&&(t[0]="react-i18next:: ".concat(t[0])),(e=console).warn.apply(e,t)}}var R={};function C(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&R[n[0]]||("string"==typeof n[0]&&(R[n[0]]=new Date),P.apply(void 0,n))}function A(e,n,t){e.loadNamespaces(n,(function(){if(e.isInitialized)t();else{e.on("initialized",(function n(){setTimeout((function(){e.off("initialized",n)}),0),t()}))}}))}function T(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!n.languages||!n.languages.length)return C("i18n.languages were undefined or empty",n.languages),!0;var r=n.languages[0],i=!!n.options&&n.options.fallbackLng,a=n.languages[n.languages.length-1];if("cimode"===r.toLowerCase())return!0;var o=function(e,t){var r=n.services.backendConnector.state["".concat(e,"|").concat(t)];return-1===r||2===r};return!(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!o(n.isLanguageChangingTo,e))&&(!!n.hasResourceBundle(r,e)||(!n.services.backendConnector.backend||!(!o(r,e)||i&&!o(a,e))))}function z(e){return e.displayName||e.name||("string"==typeof e&&e.length>0?e:"Unknown")}var L=["format"],D=["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"];function B(e,n){if(!e)return!1;var t=e.props?e.props.children:e.children;return n?t.length>0:!!t}function U(e){return e?e&&e.children?e.children:e.props&&e.props.children:[]}function V(e){return Array.isArray(e)?e:[e]}function K(e,n,r,o,c){if(""===n)return[];var s=o.transKeepBasicHtmlNodesFor||[],u=n&&new RegExp(s.join("|")).test(n);if(!e&&!u)return[n];var l={};!function e(n){V(n).forEach((function(n){"string"!=typeof n&&(B(n)?e(U(n)):"object"!==a(n)||t.isValidElement(n)||Object.assign(l,n))}))}(e);var f=r.services.interpolator.interpolate(n,i(i({},l),c),r.language),p=y("<0>".concat(f,"</0>"));function d(e,n,r){var i=U(e),a=h(i,n.children,r);return function(e){return"[object Array]"===Object.prototype.toString.call(e)&&e.every((function(e){return t.isValidElement(e)}))}(i)&&0===a.length?i:a}function m(e,n,r,a,o){e.dummy&&(e.children=n),r.push(t.cloneElement(e,i(i({},e.props),{},{key:a}),o?void 0:n))}function h(n,r,c){var l=V(n);return V(r).reduce((function(n,r,f){var p,g,v,y=r.children&&r.children[0]&&r.children[0].content;if("tag"===r.type){var b=l[parseInt(r.name,10)];!b&&1===c.length&&c[0][r.name]&&(b=c[0][r.name]),b||(b={});var O=0!==Object.keys(r.attrs).length?(p={props:r.attrs},(v=i({},g=b)).props=Object.assign(p.props,g.props),v):b,w=t.isValidElement(O),j=w&&B(r,!0)&&!r.voidElement,x=u&&"object"===a(O)&&O.dummy&&!w,E="object"===a(e)&&null!==e&&Object.hasOwnProperty.call(e,r.name);if("string"==typeof O)n.push(O);else if(B(O)||j){m(O,d(O,r,c),n,f)}else if(x){var S=h(l,r.children,c);n.push(t.cloneElement(O,i(i({},O.props),{},{key:f}),S))}else if(Number.isNaN(parseFloat(r.name))){if(E)m(O,d(O,r,c),n,f,r.voidElement);else if(o.transSupportBasicHtmlNodes&&s.indexOf(r.name)>-1)if(r.voidElement)n.push(t.createElement(r.name,{key:"".concat(r.name,"-").concat(f)}));else{var N=h(l,r.children,c);n.push(t.createElement(r.name,{key:"".concat(r.name,"-").concat(f)},N))}else if(r.voidElement)n.push("<".concat(r.name," />"));else{var I=h(l,r.children,c);n.push("<".concat(r.name,">").concat(I,"</").concat(r.name,">"))}}else if("object"!==a(O)||w)1===r.children.length&&y?n.push(t.cloneElement(O,i(i({},O.props),{},{key:f}),y)):n.push(t.cloneElement(O,i(i({},O.props),{},{key:f})));else{var k=r.children[0]?y:null;k&&n.push(k)}}else if("text"===r.type){var P=o.transWrapTextNodes;P?n.push(t.createElement(P,{key:"".concat(r.name,"-").concat(f)},r.content)):n.push(r.content)}return n}),[])}return U(h([{dummy:!0,children:e}],p,V(e||[]))[0])}function W(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.i18n,a=n.useContext(O)||{},o=a.i18n,c=a.defaultNS,s=r||o||S();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new x),!s){C("You will need to pass in an i18next instance by using initReactI18next");var l=function(e){return Array.isArray(e)?e[e.length-1]:e},f=[l,{},!1];return f.t=l,f.i18n={},f.ready=!1,f}s.options.react&&void 0!==s.options.react.wait&&C("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var p=i(i(i({},j()),s.options.react),t),d=p.useSuspense,m=e||c||s.options&&s.options.defaultNS;m="string"==typeof m?[m]:m||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(m);var h=(s.isInitialized||s.initializedStoreOnce)&&m.every((function(e){return T(e,s,p)}));function g(){return s.getFixedT(null,"fallback"===p.nsMode?m:m[0])}var v=n.useState(g),y=u(v,2),b=y[0],w=y[1],E=n.useRef(!0);n.useEffect((function(){var e=p.bindI18n,n=p.bindI18nStore;function t(){E.current&&w(g)}return E.current=!0,h||d||A(s,m,(function(){E.current&&w(g)})),e&&s&&s.on(e,t),n&&s&&s.store.on(n,t),function(){E.current=!1,e&&s&&e.split(" ").forEach((function(e){return s.off(e,t)})),n&&s&&n.split(" ").forEach((function(e){return s.store.off(e,t)}))}}),[s,m.join()]);var N=n.useRef(!0);n.useEffect((function(){E.current&&!N.current&&w(g),N.current=!1}),[s]);var I=[b,s,h];if(I.t=b,I.i18n=s,I.ready=h,h)return I;if(!h&&!d)return I;throw new Promise((function(e){A(s,m,(function(){e()}))}))}var F=["forwardedRef"];var H=["ns","children"];function M(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.i18n,a=n.useContext(O)||{},o=a.i18n,c=i||o||S();c.options&&c.options.isClone||(e&&!c.initializedStoreOnce&&(c.services.resourceStore.data=e,c.options.ns=Object.values(e).reduce((function(e,n){return Object.keys(n).forEach((function(n){e.indexOf(n)<0&&e.push(n)})),e}),c.options.ns),c.initializedStoreOnce=!0,c.isInitialized=!0),t&&!c.initializedLanguageOnce&&(c.changeLanguage(t),c.initializedLanguageOnce=!0))}var $=["initialI18nStore","initialLanguage"];e.I18nContext=O,e.I18nextProvider=function(e){var t=e.i18n,r=e.defaultNS,i=e.children,a=n.useMemo((function(){return{i18n:t,defaultNS:r}}),[t,r]);return n.createElement(O.Provider,{value:a},i)},e.Trans=function(e){var r=e.children,o=e.count,c=e.parent,u=e.i18nKey,l=e.tOptions,f=void 0===l?{}:l,p=e.values,d=e.defaults,m=e.components,h=e.ns,g=e.i18n,v=e.t,y=s(e,D),b=n.useContext(O)||{},w=b.i18n,x=b.defaultNS,E=g||w||S();if(!E)return C("You will need to pass in an i18next instance by using i18nextReactModule"),r;var N=v||E.t.bind(E)||function(e){return e},I=i(i({},j()),E.options&&E.options.react),k=h||N.ns||x||E.options&&E.options.defaultNS;k="string"==typeof k?[k]:k||["translation"];var R=d||function e(n,r){if(!n)return"";var i="",o=V(n),c=r.transKeepBasicHtmlNodesFor||[];return o.forEach((function(n,o){if("string"==typeof n)i+="".concat(n);else if(t.isValidElement(n)){var u=Object.keys(n.props).length,l=c.indexOf(n.type)>-1,f=n.props.children;if(!f&&l&&0===u)i+="<".concat(n.type,"/>");else if(f||l&&0===u)if(n.props.i18nIsDynamicList)i+="<".concat(o,"></").concat(o,">");else if(l&&1===u&&"string"==typeof f)i+="<".concat(n.type,">").concat(f,"</").concat(n.type,">");else{var p=e(f,r);i+="<".concat(o,">").concat(p,"</").concat(o,">")}else i+="<".concat(o,"></").concat(o,">")}else if(null===n)P("Trans: the passed in value is invalid - seems you passed in a null child.");else if("object"===a(n)){var d=n.format,m=s(n,L),h=Object.keys(m);if(1===h.length){var g=d?"".concat(h[0],", ").concat(d):h[0];i+="{{".concat(g,"}}")}else P("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else P("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",n)})),i}(r,I)||I.transEmptyNodeValue||u,A=I.hashTransKey,T=u||(A?A(R):R),z=p?f.interpolation:{interpolation:i(i({},f.interpolation),{},{prefix:"#$?",suffix:"?$#"})},B=i(i(i(i({},f),{},{count:o},p),z),{},{defaultValue:R,ns:k}),U=K(m||r,T?N(T,B):R,E,I,B),W=void 0!==c?c:I.defaultTransParent;return W?t.createElement(W,y,U):U},e.Translation=function(e){var n=e.ns,t=e.children,r=u(W(n,s(e,H)),3),i=r[0],a=r[1],o=r[2];return t(i,{i18n:a,lng:a.language},o)},e.composeInitialProps=I,e.date=function(){return""},e.getDefaults=j,e.getI18n=S,e.getInitialProps=k,e.initReactI18next=N,e.number=function(){return""},e.plural=function(){return""},e.select=function(){return""},e.selectOrdinal=function(){return""},e.setDefaults=w,e.setI18n=E,e.time=function(){return""},e.useSSR=M,e.useTranslation=W,e.withSSR=function(){return function(e){function n(n){var r=n.initialI18nStore,a=n.initialLanguage,o=s(n,$);return M(r,a),t.createElement(e,i({},o))}return n.getInitialProps=I(e),n.displayName="withI18nextSSR(".concat(z(e),")"),n.WrappedComponent=e,n}},e.withTranslation=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(r){function a(a){var o=a.forwardedRef,c=s(a,F),l=u(W(e,c),3),f=l[0],p=l[1],d=l[2],m=i(i({},c),{},{t:f,i18n:p,tReady:d});return n.withRef&&o?m.ref=o:!n.withRef&&o&&(m.forwardedRef=o),t.createElement(r,m)}a.displayName="withI18nextTranslation(".concat(z(r),")"),a.WrappedComponent=r;return n.withRef?t.forwardRef((function(e,n){return t.createElement(a,Object.assign({},e,{forwardedRef:n}))})):a}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
define(["exports","react"],(function(e,n){"use strict";var t="default"in n?n.default:n;function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){c(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function u(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==t)return;var r,i,a=[],o=!0,c=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(a.push(r.value),!n||a.length!==n);o=!0);}catch(e){c=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(c)throw i}}return a}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return l(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return l(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var f={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},p=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function d(e){var n={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=e.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(n.name=t[1],(f[t[1]]||"/"===e.charAt(e.length-2))&&(n.voidElement=!0),n.name.startsWith("!--"))){var r=e.indexOf("--\x3e");return{type:"comment",comment:-1!==r?e.slice(4,r):""}}for(var i=new RegExp(p),a=null;null!==(a=i.exec(e));)if(a[0].trim())if(a[1]){var o=a[1].trim(),c=[o,""];o.indexOf("=")>-1&&(c=o.split("=")),n.attrs[c[0]]=c[1],i.lastIndex--}else a[2]&&(n.attrs[a[2]]=a[3].trim().substring(1,a[3].length-1));return n}var m=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,g=/^\s*$/,h=Object.create(null);var v,y=function(e,n){n||(n={}),n.components||(n.components=h);var t,r=[],i=[],a=-1,o=!1;if(0!==e.indexOf("<")){var c=e.indexOf("<");r.push({type:"text",content:-1===c?e:e.substring(0,c)})}return e.replace(m,(function(c,s){if(o){if(c!=="</"+t.name+">")return;o=!1}var u,l="/"!==c.charAt(1),f=c.startsWith("\x3c!--"),p=s+c.length,m=e.charAt(p);if(f){var h=d(c);return a<0?(r.push(h),r):((u=i[a]).children.push(h),r)}if(l&&(a++,"tag"===(t=d(c)).type&&n.components[t.name]&&(t.type="component",o=!0),t.voidElement||o||!m||"<"===m||t.children.push({type:"text",content:e.slice(p,e.indexOf("<",p))}),0===a&&r.push(t),(u=i[a-1])&&u.children.push(t),i[a]=t),(!l||t.voidElement)&&(a>-1&&(t.voidElement||t.name===c.slice(2,-1))&&(a--,t=-1===a?r:i[a]),!o&&"<"!==m&&m)){u=-1===a?r:i[a].children;var v=e.indexOf("<",p),y=e.slice(p,-1===v?void 0:v);g.test(y)&&(y=" "),(v>-1&&a+u.length>=0||" "!==y)&&u.push({type:"text",content:y})}})),r},b={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0},O=t.createContext();function w(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};b=i(i({},b),e)}function x(){return b}var j=function(){function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.usedNamespaces={}}var n,t,r;return n=e,(t=[{key:"addUsedNamespaces",value:function(e){var n=this;e.forEach((function(e){n.usedNamespaces[e]||(n.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}])&&o(n.prototype,t),r&&o(n,r),e}();function E(e){v=e}function S(){return v}var N={type:"3rdParty",init:function(e){w(e.options.react),E(e)}};function I(e){return function(n){return new Promise((function(t){var r=k();e.getInitialProps?e.getInitialProps(n).then((function(e){t(i(i({},e),r))})):t(r)}))}}function k(){var e=S(),n=e.reportNamespaces?e.reportNamespaces.getUsedNamespaces():[],t={},r={};return e.languages.forEach((function(t){r[t]={},n.forEach((function(n){r[t][n]=e.getResourceBundle(t,n)||{}}))})),t.initialI18nStore=r,t.initialLanguage=e.language,t}function P(){if(console&&console.warn){for(var e,n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];"string"==typeof t[0]&&(t[0]="react-i18next:: ".concat(t[0])),(e=console).warn.apply(e,t)}}var R={};function C(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&R[n[0]]||("string"==typeof n[0]&&(R[n[0]]=new Date),P.apply(void 0,n))}function A(e,n,t){e.loadNamespaces(n,(function(){if(e.isInitialized)t();else{e.on("initialized",(function n(){setTimeout((function(){e.off("initialized",n)}),0),t()}))}}))}function T(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!n.languages||!n.languages.length)return C("i18n.languages were undefined or empty",n.languages),!0;var r=n.languages[0],i=!!n.options&&n.options.fallbackLng,a=n.languages[n.languages.length-1];if("cimode"===r.toLowerCase())return!0;var o=function(e,t){var r=n.services.backendConnector.state["".concat(e,"|").concat(t)];return-1===r||2===r};return!(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!o(n.isLanguageChangingTo,e))&&(!!n.hasResourceBundle(r,e)||(!n.services.backendConnector.backend||!(!o(r,e)||i&&!o(a,e))))}function z(e){return e.displayName||e.name||("string"==typeof e&&e.length>0?e:"Unknown")}var L=["format"],D=["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"];function B(e,n){if(!e)return!1;var t=e.props?e.props.children:e.children;return n?t.length>0:!!t}function U(e){return e?e&&e.children?e.children:e.props&&e.props.children:[]}function V(e){return Array.isArray(e)?e:[e]}function K(e,n,r,o,c){if(""===n)return[];var s=o.transKeepBasicHtmlNodesFor||[],u=n&&new RegExp(s.join("|")).test(n);if(!e&&!u)return[n];var l={};!function e(n){V(n).forEach((function(n){"string"!=typeof n&&(B(n)?e(U(n)):"object"!==a(n)||t.isValidElement(n)||Object.assign(l,n))}))}(e);var f=y("<0>".concat(n,"</0>")),p=i(i({},l),c);function d(e,n,r){var i=U(e),a=g(i,n.children,r);return function(e){return"[object Array]"===Object.prototype.toString.call(e)&&e.every((function(e){return t.isValidElement(e)}))}(i)&&0===a.length?i:a}function m(e,n,r,a,o){e.dummy&&(e.children=n),r.push(t.cloneElement(e,i(i({},e.props),{},{key:a}),o?void 0:n))}function g(n,c,l){var f=V(n);return V(c).reduce((function(n,c,h){var v,y,b,O=c.children&&c.children[0]&&c.children[0].content&&r.services.interpolator.interpolate(c.children[0].content,p,r.language);if("tag"===c.type){var w=f[parseInt(c.name,10)];!w&&1===l.length&&l[0][c.name]&&(w=l[0][c.name]),w||(w={});var x=0!==Object.keys(c.attrs).length?(v={props:c.attrs},(b=i({},y=w)).props=Object.assign(v.props,y.props),b):w,j=t.isValidElement(x),E=j&&B(c,!0)&&!c.voidElement,S=u&&"object"===a(x)&&x.dummy&&!j,N="object"===a(e)&&null!==e&&Object.hasOwnProperty.call(e,c.name);if("string"==typeof x){var I=r.services.interpolator.interpolate(x,p,r.language);n.push(I)}else if(B(x)||E){m(x,d(x,c,l),n,h)}else if(S){var k=g(f,c.children,l);n.push(t.cloneElement(x,i(i({},x.props),{},{key:h}),k))}else if(Number.isNaN(parseFloat(c.name))){if(N)m(x,d(x,c,l),n,h,c.voidElement);else if(o.transSupportBasicHtmlNodes&&s.indexOf(c.name)>-1)if(c.voidElement)n.push(t.createElement(c.name,{key:"".concat(c.name,"-").concat(h)}));else{var P=g(f,c.children,l);n.push(t.createElement(c.name,{key:"".concat(c.name,"-").concat(h)},P))}else if(c.voidElement)n.push("<".concat(c.name," />"));else{var R=g(f,c.children,l);n.push("<".concat(c.name,">").concat(R,"</").concat(c.name,">"))}}else if("object"!==a(x)||j)1===c.children.length&&O?n.push(t.cloneElement(x,i(i({},x.props),{},{key:h}),O)):n.push(t.cloneElement(x,i(i({},x.props),{},{key:h})));else{var C=c.children[0]?O:null;C&&n.push(C)}}else if("text"===c.type){var A=o.transWrapTextNodes,T=r.services.interpolator.interpolate(c.content,p,r.language);A?n.push(t.createElement(A,{key:"".concat(c.name,"-").concat(h)},T)):n.push(T)}return n}),[])}return U(g([{dummy:!0,children:e||[]}],f,V(e||[]))[0])}function W(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.i18n,a=n.useContext(O)||{},o=a.i18n,c=a.defaultNS,s=r||o||S();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new j),!s){C("You will need to pass in an i18next instance by using initReactI18next");var l=function(e){return Array.isArray(e)?e[e.length-1]:e},f=[l,{},!1];return f.t=l,f.i18n={},f.ready=!1,f}s.options.react&&void 0!==s.options.react.wait&&C("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var p=i(i(i({},x()),s.options.react),t),d=p.useSuspense,m=p.keyPrefix,g=e||c||s.options&&s.options.defaultNS;g="string"==typeof g?[g]:g||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(g);var h=(s.isInitialized||s.initializedStoreOnce)&&g.every((function(e){return T(e,s,p)}));function v(){return s.getFixedT(null,"fallback"===p.nsMode?g:g[0],m)}var y=n.useState(v),b=u(y,2),w=b[0],E=b[1],N=n.useRef(!0);n.useEffect((function(){var e=p.bindI18n,n=p.bindI18nStore;function t(){N.current&&E(v)}return N.current=!0,h||d||A(s,g,(function(){N.current&&E(v)})),e&&s&&s.on(e,t),n&&s&&s.store.on(n,t),function(){N.current=!1,e&&s&&e.split(" ").forEach((function(e){return s.off(e,t)})),n&&s&&n.split(" ").forEach((function(e){return s.store.off(e,t)}))}}),[s,g.join()]);var I=n.useRef(!0);n.useEffect((function(){N.current&&!I.current&&E(v),I.current=!1}),[s]);var k=[w,s,h];if(k.t=w,k.i18n=s,k.ready=h,h)return k;if(!h&&!d)return k;throw new Promise((function(e){A(s,g,(function(){e()}))}))}var F=["forwardedRef"];var H=["ns","children"];function M(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.i18n,a=n.useContext(O)||{},o=a.i18n,c=i||o||S();c.options&&c.options.isClone||(e&&!c.initializedStoreOnce&&(c.services.resourceStore.data=e,c.options.ns=Object.values(e).reduce((function(e,n){return Object.keys(n).forEach((function(n){e.indexOf(n)<0&&e.push(n)})),e}),c.options.ns),c.initializedStoreOnce=!0,c.isInitialized=!0),t&&!c.initializedLanguageOnce&&(c.changeLanguage(t),c.initializedLanguageOnce=!0))}var $=["initialI18nStore","initialLanguage"];e.I18nContext=O,e.I18nextProvider=function(e){var t=e.i18n,r=e.defaultNS,i=e.children,a=n.useMemo((function(){return{i18n:t,defaultNS:r}}),[t,r]);return n.createElement(O.Provider,{value:a},i)},e.Trans=function(e){var r=e.children,o=e.count,c=e.parent,u=e.i18nKey,l=e.tOptions,f=void 0===l?{}:l,p=e.values,d=e.defaults,m=e.components,g=e.ns,h=e.i18n,v=e.t,y=s(e,D),b=n.useContext(O)||{},w=b.i18n,j=b.defaultNS,E=h||w||S();if(!E)return C("You will need to pass in an i18next instance by using i18nextReactModule"),r;var N=v||E.t.bind(E)||function(e){return e},I=i(i({},x()),E.options&&E.options.react),k=g||N.ns||j||E.options&&E.options.defaultNS;k="string"==typeof k?[k]:k||["translation"];var R=d||function e(n,r){if(!n)return"";var i="",o=V(n),c=r.transKeepBasicHtmlNodesFor||[];return o.forEach((function(n,o){if("string"==typeof n)i+="".concat(n);else if(t.isValidElement(n)){var u=Object.keys(n.props).length,l=c.indexOf(n.type)>-1,f=n.props.children;if(!f&&l&&0===u)i+="<".concat(n.type,"/>");else if(f||l&&0===u)if(n.props.i18nIsDynamicList)i+="<".concat(o,"></").concat(o,">");else if(l&&1===u&&"string"==typeof f)i+="<".concat(n.type,">").concat(f,"</").concat(n.type,">");else{var p=e(f,r);i+="<".concat(o,">").concat(p,"</").concat(o,">")}else i+="<".concat(o,"></").concat(o,">")}else if(null===n)P("Trans: the passed in value is invalid - seems you passed in a null child.");else if("object"===a(n)){var d=n.format,m=s(n,L),g=Object.keys(m);if(1===g.length){var h=d?"".concat(g[0],", ").concat(d):g[0];i+="{{".concat(h,"}}")}else P("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else P("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",n)})),i}(r,I)||I.transEmptyNodeValue||u,A=I.hashTransKey,T=u||(A?A(R):R),z=p?f.interpolation:{interpolation:i(i({},f.interpolation),{},{prefix:"#$?",suffix:"?$#"})},B=i(i(i(i({},f),{},{count:o},p),z),{},{defaultValue:R,ns:k}),U=K(m||r,T?N(T,B):R,E,I,B),W=void 0!==c?c:I.defaultTransParent;return W?t.createElement(W,y,U):U},e.Translation=function(e){var n=e.ns,t=e.children,r=u(W(n,s(e,H)),3),i=r[0],a=r[1],o=r[2];return t(i,{i18n:a,lng:a.language},o)},e.composeInitialProps=I,e.date=function(){return""},e.getDefaults=x,e.getI18n=S,e.getInitialProps=k,e.initReactI18next=N,e.number=function(){return""},e.plural=function(){return""},e.select=function(){return""},e.selectOrdinal=function(){return""},e.setDefaults=w,e.setI18n=E,e.time=function(){return""},e.useSSR=M,e.useTranslation=W,e.withSSR=function(){return function(e){function n(n){var r=n.initialI18nStore,a=n.initialLanguage,o=s(n,$);return M(r,a),t.createElement(e,i({},o))}return n.getInitialProps=I(e),n.displayName="withI18nextSSR(".concat(z(e),")"),n.WrappedComponent=e,n}},e.withTranslation=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(r){function a(a){var o=a.forwardedRef,c=s(a,F),l=u(W(e,c),3),f=l[0],p=l[1],d=l[2],m=i(i({},c),{},{t:f,i18n:p,tReady:d});return n.withRef&&o?m.ref=o:!n.withRef&&o&&(m.forwardedRef=o),t.createElement(r,m)}a.displayName="withI18nextTranslation(".concat(z(r),")"),a.WrappedComponent=r;return n.withRef?t.forwardRef((function(e,n){return t.createElement(a,Object.assign({},e,{forwardedRef:n}))})):a}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/dist/commonjs/Trans.js
CHANGED
|
@@ -126,9 +126,10 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
getData(children);
|
|
129
|
-
var interpolatedString = i18n.services.interpolator.interpolate(targetString, _objectSpread(_objectSpread({}, data), combinedTOpts), i18n.language);
|
|
130
129
|
|
|
131
|
-
var ast = _htmlParseStringify["default"].parse("<0>".concat(
|
|
130
|
+
var ast = _htmlParseStringify["default"].parse("<0>".concat(targetString, "</0>"));
|
|
131
|
+
|
|
132
|
+
var opts = _objectSpread(_objectSpread({}, data), combinedTOpts);
|
|
132
133
|
|
|
133
134
|
function renderInner(child, node, rootReactNode) {
|
|
134
135
|
var childs = getChildren(child);
|
|
@@ -147,7 +148,7 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
147
148
|
var reactNodes = getAsArray(reactNode);
|
|
148
149
|
var astNodes = getAsArray(astNode);
|
|
149
150
|
return astNodes.reduce(function (mem, node, i) {
|
|
150
|
-
var translationContent = node.children && node.children[0] && node.children[0].content;
|
|
151
|
+
var translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);
|
|
151
152
|
|
|
152
153
|
if (node.type === 'tag') {
|
|
153
154
|
var tmp = reactNodes[parseInt(node.name, 10)];
|
|
@@ -164,7 +165,8 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
164
165
|
var isKnownComponent = (0, _typeof2["default"])(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);
|
|
165
166
|
|
|
166
167
|
if (typeof child === 'string') {
|
|
167
|
-
|
|
168
|
+
var value = i18n.services.interpolator.interpolate(child, opts, i18n.language);
|
|
169
|
+
mem.push(value);
|
|
168
170
|
} else if (hasChildren(child) || isValidTranslationWithChildren) {
|
|
169
171
|
var inner = renderInner(child, node, rootReactNode);
|
|
170
172
|
pushTranslatedJSX(child, inner, mem, i);
|
|
@@ -213,12 +215,14 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
213
215
|
} else if (node.type === 'text') {
|
|
214
216
|
var wrapTextNodes = i18nOptions.transWrapTextNodes;
|
|
215
217
|
|
|
218
|
+
var _content = i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
219
|
+
|
|
216
220
|
if (wrapTextNodes) {
|
|
217
221
|
mem.push(_react["default"].createElement(wrapTextNodes, {
|
|
218
222
|
key: "".concat(node.name, "-").concat(i)
|
|
219
|
-
},
|
|
223
|
+
}, _content));
|
|
220
224
|
} else {
|
|
221
|
-
mem.push(
|
|
225
|
+
mem.push(_content);
|
|
222
226
|
}
|
|
223
227
|
}
|
|
224
228
|
|
|
@@ -228,7 +232,7 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
228
232
|
|
|
229
233
|
var result = mapAST([{
|
|
230
234
|
dummy: true,
|
|
231
|
-
children: children
|
|
235
|
+
children: children || []
|
|
232
236
|
}], ast, getAsArray(children || []));
|
|
233
237
|
return getChildren(result[0]);
|
|
234
238
|
}
|
|
@@ -50,7 +50,8 @@ function useTranslation(ns) {
|
|
|
50
50
|
|
|
51
51
|
var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, (0, _context.getDefaults)()), i18n.options.react), props);
|
|
52
52
|
|
|
53
|
-
var useSuspense = i18nOptions.useSuspense
|
|
53
|
+
var useSuspense = i18nOptions.useSuspense,
|
|
54
|
+
keyPrefix = i18nOptions.keyPrefix;
|
|
54
55
|
var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;
|
|
55
56
|
namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];
|
|
56
57
|
if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);
|
|
@@ -59,7 +60,7 @@ function useTranslation(ns) {
|
|
|
59
60
|
});
|
|
60
61
|
|
|
61
62
|
function getT() {
|
|
62
|
-
return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0]);
|
|
63
|
+
return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
var _useState = (0, _react.useState)(getT),
|
package/dist/es/Trans.js
CHANGED
|
@@ -105,8 +105,9 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
getData(children);
|
|
108
|
-
var
|
|
109
|
-
|
|
108
|
+
var ast = HTML.parse("<0>".concat(targetString, "</0>"));
|
|
109
|
+
|
|
110
|
+
var opts = _objectSpread(_objectSpread({}, data), combinedTOpts);
|
|
110
111
|
|
|
111
112
|
function renderInner(child, node, rootReactNode) {
|
|
112
113
|
var childs = getChildren(child);
|
|
@@ -125,7 +126,7 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
125
126
|
var reactNodes = getAsArray(reactNode);
|
|
126
127
|
var astNodes = getAsArray(astNode);
|
|
127
128
|
return astNodes.reduce(function (mem, node, i) {
|
|
128
|
-
var translationContent = node.children && node.children[0] && node.children[0].content;
|
|
129
|
+
var translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);
|
|
129
130
|
|
|
130
131
|
if (node.type === 'tag') {
|
|
131
132
|
var tmp = reactNodes[parseInt(node.name, 10)];
|
|
@@ -140,7 +141,8 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
140
141
|
var isKnownComponent = _typeof(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);
|
|
141
142
|
|
|
142
143
|
if (typeof child === 'string') {
|
|
143
|
-
|
|
144
|
+
var value = i18n.services.interpolator.interpolate(child, opts, i18n.language);
|
|
145
|
+
mem.push(value);
|
|
144
146
|
} else if (hasChildren(child) || isValidTranslationWithChildren) {
|
|
145
147
|
var inner = renderInner(child, node, rootReactNode);
|
|
146
148
|
pushTranslatedJSX(child, inner, mem, i);
|
|
@@ -189,12 +191,14 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
189
191
|
} else if (node.type === 'text') {
|
|
190
192
|
var wrapTextNodes = i18nOptions.transWrapTextNodes;
|
|
191
193
|
|
|
194
|
+
var _content = i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
195
|
+
|
|
192
196
|
if (wrapTextNodes) {
|
|
193
197
|
mem.push(React.createElement(wrapTextNodes, {
|
|
194
198
|
key: "".concat(node.name, "-").concat(i)
|
|
195
|
-
},
|
|
199
|
+
}, _content));
|
|
196
200
|
} else {
|
|
197
|
-
mem.push(
|
|
201
|
+
mem.push(_content);
|
|
198
202
|
}
|
|
199
203
|
}
|
|
200
204
|
|
|
@@ -204,7 +208,7 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
204
208
|
|
|
205
209
|
var result = mapAST([{
|
|
206
210
|
dummy: true,
|
|
207
|
-
children: children
|
|
211
|
+
children: children || []
|
|
208
212
|
}], ast, getAsArray(children || []));
|
|
209
213
|
return getChildren(result[0]);
|
|
210
214
|
}
|
|
@@ -37,7 +37,8 @@ export function useTranslation(ns) {
|
|
|
37
37
|
|
|
38
38
|
var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);
|
|
39
39
|
|
|
40
|
-
var useSuspense = i18nOptions.useSuspense
|
|
40
|
+
var useSuspense = i18nOptions.useSuspense,
|
|
41
|
+
keyPrefix = i18nOptions.keyPrefix;
|
|
41
42
|
var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;
|
|
42
43
|
namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];
|
|
43
44
|
if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);
|
|
@@ -46,7 +47,7 @@ export function useTranslation(ns) {
|
|
|
46
47
|
});
|
|
47
48
|
|
|
48
49
|
function getT() {
|
|
49
|
-
return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0]);
|
|
50
|
+
return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);
|
|
50
51
|
}
|
|
51
52
|
|
|
52
53
|
var _useState = useState(getT),
|
|
@@ -569,8 +569,9 @@
|
|
|
569
569
|
}
|
|
570
570
|
|
|
571
571
|
getData(children);
|
|
572
|
-
var
|
|
573
|
-
|
|
572
|
+
var ast = c.parse("<0>".concat(targetString, "</0>"));
|
|
573
|
+
|
|
574
|
+
var opts = _objectSpread2(_objectSpread2({}, data), combinedTOpts);
|
|
574
575
|
|
|
575
576
|
function renderInner(child, node, rootReactNode) {
|
|
576
577
|
var childs = getChildren(child);
|
|
@@ -589,7 +590,7 @@
|
|
|
589
590
|
var reactNodes = getAsArray(reactNode);
|
|
590
591
|
var astNodes = getAsArray(astNode);
|
|
591
592
|
return astNodes.reduce(function (mem, node, i) {
|
|
592
|
-
var translationContent = node.children && node.children[0] && node.children[0].content;
|
|
593
|
+
var translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);
|
|
593
594
|
|
|
594
595
|
if (node.type === 'tag') {
|
|
595
596
|
var tmp = reactNodes[parseInt(node.name, 10)];
|
|
@@ -604,7 +605,8 @@
|
|
|
604
605
|
var isKnownComponent = _typeof(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);
|
|
605
606
|
|
|
606
607
|
if (typeof child === 'string') {
|
|
607
|
-
|
|
608
|
+
var value = i18n.services.interpolator.interpolate(child, opts, i18n.language);
|
|
609
|
+
mem.push(value);
|
|
608
610
|
} else if (hasChildren(child) || isValidTranslationWithChildren) {
|
|
609
611
|
var inner = renderInner(child, node, rootReactNode);
|
|
610
612
|
pushTranslatedJSX(child, inner, mem, i);
|
|
@@ -653,12 +655,14 @@
|
|
|
653
655
|
} else if (node.type === 'text') {
|
|
654
656
|
var wrapTextNodes = i18nOptions.transWrapTextNodes;
|
|
655
657
|
|
|
658
|
+
var _content = i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
659
|
+
|
|
656
660
|
if (wrapTextNodes) {
|
|
657
661
|
mem.push(React__default.createElement(wrapTextNodes, {
|
|
658
662
|
key: "".concat(node.name, "-").concat(i)
|
|
659
|
-
},
|
|
663
|
+
}, _content));
|
|
660
664
|
} else {
|
|
661
|
-
mem.push(
|
|
665
|
+
mem.push(_content);
|
|
662
666
|
}
|
|
663
667
|
}
|
|
664
668
|
|
|
@@ -668,7 +672,7 @@
|
|
|
668
672
|
|
|
669
673
|
var result = mapAST([{
|
|
670
674
|
dummy: true,
|
|
671
|
-
children: children
|
|
675
|
+
children: children || []
|
|
672
676
|
}], ast, getAsArray(children || []));
|
|
673
677
|
return getChildren(result[0]);
|
|
674
678
|
}
|
|
@@ -759,7 +763,8 @@
|
|
|
759
763
|
|
|
760
764
|
var i18nOptions = _objectSpread2(_objectSpread2(_objectSpread2({}, getDefaults()), i18n.options.react), props);
|
|
761
765
|
|
|
762
|
-
var useSuspense = i18nOptions.useSuspense
|
|
766
|
+
var useSuspense = i18nOptions.useSuspense,
|
|
767
|
+
keyPrefix = i18nOptions.keyPrefix;
|
|
763
768
|
var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;
|
|
764
769
|
namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];
|
|
765
770
|
if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);
|
|
@@ -768,7 +773,7 @@
|
|
|
768
773
|
});
|
|
769
774
|
|
|
770
775
|
function getT() {
|
|
771
|
-
return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0]);
|
|
776
|
+
return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);
|
|
772
777
|
}
|
|
773
778
|
|
|
774
779
|
var _useState = React.useState(getT),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],n):n((e=e||self).ReactI18next={},e.React)}(this,(function(e,n){"use strict";var t="default"in n?n.default:n;function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){c(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function u(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==t)return;var r,i,a=[],o=!0,c=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(a.push(r.value),!n||a.length!==n);o=!0);}catch(e){c=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(c)throw i}}return a}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return l(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return l(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var f={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},p=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function d(e){var n={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=e.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(n.name=t[1],(f[t[1]]||"/"===e.charAt(e.length-2))&&(n.voidElement=!0),n.name.startsWith("!--"))){var r=e.indexOf("--\x3e");return{type:"comment",comment:-1!==r?e.slice(4,r):""}}for(var i=new RegExp(p),a=null;null!==(a=i.exec(e));)if(a[0].trim())if(a[1]){var o=a[1].trim(),c=[o,""];o.indexOf("=")>-1&&(c=o.split("=")),n.attrs[c[0]]=c[1],i.lastIndex--}else a[2]&&(n.attrs[a[2]]=a[3].trim().substring(1,a[3].length-1));return n}var m=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,h=/^\s*$/,g=Object.create(null);var y,v=function(e,n){n||(n={}),n.components||(n.components=g);var t,r=[],i=[],a=-1,o=!1;if(0!==e.indexOf("<")){var c=e.indexOf("<");r.push({type:"text",content:-1===c?e:e.substring(0,c)})}return e.replace(m,(function(c,s){if(o){if(c!=="</"+t.name+">")return;o=!1}var u,l="/"!==c.charAt(1),f=c.startsWith("\x3c!--"),p=s+c.length,m=e.charAt(p);if(f){var g=d(c);return a<0?(r.push(g),r):((u=i[a]).children.push(g),r)}if(l&&(a++,"tag"===(t=d(c)).type&&n.components[t.name]&&(t.type="component",o=!0),t.voidElement||o||!m||"<"===m||t.children.push({type:"text",content:e.slice(p,e.indexOf("<",p))}),0===a&&r.push(t),(u=i[a-1])&&u.children.push(t),i[a]=t),(!l||t.voidElement)&&(a>-1&&(t.voidElement||t.name===c.slice(2,-1))&&(a--,t=-1===a?r:i[a]),!o&&"<"!==m&&m)){u=-1===a?r:i[a].children;var y=e.indexOf("<",p),v=e.slice(p,-1===y?void 0:y);h.test(v)&&(v=" "),(y>-1&&a+u.length>=0||" "!==v)&&u.push({type:"text",content:v})}})),r},b={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0},O=t.createContext();function w(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};b=i(i({},b),e)}function x(){return b}var j=function(){function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.usedNamespaces={}}var n,t,r;return n=e,(t=[{key:"addUsedNamespaces",value:function(e){var n=this;e.forEach((function(e){n.usedNamespaces[e]||(n.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}])&&o(n.prototype,t),r&&o(n,r),e}();function E(e){y=e}function S(){return y}var N={type:"3rdParty",init:function(e){w(e.options.react),E(e)}};function I(e){return function(n){return new Promise((function(t){var r=k();e.getInitialProps?e.getInitialProps(n).then((function(e){t(i(i({},e),r))})):t(r)}))}}function k(){var e=S(),n=e.reportNamespaces?e.reportNamespaces.getUsedNamespaces():[],t={},r={};return e.languages.forEach((function(t){r[t]={},n.forEach((function(n){r[t][n]=e.getResourceBundle(t,n)||{}}))})),t.initialI18nStore=r,t.initialLanguage=e.language,t}function P(){if(console&&console.warn){for(var e,n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];"string"==typeof t[0]&&(t[0]="react-i18next:: ".concat(t[0])),(e=console).warn.apply(e,t)}}var R={};function C(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&R[n[0]]||("string"==typeof n[0]&&(R[n[0]]=new Date),P.apply(void 0,n))}function A(e,n,t){e.loadNamespaces(n,(function(){if(e.isInitialized)t();else{e.on("initialized",(function n(){setTimeout((function(){e.off("initialized",n)}),0),t()}))}}))}function T(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!n.languages||!n.languages.length)return C("i18n.languages were undefined or empty",n.languages),!0;var r=n.languages[0],i=!!n.options&&n.options.fallbackLng,a=n.languages[n.languages.length-1];if("cimode"===r.toLowerCase())return!0;var o=function(e,t){var r=n.services.backendConnector.state["".concat(e,"|").concat(t)];return-1===r||2===r};return!(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!o(n.isLanguageChangingTo,e))&&(!!n.hasResourceBundle(r,e)||(!n.services.backendConnector.backend||!(!o(r,e)||i&&!o(a,e))))}function z(e){return e.displayName||e.name||("string"==typeof e&&e.length>0?e:"Unknown")}var L=["format"],D=["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"];function B(e,n){if(!e)return!1;var t=e.props?e.props.children:e.children;return n?t.length>0:!!t}function U(e){return e?e&&e.children?e.children:e.props&&e.props.children:[]}function V(e){return Array.isArray(e)?e:[e]}function K(e,n,r,o,c){if(""===n)return[];var s=o.transKeepBasicHtmlNodesFor||[],u=n&&new RegExp(s.join("|")).test(n);if(!e&&!u)return[n];var l={};!function e(n){V(n).forEach((function(n){"string"!=typeof n&&(B(n)?e(U(n)):"object"!==a(n)||t.isValidElement(n)||Object.assign(l,n))}))}(e);var f=r.services.interpolator.interpolate(n,i(i({},l),c),r.language),p=v("<0>".concat(f,"</0>"));function d(e,n,r){var i=U(e),a=h(i,n.children,r);return function(e){return"[object Array]"===Object.prototype.toString.call(e)&&e.every((function(e){return t.isValidElement(e)}))}(i)&&0===a.length?i:a}function m(e,n,r,a,o){e.dummy&&(e.children=n),r.push(t.cloneElement(e,i(i({},e.props),{},{key:a}),o?void 0:n))}function h(n,r,c){var l=V(n);return V(r).reduce((function(n,r,f){var p,g,y,v=r.children&&r.children[0]&&r.children[0].content;if("tag"===r.type){var b=l[parseInt(r.name,10)];!b&&1===c.length&&c[0][r.name]&&(b=c[0][r.name]),b||(b={});var O=0!==Object.keys(r.attrs).length?(p={props:r.attrs},(y=i({},g=b)).props=Object.assign(p.props,g.props),y):b,w=t.isValidElement(O),x=w&&B(r,!0)&&!r.voidElement,j=u&&"object"===a(O)&&O.dummy&&!w,E="object"===a(e)&&null!==e&&Object.hasOwnProperty.call(e,r.name);if("string"==typeof O)n.push(O);else if(B(O)||x){m(O,d(O,r,c),n,f)}else if(j){var S=h(l,r.children,c);n.push(t.cloneElement(O,i(i({},O.props),{},{key:f}),S))}else if(Number.isNaN(parseFloat(r.name))){if(E)m(O,d(O,r,c),n,f,r.voidElement);else if(o.transSupportBasicHtmlNodes&&s.indexOf(r.name)>-1)if(r.voidElement)n.push(t.createElement(r.name,{key:"".concat(r.name,"-").concat(f)}));else{var N=h(l,r.children,c);n.push(t.createElement(r.name,{key:"".concat(r.name,"-").concat(f)},N))}else if(r.voidElement)n.push("<".concat(r.name," />"));else{var I=h(l,r.children,c);n.push("<".concat(r.name,">").concat(I,"</").concat(r.name,">"))}}else if("object"!==a(O)||w)1===r.children.length&&v?n.push(t.cloneElement(O,i(i({},O.props),{},{key:f}),v)):n.push(t.cloneElement(O,i(i({},O.props),{},{key:f})));else{var k=r.children[0]?v:null;k&&n.push(k)}}else if("text"===r.type){var P=o.transWrapTextNodes;P?n.push(t.createElement(P,{key:"".concat(r.name,"-").concat(f)},r.content)):n.push(r.content)}return n}),[])}return U(h([{dummy:!0,children:e}],p,V(e||[]))[0])}function W(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.i18n,a=n.useContext(O)||{},o=a.i18n,c=a.defaultNS,s=r||o||S();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new j),!s){C("You will need to pass in an i18next instance by using initReactI18next");var l=function(e){return Array.isArray(e)?e[e.length-1]:e},f=[l,{},!1];return f.t=l,f.i18n={},f.ready=!1,f}s.options.react&&void 0!==s.options.react.wait&&C("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var p=i(i(i({},x()),s.options.react),t),d=p.useSuspense,m=e||c||s.options&&s.options.defaultNS;m="string"==typeof m?[m]:m||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(m);var h=(s.isInitialized||s.initializedStoreOnce)&&m.every((function(e){return T(e,s,p)}));function g(){return s.getFixedT(null,"fallback"===p.nsMode?m:m[0])}var y=n.useState(g),v=u(y,2),b=v[0],w=v[1],E=n.useRef(!0);n.useEffect((function(){var e=p.bindI18n,n=p.bindI18nStore;function t(){E.current&&w(g)}return E.current=!0,h||d||A(s,m,(function(){E.current&&w(g)})),e&&s&&s.on(e,t),n&&s&&s.store.on(n,t),function(){E.current=!1,e&&s&&e.split(" ").forEach((function(e){return s.off(e,t)})),n&&s&&n.split(" ").forEach((function(e){return s.store.off(e,t)}))}}),[s,m.join()]);var N=n.useRef(!0);n.useEffect((function(){E.current&&!N.current&&w(g),N.current=!1}),[s]);var I=[b,s,h];if(I.t=b,I.i18n=s,I.ready=h,h)return I;if(!h&&!d)return I;throw new Promise((function(e){A(s,m,(function(){e()}))}))}var F=["forwardedRef"];var H=["ns","children"];function M(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.i18n,a=n.useContext(O)||{},o=a.i18n,c=i||o||S();c.options&&c.options.isClone||(e&&!c.initializedStoreOnce&&(c.services.resourceStore.data=e,c.options.ns=Object.values(e).reduce((function(e,n){return Object.keys(n).forEach((function(n){e.indexOf(n)<0&&e.push(n)})),e}),c.options.ns),c.initializedStoreOnce=!0,c.isInitialized=!0),t&&!c.initializedLanguageOnce&&(c.changeLanguage(t),c.initializedLanguageOnce=!0))}var $=["initialI18nStore","initialLanguage"];e.I18nContext=O,e.I18nextProvider=function(e){var t=e.i18n,r=e.defaultNS,i=e.children,a=n.useMemo((function(){return{i18n:t,defaultNS:r}}),[t,r]);return n.createElement(O.Provider,{value:a},i)},e.Trans=function(e){var r=e.children,o=e.count,c=e.parent,u=e.i18nKey,l=e.tOptions,f=void 0===l?{}:l,p=e.values,d=e.defaults,m=e.components,h=e.ns,g=e.i18n,y=e.t,v=s(e,D),b=n.useContext(O)||{},w=b.i18n,j=b.defaultNS,E=g||w||S();if(!E)return C("You will need to pass in an i18next instance by using i18nextReactModule"),r;var N=y||E.t.bind(E)||function(e){return e},I=i(i({},x()),E.options&&E.options.react),k=h||N.ns||j||E.options&&E.options.defaultNS;k="string"==typeof k?[k]:k||["translation"];var R=d||function e(n,r){if(!n)return"";var i="",o=V(n),c=r.transKeepBasicHtmlNodesFor||[];return o.forEach((function(n,o){if("string"==typeof n)i+="".concat(n);else if(t.isValidElement(n)){var u=Object.keys(n.props).length,l=c.indexOf(n.type)>-1,f=n.props.children;if(!f&&l&&0===u)i+="<".concat(n.type,"/>");else if(f||l&&0===u)if(n.props.i18nIsDynamicList)i+="<".concat(o,"></").concat(o,">");else if(l&&1===u&&"string"==typeof f)i+="<".concat(n.type,">").concat(f,"</").concat(n.type,">");else{var p=e(f,r);i+="<".concat(o,">").concat(p,"</").concat(o,">")}else i+="<".concat(o,"></").concat(o,">")}else if(null===n)P("Trans: the passed in value is invalid - seems you passed in a null child.");else if("object"===a(n)){var d=n.format,m=s(n,L),h=Object.keys(m);if(1===h.length){var g=d?"".concat(h[0],", ").concat(d):h[0];i+="{{".concat(g,"}}")}else P("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else P("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",n)})),i}(r,I)||I.transEmptyNodeValue||u,A=I.hashTransKey,T=u||(A?A(R):R),z=p?f.interpolation:{interpolation:i(i({},f.interpolation),{},{prefix:"#$?",suffix:"?$#"})},B=i(i(i(i({},f),{},{count:o},p),z),{},{defaultValue:R,ns:k}),U=K(m||r,T?N(T,B):R,E,I,B),W=void 0!==c?c:I.defaultTransParent;return W?t.createElement(W,v,U):U},e.Translation=function(e){var n=e.ns,t=e.children,r=u(W(n,s(e,H)),3),i=r[0],a=r[1],o=r[2];return t(i,{i18n:a,lng:a.language},o)},e.composeInitialProps=I,e.date=function(){return""},e.getDefaults=x,e.getI18n=S,e.getInitialProps=k,e.initReactI18next=N,e.number=function(){return""},e.plural=function(){return""},e.select=function(){return""},e.selectOrdinal=function(){return""},e.setDefaults=w,e.setI18n=E,e.time=function(){return""},e.useSSR=M,e.useTranslation=W,e.withSSR=function(){return function(e){function n(n){var r=n.initialI18nStore,a=n.initialLanguage,o=s(n,$);return M(r,a),t.createElement(e,i({},o))}return n.getInitialProps=I(e),n.displayName="withI18nextSSR(".concat(z(e),")"),n.WrappedComponent=e,n}},e.withTranslation=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(r){function a(a){var o=a.forwardedRef,c=s(a,F),l=u(W(e,c),3),f=l[0],p=l[1],d=l[2],m=i(i({},c),{},{t:f,i18n:p,tReady:d});return n.withRef&&o?m.ref=o:!n.withRef&&o&&(m.forwardedRef=o),t.createElement(r,m)}a.displayName="withI18nextTranslation(".concat(z(r),")"),a.WrappedComponent=r;return n.withRef?t.forwardRef((function(e,n){return t.createElement(a,Object.assign({},e,{forwardedRef:n}))})):a}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],n):n((e=e||self).ReactI18next={},e.React)}(this,(function(e,n){"use strict";var t="default"in n?n.default:n;function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){c(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function u(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==t)return;var r,i,a=[],o=!0,c=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(a.push(r.value),!n||a.length!==n);o=!0);}catch(e){c=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(c)throw i}}return a}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return l(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return l(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var f={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},p=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function d(e){var n={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=e.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(n.name=t[1],(f[t[1]]||"/"===e.charAt(e.length-2))&&(n.voidElement=!0),n.name.startsWith("!--"))){var r=e.indexOf("--\x3e");return{type:"comment",comment:-1!==r?e.slice(4,r):""}}for(var i=new RegExp(p),a=null;null!==(a=i.exec(e));)if(a[0].trim())if(a[1]){var o=a[1].trim(),c=[o,""];o.indexOf("=")>-1&&(c=o.split("=")),n.attrs[c[0]]=c[1],i.lastIndex--}else a[2]&&(n.attrs[a[2]]=a[3].trim().substring(1,a[3].length-1));return n}var m=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,g=/^\s*$/,h=Object.create(null);var v,y=function(e,n){n||(n={}),n.components||(n.components=h);var t,r=[],i=[],a=-1,o=!1;if(0!==e.indexOf("<")){var c=e.indexOf("<");r.push({type:"text",content:-1===c?e:e.substring(0,c)})}return e.replace(m,(function(c,s){if(o){if(c!=="</"+t.name+">")return;o=!1}var u,l="/"!==c.charAt(1),f=c.startsWith("\x3c!--"),p=s+c.length,m=e.charAt(p);if(f){var h=d(c);return a<0?(r.push(h),r):((u=i[a]).children.push(h),r)}if(l&&(a++,"tag"===(t=d(c)).type&&n.components[t.name]&&(t.type="component",o=!0),t.voidElement||o||!m||"<"===m||t.children.push({type:"text",content:e.slice(p,e.indexOf("<",p))}),0===a&&r.push(t),(u=i[a-1])&&u.children.push(t),i[a]=t),(!l||t.voidElement)&&(a>-1&&(t.voidElement||t.name===c.slice(2,-1))&&(a--,t=-1===a?r:i[a]),!o&&"<"!==m&&m)){u=-1===a?r:i[a].children;var v=e.indexOf("<",p),y=e.slice(p,-1===v?void 0:v);g.test(y)&&(y=" "),(v>-1&&a+u.length>=0||" "!==y)&&u.push({type:"text",content:y})}})),r},b={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0},O=t.createContext();function w(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};b=i(i({},b),e)}function x(){return b}var j=function(){function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.usedNamespaces={}}var n,t,r;return n=e,(t=[{key:"addUsedNamespaces",value:function(e){var n=this;e.forEach((function(e){n.usedNamespaces[e]||(n.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}])&&o(n.prototype,t),r&&o(n,r),e}();function E(e){v=e}function S(){return v}var N={type:"3rdParty",init:function(e){w(e.options.react),E(e)}};function I(e){return function(n){return new Promise((function(t){var r=k();e.getInitialProps?e.getInitialProps(n).then((function(e){t(i(i({},e),r))})):t(r)}))}}function k(){var e=S(),n=e.reportNamespaces?e.reportNamespaces.getUsedNamespaces():[],t={},r={};return e.languages.forEach((function(t){r[t]={},n.forEach((function(n){r[t][n]=e.getResourceBundle(t,n)||{}}))})),t.initialI18nStore=r,t.initialLanguage=e.language,t}function P(){if(console&&console.warn){for(var e,n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];"string"==typeof t[0]&&(t[0]="react-i18next:: ".concat(t[0])),(e=console).warn.apply(e,t)}}var R={};function C(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&R[n[0]]||("string"==typeof n[0]&&(R[n[0]]=new Date),P.apply(void 0,n))}function A(e,n,t){e.loadNamespaces(n,(function(){if(e.isInitialized)t();else{e.on("initialized",(function n(){setTimeout((function(){e.off("initialized",n)}),0),t()}))}}))}function T(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!n.languages||!n.languages.length)return C("i18n.languages were undefined or empty",n.languages),!0;var r=n.languages[0],i=!!n.options&&n.options.fallbackLng,a=n.languages[n.languages.length-1];if("cimode"===r.toLowerCase())return!0;var o=function(e,t){var r=n.services.backendConnector.state["".concat(e,"|").concat(t)];return-1===r||2===r};return!(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!o(n.isLanguageChangingTo,e))&&(!!n.hasResourceBundle(r,e)||(!n.services.backendConnector.backend||!(!o(r,e)||i&&!o(a,e))))}function z(e){return e.displayName||e.name||("string"==typeof e&&e.length>0?e:"Unknown")}var L=["format"],D=["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"];function B(e,n){if(!e)return!1;var t=e.props?e.props.children:e.children;return n?t.length>0:!!t}function U(e){return e?e&&e.children?e.children:e.props&&e.props.children:[]}function V(e){return Array.isArray(e)?e:[e]}function K(e,n,r,o,c){if(""===n)return[];var s=o.transKeepBasicHtmlNodesFor||[],u=n&&new RegExp(s.join("|")).test(n);if(!e&&!u)return[n];var l={};!function e(n){V(n).forEach((function(n){"string"!=typeof n&&(B(n)?e(U(n)):"object"!==a(n)||t.isValidElement(n)||Object.assign(l,n))}))}(e);var f=y("<0>".concat(n,"</0>")),p=i(i({},l),c);function d(e,n,r){var i=U(e),a=g(i,n.children,r);return function(e){return"[object Array]"===Object.prototype.toString.call(e)&&e.every((function(e){return t.isValidElement(e)}))}(i)&&0===a.length?i:a}function m(e,n,r,a,o){e.dummy&&(e.children=n),r.push(t.cloneElement(e,i(i({},e.props),{},{key:a}),o?void 0:n))}function g(n,c,l){var f=V(n);return V(c).reduce((function(n,c,h){var v,y,b,O=c.children&&c.children[0]&&c.children[0].content&&r.services.interpolator.interpolate(c.children[0].content,p,r.language);if("tag"===c.type){var w=f[parseInt(c.name,10)];!w&&1===l.length&&l[0][c.name]&&(w=l[0][c.name]),w||(w={});var x=0!==Object.keys(c.attrs).length?(v={props:c.attrs},(b=i({},y=w)).props=Object.assign(v.props,y.props),b):w,j=t.isValidElement(x),E=j&&B(c,!0)&&!c.voidElement,S=u&&"object"===a(x)&&x.dummy&&!j,N="object"===a(e)&&null!==e&&Object.hasOwnProperty.call(e,c.name);if("string"==typeof x){var I=r.services.interpolator.interpolate(x,p,r.language);n.push(I)}else if(B(x)||E){m(x,d(x,c,l),n,h)}else if(S){var k=g(f,c.children,l);n.push(t.cloneElement(x,i(i({},x.props),{},{key:h}),k))}else if(Number.isNaN(parseFloat(c.name))){if(N)m(x,d(x,c,l),n,h,c.voidElement);else if(o.transSupportBasicHtmlNodes&&s.indexOf(c.name)>-1)if(c.voidElement)n.push(t.createElement(c.name,{key:"".concat(c.name,"-").concat(h)}));else{var P=g(f,c.children,l);n.push(t.createElement(c.name,{key:"".concat(c.name,"-").concat(h)},P))}else if(c.voidElement)n.push("<".concat(c.name," />"));else{var R=g(f,c.children,l);n.push("<".concat(c.name,">").concat(R,"</").concat(c.name,">"))}}else if("object"!==a(x)||j)1===c.children.length&&O?n.push(t.cloneElement(x,i(i({},x.props),{},{key:h}),O)):n.push(t.cloneElement(x,i(i({},x.props),{},{key:h})));else{var C=c.children[0]?O:null;C&&n.push(C)}}else if("text"===c.type){var A=o.transWrapTextNodes,T=r.services.interpolator.interpolate(c.content,p,r.language);A?n.push(t.createElement(A,{key:"".concat(c.name,"-").concat(h)},T)):n.push(T)}return n}),[])}return U(g([{dummy:!0,children:e||[]}],f,V(e||[]))[0])}function W(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.i18n,a=n.useContext(O)||{},o=a.i18n,c=a.defaultNS,s=r||o||S();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new j),!s){C("You will need to pass in an i18next instance by using initReactI18next");var l=function(e){return Array.isArray(e)?e[e.length-1]:e},f=[l,{},!1];return f.t=l,f.i18n={},f.ready=!1,f}s.options.react&&void 0!==s.options.react.wait&&C("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var p=i(i(i({},x()),s.options.react),t),d=p.useSuspense,m=p.keyPrefix,g=e||c||s.options&&s.options.defaultNS;g="string"==typeof g?[g]:g||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(g);var h=(s.isInitialized||s.initializedStoreOnce)&&g.every((function(e){return T(e,s,p)}));function v(){return s.getFixedT(null,"fallback"===p.nsMode?g:g[0],m)}var y=n.useState(v),b=u(y,2),w=b[0],E=b[1],N=n.useRef(!0);n.useEffect((function(){var e=p.bindI18n,n=p.bindI18nStore;function t(){N.current&&E(v)}return N.current=!0,h||d||A(s,g,(function(){N.current&&E(v)})),e&&s&&s.on(e,t),n&&s&&s.store.on(n,t),function(){N.current=!1,e&&s&&e.split(" ").forEach((function(e){return s.off(e,t)})),n&&s&&n.split(" ").forEach((function(e){return s.store.off(e,t)}))}}),[s,g.join()]);var I=n.useRef(!0);n.useEffect((function(){N.current&&!I.current&&E(v),I.current=!1}),[s]);var k=[w,s,h];if(k.t=w,k.i18n=s,k.ready=h,h)return k;if(!h&&!d)return k;throw new Promise((function(e){A(s,g,(function(){e()}))}))}var F=["forwardedRef"];var H=["ns","children"];function M(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.i18n,a=n.useContext(O)||{},o=a.i18n,c=i||o||S();c.options&&c.options.isClone||(e&&!c.initializedStoreOnce&&(c.services.resourceStore.data=e,c.options.ns=Object.values(e).reduce((function(e,n){return Object.keys(n).forEach((function(n){e.indexOf(n)<0&&e.push(n)})),e}),c.options.ns),c.initializedStoreOnce=!0,c.isInitialized=!0),t&&!c.initializedLanguageOnce&&(c.changeLanguage(t),c.initializedLanguageOnce=!0))}var $=["initialI18nStore","initialLanguage"];e.I18nContext=O,e.I18nextProvider=function(e){var t=e.i18n,r=e.defaultNS,i=e.children,a=n.useMemo((function(){return{i18n:t,defaultNS:r}}),[t,r]);return n.createElement(O.Provider,{value:a},i)},e.Trans=function(e){var r=e.children,o=e.count,c=e.parent,u=e.i18nKey,l=e.tOptions,f=void 0===l?{}:l,p=e.values,d=e.defaults,m=e.components,g=e.ns,h=e.i18n,v=e.t,y=s(e,D),b=n.useContext(O)||{},w=b.i18n,j=b.defaultNS,E=h||w||S();if(!E)return C("You will need to pass in an i18next instance by using i18nextReactModule"),r;var N=v||E.t.bind(E)||function(e){return e},I=i(i({},x()),E.options&&E.options.react),k=g||N.ns||j||E.options&&E.options.defaultNS;k="string"==typeof k?[k]:k||["translation"];var R=d||function e(n,r){if(!n)return"";var i="",o=V(n),c=r.transKeepBasicHtmlNodesFor||[];return o.forEach((function(n,o){if("string"==typeof n)i+="".concat(n);else if(t.isValidElement(n)){var u=Object.keys(n.props).length,l=c.indexOf(n.type)>-1,f=n.props.children;if(!f&&l&&0===u)i+="<".concat(n.type,"/>");else if(f||l&&0===u)if(n.props.i18nIsDynamicList)i+="<".concat(o,"></").concat(o,">");else if(l&&1===u&&"string"==typeof f)i+="<".concat(n.type,">").concat(f,"</").concat(n.type,">");else{var p=e(f,r);i+="<".concat(o,">").concat(p,"</").concat(o,">")}else i+="<".concat(o,"></").concat(o,">")}else if(null===n)P("Trans: the passed in value is invalid - seems you passed in a null child.");else if("object"===a(n)){var d=n.format,m=s(n,L),g=Object.keys(m);if(1===g.length){var h=d?"".concat(g[0],", ").concat(d):g[0];i+="{{".concat(h,"}}")}else P("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else P("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",n)})),i}(r,I)||I.transEmptyNodeValue||u,A=I.hashTransKey,T=u||(A?A(R):R),z=p?f.interpolation:{interpolation:i(i({},f.interpolation),{},{prefix:"#$?",suffix:"?$#"})},B=i(i(i(i({},f),{},{count:o},p),z),{},{defaultValue:R,ns:k}),U=K(m||r,T?N(T,B):R,E,I,B),W=void 0!==c?c:I.defaultTransParent;return W?t.createElement(W,y,U):U},e.Translation=function(e){var n=e.ns,t=e.children,r=u(W(n,s(e,H)),3),i=r[0],a=r[1],o=r[2];return t(i,{i18n:a,lng:a.language},o)},e.composeInitialProps=I,e.date=function(){return""},e.getDefaults=x,e.getI18n=S,e.getInitialProps=k,e.initReactI18next=N,e.number=function(){return""},e.plural=function(){return""},e.select=function(){return""},e.selectOrdinal=function(){return""},e.setDefaults=w,e.setI18n=E,e.time=function(){return""},e.useSSR=M,e.useTranslation=W,e.withSSR=function(){return function(e){function n(n){var r=n.initialI18nStore,a=n.initialLanguage,o=s(n,$);return M(r,a),t.createElement(e,i({},o))}return n.getInitialProps=I(e),n.displayName="withI18nextSSR(".concat(z(e),")"),n.WrappedComponent=e,n}},e.withTranslation=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(r){function a(a){var o=a.forwardedRef,c=s(a,F),l=u(W(e,c),3),f=l[0],p=l[1],d=l[2],m=i(i({},c),{},{t:f,i18n:p,tReady:d});return n.withRef&&o?m.ref=o:!n.withRef&&o&&(m.forwardedRef=o),t.createElement(r,m)}a.displayName="withI18nextTranslation(".concat(z(r),")"),a.WrappedComponent=r;return n.withRef?t.forwardRef((function(e,n){return t.createElement(a,Object.assign({},e,{forwardedRef:n}))})):a}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/index.d.ts
CHANGED
|
@@ -52,6 +52,7 @@ export function useSSR(initialI18nStore: Resource, initialLanguage: string): voi
|
|
|
52
52
|
export interface UseTranslationOptions {
|
|
53
53
|
i18n?: i18n;
|
|
54
54
|
useSuspense?: boolean;
|
|
55
|
+
keyPrefix?: string;
|
|
55
56
|
}
|
|
56
57
|
export type UseTranslationResponse = [TFunction, i18n, boolean] & {
|
|
57
58
|
t: TFunction;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-i18next",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.13.0",
|
|
4
4
|
"description": "Internationalization for react done right. Using the i18next i18n ecosystem.",
|
|
5
5
|
"main": "dist/commonjs/index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"eslint-plugin-react": "^7.16.0",
|
|
68
68
|
"eslint-plugin-testing-library": "^3.10.1",
|
|
69
69
|
"husky": "^3.0.3",
|
|
70
|
-
"i18next": "^
|
|
70
|
+
"i18next": "^21.0.0",
|
|
71
71
|
"jest": "^24.8.0",
|
|
72
72
|
"jest-cli": "^24.8.4",
|
|
73
73
|
"lint-staged": "^8.1.3",
|
package/react-i18next.js
CHANGED
|
@@ -569,8 +569,9 @@
|
|
|
569
569
|
}
|
|
570
570
|
|
|
571
571
|
getData(children);
|
|
572
|
-
var
|
|
573
|
-
|
|
572
|
+
var ast = c.parse("<0>".concat(targetString, "</0>"));
|
|
573
|
+
|
|
574
|
+
var opts = _objectSpread2(_objectSpread2({}, data), combinedTOpts);
|
|
574
575
|
|
|
575
576
|
function renderInner(child, node, rootReactNode) {
|
|
576
577
|
var childs = getChildren(child);
|
|
@@ -589,7 +590,7 @@
|
|
|
589
590
|
var reactNodes = getAsArray(reactNode);
|
|
590
591
|
var astNodes = getAsArray(astNode);
|
|
591
592
|
return astNodes.reduce(function (mem, node, i) {
|
|
592
|
-
var translationContent = node.children && node.children[0] && node.children[0].content;
|
|
593
|
+
var translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);
|
|
593
594
|
|
|
594
595
|
if (node.type === 'tag') {
|
|
595
596
|
var tmp = reactNodes[parseInt(node.name, 10)];
|
|
@@ -604,7 +605,8 @@
|
|
|
604
605
|
var isKnownComponent = _typeof(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);
|
|
605
606
|
|
|
606
607
|
if (typeof child === 'string') {
|
|
607
|
-
|
|
608
|
+
var value = i18n.services.interpolator.interpolate(child, opts, i18n.language);
|
|
609
|
+
mem.push(value);
|
|
608
610
|
} else if (hasChildren(child) || isValidTranslationWithChildren) {
|
|
609
611
|
var inner = renderInner(child, node, rootReactNode);
|
|
610
612
|
pushTranslatedJSX(child, inner, mem, i);
|
|
@@ -653,12 +655,14 @@
|
|
|
653
655
|
} else if (node.type === 'text') {
|
|
654
656
|
var wrapTextNodes = i18nOptions.transWrapTextNodes;
|
|
655
657
|
|
|
658
|
+
var _content = i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
659
|
+
|
|
656
660
|
if (wrapTextNodes) {
|
|
657
661
|
mem.push(React__default.createElement(wrapTextNodes, {
|
|
658
662
|
key: "".concat(node.name, "-").concat(i)
|
|
659
|
-
},
|
|
663
|
+
}, _content));
|
|
660
664
|
} else {
|
|
661
|
-
mem.push(
|
|
665
|
+
mem.push(_content);
|
|
662
666
|
}
|
|
663
667
|
}
|
|
664
668
|
|
|
@@ -668,7 +672,7 @@
|
|
|
668
672
|
|
|
669
673
|
var result = mapAST([{
|
|
670
674
|
dummy: true,
|
|
671
|
-
children: children
|
|
675
|
+
children: children || []
|
|
672
676
|
}], ast, getAsArray(children || []));
|
|
673
677
|
return getChildren(result[0]);
|
|
674
678
|
}
|
|
@@ -759,7 +763,8 @@
|
|
|
759
763
|
|
|
760
764
|
var i18nOptions = _objectSpread2(_objectSpread2(_objectSpread2({}, getDefaults()), i18n.options.react), props);
|
|
761
765
|
|
|
762
|
-
var useSuspense = i18nOptions.useSuspense
|
|
766
|
+
var useSuspense = i18nOptions.useSuspense,
|
|
767
|
+
keyPrefix = i18nOptions.keyPrefix;
|
|
763
768
|
var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;
|
|
764
769
|
namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];
|
|
765
770
|
if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);
|
|
@@ -768,7 +773,7 @@
|
|
|
768
773
|
});
|
|
769
774
|
|
|
770
775
|
function getT() {
|
|
771
|
-
return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0]);
|
|
776
|
+
return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);
|
|
772
777
|
}
|
|
773
778
|
|
|
774
779
|
var _useState = React.useState(getT),
|
package/react-i18next.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],n):n((e=e||self).ReactI18next={},e.React)}(this,(function(e,n){"use strict";var t="default"in n?n.default:n;function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){c(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function u(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==t)return;var r,i,a=[],o=!0,c=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(a.push(r.value),!n||a.length!==n);o=!0);}catch(e){c=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(c)throw i}}return a}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return l(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return l(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var f={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},p=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function d(e){var n={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=e.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(n.name=t[1],(f[t[1]]||"/"===e.charAt(e.length-2))&&(n.voidElement=!0),n.name.startsWith("!--"))){var r=e.indexOf("--\x3e");return{type:"comment",comment:-1!==r?e.slice(4,r):""}}for(var i=new RegExp(p),a=null;null!==(a=i.exec(e));)if(a[0].trim())if(a[1]){var o=a[1].trim(),c=[o,""];o.indexOf("=")>-1&&(c=o.split("=")),n.attrs[c[0]]=c[1],i.lastIndex--}else a[2]&&(n.attrs[a[2]]=a[3].trim().substring(1,a[3].length-1));return n}var m=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,h=/^\s*$/,g=Object.create(null);var y,v=function(e,n){n||(n={}),n.components||(n.components=g);var t,r=[],i=[],a=-1,o=!1;if(0!==e.indexOf("<")){var c=e.indexOf("<");r.push({type:"text",content:-1===c?e:e.substring(0,c)})}return e.replace(m,(function(c,s){if(o){if(c!=="</"+t.name+">")return;o=!1}var u,l="/"!==c.charAt(1),f=c.startsWith("\x3c!--"),p=s+c.length,m=e.charAt(p);if(f){var g=d(c);return a<0?(r.push(g),r):((u=i[a]).children.push(g),r)}if(l&&(a++,"tag"===(t=d(c)).type&&n.components[t.name]&&(t.type="component",o=!0),t.voidElement||o||!m||"<"===m||t.children.push({type:"text",content:e.slice(p,e.indexOf("<",p))}),0===a&&r.push(t),(u=i[a-1])&&u.children.push(t),i[a]=t),(!l||t.voidElement)&&(a>-1&&(t.voidElement||t.name===c.slice(2,-1))&&(a--,t=-1===a?r:i[a]),!o&&"<"!==m&&m)){u=-1===a?r:i[a].children;var y=e.indexOf("<",p),v=e.slice(p,-1===y?void 0:y);h.test(v)&&(v=" "),(y>-1&&a+u.length>=0||" "!==v)&&u.push({type:"text",content:v})}})),r},b={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0},O=t.createContext();function w(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};b=i(i({},b),e)}function x(){return b}var j=function(){function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.usedNamespaces={}}var n,t,r;return n=e,(t=[{key:"addUsedNamespaces",value:function(e){var n=this;e.forEach((function(e){n.usedNamespaces[e]||(n.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}])&&o(n.prototype,t),r&&o(n,r),e}();function E(e){y=e}function S(){return y}var N={type:"3rdParty",init:function(e){w(e.options.react),E(e)}};function I(e){return function(n){return new Promise((function(t){var r=k();e.getInitialProps?e.getInitialProps(n).then((function(e){t(i(i({},e),r))})):t(r)}))}}function k(){var e=S(),n=e.reportNamespaces?e.reportNamespaces.getUsedNamespaces():[],t={},r={};return e.languages.forEach((function(t){r[t]={},n.forEach((function(n){r[t][n]=e.getResourceBundle(t,n)||{}}))})),t.initialI18nStore=r,t.initialLanguage=e.language,t}function P(){if(console&&console.warn){for(var e,n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];"string"==typeof t[0]&&(t[0]="react-i18next:: ".concat(t[0])),(e=console).warn.apply(e,t)}}var R={};function C(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&R[n[0]]||("string"==typeof n[0]&&(R[n[0]]=new Date),P.apply(void 0,n))}function A(e,n,t){e.loadNamespaces(n,(function(){if(e.isInitialized)t();else{e.on("initialized",(function n(){setTimeout((function(){e.off("initialized",n)}),0),t()}))}}))}function T(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!n.languages||!n.languages.length)return C("i18n.languages were undefined or empty",n.languages),!0;var r=n.languages[0],i=!!n.options&&n.options.fallbackLng,a=n.languages[n.languages.length-1];if("cimode"===r.toLowerCase())return!0;var o=function(e,t){var r=n.services.backendConnector.state["".concat(e,"|").concat(t)];return-1===r||2===r};return!(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!o(n.isLanguageChangingTo,e))&&(!!n.hasResourceBundle(r,e)||(!n.services.backendConnector.backend||!(!o(r,e)||i&&!o(a,e))))}function z(e){return e.displayName||e.name||("string"==typeof e&&e.length>0?e:"Unknown")}var L=["format"],D=["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"];function B(e,n){if(!e)return!1;var t=e.props?e.props.children:e.children;return n?t.length>0:!!t}function U(e){return e?e&&e.children?e.children:e.props&&e.props.children:[]}function V(e){return Array.isArray(e)?e:[e]}function K(e,n,r,o,c){if(""===n)return[];var s=o.transKeepBasicHtmlNodesFor||[],u=n&&new RegExp(s.join("|")).test(n);if(!e&&!u)return[n];var l={};!function e(n){V(n).forEach((function(n){"string"!=typeof n&&(B(n)?e(U(n)):"object"!==a(n)||t.isValidElement(n)||Object.assign(l,n))}))}(e);var f=r.services.interpolator.interpolate(n,i(i({},l),c),r.language),p=v("<0>".concat(f,"</0>"));function d(e,n,r){var i=U(e),a=h(i,n.children,r);return function(e){return"[object Array]"===Object.prototype.toString.call(e)&&e.every((function(e){return t.isValidElement(e)}))}(i)&&0===a.length?i:a}function m(e,n,r,a,o){e.dummy&&(e.children=n),r.push(t.cloneElement(e,i(i({},e.props),{},{key:a}),o?void 0:n))}function h(n,r,c){var l=V(n);return V(r).reduce((function(n,r,f){var p,g,y,v=r.children&&r.children[0]&&r.children[0].content;if("tag"===r.type){var b=l[parseInt(r.name,10)];!b&&1===c.length&&c[0][r.name]&&(b=c[0][r.name]),b||(b={});var O=0!==Object.keys(r.attrs).length?(p={props:r.attrs},(y=i({},g=b)).props=Object.assign(p.props,g.props),y):b,w=t.isValidElement(O),x=w&&B(r,!0)&&!r.voidElement,j=u&&"object"===a(O)&&O.dummy&&!w,E="object"===a(e)&&null!==e&&Object.hasOwnProperty.call(e,r.name);if("string"==typeof O)n.push(O);else if(B(O)||x){m(O,d(O,r,c),n,f)}else if(j){var S=h(l,r.children,c);n.push(t.cloneElement(O,i(i({},O.props),{},{key:f}),S))}else if(Number.isNaN(parseFloat(r.name))){if(E)m(O,d(O,r,c),n,f,r.voidElement);else if(o.transSupportBasicHtmlNodes&&s.indexOf(r.name)>-1)if(r.voidElement)n.push(t.createElement(r.name,{key:"".concat(r.name,"-").concat(f)}));else{var N=h(l,r.children,c);n.push(t.createElement(r.name,{key:"".concat(r.name,"-").concat(f)},N))}else if(r.voidElement)n.push("<".concat(r.name," />"));else{var I=h(l,r.children,c);n.push("<".concat(r.name,">").concat(I,"</").concat(r.name,">"))}}else if("object"!==a(O)||w)1===r.children.length&&v?n.push(t.cloneElement(O,i(i({},O.props),{},{key:f}),v)):n.push(t.cloneElement(O,i(i({},O.props),{},{key:f})));else{var k=r.children[0]?v:null;k&&n.push(k)}}else if("text"===r.type){var P=o.transWrapTextNodes;P?n.push(t.createElement(P,{key:"".concat(r.name,"-").concat(f)},r.content)):n.push(r.content)}return n}),[])}return U(h([{dummy:!0,children:e}],p,V(e||[]))[0])}function W(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.i18n,a=n.useContext(O)||{},o=a.i18n,c=a.defaultNS,s=r||o||S();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new j),!s){C("You will need to pass in an i18next instance by using initReactI18next");var l=function(e){return Array.isArray(e)?e[e.length-1]:e},f=[l,{},!1];return f.t=l,f.i18n={},f.ready=!1,f}s.options.react&&void 0!==s.options.react.wait&&C("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var p=i(i(i({},x()),s.options.react),t),d=p.useSuspense,m=e||c||s.options&&s.options.defaultNS;m="string"==typeof m?[m]:m||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(m);var h=(s.isInitialized||s.initializedStoreOnce)&&m.every((function(e){return T(e,s,p)}));function g(){return s.getFixedT(null,"fallback"===p.nsMode?m:m[0])}var y=n.useState(g),v=u(y,2),b=v[0],w=v[1],E=n.useRef(!0);n.useEffect((function(){var e=p.bindI18n,n=p.bindI18nStore;function t(){E.current&&w(g)}return E.current=!0,h||d||A(s,m,(function(){E.current&&w(g)})),e&&s&&s.on(e,t),n&&s&&s.store.on(n,t),function(){E.current=!1,e&&s&&e.split(" ").forEach((function(e){return s.off(e,t)})),n&&s&&n.split(" ").forEach((function(e){return s.store.off(e,t)}))}}),[s,m.join()]);var N=n.useRef(!0);n.useEffect((function(){E.current&&!N.current&&w(g),N.current=!1}),[s]);var I=[b,s,h];if(I.t=b,I.i18n=s,I.ready=h,h)return I;if(!h&&!d)return I;throw new Promise((function(e){A(s,m,(function(){e()}))}))}var F=["forwardedRef"];var H=["ns","children"];function M(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.i18n,a=n.useContext(O)||{},o=a.i18n,c=i||o||S();c.options&&c.options.isClone||(e&&!c.initializedStoreOnce&&(c.services.resourceStore.data=e,c.options.ns=Object.values(e).reduce((function(e,n){return Object.keys(n).forEach((function(n){e.indexOf(n)<0&&e.push(n)})),e}),c.options.ns),c.initializedStoreOnce=!0,c.isInitialized=!0),t&&!c.initializedLanguageOnce&&(c.changeLanguage(t),c.initializedLanguageOnce=!0))}var $=["initialI18nStore","initialLanguage"];e.I18nContext=O,e.I18nextProvider=function(e){var t=e.i18n,r=e.defaultNS,i=e.children,a=n.useMemo((function(){return{i18n:t,defaultNS:r}}),[t,r]);return n.createElement(O.Provider,{value:a},i)},e.Trans=function(e){var r=e.children,o=e.count,c=e.parent,u=e.i18nKey,l=e.tOptions,f=void 0===l?{}:l,p=e.values,d=e.defaults,m=e.components,h=e.ns,g=e.i18n,y=e.t,v=s(e,D),b=n.useContext(O)||{},w=b.i18n,j=b.defaultNS,E=g||w||S();if(!E)return C("You will need to pass in an i18next instance by using i18nextReactModule"),r;var N=y||E.t.bind(E)||function(e){return e},I=i(i({},x()),E.options&&E.options.react),k=h||N.ns||j||E.options&&E.options.defaultNS;k="string"==typeof k?[k]:k||["translation"];var R=d||function e(n,r){if(!n)return"";var i="",o=V(n),c=r.transKeepBasicHtmlNodesFor||[];return o.forEach((function(n,o){if("string"==typeof n)i+="".concat(n);else if(t.isValidElement(n)){var u=Object.keys(n.props).length,l=c.indexOf(n.type)>-1,f=n.props.children;if(!f&&l&&0===u)i+="<".concat(n.type,"/>");else if(f||l&&0===u)if(n.props.i18nIsDynamicList)i+="<".concat(o,"></").concat(o,">");else if(l&&1===u&&"string"==typeof f)i+="<".concat(n.type,">").concat(f,"</").concat(n.type,">");else{var p=e(f,r);i+="<".concat(o,">").concat(p,"</").concat(o,">")}else i+="<".concat(o,"></").concat(o,">")}else if(null===n)P("Trans: the passed in value is invalid - seems you passed in a null child.");else if("object"===a(n)){var d=n.format,m=s(n,L),h=Object.keys(m);if(1===h.length){var g=d?"".concat(h[0],", ").concat(d):h[0];i+="{{".concat(g,"}}")}else P("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else P("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",n)})),i}(r,I)||I.transEmptyNodeValue||u,A=I.hashTransKey,T=u||(A?A(R):R),z=p?f.interpolation:{interpolation:i(i({},f.interpolation),{},{prefix:"#$?",suffix:"?$#"})},B=i(i(i(i({},f),{},{count:o},p),z),{},{defaultValue:R,ns:k}),U=K(m||r,T?N(T,B):R,E,I,B),W=void 0!==c?c:I.defaultTransParent;return W?t.createElement(W,v,U):U},e.Translation=function(e){var n=e.ns,t=e.children,r=u(W(n,s(e,H)),3),i=r[0],a=r[1],o=r[2];return t(i,{i18n:a,lng:a.language},o)},e.composeInitialProps=I,e.date=function(){return""},e.getDefaults=x,e.getI18n=S,e.getInitialProps=k,e.initReactI18next=N,e.number=function(){return""},e.plural=function(){return""},e.select=function(){return""},e.selectOrdinal=function(){return""},e.setDefaults=w,e.setI18n=E,e.time=function(){return""},e.useSSR=M,e.useTranslation=W,e.withSSR=function(){return function(e){function n(n){var r=n.initialI18nStore,a=n.initialLanguage,o=s(n,$);return M(r,a),t.createElement(e,i({},o))}return n.getInitialProps=I(e),n.displayName="withI18nextSSR(".concat(z(e),")"),n.WrappedComponent=e,n}},e.withTranslation=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(r){function a(a){var o=a.forwardedRef,c=s(a,F),l=u(W(e,c),3),f=l[0],p=l[1],d=l[2],m=i(i({},c),{},{t:f,i18n:p,tReady:d});return n.withRef&&o?m.ref=o:!n.withRef&&o&&(m.forwardedRef=o),t.createElement(r,m)}a.displayName="withI18nextTranslation(".concat(z(r),")"),a.WrappedComponent=r;return n.withRef?t.forwardRef((function(e,n){return t.createElement(a,Object.assign({},e,{forwardedRef:n}))})):a}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],n):n((e=e||self).ReactI18next={},e.React)}(this,(function(e,n){"use strict";var t="default"in n?n.default:n;function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){c(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function u(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==t)return;var r,i,a=[],o=!0,c=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(a.push(r.value),!n||a.length!==n);o=!0);}catch(e){c=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(c)throw i}}return a}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return l(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return l(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var f={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},p=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function d(e){var n={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=e.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(n.name=t[1],(f[t[1]]||"/"===e.charAt(e.length-2))&&(n.voidElement=!0),n.name.startsWith("!--"))){var r=e.indexOf("--\x3e");return{type:"comment",comment:-1!==r?e.slice(4,r):""}}for(var i=new RegExp(p),a=null;null!==(a=i.exec(e));)if(a[0].trim())if(a[1]){var o=a[1].trim(),c=[o,""];o.indexOf("=")>-1&&(c=o.split("=")),n.attrs[c[0]]=c[1],i.lastIndex--}else a[2]&&(n.attrs[a[2]]=a[3].trim().substring(1,a[3].length-1));return n}var m=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,g=/^\s*$/,h=Object.create(null);var v,y=function(e,n){n||(n={}),n.components||(n.components=h);var t,r=[],i=[],a=-1,o=!1;if(0!==e.indexOf("<")){var c=e.indexOf("<");r.push({type:"text",content:-1===c?e:e.substring(0,c)})}return e.replace(m,(function(c,s){if(o){if(c!=="</"+t.name+">")return;o=!1}var u,l="/"!==c.charAt(1),f=c.startsWith("\x3c!--"),p=s+c.length,m=e.charAt(p);if(f){var h=d(c);return a<0?(r.push(h),r):((u=i[a]).children.push(h),r)}if(l&&(a++,"tag"===(t=d(c)).type&&n.components[t.name]&&(t.type="component",o=!0),t.voidElement||o||!m||"<"===m||t.children.push({type:"text",content:e.slice(p,e.indexOf("<",p))}),0===a&&r.push(t),(u=i[a-1])&&u.children.push(t),i[a]=t),(!l||t.voidElement)&&(a>-1&&(t.voidElement||t.name===c.slice(2,-1))&&(a--,t=-1===a?r:i[a]),!o&&"<"!==m&&m)){u=-1===a?r:i[a].children;var v=e.indexOf("<",p),y=e.slice(p,-1===v?void 0:v);g.test(y)&&(y=" "),(v>-1&&a+u.length>=0||" "!==y)&&u.push({type:"text",content:y})}})),r},b={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0},O=t.createContext();function w(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};b=i(i({},b),e)}function x(){return b}var j=function(){function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.usedNamespaces={}}var n,t,r;return n=e,(t=[{key:"addUsedNamespaces",value:function(e){var n=this;e.forEach((function(e){n.usedNamespaces[e]||(n.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}])&&o(n.prototype,t),r&&o(n,r),e}();function E(e){v=e}function S(){return v}var N={type:"3rdParty",init:function(e){w(e.options.react),E(e)}};function I(e){return function(n){return new Promise((function(t){var r=k();e.getInitialProps?e.getInitialProps(n).then((function(e){t(i(i({},e),r))})):t(r)}))}}function k(){var e=S(),n=e.reportNamespaces?e.reportNamespaces.getUsedNamespaces():[],t={},r={};return e.languages.forEach((function(t){r[t]={},n.forEach((function(n){r[t][n]=e.getResourceBundle(t,n)||{}}))})),t.initialI18nStore=r,t.initialLanguage=e.language,t}function P(){if(console&&console.warn){for(var e,n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];"string"==typeof t[0]&&(t[0]="react-i18next:: ".concat(t[0])),(e=console).warn.apply(e,t)}}var R={};function C(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&R[n[0]]||("string"==typeof n[0]&&(R[n[0]]=new Date),P.apply(void 0,n))}function A(e,n,t){e.loadNamespaces(n,(function(){if(e.isInitialized)t();else{e.on("initialized",(function n(){setTimeout((function(){e.off("initialized",n)}),0),t()}))}}))}function T(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!n.languages||!n.languages.length)return C("i18n.languages were undefined or empty",n.languages),!0;var r=n.languages[0],i=!!n.options&&n.options.fallbackLng,a=n.languages[n.languages.length-1];if("cimode"===r.toLowerCase())return!0;var o=function(e,t){var r=n.services.backendConnector.state["".concat(e,"|").concat(t)];return-1===r||2===r};return!(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!o(n.isLanguageChangingTo,e))&&(!!n.hasResourceBundle(r,e)||(!n.services.backendConnector.backend||!(!o(r,e)||i&&!o(a,e))))}function z(e){return e.displayName||e.name||("string"==typeof e&&e.length>0?e:"Unknown")}var L=["format"],D=["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"];function B(e,n){if(!e)return!1;var t=e.props?e.props.children:e.children;return n?t.length>0:!!t}function U(e){return e?e&&e.children?e.children:e.props&&e.props.children:[]}function V(e){return Array.isArray(e)?e:[e]}function K(e,n,r,o,c){if(""===n)return[];var s=o.transKeepBasicHtmlNodesFor||[],u=n&&new RegExp(s.join("|")).test(n);if(!e&&!u)return[n];var l={};!function e(n){V(n).forEach((function(n){"string"!=typeof n&&(B(n)?e(U(n)):"object"!==a(n)||t.isValidElement(n)||Object.assign(l,n))}))}(e);var f=y("<0>".concat(n,"</0>")),p=i(i({},l),c);function d(e,n,r){var i=U(e),a=g(i,n.children,r);return function(e){return"[object Array]"===Object.prototype.toString.call(e)&&e.every((function(e){return t.isValidElement(e)}))}(i)&&0===a.length?i:a}function m(e,n,r,a,o){e.dummy&&(e.children=n),r.push(t.cloneElement(e,i(i({},e.props),{},{key:a}),o?void 0:n))}function g(n,c,l){var f=V(n);return V(c).reduce((function(n,c,h){var v,y,b,O=c.children&&c.children[0]&&c.children[0].content&&r.services.interpolator.interpolate(c.children[0].content,p,r.language);if("tag"===c.type){var w=f[parseInt(c.name,10)];!w&&1===l.length&&l[0][c.name]&&(w=l[0][c.name]),w||(w={});var x=0!==Object.keys(c.attrs).length?(v={props:c.attrs},(b=i({},y=w)).props=Object.assign(v.props,y.props),b):w,j=t.isValidElement(x),E=j&&B(c,!0)&&!c.voidElement,S=u&&"object"===a(x)&&x.dummy&&!j,N="object"===a(e)&&null!==e&&Object.hasOwnProperty.call(e,c.name);if("string"==typeof x){var I=r.services.interpolator.interpolate(x,p,r.language);n.push(I)}else if(B(x)||E){m(x,d(x,c,l),n,h)}else if(S){var k=g(f,c.children,l);n.push(t.cloneElement(x,i(i({},x.props),{},{key:h}),k))}else if(Number.isNaN(parseFloat(c.name))){if(N)m(x,d(x,c,l),n,h,c.voidElement);else if(o.transSupportBasicHtmlNodes&&s.indexOf(c.name)>-1)if(c.voidElement)n.push(t.createElement(c.name,{key:"".concat(c.name,"-").concat(h)}));else{var P=g(f,c.children,l);n.push(t.createElement(c.name,{key:"".concat(c.name,"-").concat(h)},P))}else if(c.voidElement)n.push("<".concat(c.name," />"));else{var R=g(f,c.children,l);n.push("<".concat(c.name,">").concat(R,"</").concat(c.name,">"))}}else if("object"!==a(x)||j)1===c.children.length&&O?n.push(t.cloneElement(x,i(i({},x.props),{},{key:h}),O)):n.push(t.cloneElement(x,i(i({},x.props),{},{key:h})));else{var C=c.children[0]?O:null;C&&n.push(C)}}else if("text"===c.type){var A=o.transWrapTextNodes,T=r.services.interpolator.interpolate(c.content,p,r.language);A?n.push(t.createElement(A,{key:"".concat(c.name,"-").concat(h)},T)):n.push(T)}return n}),[])}return U(g([{dummy:!0,children:e||[]}],f,V(e||[]))[0])}function W(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.i18n,a=n.useContext(O)||{},o=a.i18n,c=a.defaultNS,s=r||o||S();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new j),!s){C("You will need to pass in an i18next instance by using initReactI18next");var l=function(e){return Array.isArray(e)?e[e.length-1]:e},f=[l,{},!1];return f.t=l,f.i18n={},f.ready=!1,f}s.options.react&&void 0!==s.options.react.wait&&C("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var p=i(i(i({},x()),s.options.react),t),d=p.useSuspense,m=p.keyPrefix,g=e||c||s.options&&s.options.defaultNS;g="string"==typeof g?[g]:g||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(g);var h=(s.isInitialized||s.initializedStoreOnce)&&g.every((function(e){return T(e,s,p)}));function v(){return s.getFixedT(null,"fallback"===p.nsMode?g:g[0],m)}var y=n.useState(v),b=u(y,2),w=b[0],E=b[1],N=n.useRef(!0);n.useEffect((function(){var e=p.bindI18n,n=p.bindI18nStore;function t(){N.current&&E(v)}return N.current=!0,h||d||A(s,g,(function(){N.current&&E(v)})),e&&s&&s.on(e,t),n&&s&&s.store.on(n,t),function(){N.current=!1,e&&s&&e.split(" ").forEach((function(e){return s.off(e,t)})),n&&s&&n.split(" ").forEach((function(e){return s.store.off(e,t)}))}}),[s,g.join()]);var I=n.useRef(!0);n.useEffect((function(){N.current&&!I.current&&E(v),I.current=!1}),[s]);var k=[w,s,h];if(k.t=w,k.i18n=s,k.ready=h,h)return k;if(!h&&!d)return k;throw new Promise((function(e){A(s,g,(function(){e()}))}))}var F=["forwardedRef"];var H=["ns","children"];function M(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.i18n,a=n.useContext(O)||{},o=a.i18n,c=i||o||S();c.options&&c.options.isClone||(e&&!c.initializedStoreOnce&&(c.services.resourceStore.data=e,c.options.ns=Object.values(e).reduce((function(e,n){return Object.keys(n).forEach((function(n){e.indexOf(n)<0&&e.push(n)})),e}),c.options.ns),c.initializedStoreOnce=!0,c.isInitialized=!0),t&&!c.initializedLanguageOnce&&(c.changeLanguage(t),c.initializedLanguageOnce=!0))}var $=["initialI18nStore","initialLanguage"];e.I18nContext=O,e.I18nextProvider=function(e){var t=e.i18n,r=e.defaultNS,i=e.children,a=n.useMemo((function(){return{i18n:t,defaultNS:r}}),[t,r]);return n.createElement(O.Provider,{value:a},i)},e.Trans=function(e){var r=e.children,o=e.count,c=e.parent,u=e.i18nKey,l=e.tOptions,f=void 0===l?{}:l,p=e.values,d=e.defaults,m=e.components,g=e.ns,h=e.i18n,v=e.t,y=s(e,D),b=n.useContext(O)||{},w=b.i18n,j=b.defaultNS,E=h||w||S();if(!E)return C("You will need to pass in an i18next instance by using i18nextReactModule"),r;var N=v||E.t.bind(E)||function(e){return e},I=i(i({},x()),E.options&&E.options.react),k=g||N.ns||j||E.options&&E.options.defaultNS;k="string"==typeof k?[k]:k||["translation"];var R=d||function e(n,r){if(!n)return"";var i="",o=V(n),c=r.transKeepBasicHtmlNodesFor||[];return o.forEach((function(n,o){if("string"==typeof n)i+="".concat(n);else if(t.isValidElement(n)){var u=Object.keys(n.props).length,l=c.indexOf(n.type)>-1,f=n.props.children;if(!f&&l&&0===u)i+="<".concat(n.type,"/>");else if(f||l&&0===u)if(n.props.i18nIsDynamicList)i+="<".concat(o,"></").concat(o,">");else if(l&&1===u&&"string"==typeof f)i+="<".concat(n.type,">").concat(f,"</").concat(n.type,">");else{var p=e(f,r);i+="<".concat(o,">").concat(p,"</").concat(o,">")}else i+="<".concat(o,"></").concat(o,">")}else if(null===n)P("Trans: the passed in value is invalid - seems you passed in a null child.");else if("object"===a(n)){var d=n.format,m=s(n,L),g=Object.keys(m);if(1===g.length){var h=d?"".concat(g[0],", ").concat(d):g[0];i+="{{".concat(h,"}}")}else P("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else P("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",n)})),i}(r,I)||I.transEmptyNodeValue||u,A=I.hashTransKey,T=u||(A?A(R):R),z=p?f.interpolation:{interpolation:i(i({},f.interpolation),{},{prefix:"#$?",suffix:"?$#"})},B=i(i(i(i({},f),{},{count:o},p),z),{},{defaultValue:R,ns:k}),U=K(m||r,T?N(T,B):R,E,I,B),W=void 0!==c?c:I.defaultTransParent;return W?t.createElement(W,y,U):U},e.Translation=function(e){var n=e.ns,t=e.children,r=u(W(n,s(e,H)),3),i=r[0],a=r[1],o=r[2];return t(i,{i18n:a,lng:a.language},o)},e.composeInitialProps=I,e.date=function(){return""},e.getDefaults=x,e.getI18n=S,e.getInitialProps=k,e.initReactI18next=N,e.number=function(){return""},e.plural=function(){return""},e.select=function(){return""},e.selectOrdinal=function(){return""},e.setDefaults=w,e.setI18n=E,e.time=function(){return""},e.useSSR=M,e.useTranslation=W,e.withSSR=function(){return function(e){function n(n){var r=n.initialI18nStore,a=n.initialLanguage,o=s(n,$);return M(r,a),t.createElement(e,i({},o))}return n.getInitialProps=I(e),n.displayName="withI18nextSSR(".concat(z(e),")"),n.WrappedComponent=e,n}},e.withTranslation=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(r){function a(a){var o=a.forwardedRef,c=s(a,F),l=u(W(e,c),3),f=l[0],p=l[1],d=l[2],m=i(i({},c),{},{t:f,i18n:p,tReady:d});return n.withRef&&o?m.ref=o:!n.withRef&&o&&(m.forwardedRef=o),t.createElement(r,m)}a.displayName="withI18nextTranslation(".concat(z(r),")"),a.WrappedComponent=r;return n.withRef?t.forwardRef((function(e,n){return t.createElement(a,Object.assign({},e,{forwardedRef:n}))})):a}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/src/Trans.js
CHANGED
|
@@ -127,15 +127,10 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
127
127
|
|
|
128
128
|
getData(children);
|
|
129
129
|
|
|
130
|
-
const interpolatedString = i18n.services.interpolator.interpolate(
|
|
131
|
-
targetString,
|
|
132
|
-
{ ...data, ...combinedTOpts },
|
|
133
|
-
i18n.language,
|
|
134
|
-
);
|
|
135
|
-
|
|
136
130
|
// parse ast from string with additional wrapper tag
|
|
137
131
|
// -> avoids issues in parser removing prepending text nodes
|
|
138
|
-
const ast = HTML.parse(`<0>${
|
|
132
|
+
const ast = HTML.parse(`<0>${targetString}</0>`);
|
|
133
|
+
const opts = { ...data, ...combinedTOpts };
|
|
139
134
|
|
|
140
135
|
function renderInner(child, node, rootReactNode) {
|
|
141
136
|
const childs = getChildren(child);
|
|
@@ -157,7 +152,12 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
157
152
|
const astNodes = getAsArray(astNode);
|
|
158
153
|
|
|
159
154
|
return astNodes.reduce((mem, node, i) => {
|
|
160
|
-
const translationContent =
|
|
155
|
+
const translationContent =
|
|
156
|
+
node.children &&
|
|
157
|
+
node.children[0] &&
|
|
158
|
+
node.children[0].content &&
|
|
159
|
+
i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);
|
|
160
|
+
|
|
161
161
|
if (node.type === 'tag') {
|
|
162
162
|
let tmp = reactNodes[parseInt(node.name, 10)]; // regular array (components or children)
|
|
163
163
|
if (!tmp && rootReactNode.length === 1 && rootReactNode[0][node.name])
|
|
@@ -182,7 +182,8 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
182
182
|
// console.warn('CHILD', node.name, node, isElement, child);
|
|
183
183
|
|
|
184
184
|
if (typeof child === 'string') {
|
|
185
|
-
|
|
185
|
+
const value = i18n.services.interpolator.interpolate(child, opts, i18n.language);
|
|
186
|
+
mem.push(value);
|
|
186
187
|
} else if (
|
|
187
188
|
hasChildren(child) || // the jsx element has children -> loop
|
|
188
189
|
isValidTranslationWithChildren // valid jsx element with no children but the translation has -> loop
|
|
@@ -243,10 +244,11 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
243
244
|
}
|
|
244
245
|
} else if (node.type === 'text') {
|
|
245
246
|
const wrapTextNodes = i18nOptions.transWrapTextNodes;
|
|
247
|
+
const content = i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
246
248
|
if (wrapTextNodes) {
|
|
247
|
-
mem.push(React.createElement(wrapTextNodes, { key: `${node.name}-${i}` },
|
|
249
|
+
mem.push(React.createElement(wrapTextNodes, { key: `${node.name}-${i}` }, content));
|
|
248
250
|
} else {
|
|
249
|
-
mem.push(
|
|
251
|
+
mem.push(content);
|
|
250
252
|
}
|
|
251
253
|
}
|
|
252
254
|
return mem;
|
|
@@ -256,7 +258,11 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
256
258
|
// call mapAST with having react nodes nested into additional node like
|
|
257
259
|
// we did for the string ast from translation
|
|
258
260
|
// return the children of that extra node to get expected result
|
|
259
|
-
const result = mapAST(
|
|
261
|
+
const result = mapAST(
|
|
262
|
+
[{ dummy: true, children: children || [] }],
|
|
263
|
+
ast,
|
|
264
|
+
getAsArray(children || []),
|
|
265
|
+
);
|
|
260
266
|
return getChildren(result[0]);
|
|
261
267
|
}
|
|
262
268
|
|
package/src/useTranslation.js
CHANGED
|
@@ -24,7 +24,7 @@ export function useTranslation(ns, props = {}) {
|
|
|
24
24
|
);
|
|
25
25
|
|
|
26
26
|
const i18nOptions = { ...getDefaults(), ...i18n.options.react, ...props };
|
|
27
|
-
const { useSuspense } = i18nOptions;
|
|
27
|
+
const { useSuspense, keyPrefix } = i18nOptions;
|
|
28
28
|
|
|
29
29
|
// prepare having a namespace
|
|
30
30
|
let namespaces = ns || defaultNSFromContext || (i18n.options && i18n.options.defaultNS);
|
|
@@ -40,7 +40,11 @@ export function useTranslation(ns, props = {}) {
|
|
|
40
40
|
|
|
41
41
|
// binding t function to namespace (acts also as rerender trigger)
|
|
42
42
|
function getT() {
|
|
43
|
-
return i18n.getFixedT(
|
|
43
|
+
return i18n.getFixedT(
|
|
44
|
+
null,
|
|
45
|
+
i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0],
|
|
46
|
+
keyPrefix,
|
|
47
|
+
);
|
|
44
48
|
}
|
|
45
49
|
const [t, setT] = useState(getT);
|
|
46
50
|
|
package/ts4.1/index.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ type Subtract<T extends K, K> = Omit<T, keyof K>;
|
|
|
26
26
|
*/
|
|
27
27
|
export interface Resources {}
|
|
28
28
|
/**
|
|
29
|
-
* This interface can be augmented by users to add types to `react-i18next`. It accepts a `defaultNS` and `
|
|
29
|
+
* This interface can be augmented by users to add types to `react-i18next`. It accepts a `defaultNS`, `resources`, `returnNull` and `returnEmptyString` properties.
|
|
30
30
|
*
|
|
31
31
|
* Usage:
|
|
32
32
|
* ```ts
|
|
@@ -35,6 +35,8 @@ export interface Resources {}
|
|
|
35
35
|
* declare module 'react-i18next' {
|
|
36
36
|
* interface CustomTypeOptions {
|
|
37
37
|
* defaultNS: 'custom';
|
|
38
|
+
* returnNull: false,
|
|
39
|
+
* returnEmptyString: false,
|
|
38
40
|
* resources: {
|
|
39
41
|
* custom: {
|
|
40
42
|
* foo: 'foo';
|
|
@@ -50,6 +52,9 @@ type MergeBy<T, K> = Omit<T, keyof K> & K;
|
|
|
50
52
|
|
|
51
53
|
type TypeOptions = MergeBy<
|
|
52
54
|
{
|
|
55
|
+
returnNull: true;
|
|
56
|
+
returnEmptyString: true;
|
|
57
|
+
keySeparator: '.';
|
|
53
58
|
defaultNS: 'translation';
|
|
54
59
|
resources: Resources;
|
|
55
60
|
},
|
|
@@ -88,8 +93,10 @@ declare module 'i18next' {
|
|
|
88
93
|
}
|
|
89
94
|
|
|
90
95
|
// Normalize single namespace
|
|
91
|
-
type AppendKeys<K1, K2> = `${K1 & string}
|
|
92
|
-
|
|
96
|
+
type AppendKeys<K1, K2, S extends string = TypeOptions['keySeparator']> = `${K1 & string}${S}${K2 &
|
|
97
|
+
string}`;
|
|
98
|
+
type AppendKeys2<K1, K2, S extends string = TypeOptions['keySeparator']> = `${K1 &
|
|
99
|
+
string}${S}${Exclude<K2, keyof any[]> & string}`;
|
|
93
100
|
type Normalize2<T, K = keyof T> = K extends keyof T
|
|
94
101
|
? T[K] extends Record<string, any>
|
|
95
102
|
? T[K] extends readonly any[]
|
|
@@ -111,12 +118,38 @@ type NormalizeMulti<T, U extends keyof T, L = LastOf<U>> = L extends U
|
|
|
111
118
|
? AppendNS<L, Normalize<T[L]>> | NormalizeMulti<T, Exclude<U, L>>
|
|
112
119
|
: never;
|
|
113
120
|
|
|
114
|
-
type
|
|
121
|
+
type CustomTypeParameters = {
|
|
122
|
+
returnNull?: boolean;
|
|
123
|
+
returnEmptyString?: boolean;
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
type TypeOptionsFallback<TranslationValue, Option, MatchingValue> = Option extends false
|
|
127
|
+
? TranslationValue extends MatchingValue
|
|
128
|
+
? string
|
|
129
|
+
: TranslationValue
|
|
130
|
+
: TranslationValue;
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Checks if user has enabled `returnEmptyString` and `returnNull` options to retrieve correct values.
|
|
134
|
+
*/
|
|
135
|
+
export type NormalizeByTypeOptions<
|
|
136
|
+
TranslationValue,
|
|
137
|
+
Options extends CustomTypeParameters = TypeOptions,
|
|
138
|
+
R = TypeOptionsFallback<TranslationValue, Options['returnEmptyString'], ''>
|
|
139
|
+
> = TypeOptionsFallback<R, Options['returnNull'], null>;
|
|
140
|
+
|
|
141
|
+
type NormalizeReturn<
|
|
142
|
+
T,
|
|
143
|
+
V,
|
|
144
|
+
S extends string | false = TypeOptions['keySeparator']
|
|
145
|
+
> = V extends keyof T
|
|
146
|
+
? NormalizeByTypeOptions<T[V]>
|
|
147
|
+
: S extends false
|
|
148
|
+
? V
|
|
149
|
+
: V extends `${infer K}${S}${infer R}`
|
|
115
150
|
? K extends keyof T
|
|
116
151
|
? NormalizeReturn<T[K], R>
|
|
117
152
|
: never
|
|
118
|
-
: V extends keyof T
|
|
119
|
-
? T[V]
|
|
120
153
|
: never;
|
|
121
154
|
|
|
122
155
|
type NormalizeMultiReturn<T, V> = V extends `${infer N}:${infer R}`
|
|
@@ -125,12 +158,20 @@ type NormalizeMultiReturn<T, V> = V extends `${infer N}:${infer R}`
|
|
|
125
158
|
: never
|
|
126
159
|
: never;
|
|
127
160
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
|
161
|
+
type KeyPrefix<N extends Namespace> = N extends keyof DefaultResources
|
|
162
|
+
? Fallback<string, keyof DefaultResources[N]> | undefined
|
|
163
|
+
: string | undefined;
|
|
164
|
+
|
|
165
|
+
export type TFuncKey<
|
|
166
|
+
N extends Namespace = DefaultNamespace,
|
|
167
|
+
TKPrefix extends KeyPrefix<N> = undefined,
|
|
168
|
+
T = DefaultResources
|
|
169
|
+
> = N extends (keyof T)[] | Readonly<(keyof T)[]>
|
|
131
170
|
? NormalizeMulti<T, N[number]>
|
|
132
171
|
: N extends keyof T
|
|
133
|
-
?
|
|
172
|
+
? TKPrefix extends keyof T[N]
|
|
173
|
+
? Normalize<T[N][TKPrefix]>
|
|
174
|
+
: Normalize<T[N]>
|
|
134
175
|
: string;
|
|
135
176
|
|
|
136
177
|
export type TFuncReturn<N, TKeys, TDefaultResult, T = DefaultResources> = N extends (keyof T)[]
|
|
@@ -139,9 +180,12 @@ export type TFuncReturn<N, TKeys, TDefaultResult, T = DefaultResources> = N exte
|
|
|
139
180
|
? NormalizeReturn<T[N], TKeys>
|
|
140
181
|
: Fallback<TDefaultResult>;
|
|
141
182
|
|
|
142
|
-
export interface TFunction<
|
|
183
|
+
export interface TFunction<
|
|
184
|
+
N extends Namespace = DefaultNamespace,
|
|
185
|
+
TKPrefix extends KeyPrefix<N> = undefined
|
|
186
|
+
> {
|
|
143
187
|
<
|
|
144
|
-
TKeys extends TFuncKey<N> | TemplateStringsArray extends infer A ? A : never,
|
|
188
|
+
TKeys extends TFuncKey<N, TKPrefix> | TemplateStringsArray extends infer A ? A : never,
|
|
145
189
|
TDefaultResult extends TFunctionResult = string,
|
|
146
190
|
TInterpolationMap extends object = StringMap
|
|
147
191
|
>(
|
|
@@ -149,7 +193,7 @@ export interface TFunction<N extends Namespace = DefaultNamespace> {
|
|
|
149
193
|
options?: TOptions<TInterpolationMap> | string,
|
|
150
194
|
): TFuncReturn<N, TKeys, TDefaultResult>;
|
|
151
195
|
<
|
|
152
|
-
TKeys extends TFuncKey<N> | TemplateStringsArray extends infer A ? A : never,
|
|
196
|
+
TKeys extends TFuncKey<N, TKPrefix> | TemplateStringsArray extends infer A ? A : never,
|
|
153
197
|
TDefaultResult extends TFunctionResult = string,
|
|
154
198
|
TInterpolationMap extends object = StringMap
|
|
155
199
|
>(
|
|
@@ -184,21 +228,32 @@ export function Trans<
|
|
|
184
228
|
|
|
185
229
|
export function useSSR(initialI18nStore: Resource, initialLanguage: string): void;
|
|
186
230
|
|
|
187
|
-
export interface UseTranslationOptions
|
|
231
|
+
export interface UseTranslationOptions<
|
|
232
|
+
N extends Namespace = DefaultNamespace,
|
|
233
|
+
TKPrefix extends KeyPrefix<N> = undefined
|
|
234
|
+
> {
|
|
188
235
|
i18n?: i18n;
|
|
189
236
|
useSuspense?: boolean;
|
|
237
|
+
keyPrefix?: TKPrefix;
|
|
190
238
|
}
|
|
191
239
|
|
|
192
|
-
type UseTranslationResponse<N extends Namespace
|
|
193
|
-
|
|
240
|
+
type UseTranslationResponse<N extends Namespace, TKPrefix extends KeyPrefix<N>> = [
|
|
241
|
+
TFunction<N, TKPrefix>,
|
|
242
|
+
i18n,
|
|
243
|
+
boolean,
|
|
244
|
+
] & {
|
|
245
|
+
t: TFunction<N, TKPrefix>;
|
|
194
246
|
i18n: i18n;
|
|
195
247
|
ready: boolean;
|
|
196
248
|
};
|
|
197
249
|
|
|
198
|
-
export function useTranslation<
|
|
250
|
+
export function useTranslation<
|
|
251
|
+
N extends Namespace = DefaultNamespace,
|
|
252
|
+
TKPrefix extends KeyPrefix<N> = undefined
|
|
253
|
+
>(
|
|
199
254
|
ns?: N | Readonly<N>,
|
|
200
|
-
options?: UseTranslationOptions,
|
|
201
|
-
): UseTranslationResponse<N>;
|
|
255
|
+
options?: UseTranslationOptions<N, TKPrefix>,
|
|
256
|
+
): UseTranslationResponse<N, TKPrefix>;
|
|
202
257
|
|
|
203
258
|
// Need to see usage to improve this
|
|
204
259
|
export function withSSR(): <Props>(
|