react-i18next 11.8.14 → 11.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 +16 -0
- package/LICENSE +1 -1
- package/README.md +10 -3
- package/dist/amd/react-i18next.js +92 -43
- package/dist/amd/react-i18next.min.js +1 -1
- package/dist/commonjs/Trans.js +23 -6
- package/dist/commonjs/Translation.js +3 -1
- package/dist/commonjs/context.js +2 -1
- package/dist/commonjs/index.js +38 -1
- package/dist/commonjs/useTranslation.js +1 -1
- package/dist/commonjs/withSSR.js +4 -2
- package/dist/commonjs/withTranslation.js +4 -2
- package/dist/es/Trans.js +16 -4
- package/dist/es/Translation.js +2 -1
- package/dist/es/context.js +2 -1
- package/dist/es/index.js +19 -1
- package/dist/es/useTranslation.js +1 -1
- package/dist/es/withSSR.js +3 -2
- package/dist/es/withTranslation.js +3 -2
- package/dist/umd/react-i18next.js +92 -43
- package/dist/umd/react-i18next.min.js +1 -1
- package/icu.macro.js +370 -52
- package/package.json +35 -32
- package/react-i18next.js +92 -43
- package/react-i18next.min.js +1 -1
- package/src/Trans.js +11 -4
- package/src/context.js +7 -6
- package/src/index.js +9 -0
- package/ts4.1/icu.macro.d.ts +104 -0
- package/ts4.1/index.d.ts +41 -5
package/react-i18next.js
CHANGED
|
@@ -6,6 +6,44 @@
|
|
|
6
6
|
|
|
7
7
|
var React__default = 'default' in React ? React['default'] : React;
|
|
8
8
|
|
|
9
|
+
function ownKeys(object, enumerableOnly) {
|
|
10
|
+
var keys = Object.keys(object);
|
|
11
|
+
|
|
12
|
+
if (Object.getOwnPropertySymbols) {
|
|
13
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
14
|
+
|
|
15
|
+
if (enumerableOnly) {
|
|
16
|
+
symbols = symbols.filter(function (sym) {
|
|
17
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
keys.push.apply(keys, symbols);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return keys;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function _objectSpread2(target) {
|
|
28
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
29
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
30
|
+
|
|
31
|
+
if (i % 2) {
|
|
32
|
+
ownKeys(Object(source), true).forEach(function (key) {
|
|
33
|
+
_defineProperty(target, key, source[key]);
|
|
34
|
+
});
|
|
35
|
+
} else if (Object.getOwnPropertyDescriptors) {
|
|
36
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
37
|
+
} else {
|
|
38
|
+
ownKeys(Object(source)).forEach(function (key) {
|
|
39
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return target;
|
|
45
|
+
}
|
|
46
|
+
|
|
9
47
|
function _typeof(obj) {
|
|
10
48
|
"@babel/helpers - typeof";
|
|
11
49
|
|
|
@@ -59,40 +97,6 @@
|
|
|
59
97
|
return obj;
|
|
60
98
|
}
|
|
61
99
|
|
|
62
|
-
function ownKeys(object, enumerableOnly) {
|
|
63
|
-
var keys = Object.keys(object);
|
|
64
|
-
|
|
65
|
-
if (Object.getOwnPropertySymbols) {
|
|
66
|
-
var symbols = Object.getOwnPropertySymbols(object);
|
|
67
|
-
if (enumerableOnly) symbols = symbols.filter(function (sym) {
|
|
68
|
-
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
69
|
-
});
|
|
70
|
-
keys.push.apply(keys, symbols);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return keys;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
function _objectSpread2(target) {
|
|
77
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
78
|
-
var source = arguments[i] != null ? arguments[i] : {};
|
|
79
|
-
|
|
80
|
-
if (i % 2) {
|
|
81
|
-
ownKeys(Object(source), true).forEach(function (key) {
|
|
82
|
-
_defineProperty(target, key, source[key]);
|
|
83
|
-
});
|
|
84
|
-
} else if (Object.getOwnPropertyDescriptors) {
|
|
85
|
-
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
86
|
-
} else {
|
|
87
|
-
ownKeys(Object(source)).forEach(function (key) {
|
|
88
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
return target;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
100
|
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
97
101
|
if (source == null) return {};
|
|
98
102
|
var target = {};
|
|
@@ -138,14 +142,17 @@
|
|
|
138
142
|
}
|
|
139
143
|
|
|
140
144
|
function _iterableToArrayLimit(arr, i) {
|
|
141
|
-
|
|
145
|
+
var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]);
|
|
146
|
+
|
|
147
|
+
if (_i == null) return;
|
|
142
148
|
var _arr = [];
|
|
143
149
|
var _n = true;
|
|
144
150
|
var _d = false;
|
|
145
|
-
|
|
151
|
+
|
|
152
|
+
var _s, _e;
|
|
146
153
|
|
|
147
154
|
try {
|
|
148
|
-
for (
|
|
155
|
+
for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
|
|
149
156
|
_arr.push(_s.value);
|
|
150
157
|
|
|
151
158
|
if (i && _arr.length === i) break;
|
|
@@ -318,6 +325,7 @@
|
|
|
318
325
|
bindI18nStore: '',
|
|
319
326
|
transEmptyNodeValue: '',
|
|
320
327
|
transSupportBasicHtmlNodes: true,
|
|
328
|
+
transWrapTextNodes: '',
|
|
321
329
|
transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],
|
|
322
330
|
useSuspense: true
|
|
323
331
|
};
|
|
@@ -466,6 +474,9 @@
|
|
|
466
474
|
return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');
|
|
467
475
|
}
|
|
468
476
|
|
|
477
|
+
var _excluded = ["format"],
|
|
478
|
+
_excluded2 = ["children", "count", "parent", "i18nKey", "tOptions", "values", "defaults", "components", "ns", "i18n", "t"];
|
|
479
|
+
|
|
469
480
|
function hasChildren(node, checkLength) {
|
|
470
481
|
if (!node) return false;
|
|
471
482
|
var base = node.props ? node.props.children : node.children;
|
|
@@ -521,9 +532,11 @@
|
|
|
521
532
|
var content = nodesToString(childChildren, i18nOptions);
|
|
522
533
|
stringNode += "<".concat(childIndex, ">").concat(content, "</").concat(childIndex, ">");
|
|
523
534
|
}
|
|
535
|
+
} else if (child === null) {
|
|
536
|
+
warn("Trans: the passed in value is invalid - seems you passed in a null child.");
|
|
524
537
|
} else if (_typeof(child) === 'object') {
|
|
525
538
|
var format = child.format,
|
|
526
|
-
clone = _objectWithoutProperties(child,
|
|
539
|
+
clone = _objectWithoutProperties(child, _excluded);
|
|
527
540
|
|
|
528
541
|
var keys = Object.keys(clone);
|
|
529
542
|
|
|
@@ -638,7 +651,15 @@
|
|
|
638
651
|
})));
|
|
639
652
|
}
|
|
640
653
|
} else if (node.type === 'text') {
|
|
641
|
-
|
|
654
|
+
var wrapTextNodes = i18nOptions.transWrapTextNodes;
|
|
655
|
+
|
|
656
|
+
if (wrapTextNodes) {
|
|
657
|
+
mem.push(React__default.createElement(wrapTextNodes, {
|
|
658
|
+
key: "".concat(node.name, "-").concat(i)
|
|
659
|
+
}, node.content));
|
|
660
|
+
} else {
|
|
661
|
+
mem.push(node.content);
|
|
662
|
+
}
|
|
642
663
|
}
|
|
643
664
|
|
|
644
665
|
return mem;
|
|
@@ -665,7 +686,7 @@
|
|
|
665
686
|
ns = _ref.ns,
|
|
666
687
|
i18nFromProps = _ref.i18n,
|
|
667
688
|
tFromProps = _ref.t,
|
|
668
|
-
additionalProps = _objectWithoutProperties(_ref,
|
|
689
|
+
additionalProps = _objectWithoutProperties(_ref, _excluded2);
|
|
669
690
|
|
|
670
691
|
var _ref2 = React.useContext(I18nContext) || {},
|
|
671
692
|
i18nFromContext = _ref2.i18n,
|
|
@@ -804,12 +825,13 @@
|
|
|
804
825
|
});
|
|
805
826
|
}
|
|
806
827
|
|
|
828
|
+
var _excluded$1 = ["forwardedRef"];
|
|
807
829
|
function withTranslation(ns) {
|
|
808
830
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
809
831
|
return function Extend(WrappedComponent) {
|
|
810
832
|
function I18nextWithTranslation(_ref) {
|
|
811
833
|
var forwardedRef = _ref.forwardedRef,
|
|
812
|
-
rest = _objectWithoutProperties(_ref,
|
|
834
|
+
rest = _objectWithoutProperties(_ref, _excluded$1);
|
|
813
835
|
|
|
814
836
|
var _useTranslation = useTranslation(ns, rest),
|
|
815
837
|
_useTranslation2 = _slicedToArray(_useTranslation, 3),
|
|
@@ -845,10 +867,11 @@
|
|
|
845
867
|
};
|
|
846
868
|
}
|
|
847
869
|
|
|
870
|
+
var _excluded$2 = ["ns", "children"];
|
|
848
871
|
function Translation(props) {
|
|
849
872
|
var ns = props.ns,
|
|
850
873
|
children = props.children,
|
|
851
|
-
options = _objectWithoutProperties(props,
|
|
874
|
+
options = _objectWithoutProperties(props, _excluded$2);
|
|
852
875
|
|
|
853
876
|
var _useTranslation = useTranslation(ns, options),
|
|
854
877
|
_useTranslation2 = _slicedToArray(_useTranslation, 3),
|
|
@@ -905,12 +928,13 @@
|
|
|
905
928
|
}
|
|
906
929
|
}
|
|
907
930
|
|
|
931
|
+
var _excluded$3 = ["initialI18nStore", "initialLanguage"];
|
|
908
932
|
function withSSR() {
|
|
909
933
|
return function Extend(WrappedComponent) {
|
|
910
934
|
function I18nextWithSSR(_ref) {
|
|
911
935
|
var initialI18nStore = _ref.initialI18nStore,
|
|
912
936
|
initialLanguage = _ref.initialLanguage,
|
|
913
|
-
rest = _objectWithoutProperties(_ref,
|
|
937
|
+
rest = _objectWithoutProperties(_ref, _excluded$3);
|
|
914
938
|
|
|
915
939
|
useSSR(initialI18nStore, initialLanguage);
|
|
916
940
|
return React__default.createElement(WrappedComponent, _objectSpread2({}, rest));
|
|
@@ -923,17 +947,42 @@
|
|
|
923
947
|
};
|
|
924
948
|
}
|
|
925
949
|
|
|
950
|
+
var date = function date() {
|
|
951
|
+
return '';
|
|
952
|
+
};
|
|
953
|
+
var time = function time() {
|
|
954
|
+
return '';
|
|
955
|
+
};
|
|
956
|
+
var number = function number() {
|
|
957
|
+
return '';
|
|
958
|
+
};
|
|
959
|
+
var select = function select() {
|
|
960
|
+
return '';
|
|
961
|
+
};
|
|
962
|
+
var plural = function plural() {
|
|
963
|
+
return '';
|
|
964
|
+
};
|
|
965
|
+
var selectOrdinal = function selectOrdinal() {
|
|
966
|
+
return '';
|
|
967
|
+
};
|
|
968
|
+
|
|
926
969
|
exports.I18nContext = I18nContext;
|
|
927
970
|
exports.I18nextProvider = I18nextProvider;
|
|
928
971
|
exports.Trans = Trans;
|
|
929
972
|
exports.Translation = Translation;
|
|
930
973
|
exports.composeInitialProps = composeInitialProps;
|
|
974
|
+
exports.date = date;
|
|
931
975
|
exports.getDefaults = getDefaults;
|
|
932
976
|
exports.getI18n = getI18n;
|
|
933
977
|
exports.getInitialProps = getInitialProps;
|
|
934
978
|
exports.initReactI18next = initReactI18next;
|
|
979
|
+
exports.number = number;
|
|
980
|
+
exports.plural = plural;
|
|
981
|
+
exports.select = select;
|
|
982
|
+
exports.selectOrdinal = selectOrdinal;
|
|
935
983
|
exports.setDefaults = setDefaults;
|
|
936
984
|
exports.setI18n = setI18n;
|
|
985
|
+
exports.time = time;
|
|
937
986
|
exports.useSSR = useSSR;
|
|
938
987
|
exports.useTranslation = useTranslation;
|
|
939
988
|
exports.withSSR = withSSR;
|
package/react-i18next.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],n):n((e=e||self).ReactI18next={},e.React)}(this,(function(e,n){"use strict";var t="default"in n?n.default:n;function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function c(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function u(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],r=!0,i=!1,a=void 0;try{for(var o,c=e[Symbol.iterator]();!(r=(o=c.next()).done)&&(t.push(o.value),!n||t.length!==n);r=!0);}catch(e){i=!0,a=e}finally{try{r||null==c.return||c.return()}finally{if(i)throw a}}return t}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return l(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return l(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var f={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},p=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function d(e){var n={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=e.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(n.name=t[1],(f[t[1]]||"/"===e.charAt(e.length-2))&&(n.voidElement=!0),n.name.startsWith("!--"))){var r=e.indexOf("--\x3e");return{type:"comment",comment:-1!==r?e.slice(4,r):""}}for(var i=new RegExp(p),a=null;null!==(a=i.exec(e));)if(a[0].trim())if(a[1]){var o=a[1].trim(),c=[o,""];o.indexOf("=")>-1&&(c=o.split("=")),n.attrs[c[0]]=c[1],i.lastIndex--}else a[2]&&(n.attrs[a[2]]=a[3].trim().substring(1,a[3].length-1));return n}var m=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,g=/^\s*$/,h=Object.create(null);var y,v=function(e,n){n||(n={}),n.components||(n.components=h);var t,r=[],i=[],a=-1,o=!1;if(0!==e.indexOf("<")){var c=e.indexOf("<");r.push({type:"text",content:-1===c?e:e.substring(0,c)})}return e.replace(m,(function(c,s){if(o){if(c!=="</"+t.name+">")return;o=!1}var u,l="/"!==c.charAt(1),f=c.startsWith("\x3c!--"),p=s+c.length,m=e.charAt(p);if(f){var h=d(c);return a<0?(r.push(h),r):((u=i[a]).children.push(h),r)}if(l&&(a++,"tag"===(t=d(c)).type&&n.components[t.name]&&(t.type="component",o=!0),t.voidElement||o||!m||"<"===m||t.children.push({type:"text",content:e.slice(p,e.indexOf("<",p))}),0===a&&r.push(t),(u=i[a-1])&&u.children.push(t),i[a]=t),(!l||t.voidElement)&&(a>-1&&(t.voidElement||t.name===c.slice(2,-1))&&(a--,t=-1===a?r:i[a]),!o&&"<"!==m&&m)){u=-1===a?r:i[a].children;var y=e.indexOf("<",p),v=e.slice(p,-1===y?void 0:y);g.test(v)&&(v=" "),(y>-1&&a+u.length>=0||" "!==v)&&u.push({type:"text",content:v})}})),r},b={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0},O=t.createContext();function w(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};b=c(c({},b),e)}function j(){return b}var x=function(){function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.usedNamespaces={}}var n,t,r;return n=e,(t=[{key:"addUsedNamespaces",value:function(e){var n=this;e.forEach((function(e){n.usedNamespaces[e]||(n.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}])&&i(n.prototype,t),r&&i(n,r),e}();function E(e){y=e}function S(){return y}var N={type:"3rdParty",init:function(e){w(e.options.react),E(e)}};function I(e){return function(n){return new Promise((function(t){var r=k();e.getInitialProps?e.getInitialProps(n).then((function(e){t(c(c({},e),r))})):t(r)}))}}function k(){var e=S(),n=e.reportNamespaces?e.reportNamespaces.getUsedNamespaces():[],t={},r={};return e.languages.forEach((function(t){r[t]={},n.forEach((function(n){r[t][n]=e.getResourceBundle(t,n)||{}}))})),t.initialI18nStore=r,t.initialLanguage=e.language,t}function P(){if(console&&console.warn){for(var e,n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];"string"==typeof t[0]&&(t[0]="react-i18next:: ".concat(t[0])),(e=console).warn.apply(e,t)}}var R={};function C(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&R[n[0]]||("string"==typeof n[0]&&(R[n[0]]=new Date),P.apply(void 0,n))}function A(e,n,t){e.loadNamespaces(n,(function(){if(e.isInitialized)t();else{e.on("initialized",(function n(){setTimeout((function(){e.off("initialized",n)}),0),t()}))}}))}function T(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!n.languages||!n.languages.length)return C("i18n.languages were undefined or empty",n.languages),!0;var r=n.languages[0],i=!!n.options&&n.options.fallbackLng,a=n.languages[n.languages.length-1];if("cimode"===r.toLowerCase())return!0;var o=function(e,t){var r=n.services.backendConnector.state["".concat(e,"|").concat(t)];return-1===r||2===r};return!(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!o(n.isLanguageChangingTo,e))&&(!!n.hasResourceBundle(r,e)||(!n.services.backendConnector.backend||!(!o(r,e)||i&&!o(a,e))))}function z(e){return e.displayName||e.name||("string"==typeof e&&e.length>0?e:"Unknown")}function L(e,n){if(!e)return!1;var t=e.props?e.props.children:e.children;return n?t.length>0:!!t}function D(e){return e?e&&e.children?e.children:e.props&&e.props.children:[]}function B(e){return Array.isArray(e)?e:[e]}function U(e,n,i,a,o){if(""===n)return[];var s=a.transKeepBasicHtmlNodesFor||[],u=n&&new RegExp(s.join("|")).test(n);if(!e&&!u)return[n];var l={};!function e(n){B(n).forEach((function(n){"string"!=typeof n&&(L(n)?e(D(n)):"object"!==r(n)||t.isValidElement(n)||Object.assign(l,n))}))}(e);var f=i.services.interpolator.interpolate(n,c(c({},l),o),i.language),p=v("<0>".concat(f,"</0>"));function d(e,n,r){var i=D(e),a=g(i,n.children,r);return function(e){return"[object Array]"===Object.prototype.toString.call(e)&&e.every((function(e){return t.isValidElement(e)}))}(i)&&0===a.length?i:a}function m(e,n,r,i,a){e.dummy&&(e.children=n),r.push(t.cloneElement(e,c(c({},e.props),{},{key:i}),a?void 0:n))}function g(n,i,o){var l=B(n);return B(i).reduce((function(n,i,f){var p,h,y,v=i.children&&i.children[0]&&i.children[0].content;if("tag"===i.type){var b=l[parseInt(i.name,10)];!b&&1===o.length&&o[0][i.name]&&(b=o[0][i.name]),b||(b={});var O=0!==Object.keys(i.attrs).length?(p={props:i.attrs},(y=c({},h=b)).props=Object.assign(p.props,h.props),y):b,w=t.isValidElement(O),j=w&&L(i,!0)&&!i.voidElement,x=u&&"object"===r(O)&&O.dummy&&!w,E="object"===r(e)&&null!==e&&Object.hasOwnProperty.call(e,i.name);if("string"==typeof O)n.push(O);else if(L(O)||j){m(O,d(O,i,o),n,f)}else if(x){var S=g(l,i.children,o);n.push(t.cloneElement(O,c(c({},O.props),{},{key:f}),S))}else if(Number.isNaN(parseFloat(i.name))){if(E)m(O,d(O,i,o),n,f,i.voidElement);else if(a.transSupportBasicHtmlNodes&&s.indexOf(i.name)>-1)if(i.voidElement)n.push(t.createElement(i.name,{key:"".concat(i.name,"-").concat(f)}));else{var N=g(l,i.children,o);n.push(t.createElement(i.name,{key:"".concat(i.name,"-").concat(f)},N))}else if(i.voidElement)n.push("<".concat(i.name," />"));else{var I=g(l,i.children,o);n.push("<".concat(i.name,">").concat(I,"</").concat(i.name,">"))}}else if("object"!==r(O)||w)1===i.children.length&&v?n.push(t.cloneElement(O,c(c({},O.props),{},{key:f}),v)):n.push(t.cloneElement(O,c(c({},O.props),{},{key:f})));else{var k=i.children[0]?v:null;k&&n.push(k)}}else"text"===i.type&&n.push(i.content);return n}),[])}return D(g([{dummy:!0,children:e}],p,B(e||[]))[0])}function V(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.i18n,i=n.useContext(O)||{},a=i.i18n,o=i.defaultNS,s=r||a||S();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new x),!s){C("You will need to pass in an i18next instance by using initReactI18next");var l=function(e){return Array.isArray(e)?e[e.length-1]:e},f=[l,{},!1];return f.t=l,f.i18n={},f.ready=!1,f}s.options.react&&void 0!==s.options.react.wait&&C("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var p=c(c(c({},j()),s.options.react),t),d=p.useSuspense,m=e||o||s.options&&s.options.defaultNS;m="string"==typeof m?[m]:m||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(m);var g=(s.isInitialized||s.initializedStoreOnce)&&m.every((function(e){return T(e,s,p)}));function h(){return s.getFixedT(null,"fallback"===p.nsMode?m:m[0])}var y=n.useState(h),v=u(y,2),b=v[0],w=v[1],E=n.useRef(!0);n.useEffect((function(){var e=p.bindI18n,n=p.bindI18nStore;function t(){E.current&&w(h)}return E.current=!0,g||d||A(s,m,(function(){E.current&&w(h)})),e&&s&&s.on(e,t),n&&s&&s.store.on(n,t),function(){E.current=!1,e&&s&&e.split(" ").forEach((function(e){return s.off(e,t)})),n&&s&&n.split(" ").forEach((function(e){return s.store.off(e,t)}))}}),[s,m.join()]);var N=n.useRef(!0);n.useEffect((function(){E.current&&!N.current&&w(h),N.current=!1}),[s]);var I=[b,s,g];if(I.t=b,I.i18n=s,I.ready=g,g)return I;if(!g&&!d)return I;throw new Promise((function(e){A(s,m,(function(){e()}))}))}function K(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.i18n,a=n.useContext(O)||{},o=a.i18n,c=i||o||S();c.options&&c.options.isClone||(e&&!c.initializedStoreOnce&&(c.services.resourceStore.data=e,c.options.ns=Object.values(e).reduce((function(e,n){return Object.keys(n).forEach((function(n){e.indexOf(n)<0&&e.push(n)})),e}),c.options.ns),c.initializedStoreOnce=!0,c.isInitialized=!0),t&&!c.initializedLanguageOnce&&(c.changeLanguage(t),c.initializedLanguageOnce=!0))}e.I18nContext=O,e.I18nextProvider=function(e){var t=e.i18n,r=e.defaultNS,i=e.children,a=n.useMemo((function(){return{i18n:t,defaultNS:r}}),[t,r]);return n.createElement(O.Provider,{value:a},i)},e.Trans=function(e){var i=e.children,a=e.count,o=e.parent,u=e.i18nKey,l=e.tOptions,f=void 0===l?{}:l,p=e.values,d=e.defaults,m=e.components,g=e.ns,h=e.i18n,y=e.t,v=s(e,["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"]),b=n.useContext(O)||{},w=b.i18n,x=b.defaultNS,E=h||w||S();if(!E)return C("You will need to pass in an i18next instance by using i18nextReactModule"),i;var N=y||E.t.bind(E)||function(e){return e},I=c(c({},j()),E.options&&E.options.react),k=g||N.ns||x||E.options&&E.options.defaultNS;k="string"==typeof k?[k]:k||["translation"];var R=d||function e(n,i){if(!n)return"";var a="",o=B(n),c=i.transKeepBasicHtmlNodesFor||[];return o.forEach((function(n,o){if("string"==typeof n)a+="".concat(n);else if(t.isValidElement(n)){var u=Object.keys(n.props).length,l=c.indexOf(n.type)>-1,f=n.props.children;if(!f&&l&&0===u)a+="<".concat(n.type,"/>");else if(f||l&&0===u)if(n.props.i18nIsDynamicList)a+="<".concat(o,"></").concat(o,">");else if(l&&1===u&&"string"==typeof f)a+="<".concat(n.type,">").concat(f,"</").concat(n.type,">");else{var p=e(f,i);a+="<".concat(o,">").concat(p,"</").concat(o,">")}else a+="<".concat(o,"></").concat(o,">")}else if("object"===r(n)){var d=n.format,m=s(n,["format"]),g=Object.keys(m);if(1===g.length){var h=d?"".concat(g[0],", ").concat(d):g[0];a+="{{".concat(h,"}}")}else P("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else P("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",n)})),a}(i,I)||I.transEmptyNodeValue||u,A=I.hashTransKey,T=u||(A?A(R):R),z=p?f.interpolation:{interpolation:c(c({},f.interpolation),{},{prefix:"#$?",suffix:"?$#"})},L=c(c(c(c({},f),{},{count:a},p),z),{},{defaultValue:R,ns:k}),D=U(m||i,T?N(T,L):R,E,I,L),V=void 0!==o?o:I.defaultTransParent;return V?t.createElement(V,v,D):D},e.Translation=function(e){var n=e.ns,t=e.children,r=u(V(n,s(e,["ns","children"])),3),i=r[0],a=r[1],o=r[2];return t(i,{i18n:a,lng:a.language},o)},e.composeInitialProps=I,e.getDefaults=j,e.getI18n=S,e.getInitialProps=k,e.initReactI18next=N,e.setDefaults=w,e.setI18n=E,e.useSSR=K,e.useTranslation=V,e.withSSR=function(){return function(e){function n(n){var r=n.initialI18nStore,i=n.initialLanguage,a=s(n,["initialI18nStore","initialLanguage"]);return K(r,i),t.createElement(e,c({},a))}return n.getInitialProps=I(e),n.displayName="withI18nextSSR(".concat(z(e),")"),n.WrappedComponent=e,n}},e.withTranslation=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(r){function i(i){var a=i.forwardedRef,o=s(i,["forwardedRef"]),l=u(V(e,o),3),f=l[0],p=l[1],d=l[2],m=c(c({},o),{},{t:f,i18n:p,tReady:d});return n.withRef&&a?m.ref=a:!n.withRef&&a&&(m.forwardedRef=a),t.createElement(r,m)}i.displayName="withI18nextTranslation(".concat(z(r),")"),i.WrappedComponent=r;return n.withRef?t.forwardRef((function(e,n){return t.createElement(i,Object.assign({},e,{forwardedRef:n}))})):i}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],n):n((e=e||self).ReactI18next={},e.React)}(this,(function(e,n){"use strict";var t="default"in n?n.default:n;function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){c(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function u(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==t)return;var r,i,a=[],o=!0,c=!1;try{for(t=t.call(e);!(o=(r=t.next()).done)&&(a.push(r.value),!n||a.length!==n);o=!0);}catch(e){c=!0,i=e}finally{try{o||null==t.return||t.return()}finally{if(c)throw i}}return a}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return l(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return l(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var f={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},p=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function d(e){var n={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},t=e.match(/<\/?([^\s]+?)[/\s>]/);if(t&&(n.name=t[1],(f[t[1]]||"/"===e.charAt(e.length-2))&&(n.voidElement=!0),n.name.startsWith("!--"))){var r=e.indexOf("--\x3e");return{type:"comment",comment:-1!==r?e.slice(4,r):""}}for(var i=new RegExp(p),a=null;null!==(a=i.exec(e));)if(a[0].trim())if(a[1]){var o=a[1].trim(),c=[o,""];o.indexOf("=")>-1&&(c=o.split("=")),n.attrs[c[0]]=c[1],i.lastIndex--}else a[2]&&(n.attrs[a[2]]=a[3].trim().substring(1,a[3].length-1));return n}var m=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,h=/^\s*$/,g=Object.create(null);var y,v=function(e,n){n||(n={}),n.components||(n.components=g);var t,r=[],i=[],a=-1,o=!1;if(0!==e.indexOf("<")){var c=e.indexOf("<");r.push({type:"text",content:-1===c?e:e.substring(0,c)})}return e.replace(m,(function(c,s){if(o){if(c!=="</"+t.name+">")return;o=!1}var u,l="/"!==c.charAt(1),f=c.startsWith("\x3c!--"),p=s+c.length,m=e.charAt(p);if(f){var g=d(c);return a<0?(r.push(g),r):((u=i[a]).children.push(g),r)}if(l&&(a++,"tag"===(t=d(c)).type&&n.components[t.name]&&(t.type="component",o=!0),t.voidElement||o||!m||"<"===m||t.children.push({type:"text",content:e.slice(p,e.indexOf("<",p))}),0===a&&r.push(t),(u=i[a-1])&&u.children.push(t),i[a]=t),(!l||t.voidElement)&&(a>-1&&(t.voidElement||t.name===c.slice(2,-1))&&(a--,t=-1===a?r:i[a]),!o&&"<"!==m&&m)){u=-1===a?r:i[a].children;var y=e.indexOf("<",p),v=e.slice(p,-1===y?void 0:y);h.test(v)&&(v=" "),(y>-1&&a+u.length>=0||" "!==v)&&u.push({type:"text",content:v})}})),r},b={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0},O=t.createContext();function w(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};b=i(i({},b),e)}function x(){return b}var j=function(){function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.usedNamespaces={}}var n,t,r;return n=e,(t=[{key:"addUsedNamespaces",value:function(e){var n=this;e.forEach((function(e){n.usedNamespaces[e]||(n.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}])&&o(n.prototype,t),r&&o(n,r),e}();function E(e){y=e}function S(){return y}var N={type:"3rdParty",init:function(e){w(e.options.react),E(e)}};function I(e){return function(n){return new Promise((function(t){var r=k();e.getInitialProps?e.getInitialProps(n).then((function(e){t(i(i({},e),r))})):t(r)}))}}function k(){var e=S(),n=e.reportNamespaces?e.reportNamespaces.getUsedNamespaces():[],t={},r={};return e.languages.forEach((function(t){r[t]={},n.forEach((function(n){r[t][n]=e.getResourceBundle(t,n)||{}}))})),t.initialI18nStore=r,t.initialLanguage=e.language,t}function P(){if(console&&console.warn){for(var e,n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];"string"==typeof t[0]&&(t[0]="react-i18next:: ".concat(t[0])),(e=console).warn.apply(e,t)}}var R={};function C(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&R[n[0]]||("string"==typeof n[0]&&(R[n[0]]=new Date),P.apply(void 0,n))}function A(e,n,t){e.loadNamespaces(n,(function(){if(e.isInitialized)t();else{e.on("initialized",(function n(){setTimeout((function(){e.off("initialized",n)}),0),t()}))}}))}function T(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!n.languages||!n.languages.length)return C("i18n.languages were undefined or empty",n.languages),!0;var r=n.languages[0],i=!!n.options&&n.options.fallbackLng,a=n.languages[n.languages.length-1];if("cimode"===r.toLowerCase())return!0;var o=function(e,t){var r=n.services.backendConnector.state["".concat(e,"|").concat(t)];return-1===r||2===r};return!(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!o(n.isLanguageChangingTo,e))&&(!!n.hasResourceBundle(r,e)||(!n.services.backendConnector.backend||!(!o(r,e)||i&&!o(a,e))))}function z(e){return e.displayName||e.name||("string"==typeof e&&e.length>0?e:"Unknown")}var L=["format"],D=["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"];function B(e,n){if(!e)return!1;var t=e.props?e.props.children:e.children;return n?t.length>0:!!t}function U(e){return e?e&&e.children?e.children:e.props&&e.props.children:[]}function V(e){return Array.isArray(e)?e:[e]}function K(e,n,r,o,c){if(""===n)return[];var s=o.transKeepBasicHtmlNodesFor||[],u=n&&new RegExp(s.join("|")).test(n);if(!e&&!u)return[n];var l={};!function e(n){V(n).forEach((function(n){"string"!=typeof n&&(B(n)?e(U(n)):"object"!==a(n)||t.isValidElement(n)||Object.assign(l,n))}))}(e);var f=r.services.interpolator.interpolate(n,i(i({},l),c),r.language),p=v("<0>".concat(f,"</0>"));function d(e,n,r){var i=U(e),a=h(i,n.children,r);return function(e){return"[object Array]"===Object.prototype.toString.call(e)&&e.every((function(e){return t.isValidElement(e)}))}(i)&&0===a.length?i:a}function m(e,n,r,a,o){e.dummy&&(e.children=n),r.push(t.cloneElement(e,i(i({},e.props),{},{key:a}),o?void 0:n))}function h(n,r,c){var l=V(n);return V(r).reduce((function(n,r,f){var p,g,y,v=r.children&&r.children[0]&&r.children[0].content;if("tag"===r.type){var b=l[parseInt(r.name,10)];!b&&1===c.length&&c[0][r.name]&&(b=c[0][r.name]),b||(b={});var O=0!==Object.keys(r.attrs).length?(p={props:r.attrs},(y=i({},g=b)).props=Object.assign(p.props,g.props),y):b,w=t.isValidElement(O),x=w&&B(r,!0)&&!r.voidElement,j=u&&"object"===a(O)&&O.dummy&&!w,E="object"===a(e)&&null!==e&&Object.hasOwnProperty.call(e,r.name);if("string"==typeof O)n.push(O);else if(B(O)||x){m(O,d(O,r,c),n,f)}else if(j){var S=h(l,r.children,c);n.push(t.cloneElement(O,i(i({},O.props),{},{key:f}),S))}else if(Number.isNaN(parseFloat(r.name))){if(E)m(O,d(O,r,c),n,f,r.voidElement);else if(o.transSupportBasicHtmlNodes&&s.indexOf(r.name)>-1)if(r.voidElement)n.push(t.createElement(r.name,{key:"".concat(r.name,"-").concat(f)}));else{var N=h(l,r.children,c);n.push(t.createElement(r.name,{key:"".concat(r.name,"-").concat(f)},N))}else if(r.voidElement)n.push("<".concat(r.name," />"));else{var I=h(l,r.children,c);n.push("<".concat(r.name,">").concat(I,"</").concat(r.name,">"))}}else if("object"!==a(O)||w)1===r.children.length&&v?n.push(t.cloneElement(O,i(i({},O.props),{},{key:f}),v)):n.push(t.cloneElement(O,i(i({},O.props),{},{key:f})));else{var k=r.children[0]?v:null;k&&n.push(k)}}else if("text"===r.type){var P=o.transWrapTextNodes;P?n.push(t.createElement(P,{key:"".concat(r.name,"-").concat(f)},r.content)):n.push(r.content)}return n}),[])}return U(h([{dummy:!0,children:e}],p,V(e||[]))[0])}function W(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.i18n,a=n.useContext(O)||{},o=a.i18n,c=a.defaultNS,s=r||o||S();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new j),!s){C("You will need to pass in an i18next instance by using initReactI18next");var l=function(e){return Array.isArray(e)?e[e.length-1]:e},f=[l,{},!1];return f.t=l,f.i18n={},f.ready=!1,f}s.options.react&&void 0!==s.options.react.wait&&C("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var p=i(i(i({},x()),s.options.react),t),d=p.useSuspense,m=e||c||s.options&&s.options.defaultNS;m="string"==typeof m?[m]:m||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(m);var h=(s.isInitialized||s.initializedStoreOnce)&&m.every((function(e){return T(e,s,p)}));function g(){return s.getFixedT(null,"fallback"===p.nsMode?m:m[0])}var y=n.useState(g),v=u(y,2),b=v[0],w=v[1],E=n.useRef(!0);n.useEffect((function(){var e=p.bindI18n,n=p.bindI18nStore;function t(){E.current&&w(g)}return E.current=!0,h||d||A(s,m,(function(){E.current&&w(g)})),e&&s&&s.on(e,t),n&&s&&s.store.on(n,t),function(){E.current=!1,e&&s&&e.split(" ").forEach((function(e){return s.off(e,t)})),n&&s&&n.split(" ").forEach((function(e){return s.store.off(e,t)}))}}),[s,m.join()]);var N=n.useRef(!0);n.useEffect((function(){E.current&&!N.current&&w(g),N.current=!1}),[s]);var I=[b,s,h];if(I.t=b,I.i18n=s,I.ready=h,h)return I;if(!h&&!d)return I;throw new Promise((function(e){A(s,m,(function(){e()}))}))}var F=["forwardedRef"];var H=["ns","children"];function M(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.i18n,a=n.useContext(O)||{},o=a.i18n,c=i||o||S();c.options&&c.options.isClone||(e&&!c.initializedStoreOnce&&(c.services.resourceStore.data=e,c.options.ns=Object.values(e).reduce((function(e,n){return Object.keys(n).forEach((function(n){e.indexOf(n)<0&&e.push(n)})),e}),c.options.ns),c.initializedStoreOnce=!0,c.isInitialized=!0),t&&!c.initializedLanguageOnce&&(c.changeLanguage(t),c.initializedLanguageOnce=!0))}var $=["initialI18nStore","initialLanguage"];e.I18nContext=O,e.I18nextProvider=function(e){var t=e.i18n,r=e.defaultNS,i=e.children,a=n.useMemo((function(){return{i18n:t,defaultNS:r}}),[t,r]);return n.createElement(O.Provider,{value:a},i)},e.Trans=function(e){var r=e.children,o=e.count,c=e.parent,u=e.i18nKey,l=e.tOptions,f=void 0===l?{}:l,p=e.values,d=e.defaults,m=e.components,h=e.ns,g=e.i18n,y=e.t,v=s(e,D),b=n.useContext(O)||{},w=b.i18n,j=b.defaultNS,E=g||w||S();if(!E)return C("You will need to pass in an i18next instance by using i18nextReactModule"),r;var N=y||E.t.bind(E)||function(e){return e},I=i(i({},x()),E.options&&E.options.react),k=h||N.ns||j||E.options&&E.options.defaultNS;k="string"==typeof k?[k]:k||["translation"];var R=d||function e(n,r){if(!n)return"";var i="",o=V(n),c=r.transKeepBasicHtmlNodesFor||[];return o.forEach((function(n,o){if("string"==typeof n)i+="".concat(n);else if(t.isValidElement(n)){var u=Object.keys(n.props).length,l=c.indexOf(n.type)>-1,f=n.props.children;if(!f&&l&&0===u)i+="<".concat(n.type,"/>");else if(f||l&&0===u)if(n.props.i18nIsDynamicList)i+="<".concat(o,"></").concat(o,">");else if(l&&1===u&&"string"==typeof f)i+="<".concat(n.type,">").concat(f,"</").concat(n.type,">");else{var p=e(f,r);i+="<".concat(o,">").concat(p,"</").concat(o,">")}else i+="<".concat(o,"></").concat(o,">")}else if(null===n)P("Trans: the passed in value is invalid - seems you passed in a null child.");else if("object"===a(n)){var d=n.format,m=s(n,L),h=Object.keys(m);if(1===h.length){var g=d?"".concat(h[0],", ").concat(d):h[0];i+="{{".concat(g,"}}")}else P("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else P("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",n)})),i}(r,I)||I.transEmptyNodeValue||u,A=I.hashTransKey,T=u||(A?A(R):R),z=p?f.interpolation:{interpolation:i(i({},f.interpolation),{},{prefix:"#$?",suffix:"?$#"})},B=i(i(i(i({},f),{},{count:o},p),z),{},{defaultValue:R,ns:k}),U=K(m||r,T?N(T,B):R,E,I,B),W=void 0!==c?c:I.defaultTransParent;return W?t.createElement(W,v,U):U},e.Translation=function(e){var n=e.ns,t=e.children,r=u(W(n,s(e,H)),3),i=r[0],a=r[1],o=r[2];return t(i,{i18n:a,lng:a.language},o)},e.composeInitialProps=I,e.date=function(){return""},e.getDefaults=x,e.getI18n=S,e.getInitialProps=k,e.initReactI18next=N,e.number=function(){return""},e.plural=function(){return""},e.select=function(){return""},e.selectOrdinal=function(){return""},e.setDefaults=w,e.setI18n=E,e.time=function(){return""},e.useSSR=M,e.useTranslation=W,e.withSSR=function(){return function(e){function n(n){var r=n.initialI18nStore,a=n.initialLanguage,o=s(n,$);return M(r,a),t.createElement(e,i({},o))}return n.getInitialProps=I(e),n.displayName="withI18nextSSR(".concat(z(e),")"),n.WrappedComponent=e,n}},e.withTranslation=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(r){function a(a){var o=a.forwardedRef,c=s(a,F),l=u(W(e,c),3),f=l[0],p=l[1],d=l[2],m=i(i({},c),{},{t:f,i18n:p,tReady:d});return n.withRef&&o?m.ref=o:!n.withRef&&o&&(m.forwardedRef=o),t.createElement(r,m)}a.displayName="withI18nextTranslation(".concat(z(r),")"),a.WrappedComponent=r;return n.withRef?t.forwardRef((function(e,n){return t.createElement(a,Object.assign({},e,{forwardedRef:n}))})):a}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/src/Trans.js
CHANGED
|
@@ -17,7 +17,7 @@ function getChildren(node) {
|
|
|
17
17
|
|
|
18
18
|
function hasValidReactChildren(children) {
|
|
19
19
|
if (Object.prototype.toString.call(children) !== '[object Array]') return false;
|
|
20
|
-
return children.every(child => React.isValidElement(child));
|
|
20
|
+
return children.every((child) => React.isValidElement(child));
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
function getAsArray(data) {
|
|
@@ -72,6 +72,8 @@ export function nodesToString(children, i18nOptions) {
|
|
|
72
72
|
const content = nodesToString(childChildren, i18nOptions);
|
|
73
73
|
stringNode += `<${childIndex}>${content}</${childIndex}>`;
|
|
74
74
|
}
|
|
75
|
+
} else if (child === null) {
|
|
76
|
+
warn(`Trans: the passed in value is invalid - seems you passed in a null child.`);
|
|
75
77
|
} else if (typeof child === 'object') {
|
|
76
78
|
// e.g. lorem {{ value, format }} ipsum
|
|
77
79
|
const { format, ...clone } = child;
|
|
@@ -115,7 +117,7 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
115
117
|
function getData(childs) {
|
|
116
118
|
const childrenArray = getAsArray(childs);
|
|
117
119
|
|
|
118
|
-
childrenArray.forEach(child => {
|
|
120
|
+
childrenArray.forEach((child) => {
|
|
119
121
|
if (typeof child === 'string') return;
|
|
120
122
|
if (hasChildren(child)) getData(getChildren(child));
|
|
121
123
|
else if (typeof child === 'object' && !React.isValidElement(child))
|
|
@@ -240,7 +242,12 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
|
|
|
240
242
|
mem.push(React.cloneElement(child, { ...child.props, key: i }));
|
|
241
243
|
}
|
|
242
244
|
} else if (node.type === 'text') {
|
|
243
|
-
|
|
245
|
+
const wrapTextNodes = i18nOptions.transWrapTextNodes;
|
|
246
|
+
if (wrapTextNodes) {
|
|
247
|
+
mem.push(React.createElement(wrapTextNodes, { key: `${node.name}-${i}` }, node.content));
|
|
248
|
+
} else {
|
|
249
|
+
mem.push(node.content);
|
|
250
|
+
}
|
|
244
251
|
}
|
|
245
252
|
return mem;
|
|
246
253
|
}, []);
|
|
@@ -275,7 +282,7 @@ export function Trans({
|
|
|
275
282
|
return children;
|
|
276
283
|
}
|
|
277
284
|
|
|
278
|
-
const t = tFromProps || i18n.t.bind(i18n) || (k => k);
|
|
285
|
+
const t = tFromProps || i18n.t.bind(i18n) || ((k) => k);
|
|
279
286
|
|
|
280
287
|
const reactI18nextOptions = { ...getDefaults(), ...(i18n.options && i18n.options.react) };
|
|
281
288
|
|
package/src/context.js
CHANGED
|
@@ -6,6 +6,7 @@ let defaultOptions = {
|
|
|
6
6
|
// nsMode: 'fallback' // loop through all namespaces given to hook, HOC, render prop for key lookup
|
|
7
7
|
transEmptyNodeValue: '',
|
|
8
8
|
transSupportBasicHtmlNodes: true,
|
|
9
|
+
transWrapTextNodes: '',
|
|
9
10
|
transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],
|
|
10
11
|
// hashTransKey: key => key // calculate a key for Trans component based on defaultValue
|
|
11
12
|
useSuspense: true,
|
|
@@ -29,7 +30,7 @@ export class ReportNamespaces {
|
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
addUsedNamespaces(namespaces) {
|
|
32
|
-
namespaces.forEach(ns => {
|
|
33
|
+
namespaces.forEach((ns) => {
|
|
33
34
|
if (!this.usedNamespaces[ns]) this.usedNamespaces[ns] = true;
|
|
34
35
|
});
|
|
35
36
|
}
|
|
@@ -57,12 +58,12 @@ export const initReactI18next = {
|
|
|
57
58
|
};
|
|
58
59
|
|
|
59
60
|
export function composeInitialProps(ForComponent) {
|
|
60
|
-
return ctx =>
|
|
61
|
-
new Promise(resolve => {
|
|
61
|
+
return (ctx) =>
|
|
62
|
+
new Promise((resolve) => {
|
|
62
63
|
const i18nInitialProps = getInitialProps();
|
|
63
64
|
|
|
64
65
|
if (ForComponent.getInitialProps) {
|
|
65
|
-
ForComponent.getInitialProps(ctx).then(componentsInitialProps => {
|
|
66
|
+
ForComponent.getInitialProps(ctx).then((componentsInitialProps) => {
|
|
66
67
|
resolve({
|
|
67
68
|
...componentsInitialProps,
|
|
68
69
|
...i18nInitialProps,
|
|
@@ -94,9 +95,9 @@ export function getInitialProps() {
|
|
|
94
95
|
|
|
95
96
|
const ret = {};
|
|
96
97
|
const initialI18nStore = {};
|
|
97
|
-
i18n.languages.forEach(l => {
|
|
98
|
+
i18n.languages.forEach((l) => {
|
|
98
99
|
initialI18nStore[l] = {};
|
|
99
|
-
namespaces.forEach(ns => {
|
|
100
|
+
namespaces.forEach((ns) => {
|
|
100
101
|
initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};
|
|
101
102
|
});
|
|
102
103
|
});
|
package/src/index.js
CHANGED
|
@@ -16,3 +16,12 @@ export {
|
|
|
16
16
|
composeInitialProps,
|
|
17
17
|
getInitialProps,
|
|
18
18
|
} from './context';
|
|
19
|
+
|
|
20
|
+
// dummy functions for icu.macro support
|
|
21
|
+
|
|
22
|
+
export const date = () => '';
|
|
23
|
+
export const time = () => '';
|
|
24
|
+
export const number = () => '';
|
|
25
|
+
export const select = () => '';
|
|
26
|
+
export const plural = () => '';
|
|
27
|
+
export const selectOrdinal = () => '';
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Namespace, DefaultNamespace, TFuncKey, Trans } from '.';
|
|
3
|
+
import { i18n } from 'i18next';
|
|
4
|
+
|
|
5
|
+
export { Trans };
|
|
6
|
+
|
|
7
|
+
declare module 'react-i18next/icu.macro' {
|
|
8
|
+
export interface PluralSubProps<
|
|
9
|
+
K extends TFuncKey<N> extends infer A ? A : never,
|
|
10
|
+
N extends Namespace = DefaultNamespace
|
|
11
|
+
> {
|
|
12
|
+
children?: never;
|
|
13
|
+
i18nKey?: K;
|
|
14
|
+
i18n?: i18n;
|
|
15
|
+
ns?: N;
|
|
16
|
+
count: number;
|
|
17
|
+
zero?: string | React.ReactElement;
|
|
18
|
+
one?: string | React.ReactElement;
|
|
19
|
+
two?: string | React.ReactElement;
|
|
20
|
+
few?: string | React.ReactElement;
|
|
21
|
+
many?: string | React.ReactElement;
|
|
22
|
+
other: string | React.ReactElement;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
type PluralProps<
|
|
26
|
+
T,
|
|
27
|
+
K extends TFuncKey<N> extends infer A ? A : never,
|
|
28
|
+
N extends Namespace = DefaultNamespace
|
|
29
|
+
> = {
|
|
30
|
+
[P in keyof T]: P extends keyof PluralSubProps<K, N>
|
|
31
|
+
? // support the standard properties of Plural
|
|
32
|
+
PluralSubProps<K, N>[P]
|
|
33
|
+
: // this supports infinite $0={..} or $123={..}
|
|
34
|
+
// technically it also supports $-1={..} and $2.3={..} but we don't need to
|
|
35
|
+
// worry since that's invalid syntax.
|
|
36
|
+
P extends `$${number}`
|
|
37
|
+
? string | React.ReactElement
|
|
38
|
+
: never;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
interface SelectSubProps {
|
|
42
|
+
[key: string]: string | React.ReactElement;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
interface NoChildren {
|
|
46
|
+
children?: never;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
interface SelectRequiredProps<
|
|
50
|
+
K extends TFuncKey<N> extends infer A ? A : never,
|
|
51
|
+
N extends Namespace = DefaultNamespace
|
|
52
|
+
> extends NoChildren {
|
|
53
|
+
i18nKey?: K;
|
|
54
|
+
i18n?: i18n;
|
|
55
|
+
ns?: N;
|
|
56
|
+
other: string | React.ReactElement;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// defining it this way ensures that `other` is always defined, but allows
|
|
60
|
+
// unlimited other select types.
|
|
61
|
+
type SelectProps<
|
|
62
|
+
K extends TFuncKey<N> extends infer A ? A : never,
|
|
63
|
+
N extends Namespace = DefaultNamespace
|
|
64
|
+
> = SelectSubProps & SelectRequiredProps<K, N>;
|
|
65
|
+
|
|
66
|
+
function Plural<
|
|
67
|
+
T,
|
|
68
|
+
K extends TFuncKey<N> extends infer A ? A : never,
|
|
69
|
+
N extends Namespace = DefaultNamespace
|
|
70
|
+
>(props: PluralProps<T, K, N> & NoChildren): React.ReactElement;
|
|
71
|
+
|
|
72
|
+
function SelectOrdinal<
|
|
73
|
+
T,
|
|
74
|
+
K extends TFuncKey<N> extends infer A ? A : never,
|
|
75
|
+
N extends Namespace = DefaultNamespace
|
|
76
|
+
>(props: PluralProps<T, K, N> & NoChildren): React.ReactElement;
|
|
77
|
+
|
|
78
|
+
function Select<
|
|
79
|
+
K extends TFuncKey<N> extends infer A ? A : never,
|
|
80
|
+
N extends Namespace = DefaultNamespace
|
|
81
|
+
>(props: SelectProps<K, N>): React.ReactElement;
|
|
82
|
+
|
|
83
|
+
function date(strings: TemplateStringsArray, variable: Date): string;
|
|
84
|
+
function time(strings: TemplateStringsArray, variable: Date): string;
|
|
85
|
+
function number(strings: TemplateStringsArray, variable: number): string;
|
|
86
|
+
|
|
87
|
+
type ValidInterpolations = React.ReactElement | string;
|
|
88
|
+
|
|
89
|
+
function plural(
|
|
90
|
+
strings: TemplateStringsArray,
|
|
91
|
+
variable: number,
|
|
92
|
+
...args: ValidInterpolations[]
|
|
93
|
+
): string;
|
|
94
|
+
function selectOrdinal(
|
|
95
|
+
strings: TemplateStringsArray,
|
|
96
|
+
variable: number,
|
|
97
|
+
...args: ValidInterpolations[]
|
|
98
|
+
): string;
|
|
99
|
+
function select(
|
|
100
|
+
strings: TemplateStringsArray,
|
|
101
|
+
variable: string,
|
|
102
|
+
...args: ValidInterpolations[]
|
|
103
|
+
): string;
|
|
104
|
+
}
|
package/ts4.1/index.d.ts
CHANGED
|
@@ -21,10 +21,45 @@ type Subtract<T extends K, K> = Omit<T, keyof K>;
|
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* This interface can be augmented by users to add types to `react-i18next` default resources.
|
|
24
|
+
*
|
|
25
|
+
* @deprecated use the `resources` key of `CustomTypeOptions` instead
|
|
24
26
|
*/
|
|
25
27
|
export interface Resources {}
|
|
28
|
+
/**
|
|
29
|
+
* This interface can be augmented by users to add types to `react-i18next`. It accepts a `defaultNS` and `resources` properties.
|
|
30
|
+
*
|
|
31
|
+
* Usage:
|
|
32
|
+
* ```ts
|
|
33
|
+
* // react-i18next.d.ts
|
|
34
|
+
* import 'react-i18next';
|
|
35
|
+
* declare module 'react-i18next' {
|
|
36
|
+
* interface CustomTypeOptions {
|
|
37
|
+
* defaultNS: 'custom';
|
|
38
|
+
* resources: {
|
|
39
|
+
* custom: {
|
|
40
|
+
* foo: 'foo';
|
|
41
|
+
* };
|
|
42
|
+
* };
|
|
43
|
+
* }
|
|
44
|
+
* }
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export interface CustomTypeOptions {}
|
|
48
|
+
|
|
49
|
+
type MergeBy<T, K> = Omit<T, keyof K> & K;
|
|
26
50
|
|
|
27
|
-
type
|
|
51
|
+
type TypeOptions = MergeBy<
|
|
52
|
+
{
|
|
53
|
+
defaultNS: 'translation';
|
|
54
|
+
resources: Resources;
|
|
55
|
+
},
|
|
56
|
+
CustomTypeOptions
|
|
57
|
+
>;
|
|
58
|
+
|
|
59
|
+
type DefaultResources = TypeOptions['resources'];
|
|
60
|
+
type DefaultNamespace<T = TypeOptions['defaultNS']> = T extends Fallback<string> ? T : string;
|
|
61
|
+
|
|
62
|
+
type Fallback<F, T = keyof DefaultResources> = [T] extends [never] ? F : T;
|
|
28
63
|
|
|
29
64
|
export type Namespace<F = Fallback<string>> = F | F[];
|
|
30
65
|
|
|
@@ -90,13 +125,16 @@ type NormalizeMultiReturn<T, V> = V extends `${infer N}:${infer R}`
|
|
|
90
125
|
: never
|
|
91
126
|
: never;
|
|
92
127
|
|
|
93
|
-
export type TFuncKey<
|
|
128
|
+
export type TFuncKey<
|
|
129
|
+
N extends Namespace = DefaultNamespace,
|
|
130
|
+
T = DefaultResources
|
|
131
|
+
> = N extends (keyof T)[]
|
|
94
132
|
? NormalizeMulti<T, N[number]>
|
|
95
133
|
: N extends keyof T
|
|
96
134
|
? Normalize<T[N]>
|
|
97
135
|
: string;
|
|
98
136
|
|
|
99
|
-
export type TFuncReturn<N, TKeys, TDefaultResult, T =
|
|
137
|
+
export type TFuncReturn<N, TKeys, TDefaultResult, T = DefaultResources> = N extends (keyof T)[]
|
|
100
138
|
? NormalizeMultiReturn<T, TKeys>
|
|
101
139
|
: N extends keyof T
|
|
102
140
|
? NormalizeReturn<T[N], TKeys>
|
|
@@ -158,8 +196,6 @@ type UseTranslationResponse<N extends Namespace> = [TFunction<N>, i18n, boolean]
|
|
|
158
196
|
ready: boolean;
|
|
159
197
|
};
|
|
160
198
|
|
|
161
|
-
type DefaultNamespace<T = 'translation'> = T extends Fallback<string> ? T : string;
|
|
162
|
-
|
|
163
199
|
export function useTranslation<N extends Namespace = DefaultNamespace>(
|
|
164
200
|
ns?: N,
|
|
165
201
|
options?: UseTranslationOptions,
|