react-i18next 7.10.1 → 7.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ### 7.11.0
2
+
3
+ - Added reportNS function to I18NextProvider to report used namespaces [500](https://github.com/i18next/react-i18next/pull/500)
4
+
1
5
  ### 7.10.1
2
6
 
3
7
  - fix small issue in icu.macro introduced on refactoring
package/README.md CHANGED
@@ -28,7 +28,7 @@ The documentation is published on [react.i18next.com](https://react.i18next.com)
28
28
 
29
29
  **Before:** Your react code would have looked something like:
30
30
 
31
- ```html
31
+ ```jsx
32
32
  ...
33
33
  <div>Just simple content</div>
34
34
  <div>
@@ -39,7 +39,7 @@ The documentation is published on [react.i18next.com](https://react.i18next.com)
39
39
 
40
40
  **After:** With the trans component just change it to:
41
41
 
42
- ```html
42
+ ```jsx
43
43
  ...
44
44
  <div>{t('simpleContent')}</div>
45
45
  <Trans i18nKey="userMessagesUnread" count={count}>
@@ -108,6 +108,16 @@ $ bower install react-i18next
108
108
  - react >= __0.14.0__ (in case of < v16 or preact you will need to define parent in [Trans component](https://react.i18next.com/components/trans-component.html#props) or globally in [i18next.react options](https://react.i18next.com/components/trans-component.html#additional-options-on-i18nextinit))
109
109
  - i18next >= __2.0.0__
110
110
 
111
+ --------------
112
+
113
+ <h3 align="center">Gold Sponsors</h3>
114
+
115
+ <p align="center">
116
+ <a href="https://locize.com/" target="_blank">
117
+ <img src="https://raw.githubusercontent.com/i18next/i18next/master/assets/locize_sponsor_240.gif" width="240px">
118
+ </a>
119
+ </p>
120
+
111
121
  --------------
112
122
  **localization as a service - locize.com**
113
123
 
@@ -618,6 +618,11 @@ function translate(namespaceArg) {
618
618
  var i18nOptions = _this.i18n && _this.i18n.options && _this.i18n.options.react || {};
619
619
  _this.options = _extends({}, getDefaults(), i18nOptions, options);
620
620
 
621
+ if (context.reportNS) {
622
+ var namespaces = Array.isArray(namespaceArg) ? namespaceArg : [namespaceArg];
623
+ namespaces.forEach(context.reportNS);
624
+ }
625
+
621
626
  _this.getWrappedInstance = _this.getWrappedInstance.bind(_this);
622
627
  return _this;
623
628
  }
@@ -671,7 +676,8 @@ function translate(namespaceArg) {
671
676
 
672
677
  Translate.contextTypes = {
673
678
  i18n: PropTypes.object,
674
- defaultNS: PropTypes.string
679
+ defaultNS: PropTypes.string,
680
+ reportNS: PropTypes.func
675
681
  };
676
682
 
677
683
  Translate.displayName = 'Translate(' + getDisplayName(WrappedComponent) + ')';
@@ -1169,6 +1175,7 @@ var I18nextProvider = function (_Component) {
1169
1175
  if (props.initialLanguage) {
1170
1176
  _this.i18n.changeLanguage(props.initialLanguage);
1171
1177
  }
1178
+ _this.reportNS = props.reportNS;
1172
1179
  return _this;
1173
1180
  }
1174
1181
 
@@ -1177,7 +1184,8 @@ var I18nextProvider = function (_Component) {
1177
1184
  value: function getChildContext() {
1178
1185
  return {
1179
1186
  i18n: this.i18n,
1180
- defaultNS: this.defaultNS
1187
+ defaultNS: this.defaultNS,
1188
+ reportNS: this.reportNS
1181
1189
  };
1182
1190
  }
1183
1191
  }, {
@@ -1201,16 +1209,19 @@ var I18nextProvider = function (_Component) {
1201
1209
  I18nextProvider.propTypes = {
1202
1210
  i18n: PropTypes.object.isRequired,
1203
1211
  children: PropTypes.element.isRequired,
1204
- defaultNS: PropTypes.string
1212
+ defaultNS: PropTypes.string,
1213
+ reportNS: PropTypes.func
1205
1214
  };
1206
1215
 
1207
1216
  I18nextProvider.childContextTypes = {
1208
1217
  i18n: PropTypes.object.isRequired,
1209
- defaultNS: PropTypes.string
1218
+ defaultNS: PropTypes.string,
1219
+ reportNS: PropTypes.func
1210
1220
  };
1211
1221
 
1212
1222
  I18nextProvider.defaultProps = {
1213
- defaultNS: undefined
1223
+ defaultNS: undefined,
1224
+ reportNS: undefined
1214
1225
  };
1215
1226
 
1216
1227
  var objectEntries = Object.entries || function (obj) {
@@ -1 +1 @@
1
- define(["exports","react","prop-types"],function(e,n,i){"use strict";var O="default"in n?n.default:n;i=i&&i.hasOwnProperty("default")?i.default:i;var c={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},u={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},l=Object.defineProperty,f=Object.getOwnPropertyNames,h=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,y=Object.getPrototypeOf,v=y&&y(Object);var r=function e(t,n,i){if("string"!=typeof n){if(v){var r=y(n);r&&r!==v&&e(t,r,i)}var o=f(n);h&&(o=o.concat(h(n)));for(var a=0;a<o.length;++a){var s=o[a];if(!(c[s]||u[s]||i&&i[s])){var p=d(n,s);try{l(t,s,p)}catch(e){}}}return t}return t},j="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},p=(function(){function c(e){this.value=e}function e(r){var o,a;function s(e,t){try{var n=r[e](t),i=n.value;i instanceof c?Promise.resolve(i.value).then(function(e){s("next",e)},function(e){s("throw",e)}):p(n.done?"return":"normal",n.value)}catch(e){p("throw",e)}}function p(e,t){switch(e){case"return":o.resolve({value:t,done:!0});break;case"throw":o.reject(t);break;default:o.resolve({value:t,done:!1})}(o=o.next)?s(o.key,o.arg):a=null}this._invoke=function(i,r){return new Promise(function(e,t){var n={key:i,arg:r,resolve:e,reject:t,next:null};a?a=a.next=n:(o=a=n,s(i,r))})},"function"!=typeof r.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(e){return this._invoke("next",e)},e.prototype.throw=function(e){return this._invoke("throw",e)},e.prototype.return=function(e){return this._invoke("return",e)}}(),function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}),m=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}(),w=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},g=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},x=function(e,t){var n={};for(var i in e)0<=t.indexOf(i)||Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i]);return n},b=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},S=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);i=!0);}catch(e){r=!0,o=e}finally{try{!i&&s.return&&s.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},I=Object.prototype.hasOwnProperty;function k(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}var t={wait:!1,withRef:!1,bindI18n:"languageChanged loaded",bindStore:"added removed",translateFuncName:"t",nsMode:"default",usePureComponent:!1,omitBoundRerender:!0},o=void 0;function a(e){t=w({},t,e)}function P(){return t}function s(e){o=e}function T(){return o}var _={type:"3rdParty",init:function(e){a(e.options.react),s(e)}},C=!1,N=function(e){function a(e,t){p(this,a);var n=b(this,(a.__proto__||Object.getPrototypeOf(a)).call(this,e,t));n.i18n=e.i18n||t.i18n||T(),n.namespaces=e.ns||n.i18n.options&&n.i18n.options.defaultNS,"string"==typeof n.namespaces&&(n.namespaces=[n.namespaces]);var i=n.i18n&&n.i18n.options&&n.i18n.options.react||{};n.options=w({},P(),i,e),e.initialI18nStore&&(n.i18n.services.resourceStore.data=e.initialI18nStore,n.options.wait=!1),e.initialLanguage&&n.i18n.changeLanguage(e.initialLanguage),n.i18n.options&&n.i18n.options.isInitialSSR&&(n.options.wait=!1);var r=n.i18n.languages&&n.i18n.languages[0],o=!!r&&n.namespaces.every(function(e){return n.i18n.hasResourceBundle(r,e)});return n.state={i18nLoadedAt:null,ready:o},n.t=n.getI18nTranslate(),n.onI18nChanged=n.onI18nChanged.bind(n),n.getI18nTranslate=n.getI18nTranslate.bind(n),n}return g(a,e),m(a,[{key:"getChildContext",value:function(){return{t:this.t,i18n:this.i18n}}},{key:"componentDidMount",value:function(){var n=this,e=function(){n.options.bindI18n&&n.i18n&&n.i18n.on(n.options.bindI18n,n.onI18nChanged),n.options.bindStore&&n.i18n.store&&n.i18n.store.on(n.options.bindStore,n.onI18nChanged)};this.mounted=!0,this.i18n.loadNamespaces(this.namespaces,function(){var t=function(){n.mounted&&!n.state.ready&&n.setState({ready:!0}),n.options.wait&&n.mounted&&e()};if(n.i18n.isInitialized)t();else{n.i18n.on("initialized",function e(){setTimeout(function(){n.i18n.off("initialized",e)},1e3),t()})}}),this.options.wait||e()}},{key:"componentWillUnmount",value:function(){var t=this;if(this.mounted=!1,this.onI18nChanged){if(this.options.bindI18n)this.options.bindI18n.split(" ").forEach(function(e){return t.i18n.off(e,t.onI18nChanged)});if(this.options.bindStore)this.options.bindStore.split(" ").forEach(function(e){return t.i18n.store&&t.i18n.store.off(e,t.onI18nChanged)})}}},{key:"onI18nChanged",value:function(){this.mounted&&(!this.state.ready&&this.options.omitBoundRerender||(this.t=this.getI18nTranslate(),this.setState({i18nLoadedAt:new Date})))}},{key:"getI18nTranslate",value:function(){return this.i18n.getFixedT(null,"fallback"===this.options.nsMode?this.namespaces:this.namespaces[0])}},{key:"render",value:function(){var e=this,t=this.props.children,n=this.state.ready;return!n&&this.options.wait?null:(this.i18n.options&&this.i18n.options.isInitialSSR&&!C&&(C=!0,setTimeout(function(){delete e.i18n.options.isInitialSSR},100)),t(this.t,{i18n:this.i18n,t:this.t,ready:n}))}}]),a}(n.Component);function E(o){var s=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return function(a){var e,t=function(e){function r(e,t){p(this,r);var n=b(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,t));n.i18n=e.i18n||s.i18n||t.i18n||T(),n.namespaces="function"==typeof o?o(e):o||t.defaultNS||n.i18n.options&&n.i18n.options.defaultNS,"string"==typeof n.namespaces&&(n.namespaces=[n.namespaces]);var i=n.i18n&&n.i18n.options&&n.i18n.options.react||{};return n.options=w({},P(),i,s),n.getWrappedInstance=n.getWrappedInstance.bind(n),n}return g(r,e),m(r,[{key:"shouldComponentUpdate",value:function(e){return!this.options.usePureComponent||!function(e,t){if(k(e,t))return!0;if("object"!==(void 0===e?"undefined":j(e))||null===e||"object"!==(void 0===t?"undefined":j(t))||null===t)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(var r=0;r<n.length;r++)if(!I.call(t,n[r])||!k(e[n[r]],t[n[r]]))return!1;return!0}(this.props,e)}},{key:"getWrappedInstance",value:function(){return this.options.withRef||console.error("To access the wrapped instance, you need to specify { withRef: true } as the second argument of the translate() call."),this.wrappedInstance}},{key:"render",value:function(){var r=this,o={};return this.options.withRef&&(o.ref=function(e){r.wrappedInstance=e}),O.createElement(N,w({ns:this.namespaces},this.options,this.props,{i18n:this.i18n}),function(e,t){var n=t.ready,i=x(t,["ready"]);return O.createElement(a,w({tReady:n},r.props,o,i))})}}]),r}(n.Component);return t.WrappedComponent=a,t.contextTypes={i18n:i.object,defaultNS:i.string},t.displayName="Translate("+((e=a).displayName||e.name||"Component")+")",t.namespaces=o,r(t,a)}}N.contextTypes={i18n:i.object},N.childContextTypes={t:i.func.isRequired,i18n:i.object},E.setDefaults=a,E.setI18n=s;var R=function(e){function i(e,t){p(this,i);var n=b(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,e,t));return n.i18n=e.i18n||t.i18n,n.t=e.t||t.t,n}return g(i,e),m(i,[{key:"render",value:function(){var o=this,e=this.props.parent||"span",t=this.props.regexp||this.i18n.services.interpolator.regexp,n=this.props,i=n.className,r=n.style,a=this.props.useDangerouslySetInnerHTML||!1,s=this.props.dangerouslySetInnerHTMLPartElement||"span",p=w({},this.props.options,{interpolation:{prefix:"#$?",suffix:"?$#"}}),c=this.t(this.props.i18nKey,p);if(!c||"string"!=typeof c)return O.createElement("noscript",null);var u=[];c.split(t).reduce(function(e,t,n){var i=void 0;if(n%2==0){if(0===t.length)return e;i=a?O.createElement(s,{dangerouslySetInnerHTML:{__html:t}}):t}else i=function(e,t){if(e.indexOf(o.i18n.options.interpolation.formatSeparator)<0)return void 0===t[e]&&o.i18n.services.logger.warn("interpolator: missed to pass in variable "+e+" for interpolating "+c),t[e];var n=e.split(o.i18n.options.interpolation.formatSeparator),i=n.shift().trim(),r=n.join(o.i18n.options.interpolation.formatSeparator).trim();return void 0===t[i]&&o.i18n.services.logger.warn("interpolator: missed to pass in variable "+i+" for interpolating "+c),o.i18n.options.interpolation.format(t[i],r,o.i18n.language)}(t,o.props);return e.push(i),e},u);var l={};if(this.i18n.options.react&&this.i18n.options.react.exposeNamespace){var f="string"==typeof this.t.ns?this.t.ns:this.t.ns[0];if(this.props.i18nKey&&this.i18n.options.nsSeparator&&-1<this.props.i18nKey.indexOf(this.i18n.options.nsSeparator))f=this.props.i18nKey.split(this.i18n.options.nsSeparator)[0];this.t.ns&&(l["data-i18next-options"]=JSON.stringify({ns:f}))}return i&&(l.className=i),r&&(l.style=r),O.createElement.apply(this,[e,l].concat(u))}}]),i}(n.Component);R.propTypes={className:i.string},R.defaultProps={className:""},R.contextTypes={i18n:i.object.isRequired,t:i.func.isRequired};var A={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,menuitem:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},L=/([\w-]+)|=|(['"])([.\s\S]*?)\2/g,D=/(?:<!--[\S\s]*?-->|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g,W=Object.create?Object.create(null):{};function K(e,t,n,i,r){var o=t.indexOf("<",i),a=t.slice(i,-1===o?void 0:o);/^\s*$/.test(a)&&(a=" "),(!r&&-1<o&&0<=n+e.length||" "!==a)&&e.push({type:"text",content:a})}var M=function(f,h){h||(h={}),h.components||(h.components=W);var d,y=[],v=-1,m=[],g=!1;return f.replace(D,function(e,t){if(g){if(e!=="</"+d.name+">")return;g=!1}var n,i,r,o,a,s,p="/"!==e.charAt(1),c=0===e.indexOf("\x3c!--"),u=t+e.length,l=f.charAt(u);p&&!c&&(v++,s={type:"tag",name:"",voidElement:!(a=!(o=0)),attrs:{},children:[]},(i=e).replace(L,function(e){if("="===e)return a=!0,void o++;a?0===o?((A[e]||"/"===i.charAt(i.length-2))&&(s.voidElement=!0),s.name=e):(s.attrs[r]=e.replace(/^['"]|['"]$/g,""),r=void 0):(r&&(s.attrs[r]=r),r=e),o++,a=!1}),"tag"===(d=s).type&&h.components[d.name]&&(d.type="component",g=!0),d.voidElement||g||!l||"<"===l||K(d.children,f,v,u,h.ignoreWhitespace),0===v&&y.push(d),(n=m[v-1])&&n.children.push(d),m[v]=d),(c||!p||d.voidElement)&&(c||v--,!g&&"<"!==l&&l&&K(n=-1===v?y:m[v].children,f,v,u,h.ignoreWhitespace))}),!y.length&&f.length&&K(y,f,0,0,h.ignoreWhitespace),y};function q(e){return e&&(e.children||e.props&&e.props.children)}function $(e){return e&&e.children?e.children:e.props&&e.props.children}function z(e,t,c){if(""===t)return[];if(!e)return[t];return $(function s(p,e){return"[object Array]"!==Object.prototype.toString.call(p)&&(p=[p]),"[object Array]"!==Object.prototype.toString.call(e)&&(e=[e]),e.reduce(function(e,t,n){if("tag"===t.type){var i=p[parseInt(t.name,10)]||{},r=O.isValidElement(i);if("string"==typeof i)e.push(i);else if(q(i)){var o=s($(i),t.children);i.dummy&&(i.children=o),e.push(O.cloneElement(i,w({},i.props,{key:n}),o))}else if("object"!==(void 0===i?"undefined":j(i))||r)e.push(i);else if(t.children[0]&&t.children[0].content){var a=c.services.interpolator.interpolate(t.children[0].content,i,c.language);e.push(a)}}else"text"===t.type&&e.push(t.content);return e},[])}([{dummy:!0,children:e}],M("<0>"+t+"</0>"))[0])}var B=function(e){function t(){return p(this,t),b(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return g(t,e),m(t,[{key:"render",value:function(){var e=w({i18n:this.context.i18n,t:this.context.t},this.props),t=e.children,n=e.count,i=e.parent,r=e.i18nKey,o=e.tOptions,a=e.values,s=e.defaults,p=e.components,c=e.ns,u=e.i18n,l=e.t,f=x(e,["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"]),h=l||u.t.bind(u),d=u.options&&u.options.react||{},y=void 0!==i?i:d.defaultTransParent,v=s||function a(s,e,t){return e?("[object Array]"!==Object.prototype.toString.call(e)&&(e=[e]),e.forEach(function(e,t){var n=""+t;if("string"==typeof e)s=""+s+e;else if(q(e))s=s+"<"+n+">"+a("",$(e),t+1)+"</"+n+">";else if(O.isValidElement(e))s=s+"<"+n+"></"+n+">";else if("object"===(void 0===e?"undefined":j(e))){var i=w({},e),r=i.format;delete i.format;var o=Object.keys(i);r&&1===o.length?s=s+"<"+n+">{{"+o[0]+", "+r+"}}</"+n+">":1===o.length?s=s+"<"+n+">{{"+o[0]+"}}</"+n+">":console&&console.warn&&console.warn("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",e)}else console&&console.warn&&console.warn("react-i18next: 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):""}("",t),m=d.hashTransKey,g=r||(m?m(v):v),b=g?h(g,w({},o,a,a?{}:{interpolation:{prefix:"#$?",suffix:"?$#"}},{defaultValue:v,count:n,ns:c})):v;if(d.exposeNamespace){var S="string"==typeof h.ns?h.ns:h.ns[0];if(r&&u.options&&u.options.nsSeparator&&-1<r.indexOf(u.options.nsSeparator))S=r.split(u.options.nsSeparator)[0];h.ns&&(f["data-i18next-options"]=JSON.stringify({ns:S}))}return y?O.createElement(y,f,z(p||t,b,u)):z(p||t,b,u)}}]),t}(O.Component);B.propTypes={count:i.number,parent:i.oneOfType([i.node,i.func]),i18nKey:i.string,i18n:i.object,t:i.func},B.contextTypes={i18n:i.object,t:i.func};var F=function(e){function i(e,t){p(this,i);var n=b(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,e,t));return n.i18n=e.i18n,n.defaultNS=e.defaultNS,e.initialI18nStore&&(n.i18n.services.resourceStore.data=e.initialI18nStore,n.i18n.options.isInitialSSR=!0),e.initialLanguage&&n.i18n.changeLanguage(e.initialLanguage),n}return g(i,e),m(i,[{key:"getChildContext",value:function(){return{i18n:this.i18n,defaultNS:this.defaultNS}}},{key:"componentWillReceiveProps",value:function(e){if(this.props.i18n!==e.i18n)throw new Error("[react-i18next][I18nextProvider]does not support changing the i18n object.")}},{key:"render",value:function(){var e=this.props.children;return n.Children.only(e)}}]),i}(n.Component);F.propTypes={i18n:i.object.isRequired,children:i.element.isRequired,defaultNS:i.string},F.childContextTypes={i18n:i.object.isRequired,defaultNS:i.string},F.defaultProps={defaultNS:void 0};var H=Object.entries||function(e){for(var t=Object.keys(e),n=t.length,i=new Array(n);n--;)i[n]=[t[n],e[t[n]]];return i};function V(e){var t=[];return function(e,t){for(var n=0,i=e.length;n<i;n++)if("object"===j(e[n])){var r=!0,o=!1,a=void 0;try{for(var s,p=H(e[n])[Symbol.iterator]();!(r=(s=p.next()).done);r=!0){var c=S(s.value,2),u=c[0];t(c[1],n,u)}}catch(e){o=!0,a=e}finally{try{!r&&p.return&&p.return()}finally{if(o)throw a}}}else t(e[n],n)}(e,function(e){e&&e.namespaces&&e.namespaces.forEach(function(e){-1===t.indexOf(e)&&t.push(e)})}),t}e.translate=E,e.I18n=N,e.Interpolate=R,e.Trans=B,e.I18nextProvider=F,e.loadNamespaces=function(e){var t=e.components,n=e.i18n,i=V(t);return new Promise(function(e){n.loadNamespaces(i,e)})},e.reactI18nextModule=_,e.setDefaults=a,e.getDefaults=P,e.setI18n=s,e.getI18n=T,Object.defineProperty(e,"__esModule",{value:!0})});
1
+ define(["exports","react","prop-types"],function(t,n,r){"use strict";var O="default"in n?n.default:n;r=r&&r.hasOwnProperty("default")?r.default:r;var c={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},u={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},l=Object.defineProperty,f=Object.getOwnPropertyNames,h=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,y=Object.getPrototypeOf,v=y&&y(Object);var i=function t(e,n,r){if("string"!=typeof n){if(v){var i=y(n);i&&i!==v&&t(e,i,r)}var o=f(n);h&&(o=o.concat(h(n)));for(var a=0;a<o.length;++a){var s=o[a];if(!(c[s]||u[s]||r&&r[s])){var p=d(n,s);try{l(e,s,p)}catch(t){}}}return e}return e},j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},p=(function(){function c(t){this.value=t}function t(i){var o,a;function s(t,e){try{var n=i[t](e),r=n.value;r instanceof c?Promise.resolve(r.value).then(function(t){s("next",t)},function(t){s("throw",t)}):p(n.done?"return":"normal",n.value)}catch(t){p("throw",t)}}function p(t,e){switch(t){case"return":o.resolve({value:e,done:!0});break;case"throw":o.reject(e);break;default:o.resolve({value:e,done:!1})}(o=o.next)?s(o.key,o.arg):a=null}this._invoke=function(r,i){return new Promise(function(t,e){var n={key:r,arg:i,resolve:t,reject:e,next:null};a?a=a.next=n:(o=a=n,s(r,i))})},"function"!=typeof i.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(t.prototype[Symbol.asyncIterator]=function(){return this}),t.prototype.next=function(t){return this._invoke("next",t)},t.prototype.throw=function(t){return this._invoke("throw",t)},t.prototype.return=function(t){return this._invoke("return",t)}}(),function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}),m=function(){function r(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),t}}(),w=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},g=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)},x=function(t,e){var n={};for(var r in t)0<=e.indexOf(r)||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n},b=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},S=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){i=!0,o=t}finally{try{!r&&s.return&&s.return()}finally{if(i)throw o}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")},I=Object.prototype.hasOwnProperty;function N(t,e){return t===e?0!==t||0!==e||1/t==1/e:t!=t&&e!=e}var e={wait:!1,withRef:!1,bindI18n:"languageChanged loaded",bindStore:"added removed",translateFuncName:"t",nsMode:"default",usePureComponent:!1,omitBoundRerender:!0},o=void 0;function a(t){e=w({},e,t)}function k(){return e}function s(t){o=t}function P(){return o}var T={type:"3rdParty",init:function(t){a(t.options.react),s(t)}},_=!1,C=function(t){function a(t,e){p(this,a);var n=b(this,(a.__proto__||Object.getPrototypeOf(a)).call(this,t,e));n.i18n=t.i18n||e.i18n||P(),n.namespaces=t.ns||n.i18n.options&&n.i18n.options.defaultNS,"string"==typeof n.namespaces&&(n.namespaces=[n.namespaces]);var r=n.i18n&&n.i18n.options&&n.i18n.options.react||{};n.options=w({},k(),r,t),t.initialI18nStore&&(n.i18n.services.resourceStore.data=t.initialI18nStore,n.options.wait=!1),t.initialLanguage&&n.i18n.changeLanguage(t.initialLanguage),n.i18n.options&&n.i18n.options.isInitialSSR&&(n.options.wait=!1);var i=n.i18n.languages&&n.i18n.languages[0],o=!!i&&n.namespaces.every(function(t){return n.i18n.hasResourceBundle(i,t)});return n.state={i18nLoadedAt:null,ready:o},n.t=n.getI18nTranslate(),n.onI18nChanged=n.onI18nChanged.bind(n),n.getI18nTranslate=n.getI18nTranslate.bind(n),n}return g(a,t),m(a,[{key:"getChildContext",value:function(){return{t:this.t,i18n:this.i18n}}},{key:"componentDidMount",value:function(){var n=this,t=function(){n.options.bindI18n&&n.i18n&&n.i18n.on(n.options.bindI18n,n.onI18nChanged),n.options.bindStore&&n.i18n.store&&n.i18n.store.on(n.options.bindStore,n.onI18nChanged)};this.mounted=!0,this.i18n.loadNamespaces(this.namespaces,function(){var e=function(){n.mounted&&!n.state.ready&&n.setState({ready:!0}),n.options.wait&&n.mounted&&t()};if(n.i18n.isInitialized)e();else{n.i18n.on("initialized",function t(){setTimeout(function(){n.i18n.off("initialized",t)},1e3),e()})}}),this.options.wait||t()}},{key:"componentWillUnmount",value:function(){var e=this;if(this.mounted=!1,this.onI18nChanged){if(this.options.bindI18n)this.options.bindI18n.split(" ").forEach(function(t){return e.i18n.off(t,e.onI18nChanged)});if(this.options.bindStore)this.options.bindStore.split(" ").forEach(function(t){return e.i18n.store&&e.i18n.store.off(t,e.onI18nChanged)})}}},{key:"onI18nChanged",value:function(){this.mounted&&(!this.state.ready&&this.options.omitBoundRerender||(this.t=this.getI18nTranslate(),this.setState({i18nLoadedAt:new Date})))}},{key:"getI18nTranslate",value:function(){return this.i18n.getFixedT(null,"fallback"===this.options.nsMode?this.namespaces:this.namespaces[0])}},{key:"render",value:function(){var t=this,e=this.props.children,n=this.state.ready;return!n&&this.options.wait?null:(this.i18n.options&&this.i18n.options.isInitialSSR&&!_&&(_=!0,setTimeout(function(){delete t.i18n.options.isInitialSSR},100)),e(this.t,{i18n:this.i18n,t:this.t,ready:n}))}}]),a}(n.Component);function E(o){var s=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return function(a){var t,e=function(t){function i(t,e){p(this,i);var n=b(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,t,e));n.i18n=t.i18n||s.i18n||e.i18n||P(),n.namespaces="function"==typeof o?o(t):o||e.defaultNS||n.i18n.options&&n.i18n.options.defaultNS,"string"==typeof n.namespaces&&(n.namespaces=[n.namespaces]);var r=n.i18n&&n.i18n.options&&n.i18n.options.react||{};(n.options=w({},k(),r,s),e.reportNS)&&(Array.isArray(o)?o:[o]).forEach(e.reportNS);return n.getWrappedInstance=n.getWrappedInstance.bind(n),n}return g(i,t),m(i,[{key:"shouldComponentUpdate",value:function(t){return!this.options.usePureComponent||!function(t,e){if(N(t,e))return!0;if("object"!==(void 0===t?"undefined":j(t))||null===t||"object"!==(void 0===e?"undefined":j(e))||null===e)return!1;var n=Object.keys(t),r=Object.keys(e);if(n.length!==r.length)return!1;for(var i=0;i<n.length;i++)if(!I.call(e,n[i])||!N(t[n[i]],e[n[i]]))return!1;return!0}(this.props,t)}},{key:"getWrappedInstance",value:function(){return this.options.withRef||console.error("To access the wrapped instance, you need to specify { withRef: true } as the second argument of the translate() call."),this.wrappedInstance}},{key:"render",value:function(){var i=this,o={};return this.options.withRef&&(o.ref=function(t){i.wrappedInstance=t}),O.createElement(C,w({ns:this.namespaces},this.options,this.props,{i18n:this.i18n}),function(t,e){var n=e.ready,r=x(e,["ready"]);return O.createElement(a,w({tReady:n},i.props,o,r))})}}]),i}(n.Component);return e.WrappedComponent=a,e.contextTypes={i18n:r.object,defaultNS:r.string,reportNS:r.func},e.displayName="Translate("+((t=a).displayName||t.name||"Component")+")",e.namespaces=o,i(e,a)}}C.contextTypes={i18n:r.object},C.childContextTypes={t:r.func.isRequired,i18n:r.object},E.setDefaults=a,E.setI18n=s;var R=function(t){function r(t,e){p(this,r);var n=b(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,t,e));return n.i18n=t.i18n||e.i18n,n.t=t.t||e.t,n}return g(r,t),m(r,[{key:"render",value:function(){var o=this,t=this.props.parent||"span",e=this.props.regexp||this.i18n.services.interpolator.regexp,n=this.props,r=n.className,i=n.style,a=this.props.useDangerouslySetInnerHTML||!1,s=this.props.dangerouslySetInnerHTMLPartElement||"span",p=w({},this.props.options,{interpolation:{prefix:"#$?",suffix:"?$#"}}),c=this.t(this.props.i18nKey,p);if(!c||"string"!=typeof c)return O.createElement("noscript",null);var u=[];c.split(e).reduce(function(t,e,n){var r=void 0;if(n%2==0){if(0===e.length)return t;r=a?O.createElement(s,{dangerouslySetInnerHTML:{__html:e}}):e}else r=function(t,e){if(t.indexOf(o.i18n.options.interpolation.formatSeparator)<0)return void 0===e[t]&&o.i18n.services.logger.warn("interpolator: missed to pass in variable "+t+" for interpolating "+c),e[t];var n=t.split(o.i18n.options.interpolation.formatSeparator),r=n.shift().trim(),i=n.join(o.i18n.options.interpolation.formatSeparator).trim();return void 0===e[r]&&o.i18n.services.logger.warn("interpolator: missed to pass in variable "+r+" for interpolating "+c),o.i18n.options.interpolation.format(e[r],i,o.i18n.language)}(e,o.props);return t.push(r),t},u);var l={};if(this.i18n.options.react&&this.i18n.options.react.exposeNamespace){var f="string"==typeof this.t.ns?this.t.ns:this.t.ns[0];if(this.props.i18nKey&&this.i18n.options.nsSeparator&&-1<this.props.i18nKey.indexOf(this.i18n.options.nsSeparator))f=this.props.i18nKey.split(this.i18n.options.nsSeparator)[0];this.t.ns&&(l["data-i18next-options"]=JSON.stringify({ns:f}))}return r&&(l.className=r),i&&(l.style=i),O.createElement.apply(this,[t,l].concat(u))}}]),r}(n.Component);R.propTypes={className:r.string},R.defaultProps={className:""},R.contextTypes={i18n:r.object.isRequired,t:r.func.isRequired};var A={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,menuitem:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},L=/([\w-]+)|=|(['"])([.\s\S]*?)\2/g,D=/(?:<!--[\S\s]*?-->|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g,W=Object.create?Object.create(null):{};function K(t,e,n,r,i){var o=e.indexOf("<",r),a=e.slice(r,-1===o?void 0:o);/^\s*$/.test(a)&&(a=" "),(!i&&-1<o&&0<=n+t.length||" "!==a)&&t.push({type:"text",content:a})}var M=function(f,h){h||(h={}),h.components||(h.components=W);var d,y=[],v=-1,m=[],g=!1;return f.replace(D,function(t,e){if(g){if(t!=="</"+d.name+">")return;g=!1}var n,r,i,o,a,s,p="/"!==t.charAt(1),c=0===t.indexOf("\x3c!--"),u=e+t.length,l=f.charAt(u);p&&!c&&(v++,s={type:"tag",name:"",voidElement:!(a=!(o=0)),attrs:{},children:[]},(r=t).replace(L,function(t){if("="===t)return a=!0,void o++;a?0===o?((A[t]||"/"===r.charAt(r.length-2))&&(s.voidElement=!0),s.name=t):(s.attrs[i]=t.replace(/^['"]|['"]$/g,""),i=void 0):(i&&(s.attrs[i]=i),i=t),o++,a=!1}),"tag"===(d=s).type&&h.components[d.name]&&(d.type="component",g=!0),d.voidElement||g||!l||"<"===l||K(d.children,f,v,u,h.ignoreWhitespace),0===v&&y.push(d),(n=m[v-1])&&n.children.push(d),m[v]=d),(c||!p||d.voidElement)&&(c||v--,!g&&"<"!==l&&l&&K(n=-1===v?y:m[v].children,f,v,u,h.ignoreWhitespace))}),!y.length&&f.length&&K(y,f,0,0,h.ignoreWhitespace),y};function q(t){return t&&(t.children||t.props&&t.props.children)}function $(t){return t&&t.children?t.children:t.props&&t.props.children}function z(t,e,c){if(""===e)return[];if(!t)return[e];return $(function s(p,t){return"[object Array]"!==Object.prototype.toString.call(p)&&(p=[p]),"[object Array]"!==Object.prototype.toString.call(t)&&(t=[t]),t.reduce(function(t,e,n){if("tag"===e.type){var r=p[parseInt(e.name,10)]||{},i=O.isValidElement(r);if("string"==typeof r)t.push(r);else if(q(r)){var o=s($(r),e.children);r.dummy&&(r.children=o),t.push(O.cloneElement(r,w({},r.props,{key:n}),o))}else if("object"!==(void 0===r?"undefined":j(r))||i)t.push(r);else if(e.children[0]&&e.children[0].content){var a=c.services.interpolator.interpolate(e.children[0].content,r,c.language);t.push(a)}}else"text"===e.type&&t.push(e.content);return t},[])}([{dummy:!0,children:t}],M("<0>"+e+"</0>"))[0])}var B=function(t){function e(){return p(this,e),b(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return g(e,t),m(e,[{key:"render",value:function(){var t=w({i18n:this.context.i18n,t:this.context.t},this.props),e=t.children,n=t.count,r=t.parent,i=t.i18nKey,o=t.tOptions,a=t.values,s=t.defaults,p=t.components,c=t.ns,u=t.i18n,l=t.t,f=x(t,["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"]),h=l||u.t.bind(u),d=u.options&&u.options.react||{},y=void 0!==r?r:d.defaultTransParent,v=s||function a(s,t,e){return t?("[object Array]"!==Object.prototype.toString.call(t)&&(t=[t]),t.forEach(function(t,e){var n=""+e;if("string"==typeof t)s=""+s+t;else if(q(t))s=s+"<"+n+">"+a("",$(t),e+1)+"</"+n+">";else if(O.isValidElement(t))s=s+"<"+n+"></"+n+">";else if("object"===(void 0===t?"undefined":j(t))){var r=w({},t),i=r.format;delete r.format;var o=Object.keys(r);i&&1===o.length?s=s+"<"+n+">{{"+o[0]+", "+i+"}}</"+n+">":1===o.length?s=s+"<"+n+">{{"+o[0]+"}}</"+n+">":console&&console.warn&&console.warn("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",t)}else console&&console.warn&&console.warn("react-i18next: 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}}.",t)}),s):""}("",e),m=d.hashTransKey,g=i||(m?m(v):v),b=g?h(g,w({},o,a,a?{}:{interpolation:{prefix:"#$?",suffix:"?$#"}},{defaultValue:v,count:n,ns:c})):v;if(d.exposeNamespace){var S="string"==typeof h.ns?h.ns:h.ns[0];if(i&&u.options&&u.options.nsSeparator&&-1<i.indexOf(u.options.nsSeparator))S=i.split(u.options.nsSeparator)[0];h.ns&&(f["data-i18next-options"]=JSON.stringify({ns:S}))}return y?O.createElement(y,f,z(p||e,b,u)):z(p||e,b,u)}}]),e}(O.Component);B.propTypes={count:r.number,parent:r.oneOfType([r.node,r.func]),i18nKey:r.string,i18n:r.object,t:r.func},B.contextTypes={i18n:r.object,t:r.func};var F=function(t){function r(t,e){p(this,r);var n=b(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,t,e));return n.i18n=t.i18n,n.defaultNS=t.defaultNS,t.initialI18nStore&&(n.i18n.services.resourceStore.data=t.initialI18nStore,n.i18n.options.isInitialSSR=!0),t.initialLanguage&&n.i18n.changeLanguage(t.initialLanguage),n.reportNS=t.reportNS,n}return g(r,t),m(r,[{key:"getChildContext",value:function(){return{i18n:this.i18n,defaultNS:this.defaultNS,reportNS:this.reportNS}}},{key:"componentWillReceiveProps",value:function(t){if(this.props.i18n!==t.i18n)throw new Error("[react-i18next][I18nextProvider]does not support changing the i18n object.")}},{key:"render",value:function(){var t=this.props.children;return n.Children.only(t)}}]),r}(n.Component);F.propTypes={i18n:r.object.isRequired,children:r.element.isRequired,defaultNS:r.string,reportNS:r.func},F.childContextTypes={i18n:r.object.isRequired,defaultNS:r.string,reportNS:r.func},F.defaultProps={defaultNS:void 0,reportNS:void 0};var H=Object.entries||function(t){for(var e=Object.keys(t),n=e.length,r=new Array(n);n--;)r[n]=[e[n],t[e[n]]];return r};function V(t){var e=[];return function(t,e){for(var n=0,r=t.length;n<r;n++)if("object"===j(t[n])){var i=!0,o=!1,a=void 0;try{for(var s,p=H(t[n])[Symbol.iterator]();!(i=(s=p.next()).done);i=!0){var c=S(s.value,2),u=c[0];e(c[1],n,u)}}catch(t){o=!0,a=t}finally{try{!i&&p.return&&p.return()}finally{if(o)throw a}}}else e(t[n],n)}(t,function(t){t&&t.namespaces&&t.namespaces.forEach(function(t){-1===e.indexOf(t)&&e.push(t)})}),e}t.translate=E,t.I18n=C,t.Interpolate=R,t.Trans=B,t.I18nextProvider=F,t.loadNamespaces=function(t){var e=t.components,n=t.i18n,r=V(e);return new Promise(function(t){n.loadNamespaces(r,t)})},t.reactI18nextModule=T,t.setDefaults=a,t.getDefaults=k,t.setI18n=s,t.getI18n=P,Object.defineProperty(t,"__esModule",{value:!0})});
@@ -37,6 +37,7 @@ var I18nextProvider = function (_Component) {
37
37
  if (props.initialLanguage) {
38
38
  _this.i18n.changeLanguage(props.initialLanguage);
39
39
  }
40
+ _this.reportNS = props.reportNS;
40
41
  return _this;
41
42
  }
42
43
 
@@ -45,7 +46,8 @@ var I18nextProvider = function (_Component) {
45
46
  value: function getChildContext() {
46
47
  return {
47
48
  i18n: this.i18n,
48
- defaultNS: this.defaultNS
49
+ defaultNS: this.defaultNS,
50
+ reportNS: this.reportNS
49
51
  };
50
52
  }
51
53
  }, {
@@ -70,16 +72,19 @@ var I18nextProvider = function (_Component) {
70
72
  I18nextProvider.propTypes = {
71
73
  i18n: _propTypes2.default.object.isRequired,
72
74
  children: _propTypes2.default.element.isRequired,
73
- defaultNS: _propTypes2.default.string
75
+ defaultNS: _propTypes2.default.string,
76
+ reportNS: _propTypes2.default.func
74
77
  };
75
78
 
76
79
  I18nextProvider.childContextTypes = {
77
80
  i18n: _propTypes2.default.object.isRequired,
78
- defaultNS: _propTypes2.default.string
81
+ defaultNS: _propTypes2.default.string,
82
+ reportNS: _propTypes2.default.func
79
83
  };
80
84
 
81
85
  I18nextProvider.defaultProps = {
82
- defaultNS: undefined
86
+ defaultNS: undefined,
87
+ reportNS: undefined
83
88
  };
84
89
 
85
90
  exports.default = I18nextProvider;
@@ -66,6 +66,11 @@ function translate(namespaceArg) {
66
66
  var i18nOptions = _this.i18n && _this.i18n.options && _this.i18n.options.react || {};
67
67
  _this.options = _extends({}, (0, _context.getDefaults)(), i18nOptions, options);
68
68
 
69
+ if (context.reportNS) {
70
+ var namespaces = Array.isArray(namespaceArg) ? namespaceArg : [namespaceArg];
71
+ namespaces.forEach(context.reportNS);
72
+ }
73
+
69
74
  _this.getWrappedInstance = _this.getWrappedInstance.bind(_this);
70
75
  return _this;
71
76
  }
@@ -121,7 +126,8 @@ function translate(namespaceArg) {
121
126
 
122
127
  Translate.contextTypes = {
123
128
  i18n: _propTypes2.default.object,
124
- defaultNS: _propTypes2.default.string
129
+ defaultNS: _propTypes2.default.string,
130
+ reportNS: _propTypes2.default.func
125
131
  };
126
132
 
127
133
  Translate.displayName = 'Translate(' + getDisplayName(WrappedComponent) + ')';
@@ -26,6 +26,7 @@ var I18nextProvider = function (_Component) {
26
26
  if (props.initialLanguage) {
27
27
  _this.i18n.changeLanguage(props.initialLanguage);
28
28
  }
29
+ _this.reportNS = props.reportNS;
29
30
  return _this;
30
31
  }
31
32
 
@@ -34,7 +35,8 @@ var I18nextProvider = function (_Component) {
34
35
  value: function getChildContext() {
35
36
  return {
36
37
  i18n: this.i18n,
37
- defaultNS: this.defaultNS
38
+ defaultNS: this.defaultNS,
39
+ reportNS: this.reportNS
38
40
  };
39
41
  }
40
42
  }, {
@@ -59,16 +61,19 @@ var I18nextProvider = function (_Component) {
59
61
  I18nextProvider.propTypes = {
60
62
  i18n: PropTypes.object.isRequired,
61
63
  children: PropTypes.element.isRequired,
62
- defaultNS: PropTypes.string
64
+ defaultNS: PropTypes.string,
65
+ reportNS: PropTypes.func
63
66
  };
64
67
 
65
68
  I18nextProvider.childContextTypes = {
66
69
  i18n: PropTypes.object.isRequired,
67
- defaultNS: PropTypes.string
70
+ defaultNS: PropTypes.string,
71
+ reportNS: PropTypes.func
68
72
  };
69
73
 
70
74
  I18nextProvider.defaultProps = {
71
- defaultNS: undefined
75
+ defaultNS: undefined,
76
+ reportNS: undefined
72
77
  };
73
78
 
74
79
  export default I18nextProvider;
@@ -41,6 +41,11 @@ export default function translate(namespaceArg) {
41
41
  var i18nOptions = _this.i18n && _this.i18n.options && _this.i18n.options.react || {};
42
42
  _this.options = _extends({}, getDefaults(), i18nOptions, options);
43
43
 
44
+ if (context.reportNS) {
45
+ var namespaces = Array.isArray(namespaceArg) ? namespaceArg : [namespaceArg];
46
+ namespaces.forEach(context.reportNS);
47
+ }
48
+
44
49
  _this.getWrappedInstance = _this.getWrappedInstance.bind(_this);
45
50
  return _this;
46
51
  }
@@ -96,7 +101,8 @@ export default function translate(namespaceArg) {
96
101
 
97
102
  Translate.contextTypes = {
98
103
  i18n: PropTypes.object,
99
- defaultNS: PropTypes.string
104
+ defaultNS: PropTypes.string,
105
+ reportNS: PropTypes.func
100
106
  };
101
107
 
102
108
  Translate.displayName = 'Translate(' + getDisplayName(WrappedComponent) + ')';
@@ -622,6 +622,11 @@ function translate(namespaceArg) {
622
622
  var i18nOptions = _this.i18n && _this.i18n.options && _this.i18n.options.react || {};
623
623
  _this.options = _extends({}, getDefaults(), i18nOptions, options);
624
624
 
625
+ if (context.reportNS) {
626
+ var namespaces = Array.isArray(namespaceArg) ? namespaceArg : [namespaceArg];
627
+ namespaces.forEach(context.reportNS);
628
+ }
629
+
625
630
  _this.getWrappedInstance = _this.getWrappedInstance.bind(_this);
626
631
  return _this;
627
632
  }
@@ -675,7 +680,8 @@ function translate(namespaceArg) {
675
680
 
676
681
  Translate.contextTypes = {
677
682
  i18n: PropTypes.object,
678
- defaultNS: PropTypes.string
683
+ defaultNS: PropTypes.string,
684
+ reportNS: PropTypes.func
679
685
  };
680
686
 
681
687
  Translate.displayName = 'Translate(' + getDisplayName(WrappedComponent) + ')';
@@ -1173,6 +1179,7 @@ var I18nextProvider = function (_Component) {
1173
1179
  if (props.initialLanguage) {
1174
1180
  _this.i18n.changeLanguage(props.initialLanguage);
1175
1181
  }
1182
+ _this.reportNS = props.reportNS;
1176
1183
  return _this;
1177
1184
  }
1178
1185
 
@@ -1181,7 +1188,8 @@ var I18nextProvider = function (_Component) {
1181
1188
  value: function getChildContext() {
1182
1189
  return {
1183
1190
  i18n: this.i18n,
1184
- defaultNS: this.defaultNS
1191
+ defaultNS: this.defaultNS,
1192
+ reportNS: this.reportNS
1185
1193
  };
1186
1194
  }
1187
1195
  }, {
@@ -1205,16 +1213,19 @@ var I18nextProvider = function (_Component) {
1205
1213
  I18nextProvider.propTypes = {
1206
1214
  i18n: PropTypes.object.isRequired,
1207
1215
  children: PropTypes.element.isRequired,
1208
- defaultNS: PropTypes.string
1216
+ defaultNS: PropTypes.string,
1217
+ reportNS: PropTypes.func
1209
1218
  };
1210
1219
 
1211
1220
  I18nextProvider.childContextTypes = {
1212
1221
  i18n: PropTypes.object.isRequired,
1213
- defaultNS: PropTypes.string
1222
+ defaultNS: PropTypes.string,
1223
+ reportNS: PropTypes.func
1214
1224
  };
1215
1225
 
1216
1226
  I18nextProvider.defaultProps = {
1217
- defaultNS: undefined
1227
+ defaultNS: undefined,
1228
+ reportNS: undefined
1218
1229
  };
1219
1230
 
1220
1231
  var objectEntries = Object.entries || function (obj) {
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["exports","react","prop-types"],t):t(e.reactI18next={},e.React,e.PropTypes)}(this,function(e,n,i){"use strict";var O="default"in n?n.default:n;i=i&&i.hasOwnProperty("default")?i.default:i;var c={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},u={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},l=Object.defineProperty,f=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,h=Object.getOwnPropertyDescriptor,y=Object.getPrototypeOf,v=y&&y(Object);var r=function e(t,n,i){if("string"!=typeof n){if(v){var r=y(n);r&&r!==v&&e(t,r,i)}var o=f(n);d&&(o=o.concat(d(n)));for(var a=0;a<o.length;++a){var s=o[a];if(!(c[s]||u[s]||i&&i[s])){var p=h(n,s);try{l(t,s,p)}catch(e){}}}return t}return t},j="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},p=(function(){function c(e){this.value=e}function e(r){var o,a;function s(e,t){try{var n=r[e](t),i=n.value;i instanceof c?Promise.resolve(i.value).then(function(e){s("next",e)},function(e){s("throw",e)}):p(n.done?"return":"normal",n.value)}catch(e){p("throw",e)}}function p(e,t){switch(e){case"return":o.resolve({value:t,done:!0});break;case"throw":o.reject(t);break;default:o.resolve({value:t,done:!1})}(o=o.next)?s(o.key,o.arg):a=null}this._invoke=function(i,r){return new Promise(function(e,t){var n={key:i,arg:r,resolve:e,reject:t,next:null};a?a=a.next=n:(o=a=n,s(i,r))})},"function"!=typeof r.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(e){return this._invoke("next",e)},e.prototype.throw=function(e){return this._invoke("throw",e)},e.prototype.return=function(e){return this._invoke("return",e)}}(),function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}),m=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}(),w=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},g=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},x=function(e,t){var n={};for(var i in e)0<=t.indexOf(i)||Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i]);return n},b=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},S=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);i=!0);}catch(e){r=!0,o=e}finally{try{!i&&s.return&&s.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},I=Object.prototype.hasOwnProperty;function k(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}var t={wait:!1,withRef:!1,bindI18n:"languageChanged loaded",bindStore:"added removed",translateFuncName:"t",nsMode:"default",usePureComponent:!1,omitBoundRerender:!0},o=void 0;function a(e){t=w({},t,e)}function P(){return t}function s(e){o=e}function T(){return o}var _={type:"3rdParty",init:function(e){a(e.options.react),s(e)}},C=!1,N=function(e){function a(e,t){p(this,a);var n=b(this,(a.__proto__||Object.getPrototypeOf(a)).call(this,e,t));n.i18n=e.i18n||t.i18n||T(),n.namespaces=e.ns||n.i18n.options&&n.i18n.options.defaultNS,"string"==typeof n.namespaces&&(n.namespaces=[n.namespaces]);var i=n.i18n&&n.i18n.options&&n.i18n.options.react||{};n.options=w({},P(),i,e),e.initialI18nStore&&(n.i18n.services.resourceStore.data=e.initialI18nStore,n.options.wait=!1),e.initialLanguage&&n.i18n.changeLanguage(e.initialLanguage),n.i18n.options&&n.i18n.options.isInitialSSR&&(n.options.wait=!1);var r=n.i18n.languages&&n.i18n.languages[0],o=!!r&&n.namespaces.every(function(e){return n.i18n.hasResourceBundle(r,e)});return n.state={i18nLoadedAt:null,ready:o},n.t=n.getI18nTranslate(),n.onI18nChanged=n.onI18nChanged.bind(n),n.getI18nTranslate=n.getI18nTranslate.bind(n),n}return g(a,e),m(a,[{key:"getChildContext",value:function(){return{t:this.t,i18n:this.i18n}}},{key:"componentDidMount",value:function(){var n=this,e=function(){n.options.bindI18n&&n.i18n&&n.i18n.on(n.options.bindI18n,n.onI18nChanged),n.options.bindStore&&n.i18n.store&&n.i18n.store.on(n.options.bindStore,n.onI18nChanged)};this.mounted=!0,this.i18n.loadNamespaces(this.namespaces,function(){var t=function(){n.mounted&&!n.state.ready&&n.setState({ready:!0}),n.options.wait&&n.mounted&&e()};if(n.i18n.isInitialized)t();else{n.i18n.on("initialized",function e(){setTimeout(function(){n.i18n.off("initialized",e)},1e3),t()})}}),this.options.wait||e()}},{key:"componentWillUnmount",value:function(){var t=this;if(this.mounted=!1,this.onI18nChanged){if(this.options.bindI18n)this.options.bindI18n.split(" ").forEach(function(e){return t.i18n.off(e,t.onI18nChanged)});if(this.options.bindStore)this.options.bindStore.split(" ").forEach(function(e){return t.i18n.store&&t.i18n.store.off(e,t.onI18nChanged)})}}},{key:"onI18nChanged",value:function(){this.mounted&&(!this.state.ready&&this.options.omitBoundRerender||(this.t=this.getI18nTranslate(),this.setState({i18nLoadedAt:new Date})))}},{key:"getI18nTranslate",value:function(){return this.i18n.getFixedT(null,"fallback"===this.options.nsMode?this.namespaces:this.namespaces[0])}},{key:"render",value:function(){var e=this,t=this.props.children,n=this.state.ready;return!n&&this.options.wait?null:(this.i18n.options&&this.i18n.options.isInitialSSR&&!C&&(C=!0,setTimeout(function(){delete e.i18n.options.isInitialSSR},100)),t(this.t,{i18n:this.i18n,t:this.t,ready:n}))}}]),a}(n.Component);function E(o){var s=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return function(a){var e,t=function(e){function r(e,t){p(this,r);var n=b(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,t));n.i18n=e.i18n||s.i18n||t.i18n||T(),n.namespaces="function"==typeof o?o(e):o||t.defaultNS||n.i18n.options&&n.i18n.options.defaultNS,"string"==typeof n.namespaces&&(n.namespaces=[n.namespaces]);var i=n.i18n&&n.i18n.options&&n.i18n.options.react||{};return n.options=w({},P(),i,s),n.getWrappedInstance=n.getWrappedInstance.bind(n),n}return g(r,e),m(r,[{key:"shouldComponentUpdate",value:function(e){return!this.options.usePureComponent||!function(e,t){if(k(e,t))return!0;if("object"!==(void 0===e?"undefined":j(e))||null===e||"object"!==(void 0===t?"undefined":j(t))||null===t)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(var r=0;r<n.length;r++)if(!I.call(t,n[r])||!k(e[n[r]],t[n[r]]))return!1;return!0}(this.props,e)}},{key:"getWrappedInstance",value:function(){return this.options.withRef||console.error("To access the wrapped instance, you need to specify { withRef: true } as the second argument of the translate() call."),this.wrappedInstance}},{key:"render",value:function(){var r=this,o={};return this.options.withRef&&(o.ref=function(e){r.wrappedInstance=e}),O.createElement(N,w({ns:this.namespaces},this.options,this.props,{i18n:this.i18n}),function(e,t){var n=t.ready,i=x(t,["ready"]);return O.createElement(a,w({tReady:n},r.props,o,i))})}}]),r}(n.Component);return t.WrappedComponent=a,t.contextTypes={i18n:i.object,defaultNS:i.string},t.displayName="Translate("+((e=a).displayName||e.name||"Component")+")",t.namespaces=o,r(t,a)}}N.contextTypes={i18n:i.object},N.childContextTypes={t:i.func.isRequired,i18n:i.object},E.setDefaults=a,E.setI18n=s;var R=function(e){function i(e,t){p(this,i);var n=b(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,e,t));return n.i18n=e.i18n||t.i18n,n.t=e.t||t.t,n}return g(i,e),m(i,[{key:"render",value:function(){var o=this,e=this.props.parent||"span",t=this.props.regexp||this.i18n.services.interpolator.regexp,n=this.props,i=n.className,r=n.style,a=this.props.useDangerouslySetInnerHTML||!1,s=this.props.dangerouslySetInnerHTMLPartElement||"span",p=w({},this.props.options,{interpolation:{prefix:"#$?",suffix:"?$#"}}),c=this.t(this.props.i18nKey,p);if(!c||"string"!=typeof c)return O.createElement("noscript",null);var u=[];c.split(t).reduce(function(e,t,n){var i=void 0;if(n%2==0){if(0===t.length)return e;i=a?O.createElement(s,{dangerouslySetInnerHTML:{__html:t}}):t}else i=function(e,t){if(e.indexOf(o.i18n.options.interpolation.formatSeparator)<0)return void 0===t[e]&&o.i18n.services.logger.warn("interpolator: missed to pass in variable "+e+" for interpolating "+c),t[e];var n=e.split(o.i18n.options.interpolation.formatSeparator),i=n.shift().trim(),r=n.join(o.i18n.options.interpolation.formatSeparator).trim();return void 0===t[i]&&o.i18n.services.logger.warn("interpolator: missed to pass in variable "+i+" for interpolating "+c),o.i18n.options.interpolation.format(t[i],r,o.i18n.language)}(t,o.props);return e.push(i),e},u);var l={};if(this.i18n.options.react&&this.i18n.options.react.exposeNamespace){var f="string"==typeof this.t.ns?this.t.ns:this.t.ns[0];if(this.props.i18nKey&&this.i18n.options.nsSeparator&&-1<this.props.i18nKey.indexOf(this.i18n.options.nsSeparator))f=this.props.i18nKey.split(this.i18n.options.nsSeparator)[0];this.t.ns&&(l["data-i18next-options"]=JSON.stringify({ns:f}))}return i&&(l.className=i),r&&(l.style=r),O.createElement.apply(this,[e,l].concat(u))}}]),i}(n.Component);R.propTypes={className:i.string},R.defaultProps={className:""},R.contextTypes={i18n:i.object.isRequired,t:i.func.isRequired};var A={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,menuitem:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},L=/([\w-]+)|=|(['"])([.\s\S]*?)\2/g,D=/(?:<!--[\S\s]*?-->|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g,W=Object.create?Object.create(null):{};function q(e,t,n,i,r){var o=t.indexOf("<",i),a=t.slice(i,-1===o?void 0:o);/^\s*$/.test(a)&&(a=" "),(!r&&-1<o&&0<=n+e.length||" "!==a)&&e.push({type:"text",content:a})}var K=function(f,d){d||(d={}),d.components||(d.components=W);var h,y=[],v=-1,m=[],g=!1;return f.replace(D,function(e,t){if(g){if(e!=="</"+h.name+">")return;g=!1}var n,i,r,o,a,s,p="/"!==e.charAt(1),c=0===e.indexOf("\x3c!--"),u=t+e.length,l=f.charAt(u);p&&!c&&(v++,s={type:"tag",name:"",voidElement:!(a=!(o=0)),attrs:{},children:[]},(i=e).replace(L,function(e){if("="===e)return a=!0,void o++;a?0===o?((A[e]||"/"===i.charAt(i.length-2))&&(s.voidElement=!0),s.name=e):(s.attrs[r]=e.replace(/^['"]|['"]$/g,""),r=void 0):(r&&(s.attrs[r]=r),r=e),o++,a=!1}),"tag"===(h=s).type&&d.components[h.name]&&(h.type="component",g=!0),h.voidElement||g||!l||"<"===l||q(h.children,f,v,u,d.ignoreWhitespace),0===v&&y.push(h),(n=m[v-1])&&n.children.push(h),m[v]=h),(c||!p||h.voidElement)&&(c||v--,!g&&"<"!==l&&l&&q(n=-1===v?y:m[v].children,f,v,u,d.ignoreWhitespace))}),!y.length&&f.length&&q(y,f,0,0,d.ignoreWhitespace),y};function M(e){return e&&(e.children||e.props&&e.props.children)}function $(e){return e&&e.children?e.children:e.props&&e.props.children}function z(e,t,c){if(""===t)return[];if(!e)return[t];return $(function s(p,e){return"[object Array]"!==Object.prototype.toString.call(p)&&(p=[p]),"[object Array]"!==Object.prototype.toString.call(e)&&(e=[e]),e.reduce(function(e,t,n){if("tag"===t.type){var i=p[parseInt(t.name,10)]||{},r=O.isValidElement(i);if("string"==typeof i)e.push(i);else if(M(i)){var o=s($(i),t.children);i.dummy&&(i.children=o),e.push(O.cloneElement(i,w({},i.props,{key:n}),o))}else if("object"!==(void 0===i?"undefined":j(i))||r)e.push(i);else if(t.children[0]&&t.children[0].content){var a=c.services.interpolator.interpolate(t.children[0].content,i,c.language);e.push(a)}}else"text"===t.type&&e.push(t.content);return e},[])}([{dummy:!0,children:e}],K("<0>"+t+"</0>"))[0])}var B=function(e){function t(){return p(this,t),b(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return g(t,e),m(t,[{key:"render",value:function(){var e=w({i18n:this.context.i18n,t:this.context.t},this.props),t=e.children,n=e.count,i=e.parent,r=e.i18nKey,o=e.tOptions,a=e.values,s=e.defaults,p=e.components,c=e.ns,u=e.i18n,l=e.t,f=x(e,["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"]),d=l||u.t.bind(u),h=u.options&&u.options.react||{},y=void 0!==i?i:h.defaultTransParent,v=s||function a(s,e,t){return e?("[object Array]"!==Object.prototype.toString.call(e)&&(e=[e]),e.forEach(function(e,t){var n=""+t;if("string"==typeof e)s=""+s+e;else if(M(e))s=s+"<"+n+">"+a("",$(e),t+1)+"</"+n+">";else if(O.isValidElement(e))s=s+"<"+n+"></"+n+">";else if("object"===(void 0===e?"undefined":j(e))){var i=w({},e),r=i.format;delete i.format;var o=Object.keys(i);r&&1===o.length?s=s+"<"+n+">{{"+o[0]+", "+r+"}}</"+n+">":1===o.length?s=s+"<"+n+">{{"+o[0]+"}}</"+n+">":console&&console.warn&&console.warn("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",e)}else console&&console.warn&&console.warn("react-i18next: 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):""}("",t),m=h.hashTransKey,g=r||(m?m(v):v),b=g?d(g,w({},o,a,a?{}:{interpolation:{prefix:"#$?",suffix:"?$#"}},{defaultValue:v,count:n,ns:c})):v;if(h.exposeNamespace){var S="string"==typeof d.ns?d.ns:d.ns[0];if(r&&u.options&&u.options.nsSeparator&&-1<r.indexOf(u.options.nsSeparator))S=r.split(u.options.nsSeparator)[0];d.ns&&(f["data-i18next-options"]=JSON.stringify({ns:S}))}return y?O.createElement(y,f,z(p||t,b,u)):z(p||t,b,u)}}]),t}(O.Component);B.propTypes={count:i.number,parent:i.oneOfType([i.node,i.func]),i18nKey:i.string,i18n:i.object,t:i.func},B.contextTypes={i18n:i.object,t:i.func};var F=function(e){function i(e,t){p(this,i);var n=b(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,e,t));return n.i18n=e.i18n,n.defaultNS=e.defaultNS,e.initialI18nStore&&(n.i18n.services.resourceStore.data=e.initialI18nStore,n.i18n.options.isInitialSSR=!0),e.initialLanguage&&n.i18n.changeLanguage(e.initialLanguage),n}return g(i,e),m(i,[{key:"getChildContext",value:function(){return{i18n:this.i18n,defaultNS:this.defaultNS}}},{key:"componentWillReceiveProps",value:function(e){if(this.props.i18n!==e.i18n)throw new Error("[react-i18next][I18nextProvider]does not support changing the i18n object.")}},{key:"render",value:function(){var e=this.props.children;return n.Children.only(e)}}]),i}(n.Component);F.propTypes={i18n:i.object.isRequired,children:i.element.isRequired,defaultNS:i.string},F.childContextTypes={i18n:i.object.isRequired,defaultNS:i.string},F.defaultProps={defaultNS:void 0};var H=Object.entries||function(e){for(var t=Object.keys(e),n=t.length,i=new Array(n);n--;)i[n]=[t[n],e[t[n]]];return i};function V(e){var t=[];return function(e,t){for(var n=0,i=e.length;n<i;n++)if("object"===j(e[n])){var r=!0,o=!1,a=void 0;try{for(var s,p=H(e[n])[Symbol.iterator]();!(r=(s=p.next()).done);r=!0){var c=S(s.value,2),u=c[0];t(c[1],n,u)}}catch(e){o=!0,a=e}finally{try{!r&&p.return&&p.return()}finally{if(o)throw a}}}else t(e[n],n)}(e,function(e){e&&e.namespaces&&e.namespaces.forEach(function(e){-1===t.indexOf(e)&&t.push(e)})}),t}e.translate=E,e.I18n=N,e.Interpolate=R,e.Trans=B,e.I18nextProvider=F,e.loadNamespaces=function(e){var t=e.components,n=e.i18n,i=V(t);return new Promise(function(e){n.loadNamespaces(i,e)})},e.reactI18nextModule=_,e.setDefaults=a,e.getDefaults=P,e.setI18n=s,e.getI18n=T,Object.defineProperty(e,"__esModule",{value:!0})});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["exports","react","prop-types"],t):t(e.reactI18next={},e.React,e.PropTypes)}(this,function(e,n,r){"use strict";var O="default"in n?n.default:n;r=r&&r.hasOwnProperty("default")?r.default:r;var c={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},u={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},l=Object.defineProperty,f=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,h=Object.getOwnPropertyDescriptor,y=Object.getPrototypeOf,v=y&&y(Object);var i=function e(t,n,r){if("string"!=typeof n){if(v){var i=y(n);i&&i!==v&&e(t,i,r)}var o=f(n);d&&(o=o.concat(d(n)));for(var a=0;a<o.length;++a){var s=o[a];if(!(c[s]||u[s]||r&&r[s])){var p=h(n,s);try{l(t,s,p)}catch(e){}}}return t}return t},j="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},p=(function(){function c(e){this.value=e}function e(i){var o,a;function s(e,t){try{var n=i[e](t),r=n.value;r instanceof c?Promise.resolve(r.value).then(function(e){s("next",e)},function(e){s("throw",e)}):p(n.done?"return":"normal",n.value)}catch(e){p("throw",e)}}function p(e,t){switch(e){case"return":o.resolve({value:t,done:!0});break;case"throw":o.reject(t);break;default:o.resolve({value:t,done:!1})}(o=o.next)?s(o.key,o.arg):a=null}this._invoke=function(r,i){return new Promise(function(e,t){var n={key:r,arg:i,resolve:e,reject:t,next:null};a?a=a.next=n:(o=a=n,s(r,i))})},"function"!=typeof i.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(e){return this._invoke("next",e)},e.prototype.throw=function(e){return this._invoke("throw",e)},e.prototype.return=function(e){return this._invoke("return",e)}}(),function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}),m=function(){function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}}(),w=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},g=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},x=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},b=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},S=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{!r&&s.return&&s.return()}finally{if(i)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},I=Object.prototype.hasOwnProperty;function N(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}var t={wait:!1,withRef:!1,bindI18n:"languageChanged loaded",bindStore:"added removed",translateFuncName:"t",nsMode:"default",usePureComponent:!1,omitBoundRerender:!0},o=void 0;function a(e){t=w({},t,e)}function k(){return t}function s(e){o=e}function P(){return o}var T={type:"3rdParty",init:function(e){a(e.options.react),s(e)}},_=!1,C=function(e){function a(e,t){p(this,a);var n=b(this,(a.__proto__||Object.getPrototypeOf(a)).call(this,e,t));n.i18n=e.i18n||t.i18n||P(),n.namespaces=e.ns||n.i18n.options&&n.i18n.options.defaultNS,"string"==typeof n.namespaces&&(n.namespaces=[n.namespaces]);var r=n.i18n&&n.i18n.options&&n.i18n.options.react||{};n.options=w({},k(),r,e),e.initialI18nStore&&(n.i18n.services.resourceStore.data=e.initialI18nStore,n.options.wait=!1),e.initialLanguage&&n.i18n.changeLanguage(e.initialLanguage),n.i18n.options&&n.i18n.options.isInitialSSR&&(n.options.wait=!1);var i=n.i18n.languages&&n.i18n.languages[0],o=!!i&&n.namespaces.every(function(e){return n.i18n.hasResourceBundle(i,e)});return n.state={i18nLoadedAt:null,ready:o},n.t=n.getI18nTranslate(),n.onI18nChanged=n.onI18nChanged.bind(n),n.getI18nTranslate=n.getI18nTranslate.bind(n),n}return g(a,e),m(a,[{key:"getChildContext",value:function(){return{t:this.t,i18n:this.i18n}}},{key:"componentDidMount",value:function(){var n=this,e=function(){n.options.bindI18n&&n.i18n&&n.i18n.on(n.options.bindI18n,n.onI18nChanged),n.options.bindStore&&n.i18n.store&&n.i18n.store.on(n.options.bindStore,n.onI18nChanged)};this.mounted=!0,this.i18n.loadNamespaces(this.namespaces,function(){var t=function(){n.mounted&&!n.state.ready&&n.setState({ready:!0}),n.options.wait&&n.mounted&&e()};if(n.i18n.isInitialized)t();else{n.i18n.on("initialized",function e(){setTimeout(function(){n.i18n.off("initialized",e)},1e3),t()})}}),this.options.wait||e()}},{key:"componentWillUnmount",value:function(){var t=this;if(this.mounted=!1,this.onI18nChanged){if(this.options.bindI18n)this.options.bindI18n.split(" ").forEach(function(e){return t.i18n.off(e,t.onI18nChanged)});if(this.options.bindStore)this.options.bindStore.split(" ").forEach(function(e){return t.i18n.store&&t.i18n.store.off(e,t.onI18nChanged)})}}},{key:"onI18nChanged",value:function(){this.mounted&&(!this.state.ready&&this.options.omitBoundRerender||(this.t=this.getI18nTranslate(),this.setState({i18nLoadedAt:new Date})))}},{key:"getI18nTranslate",value:function(){return this.i18n.getFixedT(null,"fallback"===this.options.nsMode?this.namespaces:this.namespaces[0])}},{key:"render",value:function(){var e=this,t=this.props.children,n=this.state.ready;return!n&&this.options.wait?null:(this.i18n.options&&this.i18n.options.isInitialSSR&&!_&&(_=!0,setTimeout(function(){delete e.i18n.options.isInitialSSR},100)),t(this.t,{i18n:this.i18n,t:this.t,ready:n}))}}]),a}(n.Component);function E(o){var s=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return function(a){var e,t=function(e){function i(e,t){p(this,i);var n=b(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,e,t));n.i18n=e.i18n||s.i18n||t.i18n||P(),n.namespaces="function"==typeof o?o(e):o||t.defaultNS||n.i18n.options&&n.i18n.options.defaultNS,"string"==typeof n.namespaces&&(n.namespaces=[n.namespaces]);var r=n.i18n&&n.i18n.options&&n.i18n.options.react||{};(n.options=w({},k(),r,s),t.reportNS)&&(Array.isArray(o)?o:[o]).forEach(t.reportNS);return n.getWrappedInstance=n.getWrappedInstance.bind(n),n}return g(i,e),m(i,[{key:"shouldComponentUpdate",value:function(e){return!this.options.usePureComponent||!function(e,t){if(N(e,t))return!0;if("object"!==(void 0===e?"undefined":j(e))||null===e||"object"!==(void 0===t?"undefined":j(t))||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=0;i<n.length;i++)if(!I.call(t,n[i])||!N(e[n[i]],t[n[i]]))return!1;return!0}(this.props,e)}},{key:"getWrappedInstance",value:function(){return this.options.withRef||console.error("To access the wrapped instance, you need to specify { withRef: true } as the second argument of the translate() call."),this.wrappedInstance}},{key:"render",value:function(){var i=this,o={};return this.options.withRef&&(o.ref=function(e){i.wrappedInstance=e}),O.createElement(C,w({ns:this.namespaces},this.options,this.props,{i18n:this.i18n}),function(e,t){var n=t.ready,r=x(t,["ready"]);return O.createElement(a,w({tReady:n},i.props,o,r))})}}]),i}(n.Component);return t.WrappedComponent=a,t.contextTypes={i18n:r.object,defaultNS:r.string,reportNS:r.func},t.displayName="Translate("+((e=a).displayName||e.name||"Component")+")",t.namespaces=o,i(t,a)}}C.contextTypes={i18n:r.object},C.childContextTypes={t:r.func.isRequired,i18n:r.object},E.setDefaults=a,E.setI18n=s;var R=function(e){function r(e,t){p(this,r);var n=b(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,t));return n.i18n=e.i18n||t.i18n,n.t=e.t||t.t,n}return g(r,e),m(r,[{key:"render",value:function(){var o=this,e=this.props.parent||"span",t=this.props.regexp||this.i18n.services.interpolator.regexp,n=this.props,r=n.className,i=n.style,a=this.props.useDangerouslySetInnerHTML||!1,s=this.props.dangerouslySetInnerHTMLPartElement||"span",p=w({},this.props.options,{interpolation:{prefix:"#$?",suffix:"?$#"}}),c=this.t(this.props.i18nKey,p);if(!c||"string"!=typeof c)return O.createElement("noscript",null);var u=[];c.split(t).reduce(function(e,t,n){var r=void 0;if(n%2==0){if(0===t.length)return e;r=a?O.createElement(s,{dangerouslySetInnerHTML:{__html:t}}):t}else r=function(e,t){if(e.indexOf(o.i18n.options.interpolation.formatSeparator)<0)return void 0===t[e]&&o.i18n.services.logger.warn("interpolator: missed to pass in variable "+e+" for interpolating "+c),t[e];var n=e.split(o.i18n.options.interpolation.formatSeparator),r=n.shift().trim(),i=n.join(o.i18n.options.interpolation.formatSeparator).trim();return void 0===t[r]&&o.i18n.services.logger.warn("interpolator: missed to pass in variable "+r+" for interpolating "+c),o.i18n.options.interpolation.format(t[r],i,o.i18n.language)}(t,o.props);return e.push(r),e},u);var l={};if(this.i18n.options.react&&this.i18n.options.react.exposeNamespace){var f="string"==typeof this.t.ns?this.t.ns:this.t.ns[0];if(this.props.i18nKey&&this.i18n.options.nsSeparator&&-1<this.props.i18nKey.indexOf(this.i18n.options.nsSeparator))f=this.props.i18nKey.split(this.i18n.options.nsSeparator)[0];this.t.ns&&(l["data-i18next-options"]=JSON.stringify({ns:f}))}return r&&(l.className=r),i&&(l.style=i),O.createElement.apply(this,[e,l].concat(u))}}]),r}(n.Component);R.propTypes={className:r.string},R.defaultProps={className:""},R.contextTypes={i18n:r.object.isRequired,t:r.func.isRequired};var A={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,menuitem:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},L=/([\w-]+)|=|(['"])([.\s\S]*?)\2/g,D=/(?:<!--[\S\s]*?-->|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g,W=Object.create?Object.create(null):{};function q(e,t,n,r,i){var o=t.indexOf("<",r),a=t.slice(r,-1===o?void 0:o);/^\s*$/.test(a)&&(a=" "),(!i&&-1<o&&0<=n+e.length||" "!==a)&&e.push({type:"text",content:a})}var K=function(f,d){d||(d={}),d.components||(d.components=W);var h,y=[],v=-1,m=[],g=!1;return f.replace(D,function(e,t){if(g){if(e!=="</"+h.name+">")return;g=!1}var n,r,i,o,a,s,p="/"!==e.charAt(1),c=0===e.indexOf("\x3c!--"),u=t+e.length,l=f.charAt(u);p&&!c&&(v++,s={type:"tag",name:"",voidElement:!(a=!(o=0)),attrs:{},children:[]},(r=e).replace(L,function(e){if("="===e)return a=!0,void o++;a?0===o?((A[e]||"/"===r.charAt(r.length-2))&&(s.voidElement=!0),s.name=e):(s.attrs[i]=e.replace(/^['"]|['"]$/g,""),i=void 0):(i&&(s.attrs[i]=i),i=e),o++,a=!1}),"tag"===(h=s).type&&d.components[h.name]&&(h.type="component",g=!0),h.voidElement||g||!l||"<"===l||q(h.children,f,v,u,d.ignoreWhitespace),0===v&&y.push(h),(n=m[v-1])&&n.children.push(h),m[v]=h),(c||!p||h.voidElement)&&(c||v--,!g&&"<"!==l&&l&&q(n=-1===v?y:m[v].children,f,v,u,d.ignoreWhitespace))}),!y.length&&f.length&&q(y,f,0,0,d.ignoreWhitespace),y};function M(e){return e&&(e.children||e.props&&e.props.children)}function $(e){return e&&e.children?e.children:e.props&&e.props.children}function z(e,t,c){if(""===t)return[];if(!e)return[t];return $(function s(p,e){return"[object Array]"!==Object.prototype.toString.call(p)&&(p=[p]),"[object Array]"!==Object.prototype.toString.call(e)&&(e=[e]),e.reduce(function(e,t,n){if("tag"===t.type){var r=p[parseInt(t.name,10)]||{},i=O.isValidElement(r);if("string"==typeof r)e.push(r);else if(M(r)){var o=s($(r),t.children);r.dummy&&(r.children=o),e.push(O.cloneElement(r,w({},r.props,{key:n}),o))}else if("object"!==(void 0===r?"undefined":j(r))||i)e.push(r);else if(t.children[0]&&t.children[0].content){var a=c.services.interpolator.interpolate(t.children[0].content,r,c.language);e.push(a)}}else"text"===t.type&&e.push(t.content);return e},[])}([{dummy:!0,children:e}],K("<0>"+t+"</0>"))[0])}var B=function(e){function t(){return p(this,t),b(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return g(t,e),m(t,[{key:"render",value:function(){var e=w({i18n:this.context.i18n,t:this.context.t},this.props),t=e.children,n=e.count,r=e.parent,i=e.i18nKey,o=e.tOptions,a=e.values,s=e.defaults,p=e.components,c=e.ns,u=e.i18n,l=e.t,f=x(e,["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"]),d=l||u.t.bind(u),h=u.options&&u.options.react||{},y=void 0!==r?r:h.defaultTransParent,v=s||function a(s,e,t){return e?("[object Array]"!==Object.prototype.toString.call(e)&&(e=[e]),e.forEach(function(e,t){var n=""+t;if("string"==typeof e)s=""+s+e;else if(M(e))s=s+"<"+n+">"+a("",$(e),t+1)+"</"+n+">";else if(O.isValidElement(e))s=s+"<"+n+"></"+n+">";else if("object"===(void 0===e?"undefined":j(e))){var r=w({},e),i=r.format;delete r.format;var o=Object.keys(r);i&&1===o.length?s=s+"<"+n+">{{"+o[0]+", "+i+"}}</"+n+">":1===o.length?s=s+"<"+n+">{{"+o[0]+"}}</"+n+">":console&&console.warn&&console.warn("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",e)}else console&&console.warn&&console.warn("react-i18next: 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):""}("",t),m=h.hashTransKey,g=i||(m?m(v):v),b=g?d(g,w({},o,a,a?{}:{interpolation:{prefix:"#$?",suffix:"?$#"}},{defaultValue:v,count:n,ns:c})):v;if(h.exposeNamespace){var S="string"==typeof d.ns?d.ns:d.ns[0];if(i&&u.options&&u.options.nsSeparator&&-1<i.indexOf(u.options.nsSeparator))S=i.split(u.options.nsSeparator)[0];d.ns&&(f["data-i18next-options"]=JSON.stringify({ns:S}))}return y?O.createElement(y,f,z(p||t,b,u)):z(p||t,b,u)}}]),t}(O.Component);B.propTypes={count:r.number,parent:r.oneOfType([r.node,r.func]),i18nKey:r.string,i18n:r.object,t:r.func},B.contextTypes={i18n:r.object,t:r.func};var F=function(e){function r(e,t){p(this,r);var n=b(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,t));return n.i18n=e.i18n,n.defaultNS=e.defaultNS,e.initialI18nStore&&(n.i18n.services.resourceStore.data=e.initialI18nStore,n.i18n.options.isInitialSSR=!0),e.initialLanguage&&n.i18n.changeLanguage(e.initialLanguage),n.reportNS=e.reportNS,n}return g(r,e),m(r,[{key:"getChildContext",value:function(){return{i18n:this.i18n,defaultNS:this.defaultNS,reportNS:this.reportNS}}},{key:"componentWillReceiveProps",value:function(e){if(this.props.i18n!==e.i18n)throw new Error("[react-i18next][I18nextProvider]does not support changing the i18n object.")}},{key:"render",value:function(){var e=this.props.children;return n.Children.only(e)}}]),r}(n.Component);F.propTypes={i18n:r.object.isRequired,children:r.element.isRequired,defaultNS:r.string,reportNS:r.func},F.childContextTypes={i18n:r.object.isRequired,defaultNS:r.string,reportNS:r.func},F.defaultProps={defaultNS:void 0,reportNS:void 0};var H=Object.entries||function(e){for(var t=Object.keys(e),n=t.length,r=new Array(n);n--;)r[n]=[t[n],e[t[n]]];return r};function V(e){var t=[];return function(e,t){for(var n=0,r=e.length;n<r;n++)if("object"===j(e[n])){var i=!0,o=!1,a=void 0;try{for(var s,p=H(e[n])[Symbol.iterator]();!(i=(s=p.next()).done);i=!0){var c=S(s.value,2),u=c[0];t(c[1],n,u)}}catch(e){o=!0,a=e}finally{try{!i&&p.return&&p.return()}finally{if(o)throw a}}}else t(e[n],n)}(e,function(e){e&&e.namespaces&&e.namespaces.forEach(function(e){-1===t.indexOf(e)&&t.push(e)})}),t}e.translate=E,e.I18n=C,e.Interpolate=R,e.Trans=B,e.I18nextProvider=F,e.loadNamespaces=function(e){var t=e.components,n=e.i18n,r=V(t);return new Promise(function(e){n.loadNamespaces(r,e)})},e.reactI18nextModule=T,e.setDefaults=a,e.getDefaults=k,e.setI18n=s,e.getI18n=P,Object.defineProperty(e,"__esModule",{value:!0})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-i18next",
3
- "version": "7.10.1",
3
+ "version": "7.11.0",
4
4
  "description": "Internationalization for react done right. Using the i18next i18n ecosystem.",
5
5
  "main": "dist/commonjs/index.js",
6
6
  "jsnext:main": "dist/es/index.js",
package/react-i18next.js CHANGED
@@ -622,6 +622,11 @@ function translate(namespaceArg) {
622
622
  var i18nOptions = _this.i18n && _this.i18n.options && _this.i18n.options.react || {};
623
623
  _this.options = _extends({}, getDefaults(), i18nOptions, options);
624
624
 
625
+ if (context.reportNS) {
626
+ var namespaces = Array.isArray(namespaceArg) ? namespaceArg : [namespaceArg];
627
+ namespaces.forEach(context.reportNS);
628
+ }
629
+
625
630
  _this.getWrappedInstance = _this.getWrappedInstance.bind(_this);
626
631
  return _this;
627
632
  }
@@ -675,7 +680,8 @@ function translate(namespaceArg) {
675
680
 
676
681
  Translate.contextTypes = {
677
682
  i18n: PropTypes.object,
678
- defaultNS: PropTypes.string
683
+ defaultNS: PropTypes.string,
684
+ reportNS: PropTypes.func
679
685
  };
680
686
 
681
687
  Translate.displayName = 'Translate(' + getDisplayName(WrappedComponent) + ')';
@@ -1173,6 +1179,7 @@ var I18nextProvider = function (_Component) {
1173
1179
  if (props.initialLanguage) {
1174
1180
  _this.i18n.changeLanguage(props.initialLanguage);
1175
1181
  }
1182
+ _this.reportNS = props.reportNS;
1176
1183
  return _this;
1177
1184
  }
1178
1185
 
@@ -1181,7 +1188,8 @@ var I18nextProvider = function (_Component) {
1181
1188
  value: function getChildContext() {
1182
1189
  return {
1183
1190
  i18n: this.i18n,
1184
- defaultNS: this.defaultNS
1191
+ defaultNS: this.defaultNS,
1192
+ reportNS: this.reportNS
1185
1193
  };
1186
1194
  }
1187
1195
  }, {
@@ -1205,16 +1213,19 @@ var I18nextProvider = function (_Component) {
1205
1213
  I18nextProvider.propTypes = {
1206
1214
  i18n: PropTypes.object.isRequired,
1207
1215
  children: PropTypes.element.isRequired,
1208
- defaultNS: PropTypes.string
1216
+ defaultNS: PropTypes.string,
1217
+ reportNS: PropTypes.func
1209
1218
  };
1210
1219
 
1211
1220
  I18nextProvider.childContextTypes = {
1212
1221
  i18n: PropTypes.object.isRequired,
1213
- defaultNS: PropTypes.string
1222
+ defaultNS: PropTypes.string,
1223
+ reportNS: PropTypes.func
1214
1224
  };
1215
1225
 
1216
1226
  I18nextProvider.defaultProps = {
1217
- defaultNS: undefined
1227
+ defaultNS: undefined,
1228
+ reportNS: undefined
1218
1229
  };
1219
1230
 
1220
1231
  var objectEntries = Object.entries || function (obj) {
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["exports","react","prop-types"],t):t(e.reactI18next={},e.React,e.PropTypes)}(this,function(e,n,i){"use strict";var O="default"in n?n.default:n;i=i&&i.hasOwnProperty("default")?i.default:i;var c={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},u={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},l=Object.defineProperty,f=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,h=Object.getOwnPropertyDescriptor,y=Object.getPrototypeOf,v=y&&y(Object);var r=function e(t,n,i){if("string"!=typeof n){if(v){var r=y(n);r&&r!==v&&e(t,r,i)}var o=f(n);d&&(o=o.concat(d(n)));for(var a=0;a<o.length;++a){var s=o[a];if(!(c[s]||u[s]||i&&i[s])){var p=h(n,s);try{l(t,s,p)}catch(e){}}}return t}return t},j="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},p=(function(){function c(e){this.value=e}function e(r){var o,a;function s(e,t){try{var n=r[e](t),i=n.value;i instanceof c?Promise.resolve(i.value).then(function(e){s("next",e)},function(e){s("throw",e)}):p(n.done?"return":"normal",n.value)}catch(e){p("throw",e)}}function p(e,t){switch(e){case"return":o.resolve({value:t,done:!0});break;case"throw":o.reject(t);break;default:o.resolve({value:t,done:!1})}(o=o.next)?s(o.key,o.arg):a=null}this._invoke=function(i,r){return new Promise(function(e,t){var n={key:i,arg:r,resolve:e,reject:t,next:null};a?a=a.next=n:(o=a=n,s(i,r))})},"function"!=typeof r.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(e){return this._invoke("next",e)},e.prototype.throw=function(e){return this._invoke("throw",e)},e.prototype.return=function(e){return this._invoke("return",e)}}(),function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}),m=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}(),w=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},g=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},x=function(e,t){var n={};for(var i in e)0<=t.indexOf(i)||Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i]);return n},b=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},S=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);i=!0);}catch(e){r=!0,o=e}finally{try{!i&&s.return&&s.return()}finally{if(r)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},I=Object.prototype.hasOwnProperty;function k(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}var t={wait:!1,withRef:!1,bindI18n:"languageChanged loaded",bindStore:"added removed",translateFuncName:"t",nsMode:"default",usePureComponent:!1,omitBoundRerender:!0},o=void 0;function a(e){t=w({},t,e)}function P(){return t}function s(e){o=e}function T(){return o}var _={type:"3rdParty",init:function(e){a(e.options.react),s(e)}},C=!1,N=function(e){function a(e,t){p(this,a);var n=b(this,(a.__proto__||Object.getPrototypeOf(a)).call(this,e,t));n.i18n=e.i18n||t.i18n||T(),n.namespaces=e.ns||n.i18n.options&&n.i18n.options.defaultNS,"string"==typeof n.namespaces&&(n.namespaces=[n.namespaces]);var i=n.i18n&&n.i18n.options&&n.i18n.options.react||{};n.options=w({},P(),i,e),e.initialI18nStore&&(n.i18n.services.resourceStore.data=e.initialI18nStore,n.options.wait=!1),e.initialLanguage&&n.i18n.changeLanguage(e.initialLanguage),n.i18n.options&&n.i18n.options.isInitialSSR&&(n.options.wait=!1);var r=n.i18n.languages&&n.i18n.languages[0],o=!!r&&n.namespaces.every(function(e){return n.i18n.hasResourceBundle(r,e)});return n.state={i18nLoadedAt:null,ready:o},n.t=n.getI18nTranslate(),n.onI18nChanged=n.onI18nChanged.bind(n),n.getI18nTranslate=n.getI18nTranslate.bind(n),n}return g(a,e),m(a,[{key:"getChildContext",value:function(){return{t:this.t,i18n:this.i18n}}},{key:"componentDidMount",value:function(){var n=this,e=function(){n.options.bindI18n&&n.i18n&&n.i18n.on(n.options.bindI18n,n.onI18nChanged),n.options.bindStore&&n.i18n.store&&n.i18n.store.on(n.options.bindStore,n.onI18nChanged)};this.mounted=!0,this.i18n.loadNamespaces(this.namespaces,function(){var t=function(){n.mounted&&!n.state.ready&&n.setState({ready:!0}),n.options.wait&&n.mounted&&e()};if(n.i18n.isInitialized)t();else{n.i18n.on("initialized",function e(){setTimeout(function(){n.i18n.off("initialized",e)},1e3),t()})}}),this.options.wait||e()}},{key:"componentWillUnmount",value:function(){var t=this;if(this.mounted=!1,this.onI18nChanged){if(this.options.bindI18n)this.options.bindI18n.split(" ").forEach(function(e){return t.i18n.off(e,t.onI18nChanged)});if(this.options.bindStore)this.options.bindStore.split(" ").forEach(function(e){return t.i18n.store&&t.i18n.store.off(e,t.onI18nChanged)})}}},{key:"onI18nChanged",value:function(){this.mounted&&(!this.state.ready&&this.options.omitBoundRerender||(this.t=this.getI18nTranslate(),this.setState({i18nLoadedAt:new Date})))}},{key:"getI18nTranslate",value:function(){return this.i18n.getFixedT(null,"fallback"===this.options.nsMode?this.namespaces:this.namespaces[0])}},{key:"render",value:function(){var e=this,t=this.props.children,n=this.state.ready;return!n&&this.options.wait?null:(this.i18n.options&&this.i18n.options.isInitialSSR&&!C&&(C=!0,setTimeout(function(){delete e.i18n.options.isInitialSSR},100)),t(this.t,{i18n:this.i18n,t:this.t,ready:n}))}}]),a}(n.Component);function E(o){var s=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return function(a){var e,t=function(e){function r(e,t){p(this,r);var n=b(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,t));n.i18n=e.i18n||s.i18n||t.i18n||T(),n.namespaces="function"==typeof o?o(e):o||t.defaultNS||n.i18n.options&&n.i18n.options.defaultNS,"string"==typeof n.namespaces&&(n.namespaces=[n.namespaces]);var i=n.i18n&&n.i18n.options&&n.i18n.options.react||{};return n.options=w({},P(),i,s),n.getWrappedInstance=n.getWrappedInstance.bind(n),n}return g(r,e),m(r,[{key:"shouldComponentUpdate",value:function(e){return!this.options.usePureComponent||!function(e,t){if(k(e,t))return!0;if("object"!==(void 0===e?"undefined":j(e))||null===e||"object"!==(void 0===t?"undefined":j(t))||null===t)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(var r=0;r<n.length;r++)if(!I.call(t,n[r])||!k(e[n[r]],t[n[r]]))return!1;return!0}(this.props,e)}},{key:"getWrappedInstance",value:function(){return this.options.withRef||console.error("To access the wrapped instance, you need to specify { withRef: true } as the second argument of the translate() call."),this.wrappedInstance}},{key:"render",value:function(){var r=this,o={};return this.options.withRef&&(o.ref=function(e){r.wrappedInstance=e}),O.createElement(N,w({ns:this.namespaces},this.options,this.props,{i18n:this.i18n}),function(e,t){var n=t.ready,i=x(t,["ready"]);return O.createElement(a,w({tReady:n},r.props,o,i))})}}]),r}(n.Component);return t.WrappedComponent=a,t.contextTypes={i18n:i.object,defaultNS:i.string},t.displayName="Translate("+((e=a).displayName||e.name||"Component")+")",t.namespaces=o,r(t,a)}}N.contextTypes={i18n:i.object},N.childContextTypes={t:i.func.isRequired,i18n:i.object},E.setDefaults=a,E.setI18n=s;var R=function(e){function i(e,t){p(this,i);var n=b(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,e,t));return n.i18n=e.i18n||t.i18n,n.t=e.t||t.t,n}return g(i,e),m(i,[{key:"render",value:function(){var o=this,e=this.props.parent||"span",t=this.props.regexp||this.i18n.services.interpolator.regexp,n=this.props,i=n.className,r=n.style,a=this.props.useDangerouslySetInnerHTML||!1,s=this.props.dangerouslySetInnerHTMLPartElement||"span",p=w({},this.props.options,{interpolation:{prefix:"#$?",suffix:"?$#"}}),c=this.t(this.props.i18nKey,p);if(!c||"string"!=typeof c)return O.createElement("noscript",null);var u=[];c.split(t).reduce(function(e,t,n){var i=void 0;if(n%2==0){if(0===t.length)return e;i=a?O.createElement(s,{dangerouslySetInnerHTML:{__html:t}}):t}else i=function(e,t){if(e.indexOf(o.i18n.options.interpolation.formatSeparator)<0)return void 0===t[e]&&o.i18n.services.logger.warn("interpolator: missed to pass in variable "+e+" for interpolating "+c),t[e];var n=e.split(o.i18n.options.interpolation.formatSeparator),i=n.shift().trim(),r=n.join(o.i18n.options.interpolation.formatSeparator).trim();return void 0===t[i]&&o.i18n.services.logger.warn("interpolator: missed to pass in variable "+i+" for interpolating "+c),o.i18n.options.interpolation.format(t[i],r,o.i18n.language)}(t,o.props);return e.push(i),e},u);var l={};if(this.i18n.options.react&&this.i18n.options.react.exposeNamespace){var f="string"==typeof this.t.ns?this.t.ns:this.t.ns[0];if(this.props.i18nKey&&this.i18n.options.nsSeparator&&-1<this.props.i18nKey.indexOf(this.i18n.options.nsSeparator))f=this.props.i18nKey.split(this.i18n.options.nsSeparator)[0];this.t.ns&&(l["data-i18next-options"]=JSON.stringify({ns:f}))}return i&&(l.className=i),r&&(l.style=r),O.createElement.apply(this,[e,l].concat(u))}}]),i}(n.Component);R.propTypes={className:i.string},R.defaultProps={className:""},R.contextTypes={i18n:i.object.isRequired,t:i.func.isRequired};var A={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,menuitem:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},L=/([\w-]+)|=|(['"])([.\s\S]*?)\2/g,D=/(?:<!--[\S\s]*?-->|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g,W=Object.create?Object.create(null):{};function q(e,t,n,i,r){var o=t.indexOf("<",i),a=t.slice(i,-1===o?void 0:o);/^\s*$/.test(a)&&(a=" "),(!r&&-1<o&&0<=n+e.length||" "!==a)&&e.push({type:"text",content:a})}var K=function(f,d){d||(d={}),d.components||(d.components=W);var h,y=[],v=-1,m=[],g=!1;return f.replace(D,function(e,t){if(g){if(e!=="</"+h.name+">")return;g=!1}var n,i,r,o,a,s,p="/"!==e.charAt(1),c=0===e.indexOf("\x3c!--"),u=t+e.length,l=f.charAt(u);p&&!c&&(v++,s={type:"tag",name:"",voidElement:!(a=!(o=0)),attrs:{},children:[]},(i=e).replace(L,function(e){if("="===e)return a=!0,void o++;a?0===o?((A[e]||"/"===i.charAt(i.length-2))&&(s.voidElement=!0),s.name=e):(s.attrs[r]=e.replace(/^['"]|['"]$/g,""),r=void 0):(r&&(s.attrs[r]=r),r=e),o++,a=!1}),"tag"===(h=s).type&&d.components[h.name]&&(h.type="component",g=!0),h.voidElement||g||!l||"<"===l||q(h.children,f,v,u,d.ignoreWhitespace),0===v&&y.push(h),(n=m[v-1])&&n.children.push(h),m[v]=h),(c||!p||h.voidElement)&&(c||v--,!g&&"<"!==l&&l&&q(n=-1===v?y:m[v].children,f,v,u,d.ignoreWhitespace))}),!y.length&&f.length&&q(y,f,0,0,d.ignoreWhitespace),y};function M(e){return e&&(e.children||e.props&&e.props.children)}function $(e){return e&&e.children?e.children:e.props&&e.props.children}function z(e,t,c){if(""===t)return[];if(!e)return[t];return $(function s(p,e){return"[object Array]"!==Object.prototype.toString.call(p)&&(p=[p]),"[object Array]"!==Object.prototype.toString.call(e)&&(e=[e]),e.reduce(function(e,t,n){if("tag"===t.type){var i=p[parseInt(t.name,10)]||{},r=O.isValidElement(i);if("string"==typeof i)e.push(i);else if(M(i)){var o=s($(i),t.children);i.dummy&&(i.children=o),e.push(O.cloneElement(i,w({},i.props,{key:n}),o))}else if("object"!==(void 0===i?"undefined":j(i))||r)e.push(i);else if(t.children[0]&&t.children[0].content){var a=c.services.interpolator.interpolate(t.children[0].content,i,c.language);e.push(a)}}else"text"===t.type&&e.push(t.content);return e},[])}([{dummy:!0,children:e}],K("<0>"+t+"</0>"))[0])}var B=function(e){function t(){return p(this,t),b(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return g(t,e),m(t,[{key:"render",value:function(){var e=w({i18n:this.context.i18n,t:this.context.t},this.props),t=e.children,n=e.count,i=e.parent,r=e.i18nKey,o=e.tOptions,a=e.values,s=e.defaults,p=e.components,c=e.ns,u=e.i18n,l=e.t,f=x(e,["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"]),d=l||u.t.bind(u),h=u.options&&u.options.react||{},y=void 0!==i?i:h.defaultTransParent,v=s||function a(s,e,t){return e?("[object Array]"!==Object.prototype.toString.call(e)&&(e=[e]),e.forEach(function(e,t){var n=""+t;if("string"==typeof e)s=""+s+e;else if(M(e))s=s+"<"+n+">"+a("",$(e),t+1)+"</"+n+">";else if(O.isValidElement(e))s=s+"<"+n+"></"+n+">";else if("object"===(void 0===e?"undefined":j(e))){var i=w({},e),r=i.format;delete i.format;var o=Object.keys(i);r&&1===o.length?s=s+"<"+n+">{{"+o[0]+", "+r+"}}</"+n+">":1===o.length?s=s+"<"+n+">{{"+o[0]+"}}</"+n+">":console&&console.warn&&console.warn("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",e)}else console&&console.warn&&console.warn("react-i18next: 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):""}("",t),m=h.hashTransKey,g=r||(m?m(v):v),b=g?d(g,w({},o,a,a?{}:{interpolation:{prefix:"#$?",suffix:"?$#"}},{defaultValue:v,count:n,ns:c})):v;if(h.exposeNamespace){var S="string"==typeof d.ns?d.ns:d.ns[0];if(r&&u.options&&u.options.nsSeparator&&-1<r.indexOf(u.options.nsSeparator))S=r.split(u.options.nsSeparator)[0];d.ns&&(f["data-i18next-options"]=JSON.stringify({ns:S}))}return y?O.createElement(y,f,z(p||t,b,u)):z(p||t,b,u)}}]),t}(O.Component);B.propTypes={count:i.number,parent:i.oneOfType([i.node,i.func]),i18nKey:i.string,i18n:i.object,t:i.func},B.contextTypes={i18n:i.object,t:i.func};var F=function(e){function i(e,t){p(this,i);var n=b(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,e,t));return n.i18n=e.i18n,n.defaultNS=e.defaultNS,e.initialI18nStore&&(n.i18n.services.resourceStore.data=e.initialI18nStore,n.i18n.options.isInitialSSR=!0),e.initialLanguage&&n.i18n.changeLanguage(e.initialLanguage),n}return g(i,e),m(i,[{key:"getChildContext",value:function(){return{i18n:this.i18n,defaultNS:this.defaultNS}}},{key:"componentWillReceiveProps",value:function(e){if(this.props.i18n!==e.i18n)throw new Error("[react-i18next][I18nextProvider]does not support changing the i18n object.")}},{key:"render",value:function(){var e=this.props.children;return n.Children.only(e)}}]),i}(n.Component);F.propTypes={i18n:i.object.isRequired,children:i.element.isRequired,defaultNS:i.string},F.childContextTypes={i18n:i.object.isRequired,defaultNS:i.string},F.defaultProps={defaultNS:void 0};var H=Object.entries||function(e){for(var t=Object.keys(e),n=t.length,i=new Array(n);n--;)i[n]=[t[n],e[t[n]]];return i};function V(e){var t=[];return function(e,t){for(var n=0,i=e.length;n<i;n++)if("object"===j(e[n])){var r=!0,o=!1,a=void 0;try{for(var s,p=H(e[n])[Symbol.iterator]();!(r=(s=p.next()).done);r=!0){var c=S(s.value,2),u=c[0];t(c[1],n,u)}}catch(e){o=!0,a=e}finally{try{!r&&p.return&&p.return()}finally{if(o)throw a}}}else t(e[n],n)}(e,function(e){e&&e.namespaces&&e.namespaces.forEach(function(e){-1===t.indexOf(e)&&t.push(e)})}),t}e.translate=E,e.I18n=N,e.Interpolate=R,e.Trans=B,e.I18nextProvider=F,e.loadNamespaces=function(e){var t=e.components,n=e.i18n,i=V(t);return new Promise(function(e){n.loadNamespaces(i,e)})},e.reactI18nextModule=_,e.setDefaults=a,e.getDefaults=P,e.setI18n=s,e.getI18n=T,Object.defineProperty(e,"__esModule",{value:!0})});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["exports","react","prop-types"],t):t(e.reactI18next={},e.React,e.PropTypes)}(this,function(e,n,r){"use strict";var O="default"in n?n.default:n;r=r&&r.hasOwnProperty("default")?r.default:r;var c={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},u={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},l=Object.defineProperty,f=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,h=Object.getOwnPropertyDescriptor,y=Object.getPrototypeOf,v=y&&y(Object);var i=function e(t,n,r){if("string"!=typeof n){if(v){var i=y(n);i&&i!==v&&e(t,i,r)}var o=f(n);d&&(o=o.concat(d(n)));for(var a=0;a<o.length;++a){var s=o[a];if(!(c[s]||u[s]||r&&r[s])){var p=h(n,s);try{l(t,s,p)}catch(e){}}}return t}return t},j="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},p=(function(){function c(e){this.value=e}function e(i){var o,a;function s(e,t){try{var n=i[e](t),r=n.value;r instanceof c?Promise.resolve(r.value).then(function(e){s("next",e)},function(e){s("throw",e)}):p(n.done?"return":"normal",n.value)}catch(e){p("throw",e)}}function p(e,t){switch(e){case"return":o.resolve({value:t,done:!0});break;case"throw":o.reject(t);break;default:o.resolve({value:t,done:!1})}(o=o.next)?s(o.key,o.arg):a=null}this._invoke=function(r,i){return new Promise(function(e,t){var n={key:r,arg:i,resolve:e,reject:t,next:null};a?a=a.next=n:(o=a=n,s(r,i))})},"function"!=typeof i.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(e){return this._invoke("next",e)},e.prototype.throw=function(e){return this._invoke("throw",e)},e.prototype.return=function(e){return this._invoke("return",e)}}(),function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}),m=function(){function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}}(),w=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},g=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},x=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},b=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},S=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{!r&&s.return&&s.return()}finally{if(i)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},I=Object.prototype.hasOwnProperty;function N(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}var t={wait:!1,withRef:!1,bindI18n:"languageChanged loaded",bindStore:"added removed",translateFuncName:"t",nsMode:"default",usePureComponent:!1,omitBoundRerender:!0},o=void 0;function a(e){t=w({},t,e)}function k(){return t}function s(e){o=e}function P(){return o}var T={type:"3rdParty",init:function(e){a(e.options.react),s(e)}},_=!1,C=function(e){function a(e,t){p(this,a);var n=b(this,(a.__proto__||Object.getPrototypeOf(a)).call(this,e,t));n.i18n=e.i18n||t.i18n||P(),n.namespaces=e.ns||n.i18n.options&&n.i18n.options.defaultNS,"string"==typeof n.namespaces&&(n.namespaces=[n.namespaces]);var r=n.i18n&&n.i18n.options&&n.i18n.options.react||{};n.options=w({},k(),r,e),e.initialI18nStore&&(n.i18n.services.resourceStore.data=e.initialI18nStore,n.options.wait=!1),e.initialLanguage&&n.i18n.changeLanguage(e.initialLanguage),n.i18n.options&&n.i18n.options.isInitialSSR&&(n.options.wait=!1);var i=n.i18n.languages&&n.i18n.languages[0],o=!!i&&n.namespaces.every(function(e){return n.i18n.hasResourceBundle(i,e)});return n.state={i18nLoadedAt:null,ready:o},n.t=n.getI18nTranslate(),n.onI18nChanged=n.onI18nChanged.bind(n),n.getI18nTranslate=n.getI18nTranslate.bind(n),n}return g(a,e),m(a,[{key:"getChildContext",value:function(){return{t:this.t,i18n:this.i18n}}},{key:"componentDidMount",value:function(){var n=this,e=function(){n.options.bindI18n&&n.i18n&&n.i18n.on(n.options.bindI18n,n.onI18nChanged),n.options.bindStore&&n.i18n.store&&n.i18n.store.on(n.options.bindStore,n.onI18nChanged)};this.mounted=!0,this.i18n.loadNamespaces(this.namespaces,function(){var t=function(){n.mounted&&!n.state.ready&&n.setState({ready:!0}),n.options.wait&&n.mounted&&e()};if(n.i18n.isInitialized)t();else{n.i18n.on("initialized",function e(){setTimeout(function(){n.i18n.off("initialized",e)},1e3),t()})}}),this.options.wait||e()}},{key:"componentWillUnmount",value:function(){var t=this;if(this.mounted=!1,this.onI18nChanged){if(this.options.bindI18n)this.options.bindI18n.split(" ").forEach(function(e){return t.i18n.off(e,t.onI18nChanged)});if(this.options.bindStore)this.options.bindStore.split(" ").forEach(function(e){return t.i18n.store&&t.i18n.store.off(e,t.onI18nChanged)})}}},{key:"onI18nChanged",value:function(){this.mounted&&(!this.state.ready&&this.options.omitBoundRerender||(this.t=this.getI18nTranslate(),this.setState({i18nLoadedAt:new Date})))}},{key:"getI18nTranslate",value:function(){return this.i18n.getFixedT(null,"fallback"===this.options.nsMode?this.namespaces:this.namespaces[0])}},{key:"render",value:function(){var e=this,t=this.props.children,n=this.state.ready;return!n&&this.options.wait?null:(this.i18n.options&&this.i18n.options.isInitialSSR&&!_&&(_=!0,setTimeout(function(){delete e.i18n.options.isInitialSSR},100)),t(this.t,{i18n:this.i18n,t:this.t,ready:n}))}}]),a}(n.Component);function E(o){var s=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return function(a){var e,t=function(e){function i(e,t){p(this,i);var n=b(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,e,t));n.i18n=e.i18n||s.i18n||t.i18n||P(),n.namespaces="function"==typeof o?o(e):o||t.defaultNS||n.i18n.options&&n.i18n.options.defaultNS,"string"==typeof n.namespaces&&(n.namespaces=[n.namespaces]);var r=n.i18n&&n.i18n.options&&n.i18n.options.react||{};(n.options=w({},k(),r,s),t.reportNS)&&(Array.isArray(o)?o:[o]).forEach(t.reportNS);return n.getWrappedInstance=n.getWrappedInstance.bind(n),n}return g(i,e),m(i,[{key:"shouldComponentUpdate",value:function(e){return!this.options.usePureComponent||!function(e,t){if(N(e,t))return!0;if("object"!==(void 0===e?"undefined":j(e))||null===e||"object"!==(void 0===t?"undefined":j(t))||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=0;i<n.length;i++)if(!I.call(t,n[i])||!N(e[n[i]],t[n[i]]))return!1;return!0}(this.props,e)}},{key:"getWrappedInstance",value:function(){return this.options.withRef||console.error("To access the wrapped instance, you need to specify { withRef: true } as the second argument of the translate() call."),this.wrappedInstance}},{key:"render",value:function(){var i=this,o={};return this.options.withRef&&(o.ref=function(e){i.wrappedInstance=e}),O.createElement(C,w({ns:this.namespaces},this.options,this.props,{i18n:this.i18n}),function(e,t){var n=t.ready,r=x(t,["ready"]);return O.createElement(a,w({tReady:n},i.props,o,r))})}}]),i}(n.Component);return t.WrappedComponent=a,t.contextTypes={i18n:r.object,defaultNS:r.string,reportNS:r.func},t.displayName="Translate("+((e=a).displayName||e.name||"Component")+")",t.namespaces=o,i(t,a)}}C.contextTypes={i18n:r.object},C.childContextTypes={t:r.func.isRequired,i18n:r.object},E.setDefaults=a,E.setI18n=s;var R=function(e){function r(e,t){p(this,r);var n=b(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,t));return n.i18n=e.i18n||t.i18n,n.t=e.t||t.t,n}return g(r,e),m(r,[{key:"render",value:function(){var o=this,e=this.props.parent||"span",t=this.props.regexp||this.i18n.services.interpolator.regexp,n=this.props,r=n.className,i=n.style,a=this.props.useDangerouslySetInnerHTML||!1,s=this.props.dangerouslySetInnerHTMLPartElement||"span",p=w({},this.props.options,{interpolation:{prefix:"#$?",suffix:"?$#"}}),c=this.t(this.props.i18nKey,p);if(!c||"string"!=typeof c)return O.createElement("noscript",null);var u=[];c.split(t).reduce(function(e,t,n){var r=void 0;if(n%2==0){if(0===t.length)return e;r=a?O.createElement(s,{dangerouslySetInnerHTML:{__html:t}}):t}else r=function(e,t){if(e.indexOf(o.i18n.options.interpolation.formatSeparator)<0)return void 0===t[e]&&o.i18n.services.logger.warn("interpolator: missed to pass in variable "+e+" for interpolating "+c),t[e];var n=e.split(o.i18n.options.interpolation.formatSeparator),r=n.shift().trim(),i=n.join(o.i18n.options.interpolation.formatSeparator).trim();return void 0===t[r]&&o.i18n.services.logger.warn("interpolator: missed to pass in variable "+r+" for interpolating "+c),o.i18n.options.interpolation.format(t[r],i,o.i18n.language)}(t,o.props);return e.push(r),e},u);var l={};if(this.i18n.options.react&&this.i18n.options.react.exposeNamespace){var f="string"==typeof this.t.ns?this.t.ns:this.t.ns[0];if(this.props.i18nKey&&this.i18n.options.nsSeparator&&-1<this.props.i18nKey.indexOf(this.i18n.options.nsSeparator))f=this.props.i18nKey.split(this.i18n.options.nsSeparator)[0];this.t.ns&&(l["data-i18next-options"]=JSON.stringify({ns:f}))}return r&&(l.className=r),i&&(l.style=i),O.createElement.apply(this,[e,l].concat(u))}}]),r}(n.Component);R.propTypes={className:r.string},R.defaultProps={className:""},R.contextTypes={i18n:r.object.isRequired,t:r.func.isRequired};var A={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,menuitem:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},L=/([\w-]+)|=|(['"])([.\s\S]*?)\2/g,D=/(?:<!--[\S\s]*?-->|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g,W=Object.create?Object.create(null):{};function q(e,t,n,r,i){var o=t.indexOf("<",r),a=t.slice(r,-1===o?void 0:o);/^\s*$/.test(a)&&(a=" "),(!i&&-1<o&&0<=n+e.length||" "!==a)&&e.push({type:"text",content:a})}var K=function(f,d){d||(d={}),d.components||(d.components=W);var h,y=[],v=-1,m=[],g=!1;return f.replace(D,function(e,t){if(g){if(e!=="</"+h.name+">")return;g=!1}var n,r,i,o,a,s,p="/"!==e.charAt(1),c=0===e.indexOf("\x3c!--"),u=t+e.length,l=f.charAt(u);p&&!c&&(v++,s={type:"tag",name:"",voidElement:!(a=!(o=0)),attrs:{},children:[]},(r=e).replace(L,function(e){if("="===e)return a=!0,void o++;a?0===o?((A[e]||"/"===r.charAt(r.length-2))&&(s.voidElement=!0),s.name=e):(s.attrs[i]=e.replace(/^['"]|['"]$/g,""),i=void 0):(i&&(s.attrs[i]=i),i=e),o++,a=!1}),"tag"===(h=s).type&&d.components[h.name]&&(h.type="component",g=!0),h.voidElement||g||!l||"<"===l||q(h.children,f,v,u,d.ignoreWhitespace),0===v&&y.push(h),(n=m[v-1])&&n.children.push(h),m[v]=h),(c||!p||h.voidElement)&&(c||v--,!g&&"<"!==l&&l&&q(n=-1===v?y:m[v].children,f,v,u,d.ignoreWhitespace))}),!y.length&&f.length&&q(y,f,0,0,d.ignoreWhitespace),y};function M(e){return e&&(e.children||e.props&&e.props.children)}function $(e){return e&&e.children?e.children:e.props&&e.props.children}function z(e,t,c){if(""===t)return[];if(!e)return[t];return $(function s(p,e){return"[object Array]"!==Object.prototype.toString.call(p)&&(p=[p]),"[object Array]"!==Object.prototype.toString.call(e)&&(e=[e]),e.reduce(function(e,t,n){if("tag"===t.type){var r=p[parseInt(t.name,10)]||{},i=O.isValidElement(r);if("string"==typeof r)e.push(r);else if(M(r)){var o=s($(r),t.children);r.dummy&&(r.children=o),e.push(O.cloneElement(r,w({},r.props,{key:n}),o))}else if("object"!==(void 0===r?"undefined":j(r))||i)e.push(r);else if(t.children[0]&&t.children[0].content){var a=c.services.interpolator.interpolate(t.children[0].content,r,c.language);e.push(a)}}else"text"===t.type&&e.push(t.content);return e},[])}([{dummy:!0,children:e}],K("<0>"+t+"</0>"))[0])}var B=function(e){function t(){return p(this,t),b(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return g(t,e),m(t,[{key:"render",value:function(){var e=w({i18n:this.context.i18n,t:this.context.t},this.props),t=e.children,n=e.count,r=e.parent,i=e.i18nKey,o=e.tOptions,a=e.values,s=e.defaults,p=e.components,c=e.ns,u=e.i18n,l=e.t,f=x(e,["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"]),d=l||u.t.bind(u),h=u.options&&u.options.react||{},y=void 0!==r?r:h.defaultTransParent,v=s||function a(s,e,t){return e?("[object Array]"!==Object.prototype.toString.call(e)&&(e=[e]),e.forEach(function(e,t){var n=""+t;if("string"==typeof e)s=""+s+e;else if(M(e))s=s+"<"+n+">"+a("",$(e),t+1)+"</"+n+">";else if(O.isValidElement(e))s=s+"<"+n+"></"+n+">";else if("object"===(void 0===e?"undefined":j(e))){var r=w({},e),i=r.format;delete r.format;var o=Object.keys(r);i&&1===o.length?s=s+"<"+n+">{{"+o[0]+", "+i+"}}</"+n+">":1===o.length?s=s+"<"+n+">{{"+o[0]+"}}</"+n+">":console&&console.warn&&console.warn("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",e)}else console&&console.warn&&console.warn("react-i18next: 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):""}("",t),m=h.hashTransKey,g=i||(m?m(v):v),b=g?d(g,w({},o,a,a?{}:{interpolation:{prefix:"#$?",suffix:"?$#"}},{defaultValue:v,count:n,ns:c})):v;if(h.exposeNamespace){var S="string"==typeof d.ns?d.ns:d.ns[0];if(i&&u.options&&u.options.nsSeparator&&-1<i.indexOf(u.options.nsSeparator))S=i.split(u.options.nsSeparator)[0];d.ns&&(f["data-i18next-options"]=JSON.stringify({ns:S}))}return y?O.createElement(y,f,z(p||t,b,u)):z(p||t,b,u)}}]),t}(O.Component);B.propTypes={count:r.number,parent:r.oneOfType([r.node,r.func]),i18nKey:r.string,i18n:r.object,t:r.func},B.contextTypes={i18n:r.object,t:r.func};var F=function(e){function r(e,t){p(this,r);var n=b(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,t));return n.i18n=e.i18n,n.defaultNS=e.defaultNS,e.initialI18nStore&&(n.i18n.services.resourceStore.data=e.initialI18nStore,n.i18n.options.isInitialSSR=!0),e.initialLanguage&&n.i18n.changeLanguage(e.initialLanguage),n.reportNS=e.reportNS,n}return g(r,e),m(r,[{key:"getChildContext",value:function(){return{i18n:this.i18n,defaultNS:this.defaultNS,reportNS:this.reportNS}}},{key:"componentWillReceiveProps",value:function(e){if(this.props.i18n!==e.i18n)throw new Error("[react-i18next][I18nextProvider]does not support changing the i18n object.")}},{key:"render",value:function(){var e=this.props.children;return n.Children.only(e)}}]),r}(n.Component);F.propTypes={i18n:r.object.isRequired,children:r.element.isRequired,defaultNS:r.string,reportNS:r.func},F.childContextTypes={i18n:r.object.isRequired,defaultNS:r.string,reportNS:r.func},F.defaultProps={defaultNS:void 0,reportNS:void 0};var H=Object.entries||function(e){for(var t=Object.keys(e),n=t.length,r=new Array(n);n--;)r[n]=[t[n],e[t[n]]];return r};function V(e){var t=[];return function(e,t){for(var n=0,r=e.length;n<r;n++)if("object"===j(e[n])){var i=!0,o=!1,a=void 0;try{for(var s,p=H(e[n])[Symbol.iterator]();!(i=(s=p.next()).done);i=!0){var c=S(s.value,2),u=c[0];t(c[1],n,u)}}catch(e){o=!0,a=e}finally{try{!i&&p.return&&p.return()}finally{if(o)throw a}}}else t(e[n],n)}(e,function(e){e&&e.namespaces&&e.namespaces.forEach(function(e){-1===t.indexOf(e)&&t.push(e)})}),t}e.translate=E,e.I18n=C,e.Interpolate=R,e.Trans=B,e.I18nextProvider=F,e.loadNamespaces=function(e){var t=e.components,n=e.i18n,r=V(t);return new Promise(function(e){n.loadNamespaces(r,e)})},e.reactI18nextModule=T,e.setDefaults=a,e.getDefaults=k,e.setI18n=s,e.getI18n=P,Object.defineProperty(e,"__esModule",{value:!0})});
@@ -13,12 +13,14 @@ class I18nextProvider extends Component {
13
13
  if (props.initialLanguage) {
14
14
  this.i18n.changeLanguage(props.initialLanguage);
15
15
  }
16
+ this.reportNS = props.reportNS;
16
17
  }
17
18
 
18
19
  getChildContext() {
19
20
  return {
20
21
  i18n: this.i18n,
21
- defaultNS: this.defaultNS
22
+ defaultNS: this.defaultNS,
23
+ reportNS: this.reportNS
22
24
  };
23
25
  }
24
26
 
@@ -37,16 +39,19 @@ class I18nextProvider extends Component {
37
39
  I18nextProvider.propTypes = {
38
40
  i18n: PropTypes.object.isRequired,
39
41
  children: PropTypes.element.isRequired,
40
- defaultNS: PropTypes.string
42
+ defaultNS: PropTypes.string,
43
+ reportNS: PropTypes.func
41
44
  };
42
45
 
43
46
  I18nextProvider.childContextTypes = {
44
47
  i18n: PropTypes.object.isRequired,
45
- defaultNS: PropTypes.string
48
+ defaultNS: PropTypes.string,
49
+ reportNS: PropTypes.func
46
50
  };
47
51
 
48
52
  I18nextProvider.defaultProps = {
49
- defaultNS: undefined
53
+ defaultNS: undefined,
54
+ reportNS: undefined
50
55
  };
51
56
 
52
57
  export default I18nextProvider;
package/src/translate.js CHANGED
@@ -28,6 +28,11 @@ export default function translate(namespaceArg, options = {}) {
28
28
  const i18nOptions = (this.i18n && this.i18n.options && this.i18n.options.react) || {};
29
29
  this.options = { ...getDefaults(), ...i18nOptions, ...options };
30
30
 
31
+ if (context.reportNS) {
32
+ const namespaces = Array.isArray(namespaceArg) ? namespaceArg : [namespaceArg];
33
+ namespaces.forEach(context.reportNS);
34
+ }
35
+
31
36
  this.getWrappedInstance = this.getWrappedInstance.bind(this);
32
37
  }
33
38
 
@@ -80,7 +85,8 @@ export default function translate(namespaceArg, options = {}) {
80
85
 
81
86
  Translate.contextTypes = {
82
87
  i18n: PropTypes.object,
83
- defaultNS: PropTypes.string
88
+ defaultNS: PropTypes.string,
89
+ reportNS: PropTypes.func
84
90
  };
85
91
 
86
92
  Translate.displayName = `Translate(${getDisplayName(WrappedComponent)})`;