@zohodesk/i18n 1.0.0-beta.4 → 1.0.0-beta.41-murphy
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/README.md +130 -4
- package/docs/murphy/01-MURPHY_OVERVIEW.md +148 -0
- package/docs/murphy/02-MURPHY_ARCHITECTURE.md +283 -0
- package/docs/murphy/03-MURPHY_BACKEND_CONFIG.md +337 -0
- package/docs/murphy/04-MURPHY_FRONTEND_INIT.md +437 -0
- package/docs/murphy/05-MURPHY_DESK_CLIENT_USAGE.md +467 -0
- package/docs/murphy/06-MURPHY_I18N_INTEGRATION.md +402 -0
- package/docs/murphy/07-MURPHY_WHY_I18N_APPROACH.md +391 -0
- package/es/I18NContext.js +1 -2
- package/es/components/DateTimeDiffFormat.js +185 -209
- package/es/components/FormatText.js +7 -27
- package/es/components/HOCI18N.js +35 -58
- package/es/components/I18N.js +48 -74
- package/es/components/I18NProvider.js +59 -93
- package/es/components/PluralFormat.js +28 -51
- package/es/components/UserTimeDiffFormat.js +66 -81
- package/es/components/__tests__/DateTimeDiffFormat.spec.js +810 -663
- package/es/components/__tests__/FormatText.spec.js +22 -19
- package/es/components/__tests__/HOCI18N.spec.js +19 -25
- package/es/components/__tests__/I18N.spec.js +23 -21
- package/es/components/__tests__/I18NProvider.spec.js +38 -47
- package/es/components/__tests__/PluralFormat.spec.js +23 -20
- package/es/components/__tests__/UserTimeDiffFormat.spec.js +1259 -1110
- package/es/index.js +13 -15
- package/es/utils/__tests__/jsxTranslations.spec.js +170 -0
- package/es/utils/errorReporter.js +41 -0
- package/es/utils/index.js +543 -0
- package/es/utils/jsxTranslations.js +185 -0
- package/lib/I18NContext.js +5 -10
- package/lib/components/DateTimeDiffFormat.js +131 -146
- package/lib/components/FormatText.js +29 -42
- package/lib/components/HOCI18N.js +34 -45
- package/lib/components/I18N.js +46 -57
- package/lib/components/I18NProvider.js +72 -95
- package/lib/components/PluralFormat.js +39 -55
- package/lib/components/UserTimeDiffFormat.js +76 -84
- package/lib/components/__tests__/DateTimeDiffFormat.spec.js +751 -635
- package/lib/components/__tests__/FormatText.spec.js +21 -30
- package/lib/components/__tests__/HOCI18N.spec.js +22 -41
- package/lib/components/__tests__/I18N.spec.js +20 -33
- package/lib/components/__tests__/I18NProvider.spec.js +40 -63
- package/lib/components/__tests__/PluralFormat.spec.js +23 -35
- package/lib/components/__tests__/UserTimeDiffFormat.spec.js +1195 -1046
- package/lib/index.js +83 -104
- package/lib/utils/__tests__/jsxTranslations.spec.js +172 -0
- package/lib/utils/errorReporter.js +49 -0
- package/lib/utils/index.js +583 -0
- package/lib/utils/jsxTranslations.js +216 -0
- package/package.json +4 -3
- package/src/components/DateTimeDiffFormat.js +84 -55
- package/src/components/I18N.js +2 -0
- package/src/components/I18NProvider.js +44 -33
- package/src/components/UserTimeDiffFormat.js +22 -18
- package/src/index.js +12 -9
- package/src/utils/__tests__/jsxTranslations.spec.js +213 -0
- package/src/utils/errorReporter.js +48 -0
- package/src/utils/index.js +644 -0
- package/src/utils/jsxTranslations.js +199 -0
- package/es/components/NewDateFormat.js +0 -50
- package/es/offset.js +0 -629
- package/es/timezones.js +0 -118
- package/es/utils.js +0 -621
- package/lib/components/NewDateFormat.js +0 -68
- package/lib/offset.js +0 -634
- package/lib/timezones.js +0 -129
- package/lib/utils.js +0 -651
- package/src/components/NewDateFormat.js +0 -60
- package/src/offset.js +0 -629
- package/src/timezones.js +0 -113
- package/src/utils.js +0 -648
package/lib/index.js
CHANGED
|
@@ -1,243 +1,222 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _utils = require('./utils');
|
|
9
|
-
|
|
10
|
-
Object.defineProperty(exports, 'browserOffset', {
|
|
7
|
+
Object.defineProperty(exports, "DateTimeDiffFormat", {
|
|
11
8
|
enumerable: true,
|
|
12
9
|
get: function get() {
|
|
13
|
-
return
|
|
10
|
+
return _DateTimeDiffFormat["default"];
|
|
14
11
|
}
|
|
15
12
|
});
|
|
16
|
-
Object.defineProperty(exports,
|
|
13
|
+
Object.defineProperty(exports, "FormatText", {
|
|
17
14
|
enumerable: true,
|
|
18
15
|
get: function get() {
|
|
19
|
-
return
|
|
16
|
+
return _FormatText["default"];
|
|
20
17
|
}
|
|
21
18
|
});
|
|
22
|
-
Object.defineProperty(exports,
|
|
19
|
+
Object.defineProperty(exports, "HOCI18N", {
|
|
23
20
|
enumerable: true,
|
|
24
21
|
get: function get() {
|
|
25
|
-
return
|
|
22
|
+
return _HOCI18N["default"];
|
|
26
23
|
}
|
|
27
24
|
});
|
|
28
|
-
Object.defineProperty(exports,
|
|
25
|
+
Object.defineProperty(exports, "I18N", {
|
|
29
26
|
enumerable: true,
|
|
30
27
|
get: function get() {
|
|
31
|
-
return
|
|
28
|
+
return _I18N["default"];
|
|
32
29
|
}
|
|
33
30
|
});
|
|
34
|
-
Object.defineProperty(exports,
|
|
31
|
+
Object.defineProperty(exports, "I18NContext", {
|
|
35
32
|
enumerable: true,
|
|
36
33
|
get: function get() {
|
|
37
|
-
return
|
|
34
|
+
return _I18NContext.I18NContext;
|
|
38
35
|
}
|
|
39
36
|
});
|
|
40
|
-
Object.defineProperty(exports,
|
|
37
|
+
Object.defineProperty(exports, "I18NProvider", {
|
|
41
38
|
enumerable: true,
|
|
42
39
|
get: function get() {
|
|
43
|
-
return
|
|
40
|
+
return _I18NProvider["default"];
|
|
44
41
|
}
|
|
45
42
|
});
|
|
46
|
-
Object.defineProperty(exports,
|
|
43
|
+
Object.defineProperty(exports, "I18N_ERROR_TYPES", {
|
|
47
44
|
enumerable: true,
|
|
48
45
|
get: function get() {
|
|
49
|
-
return
|
|
46
|
+
return _errorReporter.I18N_ERROR_TYPES;
|
|
50
47
|
}
|
|
51
48
|
});
|
|
52
|
-
Object.defineProperty(exports,
|
|
49
|
+
Object.defineProperty(exports, "PluralFormat", {
|
|
53
50
|
enumerable: true,
|
|
54
51
|
get: function get() {
|
|
55
|
-
return
|
|
52
|
+
return _PluralFormat["default"];
|
|
56
53
|
}
|
|
57
54
|
});
|
|
58
|
-
Object.defineProperty(exports,
|
|
55
|
+
Object.defineProperty(exports, "UserTimeDiffFormat", {
|
|
59
56
|
enumerable: true,
|
|
60
57
|
get: function get() {
|
|
61
|
-
return
|
|
58
|
+
return _UserTimeDiffFormat["default"];
|
|
62
59
|
}
|
|
63
60
|
});
|
|
64
|
-
Object.defineProperty(exports,
|
|
61
|
+
Object.defineProperty(exports, "dayi18n", {
|
|
65
62
|
enumerable: true,
|
|
66
63
|
get: function get() {
|
|
67
|
-
return _utils.
|
|
64
|
+
return _utils.dayi18n;
|
|
68
65
|
}
|
|
69
66
|
});
|
|
70
|
-
Object.defineProperty(exports,
|
|
67
|
+
Object.defineProperty(exports, "formatDate", {
|
|
71
68
|
enumerable: true,
|
|
72
69
|
get: function get() {
|
|
73
|
-
return _utils.
|
|
70
|
+
return _utils.formatDate;
|
|
74
71
|
}
|
|
75
72
|
});
|
|
76
|
-
Object.defineProperty(exports,
|
|
73
|
+
Object.defineProperty(exports, "getDatePatternWithoutYear", {
|
|
77
74
|
enumerable: true,
|
|
78
75
|
get: function get() {
|
|
79
|
-
return _utils.
|
|
76
|
+
return _utils.getDatePatternWithoutYear;
|
|
80
77
|
}
|
|
81
78
|
});
|
|
82
|
-
Object.defineProperty(exports,
|
|
79
|
+
Object.defineProperty(exports, "getDiffObj", {
|
|
83
80
|
enumerable: true,
|
|
84
81
|
get: function get() {
|
|
85
|
-
return _utils.
|
|
82
|
+
return _utils.getDiffObj;
|
|
86
83
|
}
|
|
87
84
|
});
|
|
88
|
-
Object.defineProperty(exports,
|
|
85
|
+
Object.defineProperty(exports, "getI18NInfo", {
|
|
89
86
|
enumerable: true,
|
|
90
87
|
get: function get() {
|
|
91
|
-
return _utils.
|
|
88
|
+
return _utils.getI18NInfo;
|
|
92
89
|
}
|
|
93
90
|
});
|
|
94
|
-
|
|
91
|
+
exports.getI18NValue = void 0;
|
|
92
|
+
Object.defineProperty(exports, "getLyears", {
|
|
95
93
|
enumerable: true,
|
|
96
94
|
get: function get() {
|
|
97
|
-
return _utils.
|
|
95
|
+
return _utils.getLyears;
|
|
98
96
|
}
|
|
99
97
|
});
|
|
100
|
-
Object.defineProperty(exports,
|
|
98
|
+
Object.defineProperty(exports, "getSuffix", {
|
|
101
99
|
enumerable: true,
|
|
102
100
|
get: function get() {
|
|
103
|
-
return _utils.
|
|
101
|
+
return _utils.getSuffix;
|
|
104
102
|
}
|
|
105
103
|
});
|
|
106
|
-
Object.defineProperty(exports,
|
|
104
|
+
Object.defineProperty(exports, "getValues", {
|
|
107
105
|
enumerable: true,
|
|
108
106
|
get: function get() {
|
|
109
|
-
return _utils.
|
|
107
|
+
return _utils.getValues;
|
|
110
108
|
}
|
|
111
109
|
});
|
|
112
|
-
Object.defineProperty(exports,
|
|
110
|
+
Object.defineProperty(exports, "i18NProviderUtils", {
|
|
113
111
|
enumerable: true,
|
|
114
112
|
get: function get() {
|
|
115
|
-
return
|
|
113
|
+
return _I18NProvider.i18NProviderUtils;
|
|
116
114
|
}
|
|
117
115
|
});
|
|
118
|
-
Object.defineProperty(exports,
|
|
116
|
+
Object.defineProperty(exports, "isToday", {
|
|
119
117
|
enumerable: true,
|
|
120
118
|
get: function get() {
|
|
121
|
-
return _utils.
|
|
119
|
+
return _utils.isToday;
|
|
122
120
|
}
|
|
123
121
|
});
|
|
124
|
-
Object.defineProperty(exports,
|
|
122
|
+
Object.defineProperty(exports, "isTomorrow", {
|
|
125
123
|
enumerable: true,
|
|
126
124
|
get: function get() {
|
|
127
|
-
return _utils.
|
|
125
|
+
return _utils.isTomorrow;
|
|
128
126
|
}
|
|
129
127
|
});
|
|
130
|
-
Object.defineProperty(exports,
|
|
128
|
+
Object.defineProperty(exports, "isTwoWeeksOrMore", {
|
|
131
129
|
enumerable: true,
|
|
132
130
|
get: function get() {
|
|
133
|
-
return _utils.
|
|
131
|
+
return _utils.isTwoWeeksOrMore;
|
|
134
132
|
}
|
|
135
133
|
});
|
|
136
|
-
|
|
137
|
-
var _timezones = require('./timezones');
|
|
138
|
-
|
|
139
|
-
Object.defineProperty(exports, 'unpack', {
|
|
134
|
+
Object.defineProperty(exports, "isWithinAWeek", {
|
|
140
135
|
enumerable: true,
|
|
141
136
|
get: function get() {
|
|
142
|
-
return
|
|
137
|
+
return _utils.isWithinAWeek;
|
|
143
138
|
}
|
|
144
139
|
});
|
|
145
|
-
Object.defineProperty(exports,
|
|
140
|
+
Object.defineProperty(exports, "isYesterday", {
|
|
146
141
|
enumerable: true,
|
|
147
142
|
get: function get() {
|
|
148
|
-
return
|
|
143
|
+
return _utils.isYesterday;
|
|
149
144
|
}
|
|
150
145
|
});
|
|
151
|
-
|
|
152
|
-
var _I18NContext = require('./I18NContext');
|
|
153
|
-
|
|
154
|
-
Object.defineProperty(exports, 'I18NContext', {
|
|
146
|
+
Object.defineProperty(exports, "monthi18n", {
|
|
155
147
|
enumerable: true,
|
|
156
148
|
get: function get() {
|
|
157
|
-
return
|
|
149
|
+
return _utils.monthi18n;
|
|
158
150
|
}
|
|
159
151
|
});
|
|
160
|
-
|
|
161
|
-
var _I18NProvider = require('./components/I18NProvider');
|
|
162
|
-
|
|
163
|
-
Object.defineProperty(exports, 'I18NProvider', {
|
|
152
|
+
Object.defineProperty(exports, "pad", {
|
|
164
153
|
enumerable: true,
|
|
165
154
|
get: function get() {
|
|
166
|
-
return
|
|
155
|
+
return _utils.pad;
|
|
167
156
|
}
|
|
168
157
|
});
|
|
169
|
-
Object.defineProperty(exports,
|
|
158
|
+
Object.defineProperty(exports, "placeComponentForTags", {
|
|
170
159
|
enumerable: true,
|
|
171
160
|
get: function get() {
|
|
172
|
-
return
|
|
161
|
+
return _jsxTranslations.placeComponentForTags;
|
|
173
162
|
}
|
|
174
163
|
});
|
|
175
|
-
|
|
176
|
-
var _I18N = require('./components/I18N');
|
|
177
|
-
|
|
178
|
-
Object.defineProperty(exports, 'I18N', {
|
|
164
|
+
Object.defineProperty(exports, "replaceI18NValuesWithRegex", {
|
|
179
165
|
enumerable: true,
|
|
180
166
|
get: function get() {
|
|
181
|
-
return
|
|
167
|
+
return _utils.replaceI18NValuesWithRegex;
|
|
182
168
|
}
|
|
183
169
|
});
|
|
184
|
-
|
|
185
|
-
var _HOCI18N = require('./components/HOCI18N');
|
|
186
|
-
|
|
187
|
-
Object.defineProperty(exports, 'HOCI18N', {
|
|
170
|
+
Object.defineProperty(exports, "reportI18NError", {
|
|
188
171
|
enumerable: true,
|
|
189
172
|
get: function get() {
|
|
190
|
-
return
|
|
173
|
+
return _errorReporter.reportI18NError;
|
|
191
174
|
}
|
|
192
175
|
});
|
|
193
|
-
|
|
194
|
-
var _FormatText = require('./components/FormatText');
|
|
195
|
-
|
|
196
|
-
Object.defineProperty(exports, 'FormatText', {
|
|
176
|
+
Object.defineProperty(exports, "setI18NKeyMapping", {
|
|
197
177
|
enumerable: true,
|
|
198
178
|
get: function get() {
|
|
199
|
-
return
|
|
179
|
+
return _utils.setI18NKeyMapping;
|
|
200
180
|
}
|
|
201
181
|
});
|
|
202
|
-
|
|
203
|
-
var _PluralFormat = require('./components/PluralFormat');
|
|
204
|
-
|
|
205
|
-
Object.defineProperty(exports, 'PluralFormat', {
|
|
182
|
+
Object.defineProperty(exports, "setLocalizedData", {
|
|
206
183
|
enumerable: true,
|
|
207
184
|
get: function get() {
|
|
208
|
-
return
|
|
185
|
+
return _utils.setLocalizedData;
|
|
209
186
|
}
|
|
210
187
|
});
|
|
211
|
-
|
|
212
|
-
var _DateTimeDiffFormat = require('./components/DateTimeDiffFormat');
|
|
213
|
-
|
|
214
|
-
Object.defineProperty(exports, 'DateTimeDiffFormat', {
|
|
188
|
+
Object.defineProperty(exports, "timei18n", {
|
|
215
189
|
enumerable: true,
|
|
216
190
|
get: function get() {
|
|
217
|
-
return
|
|
191
|
+
return _utils.timei18n;
|
|
218
192
|
}
|
|
219
193
|
});
|
|
220
|
-
|
|
221
|
-
var _UserTimeDiffFormat = require('./components/UserTimeDiffFormat');
|
|
222
|
-
|
|
223
|
-
Object.defineProperty(exports, 'UserTimeDiffFormat', {
|
|
194
|
+
Object.defineProperty(exports, "unescapeUnicode", {
|
|
224
195
|
enumerable: true,
|
|
225
196
|
get: function get() {
|
|
226
|
-
return
|
|
197
|
+
return _utils.unescapeUnicode;
|
|
227
198
|
}
|
|
228
199
|
});
|
|
229
|
-
|
|
230
|
-
var _NewDateFormat = require('./components/NewDateFormat');
|
|
231
|
-
|
|
232
|
-
Object.defineProperty(exports, 'NewDateFormat', {
|
|
200
|
+
Object.defineProperty(exports, "userDateFormat", {
|
|
233
201
|
enumerable: true,
|
|
234
202
|
get: function get() {
|
|
235
|
-
return
|
|
203
|
+
return _utils.userDateFormat;
|
|
236
204
|
}
|
|
237
205
|
});
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
206
|
+
var _utils = require("./utils");
|
|
207
|
+
var _errorReporter = require("./utils/errorReporter");
|
|
208
|
+
var _I18NContext = require("./I18NContext");
|
|
209
|
+
var _I18NProvider = _interopRequireWildcard(require("./components/I18NProvider"));
|
|
210
|
+
var _I18N = _interopRequireDefault(require("./components/I18N"));
|
|
211
|
+
var _HOCI18N = _interopRequireDefault(require("./components/HOCI18N"));
|
|
212
|
+
var _FormatText = _interopRequireDefault(require("./components/FormatText"));
|
|
213
|
+
var _PluralFormat = _interopRequireDefault(require("./components/PluralFormat"));
|
|
214
|
+
var _DateTimeDiffFormat = _interopRequireDefault(require("./components/DateTimeDiffFormat"));
|
|
215
|
+
var _UserTimeDiffFormat = _interopRequireDefault(require("./components/UserTimeDiffFormat"));
|
|
216
|
+
var _jsxTranslations = require("./utils/jsxTranslations");
|
|
217
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
218
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
219
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
241
220
|
var getI18NValue = exports.getI18NValue = function getI18NValue(i18n, key, values) {
|
|
242
221
|
return (0, _utils.getI18NValue)(i18n)(key, values);
|
|
243
222
|
};
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _react = _interopRequireDefault(require("react"));
|
|
4
|
+
var _jsxTranslations = require("../jsxTranslations");
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
6
|
+
function Bold(_ref) {
|
|
7
|
+
var children = _ref.children;
|
|
8
|
+
return /*#__PURE__*/_react["default"].createElement("b", null, children);
|
|
9
|
+
}
|
|
10
|
+
function Simple(props) {
|
|
11
|
+
return /*#__PURE__*/_react["default"].createElement("span", null, props.children);
|
|
12
|
+
}
|
|
13
|
+
describe('Verifying splitMatchedExp method', function () {
|
|
14
|
+
it('A string with no match test', function () {
|
|
15
|
+
var response = (0, _jsxTranslations.splitMatchedExp)({
|
|
16
|
+
expression: '{[0-9]+?}',
|
|
17
|
+
charLenToOmit: 1,
|
|
18
|
+
string: "Hello"
|
|
19
|
+
});
|
|
20
|
+
var expected = {
|
|
21
|
+
splitString: ['Hello'],
|
|
22
|
+
matchedExpKeys: []
|
|
23
|
+
};
|
|
24
|
+
expect(response).toEqual(expected);
|
|
25
|
+
});
|
|
26
|
+
it('A string with JSX Tag placeholder test', function () {
|
|
27
|
+
var response = (0, _jsxTranslations.splitMatchedExp)({
|
|
28
|
+
expression: '<[A-Za-z0-9]+?>',
|
|
29
|
+
charLenToOmit: 1,
|
|
30
|
+
string: "Hi <00Good> occurs <01Strong>"
|
|
31
|
+
});
|
|
32
|
+
var expected = {
|
|
33
|
+
splitString: ["Hi ", " occurs ", ""],
|
|
34
|
+
matchedExpKeys: ['00Good', '01Strong']
|
|
35
|
+
};
|
|
36
|
+
expect(response).toEqual(expected);
|
|
37
|
+
});
|
|
38
|
+
it('A string with String placeholder test', function () {
|
|
39
|
+
var response = (0, _jsxTranslations.splitMatchedExp)({
|
|
40
|
+
expression: '{[0-9]+?}',
|
|
41
|
+
charLenToOmit: 1,
|
|
42
|
+
string: "Hi {0} occurs {1}"
|
|
43
|
+
});
|
|
44
|
+
var expected = {
|
|
45
|
+
splitString: ["Hi ", " occurs ", ""],
|
|
46
|
+
matchedExpKeys: ['0', '1']
|
|
47
|
+
};
|
|
48
|
+
expect(response).toEqual(expected);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
describe('Verifying generateChildren Method', function () {
|
|
52
|
+
it('A string with Tag Placeholder and String placeholders', function () {
|
|
53
|
+
var children = {
|
|
54
|
+
'00Good': function Good() {},
|
|
55
|
+
'01Strong': function Strong() {}
|
|
56
|
+
};
|
|
57
|
+
var response = (0, _jsxTranslations.generateChildren)({
|
|
58
|
+
children: children,
|
|
59
|
+
child: 'Hi <00Good>{0}<01Strong>'
|
|
60
|
+
});
|
|
61
|
+
var expected = {
|
|
62
|
+
newChildren: [['Hi '], children['00Good'], ['', ''], children['01Strong']],
|
|
63
|
+
stringPlaceHolders: {
|
|
64
|
+
0: [],
|
|
65
|
+
2: ['0']
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
expect(response).toEqual(expected);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe('Verifying the replaceWithComponentPlaceHolder method', function () {
|
|
72
|
+
it('A JSX Tag with string', function () {
|
|
73
|
+
var response = (0, _jsxTranslations.replaceWithComponentPlaceHolder)({
|
|
74
|
+
componentId: 'Simple',
|
|
75
|
+
i18nKey: '<Simple>Hi everyone</Simple>',
|
|
76
|
+
childrenLength: 1
|
|
77
|
+
});
|
|
78
|
+
var expected = '<01Simple>';
|
|
79
|
+
expect(response).toBe(expected);
|
|
80
|
+
});
|
|
81
|
+
it('A string with multiple JSX Tags', function () {
|
|
82
|
+
var response = (0, _jsxTranslations.replaceWithComponentPlaceHolder)({
|
|
83
|
+
componentId: 'Simple',
|
|
84
|
+
i18nKey: 'Greetings <Simple>Hi everyone</Simple> for the <Simple>Day</Simple>',
|
|
85
|
+
childrenLength: 1
|
|
86
|
+
});
|
|
87
|
+
var expected = 'Greetings <01Simple> for the <Simple>Day</Simple>';
|
|
88
|
+
expect(response).toBe(expected);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
describe('Verifying the createElement method', function () {
|
|
92
|
+
it('A component Id with JSX children and Dynamic String placeholders', function () {
|
|
93
|
+
var jsxChild = (0, _jsxTranslations.createElement)({
|
|
94
|
+
componentId: 'Simple',
|
|
95
|
+
children: [['Greetings']],
|
|
96
|
+
stringPlaceHolders: {
|
|
97
|
+
0: []
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
var response = (0, _jsxTranslations.createElement)({
|
|
101
|
+
componentId: -1,
|
|
102
|
+
children: [['Hi ', ','], jsxChild, [' for the day']],
|
|
103
|
+
stringPlaceHolders: {
|
|
104
|
+
0: ['0'],
|
|
105
|
+
2: []
|
|
106
|
+
}
|
|
107
|
+
})({
|
|
108
|
+
components: {
|
|
109
|
+
Simple: {
|
|
110
|
+
type: Simple
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
values: ['Zoho Desk']
|
|
114
|
+
});
|
|
115
|
+
var expected = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, "Hi Zoho Desk,", /*#__PURE__*/_react["default"].createElement(Simple, null, "Greetings"), " for the day");
|
|
116
|
+
expect(JSON.stringify(response)).toEqual(JSON.stringify(expected));
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
describe('Verifying the prepareI18NFunc method', function () {
|
|
120
|
+
//Hi <Bo01ld>Gigiee</Bo01ld>,<Simple> How are you</Simple><Simple>Make it simple</Simple>
|
|
121
|
+
it('A text with sibling JSX tags and alphanumeric JSX Tags', function () {
|
|
122
|
+
var response = (0, _jsxTranslations.prepareI18NFunc)({
|
|
123
|
+
i18nKey: 'Hi <Bo01ld>Gigiee</Bo01ld>,<Simple>How are you</Simple><Simple>Make it simple</Simple>'
|
|
124
|
+
})({
|
|
125
|
+
components: {
|
|
126
|
+
'Bo01ld': {
|
|
127
|
+
type: Bold
|
|
128
|
+
},
|
|
129
|
+
Simple: {
|
|
130
|
+
type: Simple
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
var expected = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, "Hi ", /*#__PURE__*/_react["default"].createElement(Bold, null, "Gigiee"), ",", /*#__PURE__*/_react["default"].createElement(Simple, null, "How are you"), /*#__PURE__*/_react["default"].createElement(Simple, null, "Make it simple"));
|
|
135
|
+
expect(JSON.stringify(response)).toEqual(JSON.stringify(expected));
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
describe('Verifying getI18NComponent method', function () {
|
|
139
|
+
it('An i18n key with JSX tag in its value', function () {
|
|
140
|
+
var i18n = {
|
|
141
|
+
'support.demo': 'Hi <Bo01ld>Gigiee</Bo01ld>,<Simple>How are you</Simple><Simple>Make it simple</Simple>'
|
|
142
|
+
};
|
|
143
|
+
var I18N = (0, _jsxTranslations.getI18NComponent)(i18n);
|
|
144
|
+
var response = I18N('support.demo')({
|
|
145
|
+
components: {
|
|
146
|
+
'Bo01ld': {
|
|
147
|
+
type: Bold
|
|
148
|
+
},
|
|
149
|
+
Simple: {
|
|
150
|
+
type: Simple
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
var expected = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, "Hi ", /*#__PURE__*/_react["default"].createElement(Bold, null, "Gigiee"), ",", /*#__PURE__*/_react["default"].createElement(Simple, null, "How are you"), /*#__PURE__*/_react["default"].createElement(Simple, null, "Make it simple"));
|
|
155
|
+
expect(JSON.stringify(response)).toEqual(JSON.stringify(expected));
|
|
156
|
+
});
|
|
157
|
+
it('Testing absence of i18n object', function () {
|
|
158
|
+
var I18N = (0, _jsxTranslations.getI18NComponent)();
|
|
159
|
+
var response = I18N('support.demo');
|
|
160
|
+
var expected = 'support.demo';
|
|
161
|
+
expect(expected).toBe(response);
|
|
162
|
+
});
|
|
163
|
+
it('Testing of missing i18n key', function () {
|
|
164
|
+
var i18n = {
|
|
165
|
+
'support.demo': 'Demo'
|
|
166
|
+
};
|
|
167
|
+
var I18N = (0, _jsxTranslations.getI18NComponent)(i18n);
|
|
168
|
+
var response = I18N('support.need');
|
|
169
|
+
var expected = 'support.need';
|
|
170
|
+
expect(expected).toBe(response);
|
|
171
|
+
});
|
|
172
|
+
});
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.I18N_ERROR_TYPES = void 0;
|
|
7
|
+
exports.getFallbackText = getFallbackText;
|
|
8
|
+
exports.reportI18NError = reportI18NError;
|
|
9
|
+
var I18N_ERROR_TYPES = exports.I18N_ERROR_TYPES = {
|
|
10
|
+
UNDEFINED_OBJECT: 'I18N_UNDEFINED_OBJECT',
|
|
11
|
+
MISSING_KEY: 'I18N_MISSING_KEY',
|
|
12
|
+
NUMERIC_FALLBACK: 'I18N_NUMERIC_FALLBACK'
|
|
13
|
+
};
|
|
14
|
+
var reportedKeys = new Set();
|
|
15
|
+
function reportI18NError(type, key) {
|
|
16
|
+
var dedupeKey = "".concat(type, ":").concat(key);
|
|
17
|
+
if (reportedKeys.has(dedupeKey)) {
|
|
18
|
+
console.log("[i18n-reporter] SKIPPED (already reported): ".concat(dedupeKey));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
var errorMessage = "i18n ".concat(type, ": ").concat(key);
|
|
22
|
+
var errorData = {
|
|
23
|
+
errorType: type,
|
|
24
|
+
i18nKey: key,
|
|
25
|
+
category: 'i18n'
|
|
26
|
+
};
|
|
27
|
+
try {
|
|
28
|
+
if (typeof window._windowDeskCustomError === 'function') {
|
|
29
|
+
console.log("[i18n-reporter] Using DESK path (deskCustomError): ".concat(dedupeKey));
|
|
30
|
+
window._windowDeskCustomError(errorData, errorMessage, errorData);
|
|
31
|
+
} else if (window.murphy) {
|
|
32
|
+
console.log("[i18n-reporter] Using IM path (murphy direct): ".concat(dedupeKey));
|
|
33
|
+
window.murphy.addCustomTracking(errorData);
|
|
34
|
+
var error = new Error(errorMessage);
|
|
35
|
+
error.name = type;
|
|
36
|
+
window.murphy.error(error);
|
|
37
|
+
} else {
|
|
38
|
+
console.log("[i18n-reporter] SKIPPED (Murphy not loaded): ".concat(dedupeKey));
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
} catch (err) {
|
|
42
|
+
console.error("[i18n-reporter] ERROR reporting: ".concat(dedupeKey), err);
|
|
43
|
+
}
|
|
44
|
+
reportedKeys.add(dedupeKey);
|
|
45
|
+
}
|
|
46
|
+
function getFallbackText(key) {
|
|
47
|
+
var isNumeric = /^\d+$/.test(key);
|
|
48
|
+
return isNumeric ? "text.unavailable.".concat(key) : key;
|
|
49
|
+
}
|