i18next 21.6.13 → 21.6.14

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 ADDED
@@ -0,0 +1,1519 @@
1
+ ## 21.6.14
2
+
3
+ - fix formatter for false inline options
4
+
5
+ ## 21.6.13
6
+
7
+ - make sure resolvedLanguage is set if lazy loading resources
8
+
9
+ ## 21.6.12
10
+
11
+ - fix ordinal-suffixes for saveMissingWithPlurals [1734](https://github.com/i18next/i18next/pull/1734)
12
+
13
+ ## 21.6.11
14
+
15
+ - make sure key and additionally optional defaultValue are passed to parseMissingKeyHandler function [1445](https://github.com/i18next/react-i18next/issues/1445)
16
+
17
+ ## 21.6.10
18
+
19
+ - fix: types for hasLoadedNamespace [1724](https://github.com/i18next/i18next/pull/1724)
20
+
21
+ ## 21.6.9
22
+
23
+ - fix: respect skipOnVariables option passed in t function also for $t() usage
24
+
25
+ ## 21.6.8
26
+
27
+ - fix: respect skipOnVariables option passed in t function
28
+
29
+ ## 21.6.7
30
+
31
+ - fix: consistently lowercase new formatter names internally
32
+
33
+ ## 21.6.6
34
+
35
+ - fix: deepFind fallback when accessing missing flat dotted key [1719](https://github.com/i18next/i18next/issues/1719)
36
+
37
+ ## 21.6.5
38
+
39
+ - fix: passed format parameter value truncation in options argument for custom formatter [1715](https://github.com/i18next/i18next/issues/1715)
40
+
41
+ ## 21.6.4
42
+
43
+ - fix: skipOnVariables (and all other interpolation options should respect defaults) [1711](https://github.com/i18next/i18next/issues/1711)
44
+
45
+ ## 21.6.3
46
+
47
+ - types: wait option does not exist anymore for react-i18next
48
+
49
+ ## 21.6.2
50
+
51
+ - remove console.log statement
52
+
53
+ ## 21.6.1
54
+
55
+ - fix when completely lazy loading namespaces [1709](https://github.com/i18next/i18next/issues/1709)
56
+
57
+ ## 21.6.0
58
+
59
+ - add \_zero suffix lookup if count === 0 [1705](https://github.com/i18next/i18next/pull/1705)
60
+
61
+ ## 21.5.6
62
+
63
+ - fix: correct defaults for plural forms (if supplied) [1703](https://github.com/i18next/i18next/issues/1703)
64
+
65
+ ## 21.5.5
66
+
67
+ - fix: prevent TypeError when using `returnObjects: true` with non string values [1702](https://github.com/i18next/i18next/issues/1702)
68
+
69
+ ## 21.5.4
70
+
71
+ - include version info in generated package.json of esm dist
72
+
73
+ ## 21.5.3
74
+
75
+ - do not use options.interpolation reference
76
+
77
+ ## 21.5.2
78
+
79
+ - missing named exports for TypeScript usage [1692](https://github.com/i18next/i18next/issues/1692)
80
+
81
+ ## 21.5.1
82
+
83
+ - add package.json to exports subpath
84
+
85
+ ## 21.5.0
86
+
87
+ - named exports for esm usage [1681](https://github.com/i18next/i18next/pull/1681)
88
+
89
+ ## 21.4.2
90
+
91
+ - trim multiple formatters, fixes [1689](https://github.com/i18next/i18next/issues/1689)
92
+
93
+ ## 21.4.1
94
+
95
+ - rtl fix for -arab language codes
96
+
97
+ ## 21.4.0
98
+
99
+ - bind all i18next functions to this, this way you can for example just use t() instead of i18n.t() [1682](https://github.com/i18next/i18next/issues/1682)
100
+
101
+ ## 21.3.3
102
+
103
+ - apply default interpolation formatter when interpolation options don't specify one [1680](https://github.com/i18next/i18next/issues/1680)
104
+
105
+ ## 21.3.2
106
+
107
+ - formatter typescript declarations [1679](https://github.com/i18next/i18next/pull/1679)
108
+
109
+ ## 21.3.1
110
+
111
+ - get rid of internal isDummy check to prevent react-native issue [1675](https://github.com/i18next/i18next/issues/1675)
112
+
113
+ ## 21.3.0
114
+
115
+ - adds support for formats provided by Intl API (number, currency, datetime, relativedate, list)
116
+
117
+ ## 21.2.6
118
+
119
+ - optimize do skip natural language detection also if user provided nsSeparator option is passed via direct options
120
+
121
+ ## 21.2.5
122
+
123
+ - do skip natural language detection also if user provided nsSeparator option is passed [1665](https://github.com/i18next/i18next/issues/1665)
124
+
125
+ ## 21.2.4
126
+
127
+ - optimize Intl api check
128
+
129
+ ## 21.2.3
130
+
131
+ - fix Intl.PluralRules fallback
132
+
133
+ ## 21.2.2
134
+
135
+ - log error if Intl.PluralRules API is not available
136
+
137
+ ## 21.2.1
138
+
139
+ - do skip natural language detection, if user provided keySeparator option is passed [1670](https://github.com/i18next/i18next/issues/1670)
140
+
141
+ ## 21.2.0
142
+
143
+ - provide bundled esm distributable [1667](https://github.com/i18next/i18next/issues/1667)
144
+
145
+ ## 21.1.1
146
+
147
+ - optimize natural language detection [1661](https://github.com/i18next/i18next/issues/1661)
148
+
149
+ ## 21.1.0
150
+
151
+ - A new RTL support added for `ckb` language code
152
+
153
+ ## 21.0.2
154
+
155
+ - fix defaultNS regression if translation namespace is defined in ns option, fixes #1658
156
+
157
+ ## 21.0.1
158
+
159
+ - fix typescript typo for skipOnVariables
160
+
161
+ ## 21.0.0
162
+
163
+ **This is a major breaking release:**
164
+
165
+ - introduce new v4 json format (intl plural forms with ordinal support), simplifyPluralSuffix not used anymore
166
+ - `skipOnVariables` by default now is true
167
+ - automatically detect natural language keys (no need to set nsSeparator or keySeparator to false)
168
+ - remove deprecated whitelist features
169
+ - introduce new i18next.resolvedLanguage property
170
+
171
+ ➡️ check out the [migration guide](https://www.i18next.com/misc/migration-guide#v-20-x-x-to-v-21-0-0)
172
+
173
+ ## 20.6.1
174
+
175
+ - fix deepFind if looking for nesting array item
176
+
177
+ ## 20.6.0
178
+
179
+ - feature: key prefix option [1644](https://github.com/i18next/i18next/pull/1644)
180
+
181
+ ## 20.5.0
182
+
183
+ - introduce missingKeyNoValueFallbackToKey option
184
+
185
+ ## 20.4.0
186
+
187
+ - change to return false when a nullable argument is passed [1635](https://github.com/i18next/i18next/pull/1635)
188
+ - make sure parseMissingKeyHandler is called when defaultValue is provided [1354](https://github.com/i18next/react-i18next/issues/1354)
189
+ - types: Fix i18n.use() cannot pass module constructors in TypeScript [1442](https://github.com/i18next/i18next/pull/1442)
190
+ - types: fix TypeScript definition for "loaded" event handler [1637](https://github.com/i18next/i18next/issues/1637)
191
+
192
+ ## 20.3.5
193
+
194
+ - change init warning to only trigger if not using useSSR on react-i18next
195
+
196
+ ## 20.3.4
197
+
198
+ - fix(types): only use readonly array of strings in API [1629](https://github.com/i18next/i18next/pull/1629)
199
+
200
+ ## 20.3.3
201
+
202
+ - add transWrapTextNodes to types [1626](https://github.com/i18next/i18next/pull/1626)
203
+
204
+ ## 20.3.2
205
+
206
+ - context can also be a number [1622](https://github.com/i18next/i18next/issues/1622)
207
+
208
+ ## 20.3.1
209
+
210
+ - add 'ns' to the 'returnedObjectHandler' options [1619](https://github.com/i18next/i18next/pull/1619)
211
+ - disable warn 'accessing an object' when the 'returnedObjectHandler' is defined [1617](https://github.com/i18next/i18next/pull/1617)
212
+
213
+ ## 20.3.0
214
+
215
+ - add simple toJSON function to fix uncontrolled serialization, fixes [1322](https://github.com/i18next/react-i18next/issues/1322)
216
+
217
+ ## 20.2.4
218
+
219
+ - fix types for LanguageDetector detect function
220
+
221
+ ## 20.2.3
222
+
223
+ - if detected lng is falsy, set it to empty array, to make sure at least the fallbackLng will be used
224
+
225
+ ## 20.2.2
226
+
227
+ - fix plural equations for Kazakh [1608](https://github.com/i18next/i18next/pull/1608)
228
+
229
+ ## 20.2.1
230
+
231
+ - fix lastIndex in regex when skipOnVariables is true
232
+
233
+ ## 20.2.0
234
+
235
+ - add ignoreJSONStructure into the types
236
+ - stop recursive interpolation also for "{{variable}}" when skipOnVariables is true [1595](https://github.com/i18next/i18next/issues/1595)
237
+ - old browser fix for "includes" usage [1597](https://github.com/i18next/i18next/pull/1597)
238
+
239
+ ## 20.1.0
240
+
241
+ - Add alwaysFormat into the types [1586](https://github.com/i18next/i18next/pull/1586)
242
+ - Add interpolation key name to format function [1571](https://github.com/i18next/i18next/pull/1571)
243
+
244
+ ## 20.0.0
245
+
246
+ - add support to proper augment PluginOptions type [1583](https://github.com/i18next/i18next/pull/1583)
247
+ - introduce ignoreJSONStructure flag, to automatically lookup for a flat key if a nested key is not found an vice-versa [1584](https://github.com/i18next/i18next/pull/1584) (MAJOR: because of ignoreJSONStructure is true by default)
248
+
249
+ ## 19.9.2
250
+
251
+ - try to fix another edge case issue [1570](https://github.com/i18next/i18next/issues/1570) introduces by fixing [1552](https://github.com/i18next/i18next/issues/1552)
252
+
253
+ ## 19.9.1
254
+
255
+ - Fallback on singular defaultValue [1563](https://github.com/i18next/i18next/pull/1563)
256
+
257
+ ## 19.9.0
258
+
259
+ - Improve updateMissing default plural behavior [1558](https://github.com/i18next/i18next/pull/1558)
260
+ - typescript: type definitions improvements for backend [1560](https://github.com/i18next/i18next/pull/1560)
261
+
262
+ ## 19.8.10
263
+
264
+ - try to fix another edge case issue [1570](https://github.com/i18next/i18next/issues/1570) introduces by fixing [1552](https://github.com/i18next/i18next/issues/1552)
265
+
266
+ ## 19.8.9
267
+
268
+ - warn if i18next gets initialized multiple times
269
+
270
+ ## 19.8.8
271
+
272
+ - fix for cases when calling changeLanguage before finished to initialize [1552](https://github.com/i18next/i18next/issues/1552)
273
+
274
+ ## 19.8.7
275
+
276
+ - use "Object.prototype.hasOwnProperty" instead of "object.hasOwnProperty", fixes [1542](https://github.com/i18next/i18next/issues/1542)
277
+
278
+ ## 19.8.6
279
+
280
+ - regression fix because of last prototype pollution fix in v19.8.5
281
+
282
+ ## 19.8.5
283
+
284
+ - fix potential prototype pollution when backend plugin resolves a malicious language value
285
+ - use fallbackLng as default lng
286
+
287
+ ## 19.8.4
288
+
289
+ - update format function signature for TS [1520](https://github.com/i18next/i18next/pull/1480))
290
+
291
+ ## 19.8.3
292
+
293
+ - fix prototype pollution with constructor
294
+
295
+ ## 19.8.2
296
+
297
+ - allow nesting recursively with context (could theoretically generate infinite loop, prevented in [1480](https://github.com/i18next/i18next/pull/1480))
298
+
299
+ ## 19.8.1
300
+
301
+ - fix "no languageDetector is used" log statement
302
+ - do not log "initialized" on cloned instances
303
+
304
+ ## 19.8.0
305
+
306
+ - allow fallbackLng as function [1508](https://github.com/i18next/i18next/pull/1508)
307
+
308
+ ## 19.7.0
309
+
310
+ - resource manipulation functions are now chainable
311
+
312
+ ## 19.6.3
313
+
314
+ - plural rules for ht and iw
315
+
316
+ ## 19.6.2
317
+
318
+ - fix interpolation with option skipOnVariables when there are multiple placeholders [1490](https://github.com/i18next/i18next/issues/1490)
319
+
320
+ ## 19.6.1
321
+
322
+ - extend interpolation option skipOnVariables [1488](https://github.com/i18next/i18next/pull/1488)
323
+ - typescript: Change bindStore to bindI18nStore in ReactOptions type and update default values [1489](https://github.com/i18next/i18next/pull/1489)
324
+
325
+ ## 19.6.0
326
+
327
+ - fix prototype pollution
328
+ - introduce new interpolation option skipOnVariables [1483](https://github.com/i18next/i18next/pull/1483)
329
+
330
+ ## 19.5.6
331
+
332
+ - fix local usage of nsSeparator option
333
+
334
+ ## 19.5.5
335
+
336
+ - fix: recursion when passing nesting to interpolated [1480](https://github.com/i18next/i18next/pull/1480)
337
+
338
+ ## 19.5.4
339
+
340
+ - typescript fix: getDataByLanguage typings & test [1472](https://github.com/i18next/i18next/pull/1472)
341
+ - typescript fix: type declarion of exposed EventEmitter#off methods [1460](https://github.com/i18next/i18next/pull/1460)
342
+
343
+ ## 19.5.3
344
+
345
+ - fix Macedonian plural formula [1476](https://github.com/i18next/i18next/pull/1476)
346
+
347
+ ## 19.5.2
348
+
349
+ - fix nesting interpolation with prepended namespace, fixes #1474 [1475](https://github.com/i18next/i18next/pull/1475)
350
+
351
+ ## 19.5.1
352
+
353
+ - getBestMatchFromCodes: use fallbackLng if nothing found, fixes #1470 [1471](https://github.com/i18next/i18next/pull/1471)
354
+
355
+ ## 19.5.0
356
+
357
+ - language detectors can return an array of languages and let i18next figure out best match
358
+
359
+ - rename option whitelist to supportedLngs
360
+ - rename option nonExpicitWhitelist to nonExplicitSupportedLngs
361
+ - rename function languageUtils.isWhitelisted to languageUtils.isSupportedCode
362
+
363
+ This changes are made with temporal backwards compatiblity and will warn your for deprecated usage of old terms to give users and plugin providers some time to adapt their code base.
364
+
365
+ The temporal backwards compatiblity will be removed in a follow up major release.
366
+
367
+ Learn more about why this change was made [here](https://github.com/i18next/i18next/issues/1466).
368
+
369
+ ## 19.4.5
370
+
371
+ - Add store events to typings [1451](https://github.com/i18next/i18next/pull/1451)
372
+
373
+ ## 19.4.4
374
+
375
+ - typescript: Allow passing retry boolean to `ReadCallback` [1439](https://github.com/i18next/i18next/pull/1439)
376
+
377
+ ## 19.4.3
378
+
379
+ - fix regression introduced in "support formatting in nesting" [1419](https://github.com/i18next/i18next/pull/1419)
380
+
381
+ ## 19.4.2
382
+
383
+ - fix for deno [1428](https://github.com/i18next/i18next/pull/1428)
384
+
385
+ ## 19.4.1
386
+
387
+ - add getLanguagePartFromCode as in language fallback resolution [1424](https://github.com/i18next/i18next/pull/1424)
388
+
389
+ ## 19.4.0
390
+
391
+ - support formatting in nesting [1419](https://github.com/i18next/i18next/pull/1419)
392
+
393
+ ## 19.3.4
394
+
395
+ - fix cloning of service.utils binding to clone [1415](https://github.com/i18next/i18next/pull/1415)
396
+
397
+ ## 19.3.3
398
+
399
+ - backendConnector extend initial retry from 250 to 350
400
+
401
+ ## 19.3.2
402
+
403
+ - fix the nested string options parsing introduced in v19.2.0 which broke having multiple options
404
+
405
+ ## 19.3.1
406
+
407
+ - typescript: add `options.interpolation.nestingOptionsSeparator`
408
+
409
+ ## 19.3.0
410
+
411
+ - Double fix for 1395 issue [1399](https://github.com/i18next/i18next/pull/1399)
412
+ - adds `options.interpolation.nestingOptionsSeparator: ','` to specify that separator
413
+
414
+ ## 19.2.0
415
+
416
+ - Add ability to use commas in nested keys [1398](https://github.com/i18next/i18next/pull/1398)
417
+
418
+ ## 19.1.0
419
+
420
+ - explict warning when no languageDetector is used and no lng is defined [1381](https://github.com/i18next/i18next/pull/1381)
421
+ - Add option to always format interpolated values [1385](https://github.com/i18next/i18next/pull/1385)
422
+ - pass all options to format function [992#issuecomment-577797162](https://github.com/i18next/i18next/issues/992#issuecomment-577797162)
423
+
424
+ ## 19.0.3
425
+
426
+ - fixes retry interval in backend connector [1378](https://github.com/i18next/i18next/issues/1378)
427
+
428
+ ## 19.0.2
429
+
430
+ - typescript: Type ResourceStore [1366](https://github.com/i18next/i18next/pull/1366)
431
+
432
+ ## 19.0.1
433
+
434
+ - ignore non valid keys in saveMissing [1359](https://github.com/i18next/i18next/pull/1359)
435
+
436
+ ## 19.0.0
437
+
438
+ - typescript: Typescript use `export default` for esm-first approach [1352](https://github.com/i18next/i18next/pull/1352)
439
+
440
+ ## 18.0.1
441
+
442
+ - check loadedNamespace only once per lng-ns inside using `t` for better performance
443
+
444
+ ## 18.0.0
445
+
446
+ - When calling `i18next.changeLanguage()` both `i18next.language` and `i18next.languages` will be set to the new language after calling `loadResources` -> means when accessing `t` function meanwhile you will get still the translations for the previous language instead of the fallback.
447
+
448
+ - **When is this breaking?** this does not break any current test - but if you depend on accessing i18next.language or i18next.dir during language change and expect the new language this will break your app.
449
+
450
+ - Reasoning: In react-i18next we get in a not ready state for loaded translations while we would prefer just waiting for the new language ready and trigger a rerender then - also a triggered rerender outside of the bound events would end in Suspense...
451
+
452
+ - How can I get the language i18next will be set to? `i18next.isLanguageChangingTo` is set to the language called
453
+
454
+ ## 17.3.1
455
+
456
+ - typescript: Add missing `cleanCode` option to TypeScript def [1344](https://github.com/i18next/i18next/pull/1344)
457
+
458
+ ## 17.3.0
459
+
460
+ - pass used language & namespace to postprocessor [1341](https://github.com/i18next/i18next/pull/1341)
461
+
462
+ ## 17.2.0
463
+
464
+ - Support using ImmutableJS Records as the data model in interpolation [1339](https://github.com/i18next/i18next/pull/1339)
465
+
466
+ ## 17.1.0
467
+
468
+ DX improvements:
469
+
470
+ - warning if accessing t before i18next was initialized or namespace loaded
471
+ - warning and cancelling save if saveMissing key before i18next was initialized or namespace loaded
472
+
473
+ Both are a clear sign you render your app / call t to early not waiting for the callbacks or Promise.resolve on i18next.init, i18next.loadNamespace or i18next.changeLanguage.
474
+
475
+ ## 17.0.18
476
+
477
+ - Improve performance of EventEmitter.off [1333](https://github.com/i18next/i18next/pull/1333)
478
+
479
+ ## 17.0.17
480
+
481
+ - fixes: missing nested key fails if no nested value found and defaultValue contains interpolation -> results in endless loop [1332](https://github.com/i18next/i18next/issues/1332)
482
+
483
+ ## 17.0.16
484
+
485
+ - typescript: fix incorrect callback type for backend module read callback [1322](https://github.com/i18next/i18next/pull/1322)
486
+ - typescript: add getDataByLanguage into index.d.ts [1326](https://github.com/i18next/i18next/pull/1326)
487
+
488
+ ## 17.0.15
489
+
490
+ - Fixed default value as string in IE [1325](https://github.com/i18next/i18next/pull/1325)
491
+
492
+ ## 17.0.14
493
+
494
+ - typescript: Allow TFunction to receive 1-3 parameters [1317](https://github.com/i18next/i18next/pull/1317)
495
+
496
+ ## 17.0.13
497
+
498
+ - fixes: Interpolation defaultVariables not recognized on t() [1314](https://github.com/i18next/i18next/issues/1314)
499
+
500
+ ## 17.0.12
501
+
502
+ - remove unused Interpolator#init reset param (only used internally) [1313](https://github.com/i18next/i18next/pull/1313)
503
+ - Cope with null interpolation (unescaped case) [1310](https://github.com/i18next/i18next/pull/1310)
504
+
505
+ ## 17.0.11
506
+
507
+ - fix issue with unset value in interpolation throwing exception
508
+ - typescript: Allow augmentation of TFunction to be able to add overloads [1308](https://github.com/i18next/i18next/pull/1308)
509
+
510
+ ## 17.0.10
511
+
512
+ - Update Interpolator.js to use regexSafe for unescaped interpolation [1307](https://github.com/i18next/i18next/pull/1307)
513
+
514
+ ## 17.0.9
515
+
516
+ - typescript: use() should accept a class or object [1301](https://github.com/i18next/i18next/pull/1301)
517
+
518
+ ## 17.0.8
519
+
520
+ - typescript: Correct `use(module)` types [1296](https://github.com/i18next/i18next/pull/1296)
521
+
522
+ ## 17.0.7
523
+
524
+ - typescript: Typescript imports [1291](https://github.com/i18next/i18next/pull/1291)
525
+ - Disabled default returnedObjectHandler [1288](https://github.com/i18next/i18next/pull/1288)
526
+
527
+ ## 17.0.6
528
+
529
+ - support montenegrien "crn" plurals
530
+
531
+ ## 17.0.4
532
+
533
+ - typescript: ResourceKey type should allow top level string value [1267](https://github.com/i18next/i18next/pull/1267)
534
+
535
+ ## 17.0.3
536
+
537
+ - don't do named exports for umd
538
+
539
+ ## 17.0.2
540
+
541
+ - typescript: Allow null as TResult [1263](https://github.com/i18next/i18next/pull/1263)
542
+ - bring back ./i18next.js and ./i18next.min.js -> used by wildcard unpkg users...<= bad idea doing so
543
+ - main export in package.json points to cjs dist
544
+
545
+ ## 17.0.1
546
+
547
+ - adapt ./index.js to 17.0.0 export
548
+
549
+ ## 17.0.0
550
+
551
+ - removes checking in build files (umd) into source code - for CDN usage use: [https://unpkg.com/i18next@16.0.0/dist/umd/i18next.js](https://unpkg.com/i18next@16.0.0/dist/umd/i18next.js)
552
+ - removes named exports in main file - avoids issues in mixed exports makes usage better in commonjs scenarios (node.js) - no strange `const i18next = require('i18next').default;`
553
+ - **impact** you can't no longer `import { changeLanguage } from 'i18next'; changeLanguage('de');` you will have to `import i18next from 'i18next'; i18next.changeLanguage('de');`
554
+ - **note** if can create a own file providing the named bound functions and use that instead, sample: [https://github.com/i18next/i18next/blob/v15.0.0/src/index.js#L5](https://github.com/i18next/i18next/blob/v15.0.0/src/index.js#L5)
555
+
556
+ ## 16.0.0
557
+
558
+ - removes deprecated jsnext:main from package.json
559
+ - Bundle all entry points with rollup [1256](https://github.com/i18next/i18next/pull/1256)
560
+ - **note:** dist/es -> dist/esm, dist/commonjs -> dist/cjs (individual files -> one bundled file)
561
+
562
+ ## 15.1.3
563
+
564
+ - typescript: Fix type error when init with locize plugin options [1248](https://github.com/i18next/i18next/pull/1248)
565
+
566
+ ## 15.1.2
567
+
568
+ - typescript: types(ReactOptions): Add missing props to React Options interface [1247](https://github.com/i18next/i18next/pull/1247)
569
+
570
+ ## 15.1.1
571
+
572
+ - typescript: Update BackendModule interface to allow null or undefined for the callback [1244](https://github.com/i18next/i18next/pull/1244)
573
+
574
+ ## 15.1.0
575
+
576
+ - trigger a languageChanging event
577
+
578
+ ## 15.0.9
579
+
580
+ - IE: <=IE10 fix (unable to call parent constructor) [1227](https://github.com/i18next/i18next/pull/1227)
581
+
582
+ ## 15.0.8
583
+
584
+ - typescript: adding init function to 3rdParty module typings and enforcing type property [1223](https://github.com/i18next/i18next/pull/1223)
585
+
586
+ ## 15.0.7
587
+
588
+ - typescript: Add useSuspense to ReactOptions, fix error throwing on test [1219](https://github.com/i18next/i18next/pull/1219)
589
+
590
+ ## 15.0.6
591
+
592
+ - typescript: add Interpolator interface [1213](https://github.com/i18next/i18next/pull/1213)
593
+
594
+ ## 15.0.5
595
+
596
+ - typescript: Add `hashTransKey` to `ReactOptions` [1208](https://github.com/i18next/i18next/pull/1208)
597
+ - Expose error on reloadResources [1212](https://github.com/i18next/i18next/pull/1212)
598
+
599
+ ## 15.0.4
600
+
601
+ - add default export on node.js entry [1204](https://github.com/i18next/i18next/pull/1204)
602
+ - typescript: Add defaultValue tests and allow second arg string as defaultValue [1206](https://github.com/i18next/i18next/pull/1206)
603
+
604
+ ## 15.0.3
605
+
606
+ - typescript: accept templatestringsarray as TKey [1199](https://github.com/i18next/i18next/pull/1199)
607
+ - allow arrays on addResources
608
+
609
+ ## 15.0.2
610
+
611
+ - try fixing UMD build
612
+
613
+ ## 15.0.1
614
+
615
+ - fix export name on global (typo)
616
+
617
+ ## 15.0.0
618
+
619
+ - update build process (while all test passes feeling more save making this a major release)
620
+
621
+ ## 14.1.1
622
+
623
+ - allow empty string for array join [1191](https://github.com/i18next/i18next/issues/1191)
624
+
625
+ ## 14.1.0
626
+
627
+ - support plurals in returning objecttree array [1196](https://github.com/i18next/i18next/issues/1196)
628
+
629
+ ## 14.0.1
630
+
631
+ - typescript: Parameterized use of TFunction fails while WithT use works [1188](https://github.com/i18next/i18next/pull/1188)
632
+
633
+ ## 14.0.0
634
+
635
+ - typescript: BREAKING Refactor generics usage [1180](https://github.com/i18next/i18next/pull/1180)
636
+
637
+ ## 13.1.5
638
+
639
+ - es modules: Fix bug when import by ES Module [1179](https://github.com/i18next/i18next/pull/1179)
640
+ - typescript: Add module property [1176](https://github.com/i18next/i18next/pull/1176)
641
+
642
+ ## 13.1.4
643
+
644
+ - fixes plural rule for JSON compatibility v2 introduced in 11.3.3 https://github.com/i18next/i18next/commit/d4d329fd7042f932eedf8bba1d92234707efd04c#diff-e171f9b8b4e0f5df027bd8bd7b962f1bR1140 [1174](https://github.com/i18next/i18next/issues/1174)
645
+
646
+ ## 13.1.3
647
+
648
+ - TypeScript: Pull up WithT interface allowing for overrides [1172](https://github.com/i18next/i18next/pull/1172)
649
+
650
+ ## 13.1.2
651
+
652
+ - Add typescript testing [1165](https://github.com/i18next/i18next/pull/1165)
653
+ - Add `transEmptyNodeValue` to `ReactOptions` [1166](https://github.com/i18next/i18next/pull/1166)
654
+ - Run prettier on typescript files for easier diffing in PRs [1167](https://github.com/i18next/i18next/pull/1167)
655
+
656
+ ## 13.1.1
657
+
658
+ - fix init() attributes typings [1158](https://github.com/i18next/i18next/pull/1158)
659
+
660
+ ## 13.1.0
661
+
662
+ - Support interpolation for defaultValue as parameter [1151](https://github.com/i18next/i18next/pull/1151)
663
+
664
+ ## 13.0.1
665
+
666
+ - update typedefinitions [1152](https://github.com/i18next/i18next/pull/1152)
667
+
668
+ ## 13.0.0
669
+
670
+ - pass options to missingInterpolationHandler [1146](https://github.com/i18next/i18next/pull/1146)
671
+ - refactor non valid keys handling [1143](https://github.com/i18next/i18next/pull/1143)
672
+
673
+ BREAKING:
674
+
675
+ - adds typescript definitions directly into this repo - no longer need to grab them from definitlytyped [1142](https://github.com/i18next/i18next/pull/1142)
676
+ - promise API added for all functions providing a callback [1130](https://github.com/i18next/i18next/pull/1130) -> means those will now return a Promise and not this -> so you can't chain eg. i18next.init().on() anylonger as init returns a Promise
677
+
678
+ ## 12.1.0
679
+
680
+ - adds partialBundledLanguages flag in init options [1136](https://github.com/i18next/i18next/pull/1136)
681
+
682
+ ## 12.0.0
683
+
684
+ - add hebrew update [1121](https://github.com/i18next/i18next/pull/1121)
685
+
686
+ ## 11.10.2
687
+
688
+ - revert hebrew
689
+
690
+ ## 11.10.1
691
+
692
+ - Adds Hebrew plural support [1121](https://github.com/i18next/i18next/pull/1121)
693
+
694
+ ## 11.10.0
695
+
696
+ - Allow missingInterpolationHandler to be provided as t() option [1118](https://github.com/i18next/i18next/pull/1118)
697
+
698
+ ## 11.9.1
699
+
700
+ - fixes allow overriding of fallbackLng when in options passed to t functions call
701
+
702
+ ## 11.9.0
703
+
704
+ - merge load and reloadResources functionality to allow an optional callback in reloadResources
705
+
706
+ ## 11.8.0
707
+
708
+ - deeper support for i18nFormats - add getResource function from format
709
+
710
+ ## 11.7.0
711
+
712
+ - allows defining defaultValues for plurals -> same logic as using pluralsuffixes in translation files [details](https://www.i18next.com/translation-function/plurals#how-to-find-the-correct-plural-suffix) using eg. defaultValue_plural / defaultValue_2 based on request [1096](https://github.com/i18next/i18next/issues/1096)
713
+
714
+ ## 11.6.0
715
+
716
+ - expose new store function getDataByLanguage [1087](https://github.com/i18next/i18next/pull/1087)
717
+
718
+ ## 11.5.0
719
+
720
+ - EventEmitter.prototype.on returns this for chaining calls [1079](https://github.com/i18next/i18next/pull/1079)
721
+
722
+ ## 11.4.0
723
+
724
+ - Allow to pass raw value to the custom interpolation escape function [1076](https://github.com/i18next/i18next/pull/1076)
725
+
726
+ ## 11.3.6
727
+
728
+ - fix support zero for saveMissing plurals [1072](https://github.com/i18next/i18next/pull/1072)
729
+
730
+ ## 11.3.5
731
+
732
+ - trigger loaded event only once per loaded namespace - consolidate all the loaded and done queued load calls [react-i18next 456 ](https://github.com/i18next/react-i18next/issues/456)
733
+
734
+ ## 11.3.4
735
+
736
+ - fixes simplifyPluralSuffix: false cases for languages having only singular, plural [1069](https://github.com/i18next/i18next/issues/1069)
737
+
738
+ ## 11.3.3
739
+
740
+ - pass down resolved to i18nFormat.parse as last argument
741
+
742
+ ## 11.3.2
743
+
744
+ - Properly handle arguments containing arrays while listening to a wildcard event [1052](https://github.com/i18next/i18next/pull/1052)
745
+
746
+ ## 11.3.1
747
+
748
+ - Fixes allowing setting keySeparator to false in calling t function [1051](https://github.com/i18next/i18next/pull/1051)
749
+
750
+ ## 11.3.0
751
+
752
+ - Option to skip interpolation when calling t. [1050](https://github.com/i18next/i18next/pull/1050)
753
+
754
+ ## 11.2.3
755
+
756
+ - Remove unnecessary warning when value is empty string [1046](https://github.com/i18next/i18next/pull/1046)
757
+
758
+ ## 11.2.2
759
+
760
+ - adds used key to call parse of i18nFormat
761
+
762
+ ## 11.2.1
763
+
764
+ - fixes for i18nFormat plugin
765
+
766
+ ## 11.2.0
767
+
768
+ - allows new plugin of type 'i18nFormat' to override i18next format with eg. ICU format
769
+
770
+ ## 11.0.0 - 11.1.1 (fixing version mismatch cdn.js - npm)
771
+
772
+ - **[BREAKING]** removes plugin of type cache. Can be replace by [i18next-chained-backend](https://github.com/i18next/i18next-chained-backend) example cache for localStorage [i18next-localstorage-backend](https://github.com/i18next/i18next-localstorage-backend#getting-started)
773
+ - **[BREAKING]** removes the support for multiload (multiRead) in backends - will just use read per language-namespace. You can enable multiRead support in backends again by using [i18next-multiload-backend-adapter](https://github.com/i18next/i18next-multiload-backend-adapter)
774
+
775
+ ## 10.6.0
776
+
777
+ - adds missingInterpolationHandler [1039](https://github.com/i18next/i18next/pull/1039)
778
+
779
+ ## 10.5.1
780
+
781
+ - fixes call to getPluralFormsOfKey if called with unsupported language [1032](https://github.com/i18next/i18next/issues/1032)
782
+ - Avoid mutating whitelist array. [1037](https://github.com/i18next/i18next/pull/1037)
783
+
784
+ ## 10.5.0
785
+
786
+ - Adds options.silent to addResources and addResourceBundle [1024](https://github.com/i18next/i18next/pull/1024)
787
+
788
+ ## 10.4.1
789
+
790
+ - forward options in backend.create saveMissing
791
+
792
+ ## 10.4.0
793
+
794
+ - fixes combination of returnObject and context by returning original value for deep translation when lookup for inner returns a key (failed to translate proper) [1014](https://github.com/i18next/i18next/issues/1014)
795
+ - _[EXPERIMENTAL]_ additional you can pass `tDescription` to the `t` options or as a third param to calling `t` -> `t(key, defaultValue, tDescription);`. Those will get forwarded to the backend and can be submitted on saveMissing to provide contextual information for translators.
796
+
797
+ ## 10.3.0
798
+
799
+ - new option saveMissingPlurals (default true) will enable submitting plural forms on saveMissing if t call is for plural (count passed in options).
800
+
801
+ ## 10.2.2
802
+
803
+ - fixes Context and nested lost initial options [1009](https://github.com/i18next/i18next/issues/1009)
804
+
805
+ ## 10.2.1
806
+
807
+ - optimize update output in log
808
+
809
+ ## 10.2.0
810
+
811
+ - _[EXPERIMENTAL]_ init option updateMissing: enable to update default values if different from translated value (only useful on initial development or when keeping code as source of truth not changing values outside of code)
812
+
813
+ ## 10.1.0
814
+
815
+ - return boolean, number from translator
816
+ - initial set language on translator if non set yet (after that only if loaded) [#998](https://github.com/i18next/i18next/issues/998)
817
+
818
+ ## 10.0.7
819
+
820
+ - support all overloadTranslationOptionHandler in getFixedT [react-i18next/issues/332](https://github.com/i18next/react-i18next/issues/332)
821
+
822
+ ## 10.0.6
823
+
824
+ - native browser es modules via adding .js where needed [PR980](https://github.com/i18next/i18next/pull/980)
825
+
826
+ ## 10.0.5
827
+
828
+ - should fix sync of options in clone and its translator
829
+
830
+ ## 10.0.2
831
+
832
+ - fixes issue in object return when passing in multiple keys
833
+
834
+ ## 10.0.1
835
+
836
+ - fixes support for using suffix `_0` on languages only having "singular" form
837
+
838
+ ## 10.0.0
839
+
840
+ - **[BREAKING]** brings pt, pt-PT, pt-BR plurals in line with, new pt reflects pt-BR and pt-PT gets a special case for plural handling http://www.unicode.org/cldr/charts/26/supplemental/language_plural_rules.html
841
+
842
+ ## 9.1.0
843
+
844
+ - support for using suffix `_0` on languages only having "singular" form enables easier convert in tool chains
845
+
846
+ ## 9.0.1
847
+
848
+ - propagate changeLanguage to translator after loadResources
849
+
850
+ ## 9.0.0
851
+
852
+ - **[BREAKING]** removes the compatibility options to i18next v1 you can add that back like we do in our backward compatibility tests: [https://github.com/i18next/i18next/blob/master/test/backward/v1.11.1.compat.js#L45-L52](https://github.com/i18next/i18next/blob/master/test/backward/v1.11.1.compat.js#L45-L52)
853
+ - removes the compatibility options to i18next v1
854
+ - allows passing in second param as string on getFixedT returned t function so we could use that as defaultValue
855
+ - add setting maxReplaces in interpolation options to prevent endless loop in interpolation
856
+
857
+ ## 8.4.3
858
+
859
+ - getFixedT lng parameter of array type -> pass as lngs to t function [PR949](https://github.com/i18next/i18next/pull/949)
860
+
861
+ ## 8.4.2
862
+
863
+ - fixes merging options in clone instance...do not override passed values by values on main instance
864
+
865
+ ## 8.4.1
866
+
867
+ - emits correct lng to changeLanguage event (fixes async detection behaviour) [PR933](https://github.com/i18next/i18next/pull/933)
868
+
869
+ ## 8.4.0
870
+
871
+ - expose i18next.options.interpolation.format on i18next.format
872
+ - i18next.dir if not passing lng use first of i18next.languages before using i18next.language
873
+
874
+ ## 8.3.0
875
+
876
+ - allows nesting objects/arrays into objects [#925](https://github.com/i18next/i18next/issues/925)
877
+
878
+ ## 8.2.1
879
+
880
+ - fixes issue in async lng detection
881
+
882
+ ## 8.2.0
883
+
884
+ - supports now async language detection - when language detector has member async = true
885
+
886
+ ## 8.1.0
887
+
888
+ - option to disable nesting by calling `i18next.t('key', { nest: false })` [PR920](https://github.com/i18next/i18next/pull/920)
889
+ - fixes passing lng from options to formatter function if available
890
+
891
+ ## 8.0.0
892
+
893
+ - nonExplicitWhitelist flag now not only gets considered on a fallback lng but also on user language. Eg. userlng 'de-AT' and whitelist ['de'] will now let de-AT pass as whitelisted if nonExplicitWhitelist is set true.
894
+
895
+ ## 7.2.3
896
+
897
+ - rebuild seems we had a mistake in pushing latest build
898
+
899
+ ## 7.2.2
900
+
901
+ - fixes issue in accepting string as a result of "nested" lookup [PR909](https://github.com/i18next/i18next/pull/909)
902
+
903
+ ## 7.2.1
904
+
905
+ - fixes iterating over object's own properties [#904](https://github.com/i18next/i18next/pull/904)
906
+
907
+ ## 7.2.0
908
+
909
+ - new init option simplifyPluralSuffix - setting it to false will treat all plurals using suffix numbers even for locals only having singular and plural
910
+ - even if no lng set or detected at least load the fallback languages
911
+ - delay init call on createInstance if not set initImmediate to false [#879](https://github.com/i18next/i18next/issues/879)
912
+
913
+ ## 7.1.3
914
+
915
+ - fixes issue in returnObject tree called with options including ns: [react-i18next #240](https://github.com/i18next/react-i18next/issues/240)
916
+
917
+ ## 7.1.2
918
+
919
+ - remove regex escape from format separators [#896](https://github.com/i18next/i18next/pull/896)
920
+
921
+ ## 7.1.1
922
+
923
+ - change to named plugins for 3rd party - just calling init
924
+
925
+ ## 7.1.0
926
+
927
+ - add option to include plugins not directly related - they get called their init function with current instance of i18next on init
928
+
929
+ ## 7.0.1
930
+
931
+ - fix issue in fallback lng detection if no code was detected
932
+ - check for having a lng in append when searching locals to load on loadResources - avoid error on express middleware
933
+
934
+ ## 7.0.0
935
+
936
+ - [BREAKING] Removed special cases for norwegian which resolved nb-NO to nb-NO, no will now resolve to nb-NO, nb [#870](https://github.com/i18next/i18next/issues/870) using norwegian you could migrate to old behaviour like:
937
+
938
+ fallbackLng: {
939
+ 'nb': ['no', 'en'],
940
+ 'nn': ['no', 'en'],
941
+ 'default': ['en']
942
+ }
943
+
944
+ - adding exports for named import (destruction es6) [#873](https://github.com/i18next/i18next/issues/873)
945
+ - change entry point for umd build to /src/i18next to avoid mixed export
946
+ - replace cloning in interpolation nesting to use object assign instead of json.stringify/parse so circular structures can be used [#875](https://github.com/i18next/i18next/issues/875)
947
+ - update all build dependencies
948
+
949
+ ## 6.1.2
950
+
951
+ - fixes fix in 6.1.1
952
+
953
+ ## 6.1.1
954
+
955
+ - patching same separators to lookup if the ns exists - else guess the first item is just part of the key and not meant as a namespace
956
+
957
+ ## 6.1.0
958
+
959
+ - you now can use same nsSeparator and keySeparator (eg. use a dot for both)
960
+
961
+ ## 6.0.3
962
+
963
+ - do not loop over objectTree if keySeparator is set to false
964
+
965
+ ## 6.0.2
966
+
967
+ - fixes init flow of clone
968
+
969
+ ## 6.0.1
970
+
971
+ - fixes issue in event emitter, assert all emitters get called even if one called get removed and changes the array index
972
+
973
+ ## 6.0.0
974
+
975
+ - Return namespace in cimode with appendNamespaceToCIMode option (default now will only return key without namespace - independent of call to t function) [#863](https://github.com/i18next/i18next/issues/863)
976
+
977
+ ## 5.0.0
978
+
979
+ - Nested keys should not be escaped by default [#854](https://github.com/i18next/i18next/issues/854)
980
+ - Make sure i18next.init() runs for i18next.cloneInstance() [#860](https://github.com/i18next/i18next/pull/860)
981
+
982
+ ## 4.2.0
983
+
984
+ - adds i18next.isInitialized when isInitialized
985
+ - triggers backend loaded event before initialized
986
+
987
+ ## 4.1.3 / 4.1.4
988
+
989
+ - smaller changes suggested to still inofficial support ie8 [#852](https://github.com/i18next/i18next/issues/852)
990
+
991
+ ## 4.1.2
992
+
993
+ - fixes same interpolation object with multiple getFixedT() in different locales yields wrong translation [#851](https://github.com/i18next/i18next/issues/851)
994
+ - updated all build deps
995
+
996
+ ## 4.1.1
997
+
998
+ - remove subs array from logger - no longer keep changing debug flag on subs if changing on main
999
+
1000
+ ## 4.1.0
1001
+
1002
+ - Custom escape function, single-quotes in nested [#843](https://github.com/i18next/i18next/pull/843)
1003
+
1004
+ ## 4.0.0
1005
+
1006
+ - [BREAKING; only webpack2-beta users] will add module entry point used by webpack2, this might break your current build with webpack2-beta if configured incorrectly, see: [#836](https://github.com/i18next/i18next/issues/836)
1007
+
1008
+ ## 3.5.2
1009
+
1010
+ - remove the module entry point again will be added in 4.0.0
1011
+
1012
+ ## 3.5.1
1013
+
1014
+ - fix build output add a test file to test the generated build
1015
+
1016
+ ## 3.5.0
1017
+
1018
+ - Setting options on individual translations override, rather than merge global configs [#832](https://github.com/i18next/i18next/issues/832)
1019
+ - Create an new translator when cloning i18next instance [#834](https://github.com/i18next/i18next/pull/834)
1020
+ - allows fallbackLng to be an string, an array or an object defining fallbacks for lng, lng-region plus default, eg
1021
+
1022
+ fallbackLng: {
1023
+ 'de-CH': ['fr', 'it', 'en'],
1024
+ 'de': ['fr', 'en'],
1025
+ 'zh-Hans': ['zh-Hant', 'en'],
1026
+ 'zh-Hant': ['zh-Hans', 'en'],
1027
+ 'default': ['en']
1028
+ }
1029
+
1030
+ ## 3.4.4
1031
+
1032
+ - Fix Interpolator.escapeValue defaulting to undefined in some cases [#826](https://github.com/i18next/i18next/issues/826)
1033
+
1034
+ ## 3.4.3
1035
+
1036
+ - Fix Interpolator formatter exception error propagation due to not reset RegExp indices [#820](https://github.com/i18next/i18next/issues/820)
1037
+
1038
+ ## 3.4.2
1039
+
1040
+ - assert dir function does not crash if no language available
1041
+
1042
+ ## 3.4.1
1043
+
1044
+ - fix issue with format containing formatSeparator for interpolation formatting
1045
+
1046
+ ## 3.4.0
1047
+
1048
+ - adds formatting 'format this: {{var, formatRule}}' having a function on options.interpolation.format: function(value, format, lng) { return value } like suggested here [#774](https://github.com/i18next/i18next/issues/774)
1049
+
1050
+ ## 3.3.1
1051
+
1052
+ - fixed an issue with several unescaped key in the interpolation string [#746](https://github.com/i18next/i18next/pull/746)
1053
+
1054
+ ## 3.3.0
1055
+
1056
+ - allows option `nonExplicitWhitelist` on init [#741](https://github.com/i18next/i18next/pull/741)
1057
+
1058
+ ## 3.2.0
1059
+
1060
+ - adds api function i18next.reloadResources(), i18next.reloadResources(lngs, ns) to trigger a reload of translations
1061
+
1062
+ ## 3.1.0
1063
+
1064
+ - emits missingKey always (like console.log) even if saveMissing is of -> use missingKeyHandler if you only want the trigger only on saveMissing: true
1065
+
1066
+ ## 3.0.0
1067
+
1068
+ - **[BREAKING]** per default i18next uses now the same index as used in gettext for plurals. eg. for arabic suffixes are 0,1,2,3,4,5 instead of 0,1,2,3,11,100. You can enforce old behaviour by setting compatibilityJSON = 'v2' on i18next init.
1069
+ - **[BREAKING]** AMD export will be unnamed now
1070
+ - don't call saveMissing if no lng
1071
+
1072
+ ## 2.5.1
1073
+
1074
+ - fixes rtl support [#656](https://github.com/i18next/i18next/pull/656/files)
1075
+
1076
+ ## 2.5.0
1077
+
1078
+ - allow null or empty string as defaultValue
1079
+ - init option `initImmediate (default: true)` to init without immediate
1080
+
1081
+ ## 2.4.1
1082
+
1083
+ - if passing resources don't immediate loading fixes [#636](https://github.com/i18next/i18next/issues/636)
1084
+
1085
+ ## 2.4.0
1086
+
1087
+ - support now language code variants with scripts and other exotic forms: zh-Hans-MO, sgn-BE-fr, de-AT-1996,...
1088
+ - trigger of changeLanguage, load of data with a setTimeout to allow other operations meanwhile
1089
+
1090
+ ## 2.3.5
1091
+
1092
+ - Only add language to preload array when new [#613](https://github.com/i18next/i18next/pull/613/files)
1093
+
1094
+ ## 2.3.4
1095
+
1096
+ - get babel 6 output IE compatible: https://jsfiddle.net/jamuhl/2qc7oLf8/
1097
+
1098
+ ## 2.3.2
1099
+
1100
+ - add index to make export compatible again
1101
+
1102
+ ## 2.3.1
1103
+
1104
+ - build /dist/es with included babelhelpers
1105
+
1106
+ ## 2.3.0
1107
+
1108
+ - change build chain to use rollup...allows 'js:next' and reduces build from 45kb to 33kb minified (/lib --> /dist/commonjs folder, new /dist/es for rollup,...)
1109
+ - fixes detection when using both context and pluralization and context not found. [#851](https://github.com/i18next/i18next/pull/581)
1110
+
1111
+ ## 2.2.0
1112
+
1113
+ - return instance after init for further chaning
1114
+ - make init optional on backend, cache
1115
+ - package.json entry points now to /lib not to mangled version...this might be the better solution for most use cases (build chains built on npm, webpack, browserify, node,...)
1116
+
1117
+ ## 2.1.0
1118
+
1119
+ - allow keySeparator, nsSeparator = false to turn that off
1120
+
1121
+ ## 2.0.26
1122
+
1123
+ - extended emitted arguments on 'added' event
1124
+
1125
+ ## 2.0.24
1126
+
1127
+ - fixes unneeded reload of resources that failed to load
1128
+
1129
+ ## 2.0.23
1130
+
1131
+ - fixes returnObjects in case of multiple namespaces
1132
+
1133
+ ## 2.0.22
1134
+
1135
+ - add options for context, pluralSeparator
1136
+
1137
+ ## 2.0.21
1138
+
1139
+ - clear done load request in backendConnector
1140
+
1141
+ ## 2.0.20
1142
+
1143
+ - pass full options to detectors as third arg
1144
+
1145
+ ## 2.0.19
1146
+
1147
+ - do not callback err in backendConnector if no backend is specified
1148
+
1149
+ ## 2.0.18
1150
+
1151
+ - check for fallbackLng exist
1152
+
1153
+ ## 2.0.17
1154
+
1155
+ - adds cimode to options.whitelist if set
1156
+ - emits failedLoading on load error
1157
+
1158
+ ## 2.0.16
1159
+
1160
+ - adds addResource to i18next API
1161
+ - fix init of i18next without options, callback
1162
+
1163
+ ## 2.0.15
1164
+
1165
+ - avoid loading of resources for lng=cimode
1166
+
1167
+ ## 2.0.14
1168
+
1169
+ - enhance callback on load from backend...wait for pendings
1170
+
1171
+ ## 2.0.10
1172
+
1173
+ - fixing build chain
1174
+ - do not post process on nested translation resolve
1175
+
1176
+ ## 2.0.5
1177
+
1178
+ - fixing allow nesting on interpolated nesting vars
1179
+
1180
+ ## 2.0.4
1181
+
1182
+ - don't log lng changed if no lng was detected
1183
+ - extend result on arrayJoins
1184
+
1185
+ ## 2.0.1
1186
+
1187
+ - assert defaults are arrays where needed
1188
+ - assert calling lngUtils.toResolveHierarchy does not add undefined as code if called without code param
1189
+
1190
+ ## 2.0.0
1191
+
1192
+ - complete rewrite of i18next codebase
1193
+
1194
+ ---
1195
+
1196
+ ## 1.11.2
1197
+
1198
+ - replace forEach loop to support IE8 [PR 461](https://github.com/i18next/i18next/pull/461)
1199
+
1200
+ ## 1.11.1
1201
+
1202
+ - fixes issue in nesting using multiple namespaces and lookups in fallback namespaces
1203
+ - Fix use of sprintf as shortcutFunction when first argument falsey [PR 453](https://github.com/i18next/i18next/pull/453)
1204
+
1205
+ ## 1.11.0
1206
+
1207
+ - Add nsseparator and keyseparator as options to translation function [PR 446](https://github.com/i18next/i18next/pull/446)
1208
+ - Resolves issue #448 - TypeScript errors [PR 449](https://github.com/i18next/i18next/pull/449)
1209
+ - Fixing \_deepExtend to handle keys deep existing in source and target [PR 444](https://github.com/i18next/i18next/pull/444)
1210
+ - `resource` to `resources` in addResources function [PR 440](https://github.com/i18next/i18next/pull/440)
1211
+ - Runs multiple post processes for missing translations [PR 438](https://github.com/i18next/i18next/pull/438)
1212
+ - Add support to override Ajax HTTP headers [PR 431](https://github.com/i18next/i18next/pull/431)
1213
+ - Fixed mnk plural definition [PR 427](https://github.com/i18next/i18next/pull/427)
1214
+ - Add dir function to return directionality of current language, closes… [PR 413](https://github.com/i18next/i18next/pull/413)
1215
+
1216
+ ## 1.10.3
1217
+
1218
+ - fixes issue where lng get fixed on data-i18n-options
1219
+ - [SECURITY] merges Reimplement XSS-vulnerable sequential replacement code [PR 443](https://github.com/i18next/i18next/pull/443)
1220
+
1221
+ ## 1.10.2
1222
+
1223
+ - streamline callback(err, t) for case where resStore is passed in
1224
+
1225
+ ## 1.10.1
1226
+
1227
+ - fixes Adds jquery like functionality without the jquery plugin. [PR 403](https://github.com/i18next/i18next/pull/403) by adding it to output
1228
+
1229
+ ## 1.10.0
1230
+
1231
+ - [BREAKING] new callbacks will be node.js conform function(err, t) | Forward the error from sync fetch methods to the init callback function [PR 402](https://github.com/i18next/i18next/pull/402)
1232
+ - fix fallback lng option during translations [PR 399](https://github.com/i18next/i18next/pull/399)
1233
+ - Adds jquery like functionality without the jquery plugin. [PR 403](https://github.com/i18next/i18next/pull/403)
1234
+
1235
+ ## 1.9.1
1236
+
1237
+ - fix fallback lng option during translations [PR 399](https://github.com/i18next/i18next/pull/399)
1238
+ - Adds jquery like functionality without the jquery plugin. [PR 403](https://github.com/i18next/i18next/pull/403)
1239
+
1240
+ ## 1.9.0
1241
+
1242
+ - i18n.noConflict() [PR 371](https://github.com/i18next/i18next/pull/371)
1243
+ - fix fallback to default namepsace when namespace passed as an option [PR 375](https://github.com/i18next/i18next/pull/375)
1244
+ - cache option for ajax requests [PR 376](https://github.com/i18next/i18next/pull/376)
1245
+ - option to show key on value is empty string [PR 379](https://github.com/i18next/i18next/pull/379)
1246
+ - Add isInitialized method [PR 380](https://github.com/i18next/i18next/pull/380)
1247
+ - Null check for detectLngFromLocalStorage [PR 384](https://github.com/i18next/i18next/pull/384)
1248
+ - support for adding timeout in configuration for ajax request [PR 387](https://github.com/i18next/i18next/pull/387)
1249
+
1250
+ ## 1.8.2
1251
+
1252
+ - fixes build of commonjs with jquery file
1253
+
1254
+ ## 1.8.0
1255
+
1256
+ - [BREAKING] adds custom build for commonjs with jquery...default will be without require for jquery
1257
+ - fixes issue [issue 360](https://github.com/i18next/i18next/issues/360)
1258
+ - expose applyReplacement on api
1259
+ - save resources to localStorage when useLocaleStore is true
1260
+ - add support on key is a number
1261
+ - added getResourceBundle to API
1262
+ - allow multiple post-processors
1263
+ - fallback to singular if no plural is found fixes issue [issue 356](https://github.com/i18next/i18next/issues/356)
1264
+ - access localstorage always with try catch fixes issue [issue 353](https://github.com/i18next/i18next/issues/353)
1265
+
1266
+ ## 1.7.7
1267
+
1268
+ - fixes issue with stack overflow on t(lng, count)
1269
+ - fixes empty value fallback when processing secondary ns
1270
+
1271
+ ## 1.7.6
1272
+
1273
+ - fixes lng detection (i18next-client on npm)
1274
+
1275
+ ## 1.7.5
1276
+
1277
+ - adds option to define defaultOptions, which gets merged into t(options) [issue 307](https://github.com/i18next/i18next/issues/307)
1278
+ - optimization of size added by plural rules
1279
+ - handle error on json parse when using internal xhr
1280
+ - fixes plural/singular on count if going on fallbacks eg. fr --> en
1281
+ - fixes global leak of sync in amd versions
1282
+ - apply options.lowerCaseLng to fallbackLng too
1283
+ - added hasResourceBundle(lng, ns) to check if bundle exists
1284
+ - added experimental i18n.sync.reload --> resets resStore and reloads resources
1285
+ - catch issues with localStorage quota
1286
+ - changes detectlanguage to support whitelist entries
1287
+
1288
+ ## 1.7.4
1289
+
1290
+ - add resource bundle gets deep extend flag i18n.addResourceBundle(lng, ns, { 'deep': { 'key2': 'value2' }}, true);
1291
+ - new functions to add one key value or multiple i18n.addResource(lng, ns, key, value);, i18n.addResources(lng, ns, {'key1': 'value1', 'deep.key2': 'value2'});
1292
+ - lngWhitelist merged
1293
+ - override postMissing function
1294
+ - allow floats for count
1295
+ - added indefinite functionality for plurals
1296
+ - optional set replacing vars to replace member to avoid collision with other options
1297
+ - experimental optional detectLngFromLocalStorage
1298
+ - fix for norwegian language
1299
+
1300
+ ## 1.7.3
1301
+
1302
+ - solves issue with ie8 not providing .trim function on string -> added to shim
1303
+ - set data using \$(selector).i18n() on data-i18n='[data-someDataAttr]key'
1304
+ - more bullet proof state handling on failed file load
1305
+ - corrected latvian plurals based on [issue 231](https://github.com/jamuhl/i18next/issues/231)
1306
+ - allow array of fallback languages
1307
+ - allow int in values passed to shortcut sprintf
1308
+ - setLng to 'cimode' will trigger a CI mode returning 'key' instead of translation
1309
+
1310
+ ## 1.7.2
1311
+
1312
+ - introducing option fallbackOnEmpty -> empty string will fallback
1313
+ - added function removeResourceBundle(lng, ns) -> removes a resource set
1314
+ - fixed issue with no option passed to setLng
1315
+ - added ability to prepend, append content with data-i18n attributes
1316
+ - introducing objectTreeKeyHandler
1317
+ - fixes issue with i18n.t(null), i18n.t(undefined) throwing exception
1318
+ - returnObjectTrees does not mangle arrays, functions, and regexps
1319
+ - optimized structure for bower support
1320
+
1321
+ ## 1.7.1
1322
+
1323
+ - fixed some typo
1324
+ - allow translate to take an array of keys - take first found
1325
+ - allow numbers in object trees
1326
+
1327
+ ## 1.7.0
1328
+
1329
+ - test if initialisation finished before allowing calling t function
1330
+ - setting option fixLng=true will return t function on init or setLng with the lng fixed for every subsequent call to t
1331
+ - grab key from content if attr data-i18n has no value
1332
+ - setting shortcutFunction to 'defaultValue' allows calling i18n.t(key, defaultValue)
1333
+ - empty string in defaultValue is now valid no longer displaying key
1334
+ - allow option cookieDomain
1335
+ - fixes issue #115 out of stack exception in IE8 by recursing \_translate in objectTrees
1336
+
1337
+ ## 1.6.3
1338
+
1339
+ - option to parse key if missing
1340
+ - fixes issue where plural don't get translated if language is passed in t options
1341
+ - fixes issue where key or defaultValue aren't postProcessed with itself as value
1342
+ - fixes issue with fallbackLng = false in combination with sendMissingTo = fallback
1343
+ - fixes namespace fallback loop to only loop if array has really a ns in it
1344
+
1345
+ ## 1.6.2
1346
+
1347
+ - fixes some var typo
1348
+ - fixes sendMissing to correct namespace
1349
+ - fixes sendMissing in combination with fallbackNS
1350
+
1351
+ ## 1.6.1
1352
+
1353
+ - PR #106 optionally un/escape interpolated content
1354
+ - PR #101 automatic gettext like sprintf syntax detection + postprocess injection
1355
+ - customload will get called on dynamicLoad too
1356
+ - fixes namespace array settings if loaded resourcebundle or additional namespaces
1357
+ - lookup of not existend resouces can be fallbacked to other namespaces - see option fallbackNS (array or string if one ns to fallback to)
1358
+ - defaultValues get postProcessed
1359
+ - BREAKING: per default null values in resources get translated to fallback. This can be changed by setting option fallbackOnNull to false
1360
+ - PR #81 added support for passing options to nested resources
1361
+ - PR #88 added an exists method to check for the existence of a key in the resource store
1362
+ - fixed issue with null value throws in applyReplacement function
1363
+ - fixed issue #80 empty string lookup ends in fallback instead of returning result in language
1364
+ - fixed issue with null value in resources not returning expected value
1365
+ - optimized tests to use on server (nodejs) too
1366
+ - allow zepto as drop in replacement for \$
1367
+ - using testacular as runner
1368
+ - upgraded to grunt 0.4.0
1369
+ - fixed optional interpolation prefix/suffix not used in plural translation cases
1370
+ - optimized check if there are multiple keys for the data-i18n attribute to parse
1371
+
1372
+ ## 1.6.0
1373
+
1374
+ - option to specify target to set attributes with jquery function by using 'data-i18n-target attribute'
1375
+ - function to set new options for nesting functionality
1376
+ - function to add resources after init
1377
+ - option to lookup in default namespace if value is not found in given namespace
1378
+ - option to change interpolation prefix and suffix via translation options
1379
+ - fixed issue with using ns/keyseparator on plurals, context,...
1380
+ - fixed issue with posting missing when not using jquery
1381
+ - post missing in correct lng if lng is given in translation options
1382
+ - proper usage of deferred object in init function
1383
+ - fixed issue replacing values in objectTree
1384
+
1385
+ ## 1.5.10
1386
+
1387
+ - BREAKING: fixed plural rules for languages with extended plural forms (more than 2 forms)
1388
+ - merged pull #61 - custom loader (enables jsonp or other loading custom loading strategies)
1389
+ - escaping interpolation prefix/suffix for proper regex replace
1390
+
1391
+ ## 1.5.9
1392
+
1393
+ - functions to load additional namespaces after init and to set default namespace to something else
1394
+ - set if you don't want to read defaultValues from content while using jquery fc
1395
+ - set dataAttribute to different value
1396
+ - set cookieName to different value
1397
+ - some smallbugfixes
1398
+ - typesafe use of console if in debug mode
1399
+
1400
+ ## 1.5.8
1401
+
1402
+ - disable cookie usage by setting init option useCookie to false
1403
+ - accept empty string as translation value
1404
+ - fixed bug in own ajax implementation not using proper sendType
1405
+ - fixed bug for returning objTree in combination with namespace
1406
+ - fixed bug in plurals of romanic lngs
1407
+
1408
+ ## 1.5.7
1409
+
1410
+ - pass namespace in t() options
1411
+ - interpolation nesting
1412
+ - changable querystring param to look language up from
1413
+
1414
+ ## 1.5.6
1415
+
1416
+ - typesafe check for window, document existance
1417
+ - runnable under rhino
1418
+ - seperated amd builds with/without jquery
1419
+
1420
+ ## 1.5.5
1421
+
1422
+ - **BREAKING** added all plurals: suffixes will new be same as in gettext usage (number indexes key_plural_0|2|3|4|5|7|8|10|11|20|100), additional if needed signature of addRule has changed
1423
+ - added sprintf as postprocessor -> postProcess = 'sprintf' and sprintf = obj or array
1424
+ - set default postProcessor on init
1425
+ - redone build process with grunt
1426
+ - drop in replacement for jquery each, extend, ajax
1427
+ - setting fallbackLng to false will stop loading and looking it up
1428
+ - option to load only current or unspecific language files
1429
+
1430
+ ## 1.5.0
1431
+
1432
+ - pass options to sync.\_fetchOne, use options for fetching
1433
+ - support for i18next-webtranslate
1434
+
1435
+ ## 1.4.1
1436
+
1437
+ - post processor
1438
+ - **BREAKING:** localStorage defaults to false
1439
+ - added localStorageExpirationTime for better caching control
1440
+ - few bug fixes
1441
+
1442
+ ## 1.4.0
1443
+
1444
+ - preload multiple languages
1445
+ - translate key to other language than current
1446
+ - fixed issue with namespace usage in combination with context and plurals
1447
+ - more options to send missing values
1448
+ - better amd support
1449
+
1450
+ ## 1.3.4
1451
+
1452
+ - set type of ajax request to GET (options sendType: default POST)
1453
+ - set cookie expiration (options cookieExpirationTime: in minutes)
1454
+ - read / cache translation options (context, count, ...) in data-attribute (options useDataAttrOptions: default false)
1455
+
1456
+ ## 1.3.3
1457
+
1458
+ - optional return an objectTree from translation
1459
+ - use jquery promises or callback in initialisation
1460
+ - rewrote all tests with mocha.js
1461
+
1462
+ ## 1.3.2
1463
+
1464
+ - options to init i18next sync (options -> getAsync = false)
1465
+ - replace all occurence of replacement string
1466
+
1467
+ ## 1.3.1
1468
+
1469
+ - pass options to selector.i18n() thanks to [@hugojosefson](https://github.com/jamuhl/i18next/pull/10)
1470
+ - close [issue #8(https://github.com/jamuhl/i18next/issues/8)]: Fail silently when trying to access a path with children
1471
+ - cleanup
1472
+ - debug flag (options.debug -> write infos/errors to console)
1473
+
1474
+ ## 1.2.5
1475
+
1476
+ - fix for IE8
1477
+
1478
+ ## 1.2.4
1479
+
1480
+ - added indexOf for non ECMA-262 standard compliant browsers (IE < 9)
1481
+ - calling i28n() on element with data-i18n attribute will localize it now (i18n now not only works on container elements child)
1482
+
1483
+ ## 1.2.3
1484
+
1485
+ - extended detectLng: switch via qs _setLng=_ or cookie _i18next_
1486
+ - assert county in locale will be uppercased `en-us` -> `en-US`
1487
+ - provide option to have locale always lowercased _option lowerCaseLng_
1488
+ - set lng cookie when set in init function
1489
+
1490
+ ## 1.2
1491
+
1492
+ - support for translation context
1493
+ - fixed zero count in plurals
1494
+ - init without options, callback
1495
+
1496
+ ## 1.1
1497
+
1498
+ - support for multiple plural forms
1499
+ - common.js enabled (for node.js serverside)
1500
+ - changes to be less dependent on jquery (override it's functions, add to root if no jquery)
1501
+ - enable it on serverside with node.js [i18next-node](https://github.com/jamuhl/i18next-node)
1502
+
1503
+ ## 1.0
1504
+
1505
+ - support for other attribute translation via _data-i18n_ attribute
1506
+ - bug fixes
1507
+ - tests with qunit and sinon
1508
+
1509
+ ## 0.9
1510
+
1511
+ - multi-namespace support
1512
+ - loading static files or dynamic route
1513
+ - jquery function for _data-i18n_ attibute
1514
+ - post missing translations to the server
1515
+ - graceful fallback en-US -> en -> fallbackLng
1516
+ - localstorage support
1517
+ - support for pluralized strings
1518
+ - insertion of variables into translations
1519
+ - translation nesting