react-i18next 11.14.3 → 11.15.3
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/README.md +3 -8
- 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 +13 -4
- 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 +9 -8
- package/tslint.json +9 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
### 11.15.3
|
|
2
|
+
|
|
3
|
+
- types: fix for issue introduced with type extension for react-native [1436](https://github.com/i18next/react-i18next/pull/1436)
|
|
4
|
+
|
|
5
|
+
### 11.15.2
|
|
6
|
+
|
|
7
|
+
- types: TypeScript interface for the Trans component does now accept react-native props [1418](https://github.com/i18next/react-i18next/pull/1418)
|
|
8
|
+
|
|
9
|
+
### 11.15.1
|
|
10
|
+
|
|
11
|
+
- add missing types for shouldUnescape and useTranslation [1429](https://github.com/i18next/react-i18next/pull/1429)
|
|
12
|
+
|
|
13
|
+
### 11.15.0
|
|
14
|
+
|
|
15
|
+
- option to unescape html in Trans [1426](https://github.com/i18next/react-i18next/pull/1426)
|
|
16
|
+
|
|
1
17
|
### 11.14.3
|
|
2
18
|
|
|
3
19
|
- types: remove undefined from conditional type [1410](https://github.com/i18next/react-i18next/pull/1410)
|
package/README.md
CHANGED
|
@@ -4,15 +4,9 @@
|
|
|
4
4
|
[](https://codeclimate.com/github/i18next/react-i18next)
|
|
5
5
|
[](https://coveralls.io/github/i18next/react-i18next)
|
|
6
6
|
[![Quality][quality-badge] ][quality-url]
|
|
7
|
-
[![dependencies][dependencies-image] ][dependencies-url]
|
|
8
|
-
[![devdependencies][devdependencies-image] ][devdependencies-url]
|
|
9
7
|
|
|
10
8
|
[npm-icon]: https://nodei.co/npm/react-i18next.png?downloads=true
|
|
11
9
|
[npm-url]: https://npmjs.org/package/react-i18next
|
|
12
|
-
[dependencies-image]: https://david-dm.org/i18next/react-i18next.png
|
|
13
|
-
[dependencies-url]: https://david-dm.org/i18next/react-i18next
|
|
14
|
-
[devdependencies-image]: https://david-dm.org/i18next/react-i18next/dev-status.png
|
|
15
|
-
[devdependencies-url]: https://david-dm.org/i18next/react-i18next#info=devDependencies
|
|
16
10
|
[quality-badge]: http://npm.packagequality.com/shield/react-i18next.svg
|
|
17
11
|
[quality-url]: http://packagequality.com/#?package=react-i18next
|
|
18
12
|
|
|
@@ -36,8 +30,9 @@ npm i react-i18next@legacy
|
|
|
36
30
|
|
|
37
31
|
### Documentation
|
|
38
32
|
|
|
39
|
-
The documentation is published on [react.i18next.com](https://react.i18next.com)
|
|
40
|
-
|
|
33
|
+
The documentation is published on [react.i18next.com](https://react.i18next.com) and PR changes can be supplied [here](https://github.com/i18next/react-i18next-gitbook).
|
|
34
|
+
|
|
35
|
+
The general i18next documentation is published on [www.i18next.com](https://www.i18next.com) and PR changes can be supplied [here](https://github.com/i18next/i18next-gitbook).
|
|
41
36
|
|
|
42
37
|
### What will my code look like?
|
|
43
38
|
|
|
@@ -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.3",
|
|
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": {
|
|
@@ -92,6 +93,14 @@
|
|
|
92
93
|
"i18next": ">= 19.0.0",
|
|
93
94
|
"react": ">= 16.8.0"
|
|
94
95
|
},
|
|
96
|
+
"peerDependenciesMeta": {
|
|
97
|
+
"react-dom": {
|
|
98
|
+
"optional": true
|
|
99
|
+
},
|
|
100
|
+
"react-native": {
|
|
101
|
+
"optional": true
|
|
102
|
+
}
|
|
103
|
+
},
|
|
95
104
|
"scripts": {
|
|
96
105
|
"clean": "rimraf dist && mkdirp dist",
|
|
97
106
|
"copy": "cp-cli ./dist/umd/react-i18next.min.js ./react-i18next.min.js && cp-cli ./dist/umd/react-i18next.js ./react-i18next.js",
|
|
@@ -108,9 +117,9 @@
|
|
|
108
117
|
"test:watch": "cross-env BABEL_ENV=development jest --no-cache --watch",
|
|
109
118
|
"test:coverage": "cross-env BABEL_ENV=development jest --no-cache --coverage",
|
|
110
119
|
"test:lint": "eslint ./src ./test",
|
|
111
|
-
"test:typescript": "tslint --project tsconfig.json",
|
|
112
|
-
"test:typescript:noninterop": "tslint --project tsconfig.nonEsModuleInterop.json",
|
|
113
|
-
"test:typescript:customtypes": "tslint --project ./test/typescript/custom-types/tsconfig.json",
|
|
120
|
+
"test:typescript": "tslint --project tsconfig.json '**/*.ts'",
|
|
121
|
+
"test:typescript:noninterop": "tslint --project tsconfig.nonEsModuleInterop.json '**/*.ts'",
|
|
122
|
+
"test:typescript:customtypes": "tslint --project ./test/typescript/custom-types/tsconfig.json '**/*.ts'",
|
|
114
123
|
"contributors:add": "all-contributors add",
|
|
115
124
|
"contributors:generate": "all-contributors generate",
|
|
116
125
|
"prettier": "prettier --write \"{,**/}*.{ts,tsx,js,json,md}\""
|
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
|
@@ -130,10 +130,10 @@ type NormalizeMulti<T, U extends keyof T, L = LastOf<U>> = L extends U
|
|
|
130
130
|
? AppendNS<L, Normalize<T[L]>> | NormalizeMulti<T, Exclude<U, L>>
|
|
131
131
|
: never;
|
|
132
132
|
|
|
133
|
-
|
|
133
|
+
interface CustomTypeParameters {
|
|
134
134
|
returnNull?: boolean;
|
|
135
135
|
returnEmptyString?: boolean;
|
|
136
|
-
}
|
|
136
|
+
}
|
|
137
137
|
|
|
138
138
|
type TypeOptionsFallback<TranslationValue, Option, MatchingValue> = Option extends false
|
|
139
139
|
? TranslationValue extends MatchingValue
|
|
@@ -234,12 +234,12 @@ export interface TFunction<N extends Namespace = DefaultNamespace, TKPrefix = un
|
|
|
234
234
|
): TFuncReturn<N, TKeys, TDefaultResult, TKPrefix>;
|
|
235
235
|
}
|
|
236
236
|
|
|
237
|
-
export
|
|
237
|
+
export type TransProps<
|
|
238
238
|
K extends TFuncKey<N, TKPrefix> extends infer A ? A : never,
|
|
239
239
|
N extends Namespace = DefaultNamespace,
|
|
240
240
|
TKPrefix = undefined,
|
|
241
|
-
E
|
|
242
|
-
>
|
|
241
|
+
E = React.HTMLProps<HTMLDivElement>
|
|
242
|
+
> = E & {
|
|
243
243
|
children?: React.ReactNode;
|
|
244
244
|
components?: readonly React.ReactNode[] | { readonly [tagName: string]: React.ReactNode };
|
|
245
245
|
count?: number;
|
|
@@ -250,14 +250,15 @@ export interface TransProps<
|
|
|
250
250
|
parent?: string | React.ComponentType<any> | null; // used in React.createElement if not null
|
|
251
251
|
tOptions?: {};
|
|
252
252
|
values?: {};
|
|
253
|
+
shouldUnescape?: boolean;
|
|
253
254
|
t?: TFunction<N, TKPrefix>;
|
|
254
|
-
}
|
|
255
|
+
};
|
|
255
256
|
|
|
256
257
|
export function Trans<
|
|
257
258
|
K extends TFuncKey<N, TKPrefix> extends infer A ? A : never,
|
|
258
259
|
N extends Namespace = DefaultNamespace,
|
|
259
260
|
TKPrefix extends KeyPrefix<N> = undefined,
|
|
260
|
-
E
|
|
261
|
+
E = React.HTMLProps<HTMLDivElement>
|
|
261
262
|
>(props: TransProps<K, N, TKPrefix, E>): React.ReactElement;
|
|
262
263
|
|
|
263
264
|
export function useSSR(initialI18nStore: Resource, initialLanguage: string): void;
|
|
@@ -268,7 +269,7 @@ export interface UseTranslationOptions<TKPrefix = undefined> {
|
|
|
268
269
|
keyPrefix?: TKPrefix;
|
|
269
270
|
}
|
|
270
271
|
|
|
271
|
-
type UseTranslationResponse<N extends Namespace, TKPrefix> = [
|
|
272
|
+
export type UseTranslationResponse<N extends Namespace, TKPrefix = undefined> = [
|
|
272
273
|
TFunction<N, TKPrefix>,
|
|
273
274
|
i18n,
|
|
274
275
|
boolean,
|
package/tslint.json
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
"defaultSeverity": "error",
|
|
3
3
|
"extends": "dtslint/dtslint.json",
|
|
4
4
|
"rules": {
|
|
5
|
-
"
|
|
5
|
+
"array-type": [true, "array"],
|
|
6
|
+
"no-empty-interface": false,
|
|
7
|
+
"no-redundant-jsdoc": false,
|
|
8
|
+
"no-unnecessary-generics": false,
|
|
9
|
+
"semicolon": false,
|
|
10
|
+
"strict-export-declare-modifiers": false
|
|
11
|
+
},
|
|
12
|
+
"linterOptions": {
|
|
13
|
+
"exclude": ["node_modules/**/*"]
|
|
6
14
|
}
|
|
7
15
|
}
|