react-i18next 11.14.1 → 11.15.1
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 +16 -0
- package/dist/amd/react-i18next.js +27 -4
- package/dist/amd/react-i18next.min.js +1 -1
- package/dist/commonjs/Trans.js +7 -4
- package/dist/es/Trans.js +6 -4
- package/dist/umd/react-i18next.js +27 -4
- package/dist/umd/react-i18next.min.js +1 -1
- package/index.d.ts +1 -0
- package/package.json +3 -2
- package/react-i18next.js +27 -4
- package/react-i18next.min.js +1 -1
- package/src/Trans.js +7 -2
- package/ts4.1/index.d.ts +53 -32
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
### 11.15.1
|
|
2
|
+
|
|
3
|
+
- add missing types for shouldUnescape and useTranslation [1429](https://github.com/i18next/react-i18next/pull/1429)
|
|
4
|
+
|
|
5
|
+
### 11.15.0
|
|
6
|
+
|
|
7
|
+
- option to unescape html in Trans [1426](https://github.com/i18next/react-i18next/pull/1426)
|
|
8
|
+
|
|
9
|
+
### 11.14.3
|
|
10
|
+
|
|
11
|
+
- types: remove undefined from conditional type [1410](https://github.com/i18next/react-i18next/pull/1410)
|
|
12
|
+
|
|
13
|
+
### 11.14.2
|
|
14
|
+
|
|
15
|
+
- Add type-safe support to deep keyPrefix [1403](https://github.com/i18next/react-i18next/pull/1403)
|
|
16
|
+
|
|
1
17
|
### 11.14.1
|
|
2
18
|
|
|
3
19
|
- Rollback [1402](https://github.com/i18next/react-i18next/pull/1402): Remove generics from Trans component to suppress warning issue [1400](https://github.com/i18next/react-i18next/pull/1400)
|
|
@@ -316,6 +316,28 @@ define(['exports', 'react'], function (exports, React) { 'use strict';
|
|
|
316
316
|
}
|
|
317
317
|
};
|
|
318
318
|
|
|
319
|
+
var replace = ''.replace;
|
|
320
|
+
var es = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g;
|
|
321
|
+
var unes = {
|
|
322
|
+
'&': '&',
|
|
323
|
+
'&': '&',
|
|
324
|
+
'<': '<',
|
|
325
|
+
'<': '<',
|
|
326
|
+
'>': '>',
|
|
327
|
+
'>': '>',
|
|
328
|
+
''': "'",
|
|
329
|
+
''': "'",
|
|
330
|
+
'"': '"',
|
|
331
|
+
'"': '"'
|
|
332
|
+
};
|
|
333
|
+
function unescape(un) {
|
|
334
|
+
return replace.call(un, es, cape);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
function cape(m) {
|
|
338
|
+
return unes[m];
|
|
339
|
+
}
|
|
340
|
+
|
|
319
341
|
var defaultOptions = {
|
|
320
342
|
bindI18n: 'languageChanged',
|
|
321
343
|
bindI18nStore: '',
|
|
@@ -471,7 +493,7 @@ define(['exports', 'react'], function (exports, React) { 'use strict';
|
|
|
471
493
|
}
|
|
472
494
|
|
|
473
495
|
var _excluded = ["format"],
|
|
474
|
-
_excluded2 = ["children", "count", "parent", "i18nKey", "tOptions", "values", "defaults", "components", "ns", "i18n", "t"];
|
|
496
|
+
_excluded2 = ["children", "count", "parent", "i18nKey", "tOptions", "values", "defaults", "components", "ns", "i18n", "t", "shouldUnescape"];
|
|
475
497
|
|
|
476
498
|
function hasChildren(node, checkLength) {
|
|
477
499
|
if (!node) return false;
|
|
@@ -549,7 +571,7 @@ define(['exports', 'react'], function (exports, React) { 'use strict';
|
|
|
549
571
|
return stringNode;
|
|
550
572
|
}
|
|
551
573
|
|
|
552
|
-
function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
574
|
+
function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {
|
|
553
575
|
if (targetString === '') return [];
|
|
554
576
|
var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];
|
|
555
577
|
var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString);
|
|
@@ -651,7 +673,7 @@ define(['exports', 'react'], function (exports, React) { 'use strict';
|
|
|
651
673
|
} else if (node.type === 'text') {
|
|
652
674
|
var wrapTextNodes = i18nOptions.transWrapTextNodes;
|
|
653
675
|
|
|
654
|
-
var _content = i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
676
|
+
var _content = shouldUnescape ? unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
655
677
|
|
|
656
678
|
if (wrapTextNodes) {
|
|
657
679
|
mem.push(React__default.createElement(wrapTextNodes, {
|
|
@@ -686,6 +708,7 @@ define(['exports', 'react'], function (exports, React) { 'use strict';
|
|
|
686
708
|
ns = _ref.ns,
|
|
687
709
|
i18nFromProps = _ref.i18n,
|
|
688
710
|
tFromProps = _ref.t,
|
|
711
|
+
shouldUnescape = _ref.shouldUnescape,
|
|
689
712
|
additionalProps = _objectWithoutProperties(_ref, _excluded2);
|
|
690
713
|
|
|
691
714
|
var _ref2 = React.useContext(I18nContext) || {},
|
|
@@ -725,7 +748,7 @@ define(['exports', 'react'], function (exports, React) { 'use strict';
|
|
|
725
748
|
});
|
|
726
749
|
|
|
727
750
|
var translation = key ? t(key, combinedTOpts) : defaultValue;
|
|
728
|
-
var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts);
|
|
751
|
+
var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape);
|
|
729
752
|
var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;
|
|
730
753
|
return useAsParent ? React__default.createElement(useAsParent, additionalProps, content) : content;
|
|
731
754
|
}
|
|
@@ -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,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})}));
|
|
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 a(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 i(e){return(i="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,a=function(e,n){if(null==e)return{};var t,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}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,a,i=[],o=!0,c=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(i.push(r.value),!n||i.length!==n);o=!0);}catch(e){c=!0,a=e}finally{try{o||null==t.return||t.return()}finally{if(c)throw a}}return i}(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 a=new RegExp(p),i=null;null!==(i=a.exec(e));)if(i[0].trim())if(i[1]){var o=i[1].trim(),c=[o,""];o.indexOf("=")>-1&&(c=o.split("=")),n.attrs[c[0]]=c[1],a.lastIndex--}else i[2]&&(n.attrs[i[2]]=i[3].trim().substring(1,i[3].length-1));return n}var m=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,g=/^\s*$/,h=Object.create(null);var v=function(e,n){n||(n={}),n.components||(n.components=h);var t,r=[],a=[],i=-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 i<0?(r.push(h),r):((u=a[i]).children.push(h),r)}if(l&&(i++,"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===i&&r.push(t),(u=a[i-1])&&u.children.push(t),a[i]=t),(!l||t.voidElement)&&(i>-1&&(t.voidElement||t.name===c.slice(2,-1))&&(i--,t=-1===i?r:a[i]),!o&&"<"!==m&&m)){u=-1===i?r:a[i].children;var v=e.indexOf("<",p),y=e.slice(p,-1===v?void 0:v);g.test(y)&&(y=" "),(v>-1&&i+u.length>=0||" "!==y)&&u.push({type:"text",content:y})}})),r},y="".replace,b=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g,O={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'};function w(e){return O[e]}var x,j={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0},E=t.createContext();function S(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};j=a(a({},j),e)}function N(){return j}var I=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 k(e){x=e}function P(){return x}var R={type:"3rdParty",init:function(e){S(e.options.react),k(e)}};function C(e){return function(n){return new Promise((function(t){var r=A();e.getInitialProps?e.getInitialProps(n).then((function(e){t(a(a({},e),r))})):t(r)}))}}function A(){var e=P(),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 T(){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 z={};function L(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&z[n[0]]||("string"==typeof n[0]&&(z[n[0]]=new Date),T.apply(void 0,n))}function U(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 D(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!n.languages||!n.languages.length)return L("i18n.languages were undefined or empty",n.languages),!0;var r=n.languages[0],a=!!n.options&&n.options.fallbackLng,i=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)||a&&!o(i,e))))}function B(e){return e.displayName||e.name||("string"==typeof e&&e.length>0?e:"Unknown")}var V=["format"],K=["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t","shouldUnescape"];function W(e,n){if(!e)return!1;var t=e.props?e.props.children:e.children;return n?t.length>0:!!t}function F(e){return e?e&&e.children?e.children:e.props&&e.props.children:[]}function H(e){return Array.isArray(e)?e:[e]}function M(e,n,r,o,c,s){if(""===n)return[];var u=o.transKeepBasicHtmlNodesFor||[],l=n&&new RegExp(u.join("|")).test(n);if(!e&&!l)return[n];var f={};!function e(n){H(n).forEach((function(n){"string"!=typeof n&&(W(n)?e(F(n)):"object"!==i(n)||t.isValidElement(n)||Object.assign(f,n))}))}(e);var p=v("<0>".concat(n,"</0>")),d=a(a({},f),c);function m(e,n,r){var a=F(e),i=h(a,n.children,r);return function(e){return"[object Array]"===Object.prototype.toString.call(e)&&e.every((function(e){return t.isValidElement(e)}))}(a)&&0===i.length?a:i}function g(e,n,r,i,o){e.dummy&&(e.children=n),r.push(t.cloneElement(e,a(a({},e.props),{},{key:i}),o?void 0:n))}function h(n,c,f){var p=H(n);return H(c).reduce((function(n,c,v){var O,x,j,E,S=c.children&&c.children[0]&&c.children[0].content&&r.services.interpolator.interpolate(c.children[0].content,d,r.language);if("tag"===c.type){var N=p[parseInt(c.name,10)];!N&&1===f.length&&f[0][c.name]&&(N=f[0][c.name]),N||(N={});var I=0!==Object.keys(c.attrs).length?(x={props:c.attrs},(E=a({},j=N)).props=Object.assign(x.props,j.props),E):N,k=t.isValidElement(I),P=k&&W(c,!0)&&!c.voidElement,R=l&&"object"===i(I)&&I.dummy&&!k,C="object"===i(e)&&null!==e&&Object.hasOwnProperty.call(e,c.name);if("string"==typeof I){var A=r.services.interpolator.interpolate(I,d,r.language);n.push(A)}else if(W(I)||P){g(I,m(I,c,f),n,v)}else if(R){var T=h(p,c.children,f);n.push(t.cloneElement(I,a(a({},I.props),{},{key:v}),T))}else if(Number.isNaN(parseFloat(c.name))){if(C)g(I,m(I,c,f),n,v,c.voidElement);else if(o.transSupportBasicHtmlNodes&&u.indexOf(c.name)>-1)if(c.voidElement)n.push(t.createElement(c.name,{key:"".concat(c.name,"-").concat(v)}));else{var z=h(p,c.children,f);n.push(t.createElement(c.name,{key:"".concat(c.name,"-").concat(v)},z))}else if(c.voidElement)n.push("<".concat(c.name," />"));else{var L=h(p,c.children,f);n.push("<".concat(c.name,">").concat(L,"</").concat(c.name,">"))}}else if("object"!==i(I)||k)1===c.children.length&&S?n.push(t.cloneElement(I,a(a({},I.props),{},{key:v}),S)):n.push(t.cloneElement(I,a(a({},I.props),{},{key:v})));else{var U=c.children[0]?S:null;U&&n.push(U)}}else if("text"===c.type){var D=o.transWrapTextNodes,B=s?(O=r.services.interpolator.interpolate(c.content,d,r.language),y.call(O,b,w)):r.services.interpolator.interpolate(c.content,d,r.language);D?n.push(t.createElement(D,{key:"".concat(c.name,"-").concat(v)},B)):n.push(B)}return n}),[])}return F(h([{dummy:!0,children:e||[]}],p,H(e||[]))[0])}function $(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.i18n,i=n.useContext(E)||{},o=i.i18n,c=i.defaultNS,s=r||o||P();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new I),!s){L("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&&L("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var p=a(a(a({},N()),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 D(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),O=b[0],w=b[1],x=n.useRef(!0);n.useEffect((function(){var e=p.bindI18n,n=p.bindI18nStore;function t(){x.current&&w(v)}return x.current=!0,h||d||U(s,g,(function(){x.current&&w(v)})),e&&s&&s.on(e,t),n&&s&&s.store.on(n,t),function(){x.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 j=n.useRef(!0);n.useEffect((function(){x.current&&!j.current&&w(v),j.current=!1}),[s]);var S=[O,s,h];if(S.t=O,S.i18n=s,S.ready=h,h)return S;if(!h&&!d)return S;throw new Promise((function(e){U(s,g,(function(){e()}))}))}var q=["forwardedRef"];var Y=["ns","children"];function _(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=r.i18n,i=n.useContext(E)||{},o=i.i18n,c=a||o||P();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 Z=["initialI18nStore","initialLanguage"];e.I18nContext=E,e.I18nextProvider=function(e){var t=e.i18n,r=e.defaultNS,a=e.children,i=n.useMemo((function(){return{i18n:t,defaultNS:r}}),[t,r]);return n.createElement(E.Provider,{value:i},a)},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=e.shouldUnescape,b=s(e,K),O=n.useContext(E)||{},w=O.i18n,x=O.defaultNS,j=h||w||P();if(!j)return L("You will need to pass in an i18next instance by using i18nextReactModule"),r;var S=v||j.t.bind(j)||function(e){return e},I=a(a({},N()),j.options&&j.options.react),k=g||S.ns||x||j.options&&j.options.defaultNS;k="string"==typeof k?[k]:k||["translation"];var R=d||function e(n,r){if(!n)return"";var a="",o=H(n),c=r.transKeepBasicHtmlNodesFor||[];return o.forEach((function(n,o){if("string"==typeof n)a+="".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)a+="<".concat(n.type,"/>");else if(f||l&&0===u)if(n.props.i18nIsDynamicList)a+="<".concat(o,"></").concat(o,">");else if(l&&1===u&&"string"==typeof f)a+="<".concat(n.type,">").concat(f,"</").concat(n.type,">");else{var p=e(f,r);a+="<".concat(o,">").concat(p,"</").concat(o,">")}else a+="<".concat(o,"></").concat(o,">")}else if(null===n)T("Trans: the passed in value is invalid - seems you passed in a null child.");else if("object"===i(n)){var d=n.format,m=s(n,V),g=Object.keys(m);if(1===g.length){var h=d?"".concat(g[0],", ").concat(d):g[0];a+="{{".concat(h,"}}")}else T("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else T("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)})),a}(r,I)||I.transEmptyNodeValue||u,C=I.hashTransKey,A=u||(C?C(R):R),z=p?f.interpolation:{interpolation:a(a({},f.interpolation),{},{prefix:"#$?",suffix:"?$#"})},U=a(a(a(a({},f),{},{count:o},p),z),{},{defaultValue:R,ns:k}),D=M(m||r,A?S(A,U):R,j,I,U,y),B=void 0!==c?c:I.defaultTransParent;return B?t.createElement(B,b,D):D},e.Translation=function(e){var n=e.ns,t=e.children,r=u($(n,s(e,Y)),3),a=r[0],i=r[1],o=r[2];return t(a,{i18n:i,lng:i.language},o)},e.composeInitialProps=C,e.date=function(){return""},e.getDefaults=N,e.getI18n=P,e.getInitialProps=A,e.initReactI18next=R,e.number=function(){return""},e.plural=function(){return""},e.select=function(){return""},e.selectOrdinal=function(){return""},e.setDefaults=S,e.setI18n=k,e.time=function(){return""},e.useSSR=_,e.useTranslation=$,e.withSSR=function(){return function(e){function n(n){var r=n.initialI18nStore,i=n.initialLanguage,o=s(n,Z);return _(r,i),t.createElement(e,a({},o))}return n.getInitialProps=C(e),n.displayName="withI18nextSSR(".concat(B(e),")"),n.WrappedComponent=e,n}},e.withTranslation=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(r){function i(i){var o=i.forwardedRef,c=s(i,q),l=u($(e,c),3),f=l[0],p=l[1],d=l[2],m=a(a({},c),{},{t:f,i18n:p,tReady:d});return n.withRef&&o?m.ref=o:!n.withRef&&o&&(m.forwardedRef=o),t.createElement(r,m)}i.displayName="withI18nextTranslation(".concat(B(r),")"),i.WrappedComponent=r;return n.withRef?t.forwardRef((function(e,n){return t.createElement(i,Object.assign({},e,{forwardedRef:n}))})):i}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/dist/commonjs/Trans.js
CHANGED
|
@@ -20,12 +20,14 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
20
20
|
|
|
21
21
|
var _htmlParseStringify = _interopRequireDefault(require("html-parse-stringify"));
|
|
22
22
|
|
|
23
|
+
var _htmlEscaper = require("html-escaper");
|
|
24
|
+
|
|
23
25
|
var _context = require("./context");
|
|
24
26
|
|
|
25
27
|
var _utils = require("./utils");
|
|
26
28
|
|
|
27
29
|
var _excluded = ["format"],
|
|
28
|
-
_excluded2 = ["children", "count", "parent", "i18nKey", "tOptions", "values", "defaults", "components", "ns", "i18n", "t"];
|
|
30
|
+
_excluded2 = ["children", "count", "parent", "i18nKey", "tOptions", "values", "defaults", "components", "ns", "i18n", "t", "shouldUnescape"];
|
|
29
31
|
|
|
30
32
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
31
33
|
|
|
@@ -110,7 +112,7 @@ function nodesToString(children, i18nOptions) {
|
|
|
110
112
|
return stringNode;
|
|
111
113
|
}
|
|
112
114
|
|
|
113
|
-
function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
115
|
+
function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {
|
|
114
116
|
if (targetString === '') return [];
|
|
115
117
|
var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];
|
|
116
118
|
var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString);
|
|
@@ -215,7 +217,7 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
215
217
|
} else if (node.type === 'text') {
|
|
216
218
|
var wrapTextNodes = i18nOptions.transWrapTextNodes;
|
|
217
219
|
|
|
218
|
-
var _content = i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
220
|
+
var _content = shouldUnescape ? (0, _htmlEscaper.unescape)(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
219
221
|
|
|
220
222
|
if (wrapTextNodes) {
|
|
221
223
|
mem.push(_react["default"].createElement(wrapTextNodes, {
|
|
@@ -250,6 +252,7 @@ function Trans(_ref) {
|
|
|
250
252
|
ns = _ref.ns,
|
|
251
253
|
i18nFromProps = _ref.i18n,
|
|
252
254
|
tFromProps = _ref.t,
|
|
255
|
+
shouldUnescape = _ref.shouldUnescape,
|
|
253
256
|
additionalProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded2);
|
|
254
257
|
|
|
255
258
|
var _ref2 = (0, _react.useContext)(_context.I18nContext) || {},
|
|
@@ -289,7 +292,7 @@ function Trans(_ref) {
|
|
|
289
292
|
});
|
|
290
293
|
|
|
291
294
|
var translation = key ? t(key, combinedTOpts) : defaultValue;
|
|
292
|
-
var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts);
|
|
295
|
+
var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape);
|
|
293
296
|
var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;
|
|
294
297
|
return useAsParent ? _react["default"].createElement(useAsParent, additionalProps, content) : content;
|
|
295
298
|
}
|
package/dist/es/Trans.js
CHANGED
|
@@ -2,7 +2,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
|
|
|
2
2
|
import _typeof from "@babel/runtime/helpers/typeof";
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
4
|
var _excluded = ["format"],
|
|
5
|
-
_excluded2 = ["children", "count", "parent", "i18nKey", "tOptions", "values", "defaults", "components", "ns", "i18n", "t"];
|
|
5
|
+
_excluded2 = ["children", "count", "parent", "i18nKey", "tOptions", "values", "defaults", "components", "ns", "i18n", "t", "shouldUnescape"];
|
|
6
6
|
|
|
7
7
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
8
8
|
|
|
@@ -10,6 +10,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
10
10
|
|
|
11
11
|
import React, { useContext } from 'react';
|
|
12
12
|
import HTML from 'html-parse-stringify';
|
|
13
|
+
import { unescape } from 'html-escaper';
|
|
13
14
|
import { getI18n, I18nContext, getDefaults } from './context';
|
|
14
15
|
import { warn, warnOnce } from './utils';
|
|
15
16
|
|
|
@@ -89,7 +90,7 @@ export function nodesToString(children, i18nOptions) {
|
|
|
89
90
|
return stringNode;
|
|
90
91
|
}
|
|
91
92
|
|
|
92
|
-
function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
93
|
+
function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {
|
|
93
94
|
if (targetString === '') return [];
|
|
94
95
|
var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];
|
|
95
96
|
var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString);
|
|
@@ -191,7 +192,7 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
191
192
|
} else if (node.type === 'text') {
|
|
192
193
|
var wrapTextNodes = i18nOptions.transWrapTextNodes;
|
|
193
194
|
|
|
194
|
-
var _content = i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
195
|
+
var _content = shouldUnescape ? unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
195
196
|
|
|
196
197
|
if (wrapTextNodes) {
|
|
197
198
|
mem.push(React.createElement(wrapTextNodes, {
|
|
@@ -226,6 +227,7 @@ export function Trans(_ref) {
|
|
|
226
227
|
ns = _ref.ns,
|
|
227
228
|
i18nFromProps = _ref.i18n,
|
|
228
229
|
tFromProps = _ref.t,
|
|
230
|
+
shouldUnescape = _ref.shouldUnescape,
|
|
229
231
|
additionalProps = _objectWithoutProperties(_ref, _excluded2);
|
|
230
232
|
|
|
231
233
|
var _ref2 = useContext(I18nContext) || {},
|
|
@@ -265,7 +267,7 @@ export function Trans(_ref) {
|
|
|
265
267
|
});
|
|
266
268
|
|
|
267
269
|
var translation = key ? t(key, combinedTOpts) : defaultValue;
|
|
268
|
-
var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts);
|
|
270
|
+
var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape);
|
|
269
271
|
var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;
|
|
270
272
|
return useAsParent ? React.createElement(useAsParent, additionalProps, content) : content;
|
|
271
273
|
}
|
|
@@ -320,6 +320,28 @@
|
|
|
320
320
|
}
|
|
321
321
|
};
|
|
322
322
|
|
|
323
|
+
var replace = ''.replace;
|
|
324
|
+
var es = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g;
|
|
325
|
+
var unes = {
|
|
326
|
+
'&': '&',
|
|
327
|
+
'&': '&',
|
|
328
|
+
'<': '<',
|
|
329
|
+
'<': '<',
|
|
330
|
+
'>': '>',
|
|
331
|
+
'>': '>',
|
|
332
|
+
''': "'",
|
|
333
|
+
''': "'",
|
|
334
|
+
'"': '"',
|
|
335
|
+
'"': '"'
|
|
336
|
+
};
|
|
337
|
+
function unescape(un) {
|
|
338
|
+
return replace.call(un, es, cape);
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
function cape(m) {
|
|
342
|
+
return unes[m];
|
|
343
|
+
}
|
|
344
|
+
|
|
323
345
|
var defaultOptions = {
|
|
324
346
|
bindI18n: 'languageChanged',
|
|
325
347
|
bindI18nStore: '',
|
|
@@ -475,7 +497,7 @@
|
|
|
475
497
|
}
|
|
476
498
|
|
|
477
499
|
var _excluded = ["format"],
|
|
478
|
-
_excluded2 = ["children", "count", "parent", "i18nKey", "tOptions", "values", "defaults", "components", "ns", "i18n", "t"];
|
|
500
|
+
_excluded2 = ["children", "count", "parent", "i18nKey", "tOptions", "values", "defaults", "components", "ns", "i18n", "t", "shouldUnescape"];
|
|
479
501
|
|
|
480
502
|
function hasChildren(node, checkLength) {
|
|
481
503
|
if (!node) return false;
|
|
@@ -553,7 +575,7 @@
|
|
|
553
575
|
return stringNode;
|
|
554
576
|
}
|
|
555
577
|
|
|
556
|
-
function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
578
|
+
function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {
|
|
557
579
|
if (targetString === '') return [];
|
|
558
580
|
var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];
|
|
559
581
|
var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString);
|
|
@@ -655,7 +677,7 @@
|
|
|
655
677
|
} else if (node.type === 'text') {
|
|
656
678
|
var wrapTextNodes = i18nOptions.transWrapTextNodes;
|
|
657
679
|
|
|
658
|
-
var _content = i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
680
|
+
var _content = shouldUnescape ? unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
659
681
|
|
|
660
682
|
if (wrapTextNodes) {
|
|
661
683
|
mem.push(React__default.createElement(wrapTextNodes, {
|
|
@@ -690,6 +712,7 @@
|
|
|
690
712
|
ns = _ref.ns,
|
|
691
713
|
i18nFromProps = _ref.i18n,
|
|
692
714
|
tFromProps = _ref.t,
|
|
715
|
+
shouldUnescape = _ref.shouldUnescape,
|
|
693
716
|
additionalProps = _objectWithoutProperties(_ref, _excluded2);
|
|
694
717
|
|
|
695
718
|
var _ref2 = React.useContext(I18nContext) || {},
|
|
@@ -729,7 +752,7 @@
|
|
|
729
752
|
});
|
|
730
753
|
|
|
731
754
|
var translation = key ? t(key, combinedTOpts) : defaultValue;
|
|
732
|
-
var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts);
|
|
755
|
+
var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape);
|
|
733
756
|
var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;
|
|
734
757
|
return useAsParent ? React__default.createElement(useAsParent, additionalProps, content) : content;
|
|
735
758
|
}
|
|
@@ -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,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})}));
|
|
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 a(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 i(e){return(i="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,a=function(e,n){if(null==e)return{};var t,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}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,a,i=[],o=!0,c=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(i.push(r.value),!n||i.length!==n);o=!0);}catch(e){c=!0,a=e}finally{try{o||null==t.return||t.return()}finally{if(c)throw a}}return i}(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 a=new RegExp(p),i=null;null!==(i=a.exec(e));)if(i[0].trim())if(i[1]){var o=i[1].trim(),c=[o,""];o.indexOf("=")>-1&&(c=o.split("=")),n.attrs[c[0]]=c[1],a.lastIndex--}else i[2]&&(n.attrs[i[2]]=i[3].trim().substring(1,i[3].length-1));return n}var m=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,g=/^\s*$/,h=Object.create(null);var v=function(e,n){n||(n={}),n.components||(n.components=h);var t,r=[],a=[],i=-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 i<0?(r.push(h),r):((u=a[i]).children.push(h),r)}if(l&&(i++,"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===i&&r.push(t),(u=a[i-1])&&u.children.push(t),a[i]=t),(!l||t.voidElement)&&(i>-1&&(t.voidElement||t.name===c.slice(2,-1))&&(i--,t=-1===i?r:a[i]),!o&&"<"!==m&&m)){u=-1===i?r:a[i].children;var v=e.indexOf("<",p),y=e.slice(p,-1===v?void 0:v);g.test(y)&&(y=" "),(v>-1&&i+u.length>=0||" "!==y)&&u.push({type:"text",content:y})}})),r},y="".replace,b=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g,O={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'};function w(e){return O[e]}var x,j={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0},E=t.createContext();function S(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};j=a(a({},j),e)}function N(){return j}var I=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 k(e){x=e}function P(){return x}var R={type:"3rdParty",init:function(e){S(e.options.react),k(e)}};function C(e){return function(n){return new Promise((function(t){var r=A();e.getInitialProps?e.getInitialProps(n).then((function(e){t(a(a({},e),r))})):t(r)}))}}function A(){var e=P(),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 T(){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 z={};function L(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&z[n[0]]||("string"==typeof n[0]&&(z[n[0]]=new Date),T.apply(void 0,n))}function U(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 D(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!n.languages||!n.languages.length)return L("i18n.languages were undefined or empty",n.languages),!0;var r=n.languages[0],a=!!n.options&&n.options.fallbackLng,i=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)||a&&!o(i,e))))}function B(e){return e.displayName||e.name||("string"==typeof e&&e.length>0?e:"Unknown")}var V=["format"],K=["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t","shouldUnescape"];function W(e,n){if(!e)return!1;var t=e.props?e.props.children:e.children;return n?t.length>0:!!t}function F(e){return e?e&&e.children?e.children:e.props&&e.props.children:[]}function H(e){return Array.isArray(e)?e:[e]}function M(e,n,r,o,c,s){if(""===n)return[];var u=o.transKeepBasicHtmlNodesFor||[],l=n&&new RegExp(u.join("|")).test(n);if(!e&&!l)return[n];var f={};!function e(n){H(n).forEach((function(n){"string"!=typeof n&&(W(n)?e(F(n)):"object"!==i(n)||t.isValidElement(n)||Object.assign(f,n))}))}(e);var p=v("<0>".concat(n,"</0>")),d=a(a({},f),c);function m(e,n,r){var a=F(e),i=h(a,n.children,r);return function(e){return"[object Array]"===Object.prototype.toString.call(e)&&e.every((function(e){return t.isValidElement(e)}))}(a)&&0===i.length?a:i}function g(e,n,r,i,o){e.dummy&&(e.children=n),r.push(t.cloneElement(e,a(a({},e.props),{},{key:i}),o?void 0:n))}function h(n,c,f){var p=H(n);return H(c).reduce((function(n,c,v){var O,x,j,E,S=c.children&&c.children[0]&&c.children[0].content&&r.services.interpolator.interpolate(c.children[0].content,d,r.language);if("tag"===c.type){var N=p[parseInt(c.name,10)];!N&&1===f.length&&f[0][c.name]&&(N=f[0][c.name]),N||(N={});var I=0!==Object.keys(c.attrs).length?(x={props:c.attrs},(E=a({},j=N)).props=Object.assign(x.props,j.props),E):N,k=t.isValidElement(I),P=k&&W(c,!0)&&!c.voidElement,R=l&&"object"===i(I)&&I.dummy&&!k,C="object"===i(e)&&null!==e&&Object.hasOwnProperty.call(e,c.name);if("string"==typeof I){var A=r.services.interpolator.interpolate(I,d,r.language);n.push(A)}else if(W(I)||P){g(I,m(I,c,f),n,v)}else if(R){var T=h(p,c.children,f);n.push(t.cloneElement(I,a(a({},I.props),{},{key:v}),T))}else if(Number.isNaN(parseFloat(c.name))){if(C)g(I,m(I,c,f),n,v,c.voidElement);else if(o.transSupportBasicHtmlNodes&&u.indexOf(c.name)>-1)if(c.voidElement)n.push(t.createElement(c.name,{key:"".concat(c.name,"-").concat(v)}));else{var z=h(p,c.children,f);n.push(t.createElement(c.name,{key:"".concat(c.name,"-").concat(v)},z))}else if(c.voidElement)n.push("<".concat(c.name," />"));else{var L=h(p,c.children,f);n.push("<".concat(c.name,">").concat(L,"</").concat(c.name,">"))}}else if("object"!==i(I)||k)1===c.children.length&&S?n.push(t.cloneElement(I,a(a({},I.props),{},{key:v}),S)):n.push(t.cloneElement(I,a(a({},I.props),{},{key:v})));else{var U=c.children[0]?S:null;U&&n.push(U)}}else if("text"===c.type){var D=o.transWrapTextNodes,B=s?(O=r.services.interpolator.interpolate(c.content,d,r.language),y.call(O,b,w)):r.services.interpolator.interpolate(c.content,d,r.language);D?n.push(t.createElement(D,{key:"".concat(c.name,"-").concat(v)},B)):n.push(B)}return n}),[])}return F(h([{dummy:!0,children:e||[]}],p,H(e||[]))[0])}function $(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.i18n,i=n.useContext(E)||{},o=i.i18n,c=i.defaultNS,s=r||o||P();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new I),!s){L("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&&L("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var p=a(a(a({},N()),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 D(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),O=b[0],w=b[1],x=n.useRef(!0);n.useEffect((function(){var e=p.bindI18n,n=p.bindI18nStore;function t(){x.current&&w(v)}return x.current=!0,h||d||U(s,g,(function(){x.current&&w(v)})),e&&s&&s.on(e,t),n&&s&&s.store.on(n,t),function(){x.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 j=n.useRef(!0);n.useEffect((function(){x.current&&!j.current&&w(v),j.current=!1}),[s]);var S=[O,s,h];if(S.t=O,S.i18n=s,S.ready=h,h)return S;if(!h&&!d)return S;throw new Promise((function(e){U(s,g,(function(){e()}))}))}var q=["forwardedRef"];var Y=["ns","children"];function _(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=r.i18n,i=n.useContext(E)||{},o=i.i18n,c=a||o||P();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 Z=["initialI18nStore","initialLanguage"];e.I18nContext=E,e.I18nextProvider=function(e){var t=e.i18n,r=e.defaultNS,a=e.children,i=n.useMemo((function(){return{i18n:t,defaultNS:r}}),[t,r]);return n.createElement(E.Provider,{value:i},a)},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=e.shouldUnescape,b=s(e,K),O=n.useContext(E)||{},w=O.i18n,x=O.defaultNS,j=h||w||P();if(!j)return L("You will need to pass in an i18next instance by using i18nextReactModule"),r;var S=v||j.t.bind(j)||function(e){return e},I=a(a({},N()),j.options&&j.options.react),k=g||S.ns||x||j.options&&j.options.defaultNS;k="string"==typeof k?[k]:k||["translation"];var R=d||function e(n,r){if(!n)return"";var a="",o=H(n),c=r.transKeepBasicHtmlNodesFor||[];return o.forEach((function(n,o){if("string"==typeof n)a+="".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)a+="<".concat(n.type,"/>");else if(f||l&&0===u)if(n.props.i18nIsDynamicList)a+="<".concat(o,"></").concat(o,">");else if(l&&1===u&&"string"==typeof f)a+="<".concat(n.type,">").concat(f,"</").concat(n.type,">");else{var p=e(f,r);a+="<".concat(o,">").concat(p,"</").concat(o,">")}else a+="<".concat(o,"></").concat(o,">")}else if(null===n)T("Trans: the passed in value is invalid - seems you passed in a null child.");else if("object"===i(n)){var d=n.format,m=s(n,V),g=Object.keys(m);if(1===g.length){var h=d?"".concat(g[0],", ").concat(d):g[0];a+="{{".concat(h,"}}")}else T("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else T("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)})),a}(r,I)||I.transEmptyNodeValue||u,C=I.hashTransKey,A=u||(C?C(R):R),z=p?f.interpolation:{interpolation:a(a({},f.interpolation),{},{prefix:"#$?",suffix:"?$#"})},U=a(a(a(a({},f),{},{count:o},p),z),{},{defaultValue:R,ns:k}),D=M(m||r,A?S(A,U):R,j,I,U,y),B=void 0!==c?c:I.defaultTransParent;return B?t.createElement(B,b,D):D},e.Translation=function(e){var n=e.ns,t=e.children,r=u($(n,s(e,Y)),3),a=r[0],i=r[1],o=r[2];return t(a,{i18n:i,lng:i.language},o)},e.composeInitialProps=C,e.date=function(){return""},e.getDefaults=N,e.getI18n=P,e.getInitialProps=A,e.initReactI18next=R,e.number=function(){return""},e.plural=function(){return""},e.select=function(){return""},e.selectOrdinal=function(){return""},e.setDefaults=S,e.setI18n=k,e.time=function(){return""},e.useSSR=_,e.useTranslation=$,e.withSSR=function(){return function(e){function n(n){var r=n.initialI18nStore,i=n.initialLanguage,o=s(n,Z);return _(r,i),t.createElement(e,a({},o))}return n.getInitialProps=C(e),n.displayName="withI18nextSSR(".concat(B(e),")"),n.WrappedComponent=e,n}},e.withTranslation=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(r){function i(i){var o=i.forwardedRef,c=s(i,q),l=u($(e,c),3),f=l[0],p=l[1],d=l[2],m=a(a({},c),{},{t:f,i18n:p,tReady:d});return n.withRef&&o?m.ref=o:!n.withRef&&o&&(m.forwardedRef=o),t.createElement(r,m)}i.displayName="withI18nextTranslation(".concat(B(r),")"),i.WrappedComponent=r;return n.withRef?t.forwardRef((function(e,n){return t.createElement(i,Object.assign({},e,{forwardedRef:n}))})):i}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/index.d.ts
CHANGED
|
@@ -43,6 +43,7 @@ export interface TransProps<E extends Element = HTMLDivElement>
|
|
|
43
43
|
parent?: string | React.ComponentType<any> | null; // used in React.createElement if not null
|
|
44
44
|
tOptions?: {};
|
|
45
45
|
values?: {};
|
|
46
|
+
shouldUnescape?: boolean;
|
|
46
47
|
t?: TFunction;
|
|
47
48
|
}
|
|
48
49
|
export function Trans<E extends Element = HTMLDivElement>(props: TransProps<E>): React.ReactElement;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-i18next",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.15.1",
|
|
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",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@babel/runtime": "^7.14.5",
|
|
35
|
+
"html-escaper": "^2.0.2",
|
|
35
36
|
"html-parse-stringify": "^3.0.1"
|
|
36
37
|
},
|
|
37
38
|
"devDependencies": {
|
|
@@ -85,7 +86,7 @@
|
|
|
85
86
|
"rollup-plugin-terser": "^5.1.1",
|
|
86
87
|
"sinon": "^7.2.3",
|
|
87
88
|
"tslint": "^5.20.1",
|
|
88
|
-
"typescript": "^4.
|
|
89
|
+
"typescript": "^4.5.2",
|
|
89
90
|
"yargs": "^13.3.0"
|
|
90
91
|
},
|
|
91
92
|
"peerDependencies": {
|
package/react-i18next.js
CHANGED
|
@@ -320,6 +320,28 @@
|
|
|
320
320
|
}
|
|
321
321
|
};
|
|
322
322
|
|
|
323
|
+
var replace = ''.replace;
|
|
324
|
+
var es = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g;
|
|
325
|
+
var unes = {
|
|
326
|
+
'&': '&',
|
|
327
|
+
'&': '&',
|
|
328
|
+
'<': '<',
|
|
329
|
+
'<': '<',
|
|
330
|
+
'>': '>',
|
|
331
|
+
'>': '>',
|
|
332
|
+
''': "'",
|
|
333
|
+
''': "'",
|
|
334
|
+
'"': '"',
|
|
335
|
+
'"': '"'
|
|
336
|
+
};
|
|
337
|
+
function unescape(un) {
|
|
338
|
+
return replace.call(un, es, cape);
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
function cape(m) {
|
|
342
|
+
return unes[m];
|
|
343
|
+
}
|
|
344
|
+
|
|
323
345
|
var defaultOptions = {
|
|
324
346
|
bindI18n: 'languageChanged',
|
|
325
347
|
bindI18nStore: '',
|
|
@@ -475,7 +497,7 @@
|
|
|
475
497
|
}
|
|
476
498
|
|
|
477
499
|
var _excluded = ["format"],
|
|
478
|
-
_excluded2 = ["children", "count", "parent", "i18nKey", "tOptions", "values", "defaults", "components", "ns", "i18n", "t"];
|
|
500
|
+
_excluded2 = ["children", "count", "parent", "i18nKey", "tOptions", "values", "defaults", "components", "ns", "i18n", "t", "shouldUnescape"];
|
|
479
501
|
|
|
480
502
|
function hasChildren(node, checkLength) {
|
|
481
503
|
if (!node) return false;
|
|
@@ -553,7 +575,7 @@
|
|
|
553
575
|
return stringNode;
|
|
554
576
|
}
|
|
555
577
|
|
|
556
|
-
function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
578
|
+
function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {
|
|
557
579
|
if (targetString === '') return [];
|
|
558
580
|
var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];
|
|
559
581
|
var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString);
|
|
@@ -655,7 +677,7 @@
|
|
|
655
677
|
} else if (node.type === 'text') {
|
|
656
678
|
var wrapTextNodes = i18nOptions.transWrapTextNodes;
|
|
657
679
|
|
|
658
|
-
var _content = i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
680
|
+
var _content = shouldUnescape ? unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
659
681
|
|
|
660
682
|
if (wrapTextNodes) {
|
|
661
683
|
mem.push(React__default.createElement(wrapTextNodes, {
|
|
@@ -690,6 +712,7 @@
|
|
|
690
712
|
ns = _ref.ns,
|
|
691
713
|
i18nFromProps = _ref.i18n,
|
|
692
714
|
tFromProps = _ref.t,
|
|
715
|
+
shouldUnescape = _ref.shouldUnescape,
|
|
693
716
|
additionalProps = _objectWithoutProperties(_ref, _excluded2);
|
|
694
717
|
|
|
695
718
|
var _ref2 = React.useContext(I18nContext) || {},
|
|
@@ -729,7 +752,7 @@
|
|
|
729
752
|
});
|
|
730
753
|
|
|
731
754
|
var translation = key ? t(key, combinedTOpts) : defaultValue;
|
|
732
|
-
var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts);
|
|
755
|
+
var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape);
|
|
733
756
|
var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;
|
|
734
757
|
return useAsParent ? React__default.createElement(useAsParent, additionalProps, content) : content;
|
|
735
758
|
}
|
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,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})}));
|
|
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 a(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 i(e){return(i="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,a=function(e,n){if(null==e)return{};var t,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}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,a,i=[],o=!0,c=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(i.push(r.value),!n||i.length!==n);o=!0);}catch(e){c=!0,a=e}finally{try{o||null==t.return||t.return()}finally{if(c)throw a}}return i}(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 a=new RegExp(p),i=null;null!==(i=a.exec(e));)if(i[0].trim())if(i[1]){var o=i[1].trim(),c=[o,""];o.indexOf("=")>-1&&(c=o.split("=")),n.attrs[c[0]]=c[1],a.lastIndex--}else i[2]&&(n.attrs[i[2]]=i[3].trim().substring(1,i[3].length-1));return n}var m=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,g=/^\s*$/,h=Object.create(null);var v=function(e,n){n||(n={}),n.components||(n.components=h);var t,r=[],a=[],i=-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 i<0?(r.push(h),r):((u=a[i]).children.push(h),r)}if(l&&(i++,"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===i&&r.push(t),(u=a[i-1])&&u.children.push(t),a[i]=t),(!l||t.voidElement)&&(i>-1&&(t.voidElement||t.name===c.slice(2,-1))&&(i--,t=-1===i?r:a[i]),!o&&"<"!==m&&m)){u=-1===i?r:a[i].children;var v=e.indexOf("<",p),y=e.slice(p,-1===v?void 0:v);g.test(y)&&(y=" "),(v>-1&&i+u.length>=0||" "!==y)&&u.push({type:"text",content:y})}})),r},y="".replace,b=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g,O={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'};function w(e){return O[e]}var x,j={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0},E=t.createContext();function S(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};j=a(a({},j),e)}function N(){return j}var I=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 k(e){x=e}function P(){return x}var R={type:"3rdParty",init:function(e){S(e.options.react),k(e)}};function C(e){return function(n){return new Promise((function(t){var r=A();e.getInitialProps?e.getInitialProps(n).then((function(e){t(a(a({},e),r))})):t(r)}))}}function A(){var e=P(),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 T(){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 z={};function L(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&z[n[0]]||("string"==typeof n[0]&&(z[n[0]]=new Date),T.apply(void 0,n))}function U(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 D(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!n.languages||!n.languages.length)return L("i18n.languages were undefined or empty",n.languages),!0;var r=n.languages[0],a=!!n.options&&n.options.fallbackLng,i=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)||a&&!o(i,e))))}function B(e){return e.displayName||e.name||("string"==typeof e&&e.length>0?e:"Unknown")}var V=["format"],K=["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t","shouldUnescape"];function W(e,n){if(!e)return!1;var t=e.props?e.props.children:e.children;return n?t.length>0:!!t}function F(e){return e?e&&e.children?e.children:e.props&&e.props.children:[]}function H(e){return Array.isArray(e)?e:[e]}function M(e,n,r,o,c,s){if(""===n)return[];var u=o.transKeepBasicHtmlNodesFor||[],l=n&&new RegExp(u.join("|")).test(n);if(!e&&!l)return[n];var f={};!function e(n){H(n).forEach((function(n){"string"!=typeof n&&(W(n)?e(F(n)):"object"!==i(n)||t.isValidElement(n)||Object.assign(f,n))}))}(e);var p=v("<0>".concat(n,"</0>")),d=a(a({},f),c);function m(e,n,r){var a=F(e),i=h(a,n.children,r);return function(e){return"[object Array]"===Object.prototype.toString.call(e)&&e.every((function(e){return t.isValidElement(e)}))}(a)&&0===i.length?a:i}function g(e,n,r,i,o){e.dummy&&(e.children=n),r.push(t.cloneElement(e,a(a({},e.props),{},{key:i}),o?void 0:n))}function h(n,c,f){var p=H(n);return H(c).reduce((function(n,c,v){var O,x,j,E,S=c.children&&c.children[0]&&c.children[0].content&&r.services.interpolator.interpolate(c.children[0].content,d,r.language);if("tag"===c.type){var N=p[parseInt(c.name,10)];!N&&1===f.length&&f[0][c.name]&&(N=f[0][c.name]),N||(N={});var I=0!==Object.keys(c.attrs).length?(x={props:c.attrs},(E=a({},j=N)).props=Object.assign(x.props,j.props),E):N,k=t.isValidElement(I),P=k&&W(c,!0)&&!c.voidElement,R=l&&"object"===i(I)&&I.dummy&&!k,C="object"===i(e)&&null!==e&&Object.hasOwnProperty.call(e,c.name);if("string"==typeof I){var A=r.services.interpolator.interpolate(I,d,r.language);n.push(A)}else if(W(I)||P){g(I,m(I,c,f),n,v)}else if(R){var T=h(p,c.children,f);n.push(t.cloneElement(I,a(a({},I.props),{},{key:v}),T))}else if(Number.isNaN(parseFloat(c.name))){if(C)g(I,m(I,c,f),n,v,c.voidElement);else if(o.transSupportBasicHtmlNodes&&u.indexOf(c.name)>-1)if(c.voidElement)n.push(t.createElement(c.name,{key:"".concat(c.name,"-").concat(v)}));else{var z=h(p,c.children,f);n.push(t.createElement(c.name,{key:"".concat(c.name,"-").concat(v)},z))}else if(c.voidElement)n.push("<".concat(c.name," />"));else{var L=h(p,c.children,f);n.push("<".concat(c.name,">").concat(L,"</").concat(c.name,">"))}}else if("object"!==i(I)||k)1===c.children.length&&S?n.push(t.cloneElement(I,a(a({},I.props),{},{key:v}),S)):n.push(t.cloneElement(I,a(a({},I.props),{},{key:v})));else{var U=c.children[0]?S:null;U&&n.push(U)}}else if("text"===c.type){var D=o.transWrapTextNodes,B=s?(O=r.services.interpolator.interpolate(c.content,d,r.language),y.call(O,b,w)):r.services.interpolator.interpolate(c.content,d,r.language);D?n.push(t.createElement(D,{key:"".concat(c.name,"-").concat(v)},B)):n.push(B)}return n}),[])}return F(h([{dummy:!0,children:e||[]}],p,H(e||[]))[0])}function $(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.i18n,i=n.useContext(E)||{},o=i.i18n,c=i.defaultNS,s=r||o||P();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new I),!s){L("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&&L("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var p=a(a(a({},N()),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 D(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),O=b[0],w=b[1],x=n.useRef(!0);n.useEffect((function(){var e=p.bindI18n,n=p.bindI18nStore;function t(){x.current&&w(v)}return x.current=!0,h||d||U(s,g,(function(){x.current&&w(v)})),e&&s&&s.on(e,t),n&&s&&s.store.on(n,t),function(){x.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 j=n.useRef(!0);n.useEffect((function(){x.current&&!j.current&&w(v),j.current=!1}),[s]);var S=[O,s,h];if(S.t=O,S.i18n=s,S.ready=h,h)return S;if(!h&&!d)return S;throw new Promise((function(e){U(s,g,(function(){e()}))}))}var q=["forwardedRef"];var Y=["ns","children"];function _(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=r.i18n,i=n.useContext(E)||{},o=i.i18n,c=a||o||P();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 Z=["initialI18nStore","initialLanguage"];e.I18nContext=E,e.I18nextProvider=function(e){var t=e.i18n,r=e.defaultNS,a=e.children,i=n.useMemo((function(){return{i18n:t,defaultNS:r}}),[t,r]);return n.createElement(E.Provider,{value:i},a)},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=e.shouldUnescape,b=s(e,K),O=n.useContext(E)||{},w=O.i18n,x=O.defaultNS,j=h||w||P();if(!j)return L("You will need to pass in an i18next instance by using i18nextReactModule"),r;var S=v||j.t.bind(j)||function(e){return e},I=a(a({},N()),j.options&&j.options.react),k=g||S.ns||x||j.options&&j.options.defaultNS;k="string"==typeof k?[k]:k||["translation"];var R=d||function e(n,r){if(!n)return"";var a="",o=H(n),c=r.transKeepBasicHtmlNodesFor||[];return o.forEach((function(n,o){if("string"==typeof n)a+="".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)a+="<".concat(n.type,"/>");else if(f||l&&0===u)if(n.props.i18nIsDynamicList)a+="<".concat(o,"></").concat(o,">");else if(l&&1===u&&"string"==typeof f)a+="<".concat(n.type,">").concat(f,"</").concat(n.type,">");else{var p=e(f,r);a+="<".concat(o,">").concat(p,"</").concat(o,">")}else a+="<".concat(o,"></").concat(o,">")}else if(null===n)T("Trans: the passed in value is invalid - seems you passed in a null child.");else if("object"===i(n)){var d=n.format,m=s(n,V),g=Object.keys(m);if(1===g.length){var h=d?"".concat(g[0],", ").concat(d):g[0];a+="{{".concat(h,"}}")}else T("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else T("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)})),a}(r,I)||I.transEmptyNodeValue||u,C=I.hashTransKey,A=u||(C?C(R):R),z=p?f.interpolation:{interpolation:a(a({},f.interpolation),{},{prefix:"#$?",suffix:"?$#"})},U=a(a(a(a({},f),{},{count:o},p),z),{},{defaultValue:R,ns:k}),D=M(m||r,A?S(A,U):R,j,I,U,y),B=void 0!==c?c:I.defaultTransParent;return B?t.createElement(B,b,D):D},e.Translation=function(e){var n=e.ns,t=e.children,r=u($(n,s(e,Y)),3),a=r[0],i=r[1],o=r[2];return t(a,{i18n:i,lng:i.language},o)},e.composeInitialProps=C,e.date=function(){return""},e.getDefaults=N,e.getI18n=P,e.getInitialProps=A,e.initReactI18next=R,e.number=function(){return""},e.plural=function(){return""},e.select=function(){return""},e.selectOrdinal=function(){return""},e.setDefaults=S,e.setI18n=k,e.time=function(){return""},e.useSSR=_,e.useTranslation=$,e.withSSR=function(){return function(e){function n(n){var r=n.initialI18nStore,i=n.initialLanguage,o=s(n,Z);return _(r,i),t.createElement(e,a({},o))}return n.getInitialProps=C(e),n.displayName="withI18nextSSR(".concat(B(e),")"),n.WrappedComponent=e,n}},e.withTranslation=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(r){function i(i){var o=i.forwardedRef,c=s(i,q),l=u($(e,c),3),f=l[0],p=l[1],d=l[2],m=a(a({},c),{},{t:f,i18n:p,tReady:d});return n.withRef&&o?m.ref=o:!n.withRef&&o&&(m.forwardedRef=o),t.createElement(r,m)}i.displayName="withI18nextTranslation(".concat(B(r),")"),i.WrappedComponent=r;return n.withRef?t.forwardRef((function(e,n){return t.createElement(i,Object.assign({},e,{forwardedRef:n}))})):i}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/src/Trans.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { useContext } from 'react';
|
|
2
2
|
import HTML from 'html-parse-stringify';
|
|
3
|
+
import { unescape } from 'html-escaper';
|
|
3
4
|
import { getI18n, I18nContext, getDefaults } from './context';
|
|
4
5
|
import { warn, warnOnce } from './utils';
|
|
5
6
|
|
|
@@ -100,7 +101,7 @@ export function nodesToString(children, i18nOptions) {
|
|
|
100
101
|
return stringNode;
|
|
101
102
|
}
|
|
102
103
|
|
|
103
|
-
function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
104
|
+
function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {
|
|
104
105
|
if (targetString === '') return [];
|
|
105
106
|
|
|
106
107
|
// check if contains tags we need to replace from html string to react nodes
|
|
@@ -244,7 +245,9 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
244
245
|
}
|
|
245
246
|
} else if (node.type === 'text') {
|
|
246
247
|
const wrapTextNodes = i18nOptions.transWrapTextNodes;
|
|
247
|
-
const content =
|
|
248
|
+
const content = shouldUnescape
|
|
249
|
+
? unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language))
|
|
250
|
+
: i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
|
|
248
251
|
if (wrapTextNodes) {
|
|
249
252
|
mem.push(React.createElement(wrapTextNodes, { key: `${node.name}-${i}` }, content));
|
|
250
253
|
} else {
|
|
@@ -278,6 +281,7 @@ export function Trans({
|
|
|
278
281
|
ns,
|
|
279
282
|
i18n: i18nFromProps,
|
|
280
283
|
t: tFromProps,
|
|
284
|
+
shouldUnescape,
|
|
281
285
|
...additionalProps
|
|
282
286
|
}) {
|
|
283
287
|
const { i18n: i18nFromContext, defaultNS: defaultNSFromContext } = useContext(I18nContext) || {};
|
|
@@ -322,6 +326,7 @@ export function Trans({
|
|
|
322
326
|
i18n,
|
|
323
327
|
reactI18nextOptions,
|
|
324
328
|
combinedTOpts,
|
|
329
|
+
shouldUnescape,
|
|
325
330
|
);
|
|
326
331
|
|
|
327
332
|
// allows user to pass `null` to `parent`
|
package/ts4.1/index.d.ts
CHANGED
|
@@ -102,15 +102,18 @@ type WithOrWithoutPlural<K> = TypeOptions['jsonFormat'] extends 'v4'
|
|
|
102
102
|
: K;
|
|
103
103
|
|
|
104
104
|
// Normalize single namespace
|
|
105
|
-
type
|
|
106
|
-
string}`;
|
|
107
|
-
type
|
|
108
|
-
string}${S}${Exclude<K2, keyof any[]> & string}`;
|
|
105
|
+
export type KeysWithSeparator<K1, K2, S extends string = TypeOptions['keySeparator']> = `${K1 &
|
|
106
|
+
string}${S}${K2 & string}`;
|
|
107
|
+
type KeysWithSeparator2<K1, K2> = KeysWithSeparator<K1, Exclude<K2, keyof any[]>>;
|
|
109
108
|
type Normalize2<T, K = keyof T> = K extends keyof T
|
|
110
109
|
? T[K] extends Record<string, any>
|
|
111
110
|
? T[K] extends readonly any[]
|
|
112
|
-
?
|
|
113
|
-
|
|
111
|
+
?
|
|
112
|
+
| KeysWithSeparator2<K, WithOrWithoutPlural<keyof T[K]>>
|
|
113
|
+
| KeysWithSeparator2<K, Normalize2<T[K]>>
|
|
114
|
+
:
|
|
115
|
+
| KeysWithSeparator<K, WithOrWithoutPlural<keyof T[K]>>
|
|
116
|
+
| KeysWithSeparator<K, Normalize2<T[K]>>
|
|
114
117
|
: never
|
|
115
118
|
: never;
|
|
116
119
|
type Normalize<T> = WithOrWithoutPlural<keyof T> | Normalize2<T>;
|
|
@@ -167,32 +170,51 @@ type NormalizeMultiReturn<T, V> = V extends `${infer N}:${infer R}`
|
|
|
167
170
|
: never
|
|
168
171
|
: never;
|
|
169
172
|
|
|
170
|
-
type
|
|
171
|
-
|
|
172
|
-
|
|
173
|
+
type NormalizeWithKeyPrefix<
|
|
174
|
+
T,
|
|
175
|
+
K,
|
|
176
|
+
S extends string = TypeOptions['keySeparator']
|
|
177
|
+
> = K extends `${infer K1}${S}${infer K2}`
|
|
178
|
+
? K1 extends keyof T
|
|
179
|
+
? NormalizeWithKeyPrefix<T[K1], K2>
|
|
180
|
+
: never
|
|
181
|
+
: K extends keyof T
|
|
182
|
+
? T[K] extends string
|
|
183
|
+
? never
|
|
184
|
+
: Normalize<T[K]>
|
|
185
|
+
: never;
|
|
186
|
+
|
|
187
|
+
type KeyPrefix<N extends Namespace> =
|
|
188
|
+
| (N extends keyof DefaultResources ? Normalize<DefaultResources[N]> : string)
|
|
189
|
+
| undefined;
|
|
173
190
|
|
|
174
191
|
export type TFuncKey<
|
|
175
192
|
N extends Namespace = DefaultNamespace,
|
|
176
|
-
TKPrefix
|
|
193
|
+
TKPrefix = undefined,
|
|
177
194
|
T = DefaultResources
|
|
178
195
|
> = N extends (keyof T)[] | Readonly<(keyof T)[]>
|
|
179
196
|
? NormalizeMulti<T, N[number]>
|
|
180
197
|
: N extends keyof T
|
|
181
|
-
? TKPrefix extends
|
|
182
|
-
? Normalize<T[N]
|
|
183
|
-
:
|
|
198
|
+
? TKPrefix extends undefined
|
|
199
|
+
? Normalize<T[N]>
|
|
200
|
+
: NormalizeWithKeyPrefix<T[N], TKPrefix>
|
|
184
201
|
: string;
|
|
185
202
|
|
|
186
|
-
export type TFuncReturn<
|
|
203
|
+
export type TFuncReturn<
|
|
204
|
+
N,
|
|
205
|
+
TKeys,
|
|
206
|
+
TDefaultResult,
|
|
207
|
+
TKPrefix = undefined,
|
|
208
|
+
T = DefaultResources
|
|
209
|
+
> = N extends (keyof T)[]
|
|
187
210
|
? NormalizeMultiReturn<T, TKeys>
|
|
188
211
|
: N extends keyof T
|
|
189
|
-
?
|
|
212
|
+
? TKPrefix extends undefined
|
|
213
|
+
? NormalizeReturn<T[N], TKeys>
|
|
214
|
+
: NormalizeReturn<T[N], KeysWithSeparator<TKPrefix, TKeys>>
|
|
190
215
|
: Fallback<TDefaultResult>;
|
|
191
216
|
|
|
192
|
-
export interface TFunction<
|
|
193
|
-
N extends Namespace = DefaultNamespace,
|
|
194
|
-
TKPrefix extends KeyPrefix<N> = undefined
|
|
195
|
-
> {
|
|
217
|
+
export interface TFunction<N extends Namespace = DefaultNamespace, TKPrefix = undefined> {
|
|
196
218
|
<
|
|
197
219
|
TKeys extends TFuncKey<N, TKPrefix> | TemplateStringsArray extends infer A ? A : never,
|
|
198
220
|
TDefaultResult extends TFunctionResult = string,
|
|
@@ -200,7 +222,7 @@ export interface TFunction<
|
|
|
200
222
|
>(
|
|
201
223
|
key: TKeys | TKeys[],
|
|
202
224
|
options?: TOptions<TInterpolationMap> | string,
|
|
203
|
-
): TFuncReturn<N, TKeys, TDefaultResult>;
|
|
225
|
+
): TFuncReturn<N, TKeys, TDefaultResult, TKPrefix>;
|
|
204
226
|
<
|
|
205
227
|
TKeys extends TFuncKey<N, TKPrefix> | TemplateStringsArray extends infer A ? A : never,
|
|
206
228
|
TDefaultResult extends TFunctionResult = string,
|
|
@@ -209,13 +231,13 @@ export interface TFunction<
|
|
|
209
231
|
key: TKeys | TKeys[],
|
|
210
232
|
defaultValue?: string,
|
|
211
233
|
options?: TOptions<TInterpolationMap> | string,
|
|
212
|
-
): TFuncReturn<N, TKeys, TDefaultResult>;
|
|
234
|
+
): TFuncReturn<N, TKeys, TDefaultResult, TKPrefix>;
|
|
213
235
|
}
|
|
214
236
|
|
|
215
|
-
type I18nKeyType<N extends Namespace> = TFuncKey<N> extends infer A ? A : never;
|
|
216
237
|
export interface TransProps<
|
|
217
|
-
K extends TFuncKey<N> extends infer A ? A : never,
|
|
238
|
+
K extends TFuncKey<N, TKPrefix> extends infer A ? A : never,
|
|
218
239
|
N extends Namespace = DefaultNamespace,
|
|
240
|
+
TKPrefix = undefined,
|
|
219
241
|
E extends Element = HTMLDivElement
|
|
220
242
|
> extends React.HTMLProps<E> {
|
|
221
243
|
children?: React.ReactNode;
|
|
@@ -228,27 +250,26 @@ export interface TransProps<
|
|
|
228
250
|
parent?: string | React.ComponentType<any> | null; // used in React.createElement if not null
|
|
229
251
|
tOptions?: {};
|
|
230
252
|
values?: {};
|
|
231
|
-
|
|
253
|
+
shouldUnescape?: boolean;
|
|
254
|
+
t?: TFunction<N, TKPrefix>;
|
|
232
255
|
}
|
|
233
256
|
|
|
234
257
|
export function Trans<
|
|
235
|
-
K extends TFuncKey<N> extends infer A ? A : never,
|
|
258
|
+
K extends TFuncKey<N, TKPrefix> extends infer A ? A : never,
|
|
236
259
|
N extends Namespace = DefaultNamespace,
|
|
260
|
+
TKPrefix extends KeyPrefix<N> = undefined,
|
|
237
261
|
E extends Element = HTMLDivElement
|
|
238
|
-
>(props: TransProps<K, N, E>): React.ReactElement;
|
|
262
|
+
>(props: TransProps<K, N, TKPrefix, E>): React.ReactElement;
|
|
239
263
|
|
|
240
264
|
export function useSSR(initialI18nStore: Resource, initialLanguage: string): void;
|
|
241
265
|
|
|
242
|
-
export interface UseTranslationOptions<
|
|
243
|
-
N extends Namespace = DefaultNamespace,
|
|
244
|
-
TKPrefix extends KeyPrefix<N> = undefined
|
|
245
|
-
> {
|
|
266
|
+
export interface UseTranslationOptions<TKPrefix = undefined> {
|
|
246
267
|
i18n?: i18n;
|
|
247
268
|
useSuspense?: boolean;
|
|
248
269
|
keyPrefix?: TKPrefix;
|
|
249
270
|
}
|
|
250
271
|
|
|
251
|
-
type UseTranslationResponse<N extends Namespace, TKPrefix
|
|
272
|
+
export type UseTranslationResponse<N extends Namespace, TKPrefix = undefined> = [
|
|
252
273
|
TFunction<N, TKPrefix>,
|
|
253
274
|
i18n,
|
|
254
275
|
boolean,
|
|
@@ -263,7 +284,7 @@ export function useTranslation<
|
|
|
263
284
|
TKPrefix extends KeyPrefix<N> = undefined
|
|
264
285
|
>(
|
|
265
286
|
ns?: N | Readonly<N>,
|
|
266
|
-
options?: UseTranslationOptions<
|
|
287
|
+
options?: UseTranslationOptions<TKPrefix>,
|
|
267
288
|
): UseTranslationResponse<N, TKPrefix>;
|
|
268
289
|
|
|
269
290
|
// Need to see usage to improve this
|