react-i18next 13.0.3 → 13.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.husky/pre-commit +4 -0
- package/.prettierignore +3 -0
- package/CHANGELOG.md +4 -0
- package/dist/amd/react-i18next.js +824 -805
- package/dist/amd/react-i18next.min.js +1 -1
- package/dist/commonjs/TransWithoutContext.js +30 -23
- package/dist/es/TransWithoutContext.js +28 -23
- package/dist/es/package.json +1 -1
- package/dist/umd/react-i18next.js +827 -808
- package/dist/umd/react-i18next.min.js +1 -1
- package/index.d.ts +8 -0
- package/package.json +8 -7
- package/react-i18next.js +827 -808
- package/react-i18next.min.js +1 -1
- package/src/TransWithoutContext.js +34 -17
- package/src/unescape.js +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
define(["exports","react"],(function(e,n){"use strict";function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var s=t({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}),i=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function r(e){var n={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=e.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(n.name=t[1],(s[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 o=new RegExp(i),a=null;null!==(a=o.exec(e));)if(a[0].trim())if(a[1]){var c=a[1].trim(),l=[c,""];c.indexOf("=")>-1&&(l=c.split("=")),n.attrs[l[0]]=l[1],o.lastIndex--}else a[2]&&(n.attrs[a[2]]=a[3].trim().substring(1,a[3].length-1));return n}var o=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,a=/^\s*$/,c=Object.create(null);function l(e,n){switch(n.type){case"text":return e+n.content;case"tag":return e+="<"+n.name+(n.attrs?function(e){var n=[];for(var t in e)n.push(t+'="'+e[t]+'"');return n.length?" "+n.join(" "):""}(n.attrs):"")+(n.voidElement?"/>":">"),n.voidElement?e:e+n.children.reduce(l,"")+"</"+n.name+">";case"comment":return e+"\x3c!--"+n.comment+"--\x3e"}}var u={parse:function(e,n){n||(n={}),n.components||(n.components=c);var t,s=[],i=[],l=-1,u=!1;if(0!==e.indexOf("<")){var p=e.indexOf("<");s.push({type:"text",content:-1===p?e:e.substring(0,p)})}return e.replace(o,(function(o,c){if(u){if(o!=="</"+t.name+">")return;u=!1}var p,d="/"!==o.charAt(1),f=o.startsWith("\x3c!--"),g=c+o.length,h=e.charAt(g);if(f){var m=r(o);return l<0?(s.push(m),s):((p=i[l]).children.push(m),s)}if(d&&(l++,"tag"===(t=r(o)).type&&n.components[t.name]&&(t.type="component",u=!0),t.voidElement||u||!h||"<"===h||t.children.push({type:"text",content:e.slice(g,e.indexOf("<",g))}),0===l&&s.push(t),(p=i[l-1])&&p.children.push(t),i[l]=t),(!d||t.voidElement)&&(l>-1&&(t.voidElement||t.name===o.slice(2,-1))&&(l--,t=-1===l?s:i[l]),!u&&"<"!==h&&h)){p=-1===l?s:i[l].children;var y=e.indexOf("<",g),v=e.slice(g,-1===y?void 0:y);a.test(v)&&(v=" "),(y>-1&&l+p.length>=0||" "!==v)&&p.push({type:"text",content:v})}})),s},stringify:function(e){return e.reduce((function(e,n){return e+l("",n)}),"")}};function p(){if(console&&console.warn){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&(n[0]=`react-i18next:: ${n[0]}`),console.warn(...n)}}const d={};function f(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&d[n[0]]||("string"==typeof n[0]&&(d[n[0]]=new Date),p(...n))}const g=(e,n)=>()=>{if(e.isInitialized)n();else{const t=()=>{setTimeout((()=>{e.off("initialized",t)}),0),n()};e.on("initialized",t)}};function h(e,n,t){e.loadNamespaces(n,g(e,t))}function m(e,n,t,s){"string"==typeof t&&(t=[t]),t.forEach((n=>{e.options.ns.indexOf(n)<0&&e.options.ns.push(n)})),e.loadLanguages(n,g(e,s))}function y(e){return e.displayName||e.name||("string"==typeof e&&e.length>0?e:"Unknown")}const v=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,b={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},x=e=>b[e];let E,N={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:e=>e.replace(v,x)};function O(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};N={...N,...e}}function $(){return N}function w(e){E=e}function k(){return E}function S(e,n){if(!e)return!1;const t=e.props?e.props.children:e.children;return n?t.length>0:!!t}function I(e){return e?e.props?e.props.children:e.children:[]}function j(e){return Array.isArray(e)?e:[e]}function C(e,t){if(!e)return"";let s="";const i=j(e),r=t.transSupportBasicHtmlNodes&&t.transKeepBasicHtmlNodesFor?t.transKeepBasicHtmlNodesFor:[];return i.forEach(((e,i)=>{if("string"==typeof e)s+=`${e}`;else if(n.isValidElement(e)){const n=Object.keys(e.props).length,o=r.indexOf(e.type)>-1,a=e.props.children;if(!a&&o&&0===n)s+=`<${e.type}/>`;else if(a||o&&0===n)if(e.props.i18nIsDynamicList)s+=`<${i}></${i}>`;else if(o&&1===n&&"string"==typeof a)s+=`<${e.type}>${a}</${e.type}>`;else{const e=C(a,t);s+=`<${i}>${e}</${i}>`}else s+=`<${i}></${i}>`}else if(null===e)p("Trans: the passed in value is invalid - seems you passed in a null child.");else if("object"==typeof e){const{format:n,...t}=e,i=Object.keys(t);if(1===i.length){const e=n?`${i[0]}, ${n}`:i[0];s+=`{{${e}}}`}else p("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",e)}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}}.",e)})),s}function R(e,t,s,i,r,o){if(""===t)return[];const a=i.transKeepBasicHtmlNodesFor||[],c=t&&new RegExp(a.join("|")).test(t);if(!e&&!c&&!o)return[t];const l={};!function e(t){j(t).forEach((t=>{"string"!=typeof t&&(S(t)?e(I(t)):"object"!=typeof t||n.isValidElement(t)||Object.assign(l,t))}))}(e);const p=u.parse(`<0>${t}</0>`),d={...l,...r};function f(e,t,s){const i=I(e),r=h(i,t.children,s);return function(e){return"[object Array]"===Object.prototype.toString.call(e)&&e.every((e=>n.isValidElement(e)))}(i)&&0===r.length?i:r}function g(e,t,s,i,r){e.dummy&&(e.children=t),s.push(n.cloneElement(e,{...e.props,key:i},r?void 0:t))}function h(t,r,l){const u=j(t);return j(r).reduce(((t,r,p)=>{const m=r.children&&r.children[0]&&r.children[0].content&&s.services.interpolator.interpolate(r.children[0].content,d,s.language);if("tag"===r.type){let o=u[parseInt(r.name,10)];!o&&1===l.length&&l[0][r.name]&&(o=l[0][r.name]),o||(o={});const y=0!==Object.keys(r.attrs).length?function(e,n){const t={...n};return t.props=Object.assign(e.props,n.props),t}({props:r.attrs},o):o,v=n.isValidElement(y),b=v&&S(r,!0)&&!r.voidElement,x=c&&"object"==typeof y&&y.dummy&&!v,E="object"==typeof e&&null!==e&&Object.hasOwnProperty.call(e,r.name);if("string"==typeof y){const e=s.services.interpolator.interpolate(y,d,s.language);t.push(e)}else if(S(y)||b){g(y,f(y,r,l),t,p)}else if(x){const e=h(u,r.children,l);t.push(n.cloneElement(y,{...y.props,key:p},e))}else if(Number.isNaN(parseFloat(r.name)))if(E){g(y,f(y,r,l),t,p,r.voidElement)}else if(i.transSupportBasicHtmlNodes&&a.indexOf(r.name)>-1)if(r.voidElement)t.push(n.createElement(r.name,{key:`${r.name}-${p}`}));else{const e=h(u,r.children,l);t.push(n.createElement(r.name,{key:`${r.name}-${p}`},e))}else if(r.voidElement)t.push(`<${r.name} />`);else{const e=h(u,r.children,l);t.push(`<${r.name}>${e}</${r.name}>`)}else if("object"!=typeof y||v)1===r.children.length&&m?t.push(n.cloneElement(y,{...y.props,key:p},m)):t.push(n.cloneElement(y,{...y.props,key:p}));else{const e=r.children[0]?m:null;e&&t.push(e)}}else if("text"===r.type){const e=i.transWrapTextNodes,a=o?i.unescape(s.services.interpolator.interpolate(r.content,d,s.language)):s.services.interpolator.interpolate(r.content,d,s.language);e?t.push(n.createElement(e,{key:`${r.name}-${p}`},a)):t.push(a)}return t}),[])}return I(h([{dummy:!0,children:e||[]}],p,j(e||[]))[0])}function T(e){let{children:t,count:s,parent:i,i18nKey:r,context:o,tOptions:a={},values:c,defaults:l,components:u,ns:p,i18n:d,t:g,shouldUnescape:h,...m}=e;const y=d||k();if(!y)return f("You will need to pass in an i18next instance by using i18nextReactModule"),t;const v=g||y.t.bind(y)||(e=>e);o&&(a.context=o);const b={...$(),...y.options&&y.options.react};let x=p||v.ns||y.options&&y.options.defaultNS;x="string"==typeof x?[x]:x||["translation"];const E=l||C(t,b)||b.transEmptyNodeValue||r,{hashTransKey:N}=b,O=r||(N?N(E):E),w=c?a.interpolation:{interpolation:{...a.interpolation,prefix:"#$?",suffix:"?$#"}},S={...a,count:s,...c,...w,defaultValue:E,ns:x},I=R(u||t,O?v(O,S):E,y,b,S,h),j=void 0!==i?i:b.defaultTransParent;return j?n.createElement(j,m,I):I}const P={type:"3rdParty",init(e){O(e.options.react),w(e)}},L=n.createContext();class z{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach((e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)}))}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}function A(e){return n=>new Promise((t=>{const s=B();e.getInitialProps?e.getInitialProps(n).then((e=>{t({...e,...s})})):t(s)}))}function B(){const e=k(),n=e.reportNamespaces?e.reportNamespaces.getUsedNamespaces():[],t={},s={};return e.languages.forEach((t=>{s[t]={},n.forEach((n=>{s[t][n]=e.getResourceBundle(t,n)||{}}))})),t.initialI18nStore=s,t.initialLanguage=e.language,t}const U=(e,t)=>{const s=n.useRef();return n.useEffect((()=>{s.current=t?s.current:e}),[e,t]),s.current};function V(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{i18n:s}=t,{i18n:i,defaultNS:r}=n.useContext(L)||{},o=s||i||k();if(o&&!o.reportNamespaces&&(o.reportNamespaces=new z),!o){f("You will need to pass in an i18next instance by using initReactI18next");const e=(e,n)=>"string"==typeof n?n:n&&"object"==typeof n&&"string"==typeof n.defaultValue?n.defaultValue:Array.isArray(e)?e[e.length-1]:e,n=[e,{},!1];return n.t=e,n.i18n={},n.ready=!1,n}o.options.react&&void 0!==o.options.react.wait&&f("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const a={...$(),...o.options.react,...t},{useSuspense:c,keyPrefix:l}=a;let u=e||r||o.options&&o.options.defaultNS;u="string"==typeof u?[u]:u||["translation"],o.reportNamespaces.addUsedNamespaces&&o.reportNamespaces.addUsedNamespaces(u);const p=(o.isInitialized||o.initializedStoreOnce)&&u.every((e=>function(e,n){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n.languages&&n.languages.length?void 0!==n.options.ignoreJSONStructure?n.hasLoadedNamespace(e,{lng:t.lng,precheck:(n,s)=>{if(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!s(n.isLanguageChangingTo,e))return!1}}):function(e,n){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s=n.languages[0],i=!!n.options&&n.options.fallbackLng,r=n.languages[n.languages.length-1];if("cimode"===s.toLowerCase())return!0;const o=(e,t)=>{const s=n.services.backendConnector.state[`${e}|${t}`];return-1===s||2===s};return!(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!o(n.isLanguageChangingTo,e)||!n.hasResourceBundle(s,e)&&n.services.backendConnector.backend&&(!n.options.resources||n.options.partialBundledLanguages)&&(!o(s,e)||i&&!o(r,e)))}(e,n,t):(f("i18n.languages were undefined or empty",n.languages),!0)}(e,o,a)));function d(){return o.getFixedT(t.lng||null,"fallback"===a.nsMode?u:u[0],l)}const[g,y]=n.useState(d);let v=u.join();t.lng&&(v=`${t.lng}${v}`);const b=U(v),x=n.useRef(!0);n.useEffect((()=>{const{bindI18n:e,bindI18nStore:n}=a;function s(){x.current&&y(d)}return x.current=!0,p||c||(t.lng?m(o,t.lng,u,(()=>{x.current&&y(d)})):h(o,u,(()=>{x.current&&y(d)}))),p&&b&&b!==v&&x.current&&y(d),e&&o&&o.on(e,s),n&&o&&o.store.on(n,s),()=>{x.current=!1,e&&o&&e.split(" ").forEach((e=>o.off(e,s))),n&&o&&n.split(" ").forEach((e=>o.store.off(e,s)))}}),[o,v]);const E=n.useRef(!0);n.useEffect((()=>{x.current&&!E.current&&y(d),E.current=!1}),[o,l]);const N=[g,o,p];if(N.t=g,N.i18n=o,N.ready=p,p)return N;if(!p&&!c)return N;throw new Promise((e=>{t.lng?m(o,t.lng,u,(()=>e())):h(o,u,(()=>e()))}))}function F(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{i18n:i}=s,{i18n:r}=n.useContext(L)||{},o=i||r||k();o.options&&o.options.isClone||(e&&!o.initializedStoreOnce&&(o.services.resourceStore.data=e,o.options.ns=Object.values(e).reduce(((e,n)=>(Object.keys(n).forEach((n=>{e.indexOf(n)<0&&e.push(n)})),e)),o.options.ns),o.initializedStoreOnce=!0,o.isInitialized=!0),t&&!o.initializedLanguageOnce&&(o.changeLanguage(t),o.initializedLanguageOnce=!0))}e.I18nContext=L,e.I18nextProvider=function(e){let{i18n:t,defaultNS:s,children:i}=e;const r=n.useMemo((()=>({i18n:t,defaultNS:s})),[t,s]);return n.createElement(L.Provider,{value:r},i)},e.Trans=function(e){let{children:t,count:s,parent:i,i18nKey:r,context:o,tOptions:a={},values:c,defaults:l,components:u,ns:p,i18n:d,t:f,shouldUnescape:g,...h}=e;const{i18n:m,defaultNS:y}=n.useContext(L)||{},v=d||m||k(),b=f||v&&v.t.bind(v);return T({children:t,count:s,parent:i,i18nKey:r,context:o,tOptions:a,values:c,defaults:l,components:u,ns:p||b&&b.ns||y||v&&v.options&&v.options.defaultNS,i18n:v,t:f,shouldUnescape:g,...h})},e.TransWithoutContext=T,e.Translation=function(e){const{ns:n,children:t,...s}=e,[i,r,o]=V(n,s);return t(i,{i18n:r,lng:r.language},o)},e.composeInitialProps=A,e.date=()=>"",e.getDefaults=$,e.getI18n=k,e.getInitialProps=B,e.initReactI18next=P,e.number=()=>"",e.plural=()=>"",e.select=()=>"",e.selectOrdinal=()=>"",e.setDefaults=O,e.setI18n=w,e.time=()=>"",e.useSSR=F,e.useTranslation=V,e.withSSR=function(){return function(e){function t(t){let{initialI18nStore:s,initialLanguage:i,...r}=t;return F(s,i),n.createElement(e,{...r})}return t.getInitialProps=A(e),t.displayName=`withI18nextSSR(${y(e)})`,t.WrappedComponent=e,t}},e.withTranslation=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(s){function i(i){let{forwardedRef:r,...o}=i;const[a,c,l]=V(e,{...o,keyPrefix:t.keyPrefix}),u={...o,t:a,i18n:c,tReady:l};return t.withRef&&r?u.ref=r:!t.withRef&&r&&(u.forwardedRef=r),n.createElement(s,u)}i.displayName=`withI18nextTranslation(${y(s)})`,i.WrappedComponent=s;return t.withRef?n.forwardRef(((e,t)=>n.createElement(i,Object.assign({},e,{forwardedRef:t})))):i}}}));
|
|
1
|
+
define(["exports","react"],(function(e,n){"use strict";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s])}return e},t.apply(this,arguments)}function s(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var r=s({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}),i=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function o(e){var n={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=e.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(n.name=t[1],(r[t[1]]||"/"===e.charAt(e.length-2))&&(n.voidElement=!0),n.name.startsWith("!--"))){var s=e.indexOf("--\x3e");return{type:"comment",comment:-1!==s?e.slice(4,s):""}}for(var o=new RegExp(i),a=null;null!==(a=o.exec(e));)if(a[0].trim())if(a[1]){var c=a[1].trim(),l=[c,""];c.indexOf("=")>-1&&(l=c.split("=")),n.attrs[l[0]]=l[1],o.lastIndex--}else a[2]&&(n.attrs[a[2]]=a[3].trim().substring(1,a[3].length-1));return n}var a=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,c=/^\s*$/,l=Object.create(null);function u(e,n){switch(n.type){case"text":return e+n.content;case"tag":return e+="<"+n.name+(n.attrs?function(e){var n=[];for(var t in e)n.push(t+'="'+e[t]+'"');return n.length?" "+n.join(" "):""}(n.attrs):"")+(n.voidElement?"/>":">"),n.voidElement?e:e+n.children.reduce(u,"")+"</"+n.name+">";case"comment":return e+"\x3c!--"+n.comment+"--\x3e"}}var p={parse:function(e,n){n||(n={}),n.components||(n.components=l);var t,s=[],r=[],i=-1,u=!1;if(0!==e.indexOf("<")){var p=e.indexOf("<");s.push({type:"text",content:-1===p?e:e.substring(0,p)})}return e.replace(a,(function(a,l){if(u){if(a!=="</"+t.name+">")return;u=!1}var p,d="/"!==a.charAt(1),f=a.startsWith("\x3c!--"),g=l+a.length,h=e.charAt(g);if(f){var m=o(a);return i<0?(s.push(m),s):((p=r[i]).children.push(m),s)}if(d&&(i++,"tag"===(t=o(a)).type&&n.components[t.name]&&(t.type="component",u=!0),t.voidElement||u||!h||"<"===h||t.children.push({type:"text",content:e.slice(g,e.indexOf("<",g))}),0===i&&s.push(t),(p=r[i-1])&&p.children.push(t),r[i]=t),(!d||t.voidElement)&&(i>-1&&(t.voidElement||t.name===a.slice(2,-1))&&(i--,t=-1===i?s:r[i]),!u&&"<"!==h&&h)){p=-1===i?s:r[i].children;var y=e.indexOf("<",g),v=e.slice(g,-1===y?void 0:y);c.test(v)&&(v=" "),(y>-1&&i+p.length>=0||" "!==v)&&p.push({type:"text",content:v})}})),s},stringify:function(e){return e.reduce((function(e,n){return e+u("",n)}),"")}};function d(){if(console&&console.warn){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&(n[0]=`react-i18next:: ${n[0]}`),console.warn(...n)}}const f={};function g(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&f[n[0]]||("string"==typeof n[0]&&(f[n[0]]=new Date),d(...n))}const h=(e,n)=>()=>{if(e.isInitialized)n();else{const t=()=>{setTimeout((()=>{e.off("initialized",t)}),0),n()};e.on("initialized",t)}};function m(e,n,t){e.loadNamespaces(n,h(e,t))}function y(e,n,t,s){"string"==typeof t&&(t=[t]),t.forEach((n=>{e.options.ns.indexOf(n)<0&&e.options.ns.push(n)})),e.loadLanguages(n,h(e,s))}function v(e){return e.displayName||e.name||("string"==typeof e&&e.length>0?e:"Unknown")}const b=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,x={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},N=e=>x[e];let E,O={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:e=>e.replace(b,N)};function $(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};O={...O,...e}}function w(){return O}function I(e){E=e}function S(){return E}function k(e,n){if(!e)return!1;const t=e.props?e.props.children:e.children;return n?t.length>0:!!t}function j(e){if(!e)return[];const n=e.props?e.props.children:e.children;return e.props?.i18nIsDynamicList?C(n):n}function C(e){return Array.isArray(e)?e:[e]}function R(e,t){if(!e)return"";let s="";const r=C(e),i=t.transSupportBasicHtmlNodes&&t.transKeepBasicHtmlNodesFor?t.transKeepBasicHtmlNodesFor:[];return r.forEach(((e,r)=>{if("string"==typeof e)s+=`${e}`;else if(n.isValidElement(e)){const n=Object.keys(e.props).length,o=i.indexOf(e.type)>-1,a=e.props.children;if(!a&&o&&0===n)s+=`<${e.type}/>`;else if(a||o&&0===n)if(e.props.i18nIsDynamicList)s+=`<${r}></${r}>`;else if(o&&1===n&&"string"==typeof a)s+=`<${e.type}>${a}</${e.type}>`;else{const e=R(a,t);s+=`<${r}>${e}</${r}>`}else s+=`<${r}></${r}>`}else if(null===e)d("Trans: the passed in value is invalid - seems you passed in a null child.");else if("object"==typeof e){const{format:n,...t}=e,r=Object.keys(t);if(1===r.length){const e=n?`${r[0]}, ${n}`:r[0];s+=`{{${e}}}`}else d("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",e)}else d("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}}.",e)})),s}function T(e,s,r,i,o,a){if(""===s)return[];const c=i.transKeepBasicHtmlNodesFor||[],l=s&&new RegExp(c.map((e=>`<${e}`)).join("|")).test(s);if(!e&&!l&&!a)return[s];const u={};!function e(t){C(t).forEach((t=>{"string"!=typeof t&&(k(t)?e(j(t)):"object"!=typeof t||n.isValidElement(t)||Object.assign(u,t))}))}(e);const d=p.parse(`<0>${s}</0>`),f={...u,...o};function g(e,t,s){const r=j(e),i=m(r,t.children,s);return function(e){return"[object Array]"===Object.prototype.toString.call(e)&&e.every((e=>n.isValidElement(e)))}(r)&&0===i.length?r:i}function h(e,s,r,i,o){e.dummy?(e.children=s,r.push(n.cloneElement(e,{key:i},o?void 0:s))):r.push(...n.Children.map([e],(e=>{const r={...e.props};return delete r.i18nIsDynamicList,n.createElement(e.type,t({},r,{key:i,ref:e.ref},o?{}:{children:s}))})))}function m(t,s,o){const u=C(t);return C(s).reduce(((t,s,p)=>{const d=s.children&&s.children[0]&&s.children[0].content&&r.services.interpolator.interpolate(s.children[0].content,f,r.language);if("tag"===s.type){let a=u[parseInt(s.name,10)];1===o.length&&(a||=o[0][s.name]),a||={};const y=0!==Object.keys(s.attrs).length?function(e,n){const t={...n};return t.props=Object.assign(e.props,n.props),t}({props:s.attrs},a):a,v=n.isValidElement(y),b=v&&k(s,!0)&&!s.voidElement,x=l&&"object"==typeof y&&y.dummy&&!v,N="object"==typeof e&&null!==e&&Object.hasOwnProperty.call(e,s.name);if("string"==typeof y){const e=r.services.interpolator.interpolate(y,f,r.language);t.push(e)}else if(k(y)||b){h(y,g(y,s,o),t,p)}else if(x){h(y,m(u,s.children,o),t,p)}else if(Number.isNaN(parseFloat(s.name)))if(N){h(y,g(y,s,o),t,p,s.voidElement)}else if(i.transSupportBasicHtmlNodes&&c.indexOf(s.name)>-1)if(s.voidElement)t.push(n.createElement(s.name,{key:`${s.name}-${p}`}));else{const e=m(u,s.children,o);t.push(n.createElement(s.name,{key:`${s.name}-${p}`},e))}else if(s.voidElement)t.push(`<${s.name} />`);else{const e=m(u,s.children,o);t.push(`<${s.name}>${e}</${s.name}>`)}else if("object"!=typeof y||v)h(y,d,t,p,1!==s.children.length||!d);else{const e=s.children[0]?d:null;e&&t.push(e)}}else if("text"===s.type){const e=i.transWrapTextNodes,o=a?i.unescape(r.services.interpolator.interpolate(s.content,f,r.language)):r.services.interpolator.interpolate(s.content,f,r.language);e?t.push(n.createElement(e,{key:`${s.name}-${p}`},o)):t.push(o)}return t}),[])}return j(m([{dummy:!0,children:e||[]}],d,C(e||[]))[0])}function L(e){let{children:t,count:s,parent:r,i18nKey:i,context:o,tOptions:a={},values:c,defaults:l,components:u,ns:p,i18n:d,t:f,shouldUnescape:h,...m}=e;const y=d||S();if(!y)return g("You will need to pass in an i18next instance by using i18nextReactModule"),t;const v=f||y.t.bind(y)||(e=>e);o&&(a.context=o);const b={...w(),...y.options&&y.options.react};let x=p||v.ns||y.options&&y.options.defaultNS;x="string"==typeof x?[x]:x||["translation"];const N=l||R(t,b)||b.transEmptyNodeValue||i,{hashTransKey:E}=b,O=i||(E?E(N):N),$=c?a.interpolation:{interpolation:{...a.interpolation,prefix:"#$?",suffix:"?$#"}},I={...a,count:s,...c,...$,defaultValue:N,ns:x},k=T(u||t,O?v(O,I):N,y,b,I,h),j=void 0!==r?r:b.defaultTransParent;return j?n.createElement(j,m,k):k}const P={type:"3rdParty",init(e){$(e.options.react),I(e)}},z=n.createContext();class A{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach((e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)}))}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}function B(e){return n=>new Promise((t=>{const s=U();e.getInitialProps?e.getInitialProps(n).then((e=>{t({...e,...s})})):t(s)}))}function U(){const e=S(),n=e.reportNamespaces?e.reportNamespaces.getUsedNamespaces():[],t={},s={};return e.languages.forEach((t=>{s[t]={},n.forEach((n=>{s[t][n]=e.getResourceBundle(t,n)||{}}))})),t.initialI18nStore=s,t.initialLanguage=e.language,t}const V=(e,t)=>{const s=n.useRef();return n.useEffect((()=>{s.current=t?s.current:e}),[e,t]),s.current};function F(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{i18n:s}=t,{i18n:r,defaultNS:i}=n.useContext(z)||{},o=s||r||S();if(o&&!o.reportNamespaces&&(o.reportNamespaces=new A),!o){g("You will need to pass in an i18next instance by using initReactI18next");const e=(e,n)=>"string"==typeof n?n:n&&"object"==typeof n&&"string"==typeof n.defaultValue?n.defaultValue:Array.isArray(e)?e[e.length-1]:e,n=[e,{},!1];return n.t=e,n.i18n={},n.ready=!1,n}o.options.react&&void 0!==o.options.react.wait&&g("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const a={...w(),...o.options.react,...t},{useSuspense:c,keyPrefix:l}=a;let u=e||i||o.options&&o.options.defaultNS;u="string"==typeof u?[u]:u||["translation"],o.reportNamespaces.addUsedNamespaces&&o.reportNamespaces.addUsedNamespaces(u);const p=(o.isInitialized||o.initializedStoreOnce)&&u.every((e=>function(e,n){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n.languages&&n.languages.length?void 0!==n.options.ignoreJSONStructure?n.hasLoadedNamespace(e,{lng:t.lng,precheck:(n,s)=>{if(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!s(n.isLanguageChangingTo,e))return!1}}):function(e,n){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s=n.languages[0],r=!!n.options&&n.options.fallbackLng,i=n.languages[n.languages.length-1];if("cimode"===s.toLowerCase())return!0;const o=(e,t)=>{const s=n.services.backendConnector.state[`${e}|${t}`];return-1===s||2===s};return!(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!o(n.isLanguageChangingTo,e)||!n.hasResourceBundle(s,e)&&n.services.backendConnector.backend&&(!n.options.resources||n.options.partialBundledLanguages)&&(!o(s,e)||r&&!o(i,e)))}(e,n,t):(g("i18n.languages were undefined or empty",n.languages),!0)}(e,o,a)));function d(){return o.getFixedT(t.lng||null,"fallback"===a.nsMode?u:u[0],l)}const[f,h]=n.useState(d);let v=u.join();t.lng&&(v=`${t.lng}${v}`);const b=V(v),x=n.useRef(!0);n.useEffect((()=>{const{bindI18n:e,bindI18nStore:n}=a;function s(){x.current&&h(d)}return x.current=!0,p||c||(t.lng?y(o,t.lng,u,(()=>{x.current&&h(d)})):m(o,u,(()=>{x.current&&h(d)}))),p&&b&&b!==v&&x.current&&h(d),e&&o&&o.on(e,s),n&&o&&o.store.on(n,s),()=>{x.current=!1,e&&o&&e.split(" ").forEach((e=>o.off(e,s))),n&&o&&n.split(" ").forEach((e=>o.store.off(e,s)))}}),[o,v]);const N=n.useRef(!0);n.useEffect((()=>{x.current&&!N.current&&h(d),N.current=!1}),[o,l]);const E=[f,o,p];if(E.t=f,E.i18n=o,E.ready=p,p)return E;if(!p&&!c)return E;throw new Promise((e=>{t.lng?y(o,t.lng,u,(()=>e())):m(o,u,(()=>e()))}))}function K(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{i18n:r}=s,{i18n:i}=n.useContext(z)||{},o=r||i||S();o.options&&o.options.isClone||(e&&!o.initializedStoreOnce&&(o.services.resourceStore.data=e,o.options.ns=Object.values(e).reduce(((e,n)=>(Object.keys(n).forEach((n=>{e.indexOf(n)<0&&e.push(n)})),e)),o.options.ns),o.initializedStoreOnce=!0,o.isInitialized=!0),t&&!o.initializedLanguageOnce&&(o.changeLanguage(t),o.initializedLanguageOnce=!0))}e.I18nContext=z,e.I18nextProvider=function(e){let{i18n:t,defaultNS:s,children:r}=e;const i=n.useMemo((()=>({i18n:t,defaultNS:s})),[t,s]);return n.createElement(z.Provider,{value:i},r)},e.Trans=function(e){let{children:t,count:s,parent:r,i18nKey:i,context:o,tOptions:a={},values:c,defaults:l,components:u,ns:p,i18n:d,t:f,shouldUnescape:g,...h}=e;const{i18n:m,defaultNS:y}=n.useContext(z)||{},v=d||m||S(),b=f||v&&v.t.bind(v);return L({children:t,count:s,parent:r,i18nKey:i,context:o,tOptions:a,values:c,defaults:l,components:u,ns:p||b&&b.ns||y||v&&v.options&&v.options.defaultNS,i18n:v,t:f,shouldUnescape:g,...h})},e.TransWithoutContext=L,e.Translation=function(e){const{ns:n,children:t,...s}=e,[r,i,o]=F(n,s);return t(r,{i18n:i,lng:i.language},o)},e.composeInitialProps=B,e.date=()=>"",e.getDefaults=w,e.getI18n=S,e.getInitialProps=U,e.initReactI18next=P,e.number=()=>"",e.plural=()=>"",e.select=()=>"",e.selectOrdinal=()=>"",e.setDefaults=$,e.setI18n=I,e.time=()=>"",e.useSSR=K,e.useTranslation=F,e.withSSR=function(){return function(e){function t(t){let{initialI18nStore:s,initialLanguage:r,...i}=t;return K(s,r),n.createElement(e,{...i})}return t.getInitialProps=B(e),t.displayName=`withI18nextSSR(${v(e)})`,t.WrappedComponent=e,t}},e.withTranslation=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(s){function r(r){let{forwardedRef:i,...o}=r;const[a,c,l]=F(e,{...o,keyPrefix:t.keyPrefix}),u={...o,t:a,i18n:c,tReady:l};return t.withRef&&i?u.ref=i:!t.withRef&&i&&(u.forwardedRef=i),n.createElement(s,u)}r.displayName=`withI18nextTranslation(${v(s)})`,r.WrappedComponent=s;return t.withRef?n.forwardRef(((e,t)=>n.createElement(r,Object.assign({},e,{forwardedRef:t})))):r}}}));
|
|
@@ -6,11 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.Trans = Trans;
|
|
8
8
|
exports.nodesToString = nodesToString;
|
|
9
|
-
var
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
11
|
var _htmlParseStringify = _interopRequireDefault(require("html-parse-stringify"));
|
|
11
12
|
var _utils = require("./utils.js");
|
|
12
13
|
var _defaults = require("./defaults.js");
|
|
13
14
|
var _i18nInstance = require("./i18nInstance.js");
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
17
|
function hasChildren(node, checkLength) {
|
|
15
18
|
if (!node) return false;
|
|
16
19
|
const base = node.props ? node.props.children : node.children;
|
|
@@ -19,7 +22,8 @@ function hasChildren(node, checkLength) {
|
|
|
19
22
|
}
|
|
20
23
|
function getChildren(node) {
|
|
21
24
|
if (!node) return [];
|
|
22
|
-
|
|
25
|
+
const children = node.props ? node.props.children : node.children;
|
|
26
|
+
return node.props?.i18nIsDynamicList ? getAsArray(children) : children;
|
|
23
27
|
}
|
|
24
28
|
function hasValidReactChildren(children) {
|
|
25
29
|
if (Object.prototype.toString.call(children) !== '[object Array]') return false;
|
|
@@ -82,7 +86,7 @@ function nodesToString(children, i18nOptions) {
|
|
|
82
86
|
function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {
|
|
83
87
|
if (targetString === '') return [];
|
|
84
88
|
const keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];
|
|
85
|
-
const emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString);
|
|
89
|
+
const emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.map(keep => `<${keep}`).join('|')).test(targetString);
|
|
86
90
|
if (!children && !emptyChildrenButNeedsHandling && !shouldUnescape) return [targetString];
|
|
87
91
|
const data = {};
|
|
88
92
|
function getData(childs) {
|
|
@@ -104,11 +108,25 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
|
|
|
104
108
|
return hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;
|
|
105
109
|
}
|
|
106
110
|
function pushTranslatedJSX(child, inner, mem, i, isVoid) {
|
|
107
|
-
if (child.dummy)
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
111
|
+
if (child.dummy) {
|
|
112
|
+
child.children = inner;
|
|
113
|
+
mem.push((0, _react.cloneElement)(child, {
|
|
114
|
+
key: i
|
|
115
|
+
}, isVoid ? undefined : inner));
|
|
116
|
+
} else {
|
|
117
|
+
mem.push(..._react.Children.map([child], c => {
|
|
118
|
+
const props = {
|
|
119
|
+
...c.props
|
|
120
|
+
};
|
|
121
|
+
delete props.i18nIsDynamicList;
|
|
122
|
+
return _react.default.createElement(c.type, (0, _extends2.default)({}, props, {
|
|
123
|
+
key: i,
|
|
124
|
+
ref: c.ref
|
|
125
|
+
}, isVoid ? {} : {
|
|
126
|
+
children: inner
|
|
127
|
+
}));
|
|
128
|
+
}));
|
|
129
|
+
}
|
|
112
130
|
}
|
|
113
131
|
function mapAST(reactNode, astNode, rootReactNode) {
|
|
114
132
|
const reactNodes = getAsArray(reactNode);
|
|
@@ -117,8 +135,8 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
|
|
|
117
135
|
const translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);
|
|
118
136
|
if (node.type === 'tag') {
|
|
119
137
|
let tmp = reactNodes[parseInt(node.name, 10)];
|
|
120
|
-
if (
|
|
121
|
-
|
|
138
|
+
if (rootReactNode.length === 1) tmp ||= rootReactNode[0][node.name];
|
|
139
|
+
tmp ||= {};
|
|
122
140
|
const child = Object.keys(node.attrs).length !== 0 ? mergeProps({
|
|
123
141
|
props: node.attrs
|
|
124
142
|
}, tmp) : tmp;
|
|
@@ -134,10 +152,7 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
|
|
|
134
152
|
pushTranslatedJSX(child, inner, mem, i);
|
|
135
153
|
} else if (isEmptyTransWithHTML) {
|
|
136
154
|
const inner = mapAST(reactNodes, node.children, rootReactNode);
|
|
137
|
-
|
|
138
|
-
...child.props,
|
|
139
|
-
key: i
|
|
140
|
-
}, inner));
|
|
155
|
+
pushTranslatedJSX(child, inner, mem, i);
|
|
141
156
|
} else if (Number.isNaN(parseFloat(node.name))) {
|
|
142
157
|
if (isKnownComponent) {
|
|
143
158
|
const inner = renderInner(child, node, rootReactNode);
|
|
@@ -162,16 +177,8 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
|
|
|
162
177
|
} else if (typeof child === 'object' && !isElement) {
|
|
163
178
|
const content = node.children[0] ? translationContent : null;
|
|
164
179
|
if (content) mem.push(content);
|
|
165
|
-
} else if (node.children.length === 1 && translationContent) {
|
|
166
|
-
mem.push((0, _react.cloneElement)(child, {
|
|
167
|
-
...child.props,
|
|
168
|
-
key: i
|
|
169
|
-
}, translationContent));
|
|
170
180
|
} else {
|
|
171
|
-
|
|
172
|
-
...child.props,
|
|
173
|
-
key: i
|
|
174
|
-
}));
|
|
181
|
+
pushTranslatedJSX(child, translationContent, mem, i, node.children.length !== 1 || !translationContent);
|
|
175
182
|
}
|
|
176
183
|
} else if (node.type === 'text') {
|
|
177
184
|
const wrapTextNodes = i18nOptions.transWrapTextNodes;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React, { isValidElement, cloneElement, createElement, Children } from 'react';
|
|
2
3
|
import HTML from 'html-parse-stringify';
|
|
3
4
|
import { warn, warnOnce } from './utils.js';
|
|
4
5
|
import { getDefaults } from './defaults.js';
|
|
@@ -11,7 +12,8 @@ function hasChildren(node, checkLength) {
|
|
|
11
12
|
}
|
|
12
13
|
function getChildren(node) {
|
|
13
14
|
if (!node) return [];
|
|
14
|
-
|
|
15
|
+
const children = node.props ? node.props.children : node.children;
|
|
16
|
+
return node.props?.i18nIsDynamicList ? getAsArray(children) : children;
|
|
15
17
|
}
|
|
16
18
|
function hasValidReactChildren(children) {
|
|
17
19
|
if (Object.prototype.toString.call(children) !== '[object Array]') return false;
|
|
@@ -74,7 +76,7 @@ export function nodesToString(children, i18nOptions) {
|
|
|
74
76
|
function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {
|
|
75
77
|
if (targetString === '') return [];
|
|
76
78
|
const keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];
|
|
77
|
-
const emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString);
|
|
79
|
+
const emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.map(keep => `<${keep}`).join('|')).test(targetString);
|
|
78
80
|
if (!children && !emptyChildrenButNeedsHandling && !shouldUnescape) return [targetString];
|
|
79
81
|
const data = {};
|
|
80
82
|
function getData(childs) {
|
|
@@ -96,11 +98,25 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
|
|
|
96
98
|
return hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;
|
|
97
99
|
}
|
|
98
100
|
function pushTranslatedJSX(child, inner, mem, i, isVoid) {
|
|
99
|
-
if (child.dummy)
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
if (child.dummy) {
|
|
102
|
+
child.children = inner;
|
|
103
|
+
mem.push(cloneElement(child, {
|
|
104
|
+
key: i
|
|
105
|
+
}, isVoid ? undefined : inner));
|
|
106
|
+
} else {
|
|
107
|
+
mem.push(...Children.map([child], c => {
|
|
108
|
+
const props = {
|
|
109
|
+
...c.props
|
|
110
|
+
};
|
|
111
|
+
delete props.i18nIsDynamicList;
|
|
112
|
+
return React.createElement(c.type, _extends({}, props, {
|
|
113
|
+
key: i,
|
|
114
|
+
ref: c.ref
|
|
115
|
+
}, isVoid ? {} : {
|
|
116
|
+
children: inner
|
|
117
|
+
}));
|
|
118
|
+
}));
|
|
119
|
+
}
|
|
104
120
|
}
|
|
105
121
|
function mapAST(reactNode, astNode, rootReactNode) {
|
|
106
122
|
const reactNodes = getAsArray(reactNode);
|
|
@@ -109,8 +125,8 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
|
|
|
109
125
|
const translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);
|
|
110
126
|
if (node.type === 'tag') {
|
|
111
127
|
let tmp = reactNodes[parseInt(node.name, 10)];
|
|
112
|
-
if (
|
|
113
|
-
|
|
128
|
+
if (rootReactNode.length === 1) tmp ||= rootReactNode[0][node.name];
|
|
129
|
+
tmp ||= {};
|
|
114
130
|
const child = Object.keys(node.attrs).length !== 0 ? mergeProps({
|
|
115
131
|
props: node.attrs
|
|
116
132
|
}, tmp) : tmp;
|
|
@@ -126,10 +142,7 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
|
|
|
126
142
|
pushTranslatedJSX(child, inner, mem, i);
|
|
127
143
|
} else if (isEmptyTransWithHTML) {
|
|
128
144
|
const inner = mapAST(reactNodes, node.children, rootReactNode);
|
|
129
|
-
|
|
130
|
-
...child.props,
|
|
131
|
-
key: i
|
|
132
|
-
}, inner));
|
|
145
|
+
pushTranslatedJSX(child, inner, mem, i);
|
|
133
146
|
} else if (Number.isNaN(parseFloat(node.name))) {
|
|
134
147
|
if (isKnownComponent) {
|
|
135
148
|
const inner = renderInner(child, node, rootReactNode);
|
|
@@ -154,16 +167,8 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, s
|
|
|
154
167
|
} else if (typeof child === 'object' && !isElement) {
|
|
155
168
|
const content = node.children[0] ? translationContent : null;
|
|
156
169
|
if (content) mem.push(content);
|
|
157
|
-
} else if (node.children.length === 1 && translationContent) {
|
|
158
|
-
mem.push(cloneElement(child, {
|
|
159
|
-
...child.props,
|
|
160
|
-
key: i
|
|
161
|
-
}, translationContent));
|
|
162
170
|
} else {
|
|
163
|
-
|
|
164
|
-
...child.props,
|
|
165
|
-
key: i
|
|
166
|
-
}));
|
|
171
|
+
pushTranslatedJSX(child, translationContent, mem, i, node.children.length !== 1 || !translationContent);
|
|
167
172
|
}
|
|
168
173
|
} else if (node.type === 'text') {
|
|
169
174
|
const wrapTextNodes = i18nOptions.transWrapTextNodes;
|
package/dist/es/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"module","version":"13.0
|
|
1
|
+
{"type":"module","version":"13.1.0"}
|