UNPKG

43.8 kBMarkdownView Raw
1### 19.6.3
2
3- plural rules for ht and iw
4
5### 19.6.2
6
7- fix interpolation with option skipOnVariables when there are multiple placeholders [1490](https://github.com/i18next/i18next/issues/1490)
8
9### 19.6.1
10
11- extend interpolation option skipOnVariables [1488](https://github.com/i18next/i18next/pull/1488)
12- typescript: Change bindStore to bindI18nStore in ReactOptions type and update default values [1489](https://github.com/i18next/i18next/pull/1489)
13
14### 19.6.0
15
16- fix prototype pollution
17- introduce new interpolation option skipOnVariables [1483](https://github.com/i18next/i18next/pull/1483)
18
19### 19.5.6
20
21- fix local usage of nsSeparator option
22
23### 19.5.5
24
25- fix: recursion when passing nesting to interpolated [1480](https://github.com/i18next/i18next/pull/1480)
26
27### 19.5.4
28
29- typescript fix: getDataByLanguage typings & test [1472](https://github.com/i18next/i18next/pull/1472)
30- typescript fix: type declarion of exposed EventEmitter#off methods [1460](https://github.com/i18next/i18next/pull/1460)
31
32### 19.5.3
33
34- fix Macedonian plural formula [1476](https://github.com/i18next/i18next/pull/1476)
35
36### 19.5.2
37
38- fix nesting interpolation with prepended namespace, fixes #1474 [1475](https://github.com/i18next/i18next/pull/1475)
39
40### 19.5.1
41
42- getBestMatchFromCodes: use fallbackLng if nothing found, fixes #1470 [1471](https://github.com/i18next/i18next/pull/1471)
43
44### 19.5.0
45
46- language detectors can return an array of languages and let i18next figure out best match
47
48- rename option whitelist to supportedLngs
49- rename option nonExpicitWhitelist to nonExplicitSupportedLngs
50- rename function languageUtils.isWhitelisted to languageUtils.isSupportedCode
51
52This 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.
53
54The temporal backwards compatiblity will be removed in a follow up major release.
55
56Learn more about why this change was made [here](https://github.com/i18next/i18next/issues/1466).
57
58### 19.4.5
59
60- Add store events to typings [1451](https://github.com/i18next/i18next/pull/1451)
61
62### 19.4.4
63
64- typescript: Allow passing retry boolean to `ReadCallback` [1439](https://github.com/i18next/i18next/pull/1439)
65
66### 19.4.3
67
68- fix regression introduced in "support formatting in nesting" [1419](https://github.com/i18next/i18next/pull/1419)
69
70### 19.4.2
71
72- fix for deno [1428](https://github.com/i18next/i18next/pull/1428)
73
74### 19.4.1
75
76- add getLanguagePartFromCode as in language fallback resolution [1424](https://github.com/i18next/i18next/pull/1424)
77
78### 19.4.0
79
80- support formatting in nesting [1419](https://github.com/i18next/i18next/pull/1419)
81
82### 19.3.4
83
84- fix cloning of service.utils binding to clone [1415](https://github.com/i18next/i18next/pull/1415)
85
86### 19.3.3
87
88- backendConnector extend initial retry from 250 to 350
89
90### 19.3.2
91
92- fix the nested string options parsing introduced in v19.2.0 which broke having multiple options
93
94### 19.3.1
95
96- typescript: add `options.interpolation.nestingOptionsSeparator`
97
98### 19.3.0
99
100- Double fix for 1395 issue [1399](https://github.com/i18next/i18next/pull/1399)
101- adds `options.interpolation.nestingOptionsSeparator: ','` to specify that separator
102
103### 19.2.0
104
105- Add ability to use commas in nested keys [1398](https://github.com/i18next/i18next/pull/1398)
106
107### 19.1.0
108
109- explict warning when no languageDetector is used and no lng is defined [1381](https://github.com/i18next/i18next/pull/1381)
110- Add option to always format interpolated values [1385](https://github.com/i18next/i18next/pull/1385)
111- pass all options to format function [992#issuecomment-577797162](https://github.com/i18next/i18next/issues/992#issuecomment-577797162)
112
113### 19.0.3
114
115- fixes retry interval in backend connector [1378](https://github.com/i18next/i18next/issues/1378)
116
117### 19.0.2
118
119- typescript: Type ResourceStore [1366](https://github.com/i18next/i18next/pull/1366)
120
121### 19.0.1
122
123- ignore non valid keys in saveMissing [1359](https://github.com/i18next/i18next/pull/1359)
124
125### 19.0.0
126
127- typescript: Typescript use `export default` for esm-first approach [1352](https://github.com/i18next/i18next/pull/1352)
128
129### 18.0.1
130
131- check loadedNamespace only once per lng-ns inside using `t` for better performance
132
133### 18.0.0
134
135- 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.
136
137- **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.
138
139- 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...
140
141- How can I get the language i18next will be set to? `i18next.isLanguageChangingTo` is set to the language called
142
143### 17.3.1
144
145- typescript: Add missing `cleanCode` option to TypeScript def [1344](https://github.com/i18next/i18next/pull/1344)
146
147### 17.3.0
148
149- pass used language & namespace to postprocessor [1341](https://github.com/i18next/i18next/pull/1341)
150
151### 17.2.0
152
153- Support using ImmutableJS Records as the data model in interpolation [1339](https://github.com/i18next/i18next/pull/1339)
154
155### 17.1.0
156
157DX improvements:
158
159- warning if accessing t before i18next was initialized or namespace loaded
160- warning and cancelling save if saveMissing key before i18next was initialized or namespace loaded
161
162Both 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.
163
164### 17.0.18
165
166- Improve performance of EventEmitter.off [1333](https://github.com/i18next/i18next/pull/1333)
167
168### 17.0.17
169
170- 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)
171
172### 17.0.16
173
174- typescript: fix incorrect callback type for backend module read callback [1322](https://github.com/i18next/i18next/pull/1322)
175- typescript: add getDataByLanguage into index.d.ts [1326](https://github.com/i18next/i18next/pull/1326)
176
177### 17.0.15
178
179- Fixed default value as string in IE [1325](https://github.com/i18next/i18next/pull/1325)
180
181### 17.0.14
182
183- typescript: Allow TFunction to receive 1-3 parameters [1317](https://github.com/i18next/i18next/pull/1317)
184
185### 17.0.13
186
187- fixes: Interpolation defaultVariables not recognized on t() [1314](https://github.com/i18next/i18next/issues/1314)
188
189### 17.0.12
190
191- remove unused Interpolator#init reset param (only used internally) [1313](https://github.com/i18next/i18next/pull/1313)
192- Cope with null interpolation (unescaped case) [1310](https://github.com/i18next/i18next/pull/1310)
193
194### 17.0.11
195
196- fix issue with unset value in interpolation throwing exception
197- typescript: Allow augmentation of TFunction to be able to add overloads [1308](https://github.com/i18next/i18next/pull/1308)
198
199### 17.0.10
200
201- Update Interpolator.js to use regexSafe for unescaped interpolation [1307](https://github.com/i18next/i18next/pull/1307)
202
203### 17.0.9
204
205- typescript: use() should accept a class or object [1301](https://github.com/i18next/i18next/pull/1301)
206
207### 17.0.8
208
209- typescript: Correct `use(module)` types [1296](https://github.com/i18next/i18next/pull/1296)
210
211### 17.0.7
212
213- typescript: Typescript imports [1291](https://github.com/i18next/i18next/pull/1291)
214- Disabled default returnedObjectHandler [1288](https://github.com/i18next/i18next/pull/1288)
215
216### 17.0.6
217
218- support montenegrien "crn" plurals
219
220### 17.0.4
221
222- typescript: ResourceKey type should allow top level string value [1267](https://github.com/i18next/i18next/pull/1267)
223
224### 17.0.3
225
226- don't do named exports for umd
227
228### 17.0.2
229
230- typescript: Allow null as TResult [1263](https://github.com/i18next/i18next/pull/1263)
231- bring back ./i18next.js and ./i18next.min.js -> used by wildcard unpkg users...<= bad idea doing so
232- main export in package.json points to cjs dist
233
234### 17.0.1
235
236- adapt ./index.js to 17.0.0 export
237
238### 17.0.0
239
240- 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)
241- 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;`
242- **impact** you can't no longer `import { changeLanguage } from 'i18next'; changeLanguage('de');` you will have to `import i18next from 'i18next'; i18next.changeLanguage('de');`
243- **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)
244
245### 16.0.0
246
247- removes deprecated jsnext:main from package.json
248- Bundle all entry points with rollup [1256](https://github.com/i18next/i18next/pull/1256)
249- **note:** dist/es -> dist/esm, dist/commonjs -> dist/cjs (individual files -> one bundled file)
250
251### 15.1.3
252
253- typescript: Fix type error when init with locize plugin options [1248](https://github.com/i18next/i18next/pull/1248)
254
255### 15.1.2
256
257- typescript: types(ReactOptions): Add missing props to React Options interface [1247](https://github.com/i18next/i18next/pull/1247)
258
259### 15.1.1
260
261- typescript: Update BackendModule interface to allow null or undefined for the callback [1244](https://github.com/i18next/i18next/pull/1244)
262
263### 15.1.0
264
265- trigger a languageChanging event
266
267### 15.0.9
268
269- IE: <=IE10 fix (unable to call parent constructor) [1227](https://github.com/i18next/i18next/pull/1227)
270
271### 15.0.8
272
273- typescript: adding init function to 3rdParty module typings and enforcing type property [1223](https://github.com/i18next/i18next/pull/1223)
274
275### 15.0.7
276
277- typescript: Add useSuspense to ReactOptions, fix error throwing on test [1219](https://github.com/i18next/i18next/pull/1219)
278
279### 15.0.6
280
281- typescript: add Interpolator interface [1213](https://github.com/i18next/i18next/pull/1213)
282
283### 15.0.5
284
285- typescript: Add `hashTransKey` to `ReactOptions` [1208](https://github.com/i18next/i18next/pull/1208)
286- Expose error on reloadResources [1212](https://github.com/i18next/i18next/pull/1212)
287
288### 15.0.4
289
290- add default export on node.js entry [1204](https://github.com/i18next/i18next/pull/1204)
291- typescript: Add defaultValue tests and allow second arg string as defaultValue [1206](https://github.com/i18next/i18next/pull/1206)
292
293### 15.0.3
294
295- typescript: accept templatestringsarray as TKey [1199](https://github.com/i18next/i18next/pull/1199)
296- allow arrays on addResources
297
298### 15.0.2
299
300- try fixing UMD build
301
302### 15.0.1
303
304- fix export name on global (typo)
305
306### 15.0.0
307
308- update build process (while all test passes feeling more save making this a major release)
309
310### 14.1.1
311
312- allow empty string for array join [1191](https://github.com/i18next/i18next/issues/1191)
313
314### 14.1.0
315
316- support plurals in returning objecttree array [1196](https://github.com/i18next/i18next/issues/1196)
317
318### 14.0.1
319
320- typescript: Parameterized use of TFunction fails while WithT use works [1188](https://github.com/i18next/i18next/pull/1188)
321
322### 14.0.0
323
324- typescript: BREAKING Refactor generics usage [1180](https://github.com/i18next/i18next/pull/1180)
325
326### 13.1.5
327
328- es modules: Fix bug when import by ES Module [1179](https://github.com/i18next/i18next/pull/1179)
329- typescript: Add module property [1176](https://github.com/i18next/i18next/pull/1176)
330
331### 13.1.4
332
333- 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)
334
335### 13.1.3
336
337- TypeScript: Pull up WithT interface allowing for overrides [1172](https://github.com/i18next/i18next/pull/1172)
338
339### 13.1.2
340
341- Add typescript testing [1165](https://github.com/i18next/i18next/pull/1165)
342- Add `transEmptyNodeValue` to `ReactOptions` [1166](https://github.com/i18next/i18next/pull/1166)
343- Run prettier on typescript files for easier diffing in PRs [1167](https://github.com/i18next/i18next/pull/1167)
344
345### 13.1.1
346
347- fix init() attributes typings [1158](https://github.com/i18next/i18next/pull/1158)
348
349### 13.1.0
350
351- Support interpolation for defaultValue as parameter [1151](https://github.com/i18next/i18next/pull/1151)
352
353### 13.0.1
354
355- update typedefinitions [1152](https://github.com/i18next/i18next/pull/1152)
356
357### 13.0.0
358
359- pass options to missingInterpolationHandler [1146](https://github.com/i18next/i18next/pull/1146)
360- refactor non valid keys handling [1143](https://github.com/i18next/i18next/pull/1143)
361
362BREAKING:
363
364- adds typescript definitions directly into this repo - no longer need to grab them from definitlytyped [1142](https://github.com/i18next/i18next/pull/1142)
365- 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
366
367### 12.1.0
368
369- adds partialBundledLanguages flag in init options [1136](https://github.com/i18next/i18next/pull/1136)
370
371### 12.0.0
372
373- add hebrew update [1121](https://github.com/i18next/i18next/pull/1121)
374
375### 11.10.2
376
377- revert hebrew
378
379### 11.10.1
380
381- Adds Hebrew plural support [1121](https://github.com/i18next/i18next/pull/1121)
382
383### 11.10.0
384
385- Allow missingInterpolationHandler to be provided as t() option [1118](https://github.com/i18next/i18next/pull/1118)
386
387### 11.9.1
388
389- fixes allow overriding of fallbackLng when in options passed to t functions call
390
391### 11.9.0
392
393- merge load and reloadResources functionality to allow an optional callback in reloadResources
394
395### 11.8.0
396
397- deeper support for i18nFormats - add getResource function from format
398
399### 11.7.0
400
401- 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)
402
403### 11.6.0
404
405- expose new store function getDataByLanguage [1087](https://github.com/i18next/i18next/pull/1087)
406
407### 11.5.0
408
409- EventEmitter.prototype.on returns this for chaining calls [1079](https://github.com/i18next/i18next/pull/1079)
410
411### 11.4.0
412
413- Allow to pass raw value to the custom interpolation escape function [1076](https://github.com/i18next/i18next/pull/1076)
414
415### 11.3.6
416
417- fix support zero for saveMissing plurals [1072](https://github.com/i18next/i18next/pull/1072)
418
419### 11.3.5
420
421- 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)
422
423### 11.3.4
424
425- fixes simplifyPluralSuffix: false cases for languages having only singular, plural [1069](https://github.com/i18next/i18next/issues/1069)
426
427### 11.3.3
428
429- pass down resolved to i18nFormat.parse as last argument
430
431### 11.3.2
432
433- Properly handle arguments containing arrays while listening to a wildcard event [1052](https://github.com/i18next/i18next/pull/1052)
434
435### 11.3.1
436
437- Fixes allowing setting keySeparator to false in calling t function [1051](https://github.com/i18next/i18next/pull/1051)
438
439### 11.3.0
440
441- Option to skip interpolation when calling t. [1050](https://github.com/i18next/i18next/pull/1050)
442
443### 11.2.3
444
445- Remove unnecessary warning when value is empty string [1046](https://github.com/i18next/i18next/pull/1046)
446
447### 11.2.2
448
449- adds used key to call parse of i18nFormat
450
451### 11.2.1
452
453- fixes for i18nFormat plugin
454
455### 11.2.0
456
457- allows new plugin of type 'i18nFormat' to override i18next format with eg. ICU format
458
459### 11.0.0 - 11.1.1 (fixing version mismatch cdn.js - npm)
460
461- **[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)
462- **[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)
463
464### 10.6.0
465
466- adds missingInterpolationHandler [1039](https://github.com/i18next/i18next/pull/1039)
467
468### 10.5.1
469
470- fixes call to getPluralFormsOfKey if called with unsupported language [1032](https://github.com/i18next/i18next/issues/1032)
471- Avoid mutating whitelist array. [1037](https://github.com/i18next/i18next/pull/1037)
472
473### 10.5.0
474
475- Adds options.silent to addResources and addResourceBundle [1024](https://github.com/i18next/i18next/pull/1024)
476
477### 10.4.1
478
479- forward options in backend.create saveMissing
480
481### 10.4.0
482
483- 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)
484- _[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.
485
486### 10.3.0
487
488- new option saveMissingPlurals (default true) will enable submitting plural forms on saveMissing if t call is for plural (count passed in options).
489
490### 10.2.2
491
492- fixes Context and nested lost initial options [1009](https://github.com/i18next/i18next/issues/1009)
493
494### 10.2.1
495
496- optimize update output in log
497
498### 10.2.0
499
500- _[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)
501
502### 10.1.0
503
504- return boolean, number from translator
505- initial set language on translator if non set yet (after that only if loaded) [#998](https://github.com/i18next/i18next/issues/998)
506
507### 10.0.7
508
509- support all overloadTranslationOptionHandler in getFixedT [react-i18next/issues/332](https://github.com/i18next/react-i18next/issues/332)
510
511### 10.0.6
512
513- native browser es modules via adding .js where needed [PR980](https://github.com/i18next/i18next/pull/980)
514
515### 10.0.5
516
517- should fix sync of options in clone and its translator
518
519### 10.0.2
520
521- fixes issue in object return when passing in multiple keys
522
523### 10.0.1
524
525- fixes support for using suffix `_0` on languages only having "singular" form
526
527### 10.0.0
528
529- **[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
530
531### 9.1.0
532
533- support for using suffix `_0` on languages only having "singular" form enables easier convert in tool chains
534
535### 9.0.1
536
537- propagate changeLanguage to translator after loadResources
538
539### 9.0.0
540
541- **[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)
542- removes the compatibility options to i18next v1
543- allows passing in second param as string on getFixedT returned t function so we could use that as defaultValue
544- add setting maxReplaces in interpolation options to prevent endless loop in interpolation
545
546### 8.4.3
547
548- getFixedT lng parameter of array type -> pass as lngs to t function [PR949](https://github.com/i18next/i18next/pull/949)
549
550### 8.4.2
551
552- fixes merging options in clone instance...do not override passed values by values on main instance
553
554### 8.4.1
555
556- emits correct lng to changeLanguage event (fixes async detection behaviour) [PR933](https://github.com/i18next/i18next/pull/933)
557
558### 8.4.0
559
560- expose i18next.options.interpolation.format on i18next.format
561- i18next.dir if not passing lng use first of i18next.languages before using i18next.language
562
563### 8.3.0
564
565- allows nesting objects/arrays into objects [#925](https://github.com/i18next/i18next/issues/925)
566
567### 8.2.1
568
569- fixes issue in async lng detection
570
571### 8.2.0
572
573- supports now async language detection - when language detector has member async = true
574
575### 8.1.0
576
577- option to disable nesting by calling `i18next.t('key', { nest: false })` [PR920](https://github.com/i18next/i18next/pull/920)
578- fixes passing lng from options to formatter function if available
579
580### 8.0.0
581
582- 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.
583
584### 7.2.3
585
586- rebuild seems we had a mistake in pushing latest build
587
588### 7.2.2
589
590- fixes issue in accepting string as a result of "nested" lookup [PR909](https://github.com/i18next/i18next/pull/909)
591
592### 7.2.1
593
594- fixes iterating over object's own properties [#904](https://github.com/i18next/i18next/pull/904)
595
596### 7.2.0
597
598- new init option simplifyPluralSuffix - setting it to false will treat all plurals using suffix numbers even for locals only having singular and plural
599- even if no lng set or detected at least load the fallback languages
600- delay init call on createInstance if not set initImmediate to false [#879](https://github.com/i18next/i18next/issues/879)
601
602### 7.1.3
603
604- fixes issue in returnObject tree called with options including ns: [react-i18next #240](https://github.com/i18next/react-i18next/issues/240)
605
606### 7.1.2
607
608- remove regex escape from format separators [#896](https://github.com/i18next/i18next/pull/896)
609
610### 7.1.1
611
612- change to named plugins for 3rd party - just calling init
613
614### 7.1.0
615
616- add option to include plugins not directly related - they get called their init function with current instance of i18next on init
617
618### 7.0.1
619
620- fix issue in fallback lng detection if no code was detected
621- check for having a lng in append when searching locals to load on loadResources - avoid error on express middleware
622
623### 7.0.0
624
625- [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:
626
627 fallbackLng: {
628 'nb': ['no', 'en'],
629 'nn': ['no', 'en'],
630 'default': ['en']
631 }
632
633- adding exports for named import (destruction es6) [#873](https://github.com/i18next/i18next/issues/873)
634- change entry point for umd build to /src/i18next to avoid mixed export
635- 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)
636- update all build dependencies
637
638### 6.1.2
639
640- fixes fix in 6.1.1
641
642### 6.1.1
643
644- 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
645
646### 6.1.0
647
648- you now can use same nsSeparator and keySeparator (eg. use a dot for both)
649
650### 6.0.3
651
652- do not loop over objectTree if keySeparator is set to false
653
654### 6.0.2
655
656- fixes init flow of clone
657
658### 6.0.1
659
660- fixes issue in event emitter, assert all emitters get called even if one called get removed and changes the array index
661
662### 6.0.0
663
664- 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)
665
666### 5.0.0
667
668- Nested keys should not be escaped by default [#854](https://github.com/i18next/i18next/issues/854)
669- Make sure i18next.init() runs for i18next.cloneInstance() [#860](https://github.com/i18next/i18next/pull/860)
670
671### 4.2.0
672
673- adds i18next.isInitialized when isInitialized
674- triggers backend loaded event before initialized
675
676### 4.1.3 / 4.1.4
677
678- smaller changes suggested to still inofficial support ie8 [#852](https://github.com/i18next/i18next/issues/852)
679
680### 4.1.2
681
682- fixes same interpolation object with multiple getFixedT() in different locales yields wrong translation [#851](https://github.com/i18next/i18next/issues/851)
683- updated all build deps
684
685### 4.1.1
686
687- remove subs array from logger - no longer keep changing debug flag on subs if changing on main
688
689### 4.1.0
690
691- Custom escape function, single-quotes in nested [#843](https://github.com/i18next/i18next/pull/843)
692
693### 4.0.0
694
695- [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)
696
697### 3.5.2
698
699- remove the module entry point again will be added in 4.0.0
700
701### 3.5.1
702
703- fix build output add a test file to test the generated build
704
705### 3.5.0
706
707- Setting options on individual translations override, rather than merge global configs [#832](https://github.com/i18next/i18next/issues/832)
708- Create an new translator when cloning i18next instance [#834](https://github.com/i18next/i18next/pull/834)
709- allows fallbackLng to be an string, an array or an object defining fallbacks for lng, lng-region plus default, eg
710
711 fallbackLng: {
712 'de-CH': ['fr', 'it', 'en'],
713 'de': ['fr', 'en'],
714 'zh-Hans': ['zh-Hant', 'en'],
715 'zh-Hant': ['zh-Hans', 'en'],
716 'default': ['en']
717 }
718
719### 3.4.4
720
721- Fix Interpolator.escapeValue defaulting to undefined in some cases [#826](https://github.com/i18next/i18next/issues/826)
722
723### 3.4.3
724
725- Fix Interpolator formatter exception error propagation due to not reset RegExp indices [#820](https://github.com/i18next/i18next/issues/820)
726
727### 3.4.2
728
729- assert dir function does not crash if no language available
730
731### 3.4.1
732
733- fix issue with format containing formatSeparator for interpolation formatting
734
735### 3.4.0
736
737- 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)
738
739### 3.3.1
740
741- fixed an issue with several unescaped key in the interpolation string [#746](https://github.com/i18next/i18next/pull/746)
742
743### 3.3.0
744
745- allows option `nonExplicitWhitelist` on init [#741](https://github.com/i18next/i18next/pull/741)
746
747### 3.2.0
748
749- adds api function i18next.reloadResources(), i18next.reloadResources(lngs, ns) to trigger a reload of translations
750
751### 3.1.0
752
753- emits missingKey always (like console.log) even if saveMissing is of -> use missingKeyHandler if you only want the trigger only on saveMissing: true
754
755### 3.0.0
756
757- **[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.
758- **[BREAKING]** AMD export will be unnamed now
759- don't call saveMissing if no lng
760
761### 2.5.1
762
763- fixes rtl support [#656](https://github.com/i18next/i18next/pull/656/files)
764
765### 2.5.0
766
767- allow null or empty string as defaultValue
768- init option `initImmediate (default: true)` to init without immediate
769
770### 2.4.1
771
772- if passing resources don't immediate loading fixes [#636](https://github.com/i18next/i18next/issues/636)
773
774### 2.4.0
775
776- support now language code variants with scripts and other exotic forms: zh-Hans-MO, sgn-BE-fr, de-AT-1996,...
777- trigger of changeLanguage, load of data with a setTimeout to allow other operations meanwhile
778
779### 2.3.5
780
781- Only add language to preload array when new [#613](https://github.com/i18next/i18next/pull/613/files)
782
783### 2.3.4
784
785- get babel 6 output IE compatible: https://jsfiddle.net/jamuhl/2qc7oLf8/
786
787### 2.3.2
788
789- add index to make export compatible again
790
791### 2.3.1
792
793- build /dist/es with included babelhelpers
794
795### 2.3.0
796
797- 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,...)
798- fixes detection when using both context and pluralization and context not found. [#851](https://github.com/i18next/i18next/pull/581)
799
800### 2.2.0
801
802- return instance after init for further chaning
803- make init optional on backend, cache
804- 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,...)
805
806### 2.1.0
807
808- allow keySeparator, nsSeparator = false to turn that off
809
810### 2.0.26
811
812- extended emitted arguments on 'added' event
813
814### 2.0.24
815
816- fixes unneeded reload of resources that failed to load
817
818### 2.0.23
819
820- fixes returnObjects in case of multiple namespaces
821
822### 2.0.22
823
824- add options for context, pluralSeparator
825
826### 2.0.21
827
828- clear done load request in backendConnector
829
830### 2.0.20
831
832- pass full options to detectors as third arg
833
834### 2.0.19
835
836- do not callback err in backendConnector if no backend is specified
837
838### 2.0.18
839
840- check for fallbackLng exist
841
842### 2.0.17
843
844- adds cimode to options.whitelist if set
845- emits failedLoading on load error
846
847### 2.0.16
848
849- adds addResource to i18next API
850- fix init of i18next without options, callback
851
852### 2.0.15
853
854- avoid loading of resources for lng=cimode
855
856### 2.0.14
857
858- enhance callback on load from backend...wait for pendings
859
860### 2.0.10
861
862- fixing build chain
863- do not post process on nested translation resolve
864
865### 2.0.5
866
867- fixing allow nesting on interpolated nesting vars
868
869### 2.0.4
870
871- don't log lng changed if no lng was detected
872- extend result on arrayJoins
873
874### 2.0.1
875
876- assert defaults are arrays where needed
877- assert calling lngUtils.toResolveHierarchy does not add undefined as code if called without code param
878
879### 2.0.0
880
881- complete rewrite of i18next codebase
882
883---
884
885### 1.11.2
886
887- replace forEach loop to support IE8 [PR 461](https://github.com/i18next/i18next/pull/461)
888
889### 1.11.1
890
891- fixes issue in nesting using multiple namespaces and lookups in fallback namespaces
892- Fix use of sprintf as shortcutFunction when first argument falsey [PR 453](https://github.com/i18next/i18next/pull/453)
893
894### 1.11.0
895
896- Add nsseparator and keyseparator as options to translation function [PR 446](https://github.com/i18next/i18next/pull/446)
897- Resolves issue #448 - TypeScript errors [PR 449](https://github.com/i18next/i18next/pull/449)
898- Fixing \_deepExtend to handle keys deep existing in source and target [PR 444](https://github.com/i18next/i18next/pull/444)
899- `resource` to `resources` in addResources function [PR 440](https://github.com/i18next/i18next/pull/440)
900- Runs multiple post processes for missing translations [PR 438](https://github.com/i18next/i18next/pull/438)
901- Add support to override Ajax HTTP headers [PR 431](https://github.com/i18next/i18next/pull/431)
902- Fixed mnk plural definition [PR 427](https://github.com/i18next/i18next/pull/427)
903- Add dir function to return directionality of current language, closes… [PR 413](https://github.com/i18next/i18next/pull/413)
904
905### 1.10.3
906
907- fixes issue where lng get fixed on data-i18n-options
908- [SECURITY] merges Reimplement XSS-vulnerable sequential replacement code [PR 443](https://github.com/i18next/i18next/pull/443)
909
910### 1.10.2
911
912- streamline callback(err, t) for case where resStore is passed in
913
914### 1.10.1
915
916- fixes Adds jquery like functionality without the jquery plugin. [PR 403](https://github.com/i18next/i18next/pull/403) by adding it to output
917
918### 1.10.0
919
920- [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)
921- fix fallback lng option during translations [PR 399](https://github.com/i18next/i18next/pull/399)
922- Adds jquery like functionality without the jquery plugin. [PR 403](https://github.com/i18next/i18next/pull/403)
923
924### 1.9.1
925
926- fix fallback lng option during translations [PR 399](https://github.com/i18next/i18next/pull/399)
927- Adds jquery like functionality without the jquery plugin. [PR 403](https://github.com/i18next/i18next/pull/403)
928
929### 1.9.0
930
931- i18n.noConflict() [PR 371](https://github.com/i18next/i18next/pull/371)
932- fix fallback to default namepsace when namespace passed as an option [PR 375](https://github.com/i18next/i18next/pull/375)
933- cache option for ajax requests [PR 376](https://github.com/i18next/i18next/pull/376)
934- option to show key on value is empty string [PR 379](https://github.com/i18next/i18next/pull/379)
935- Add isInitialized method [PR 380](https://github.com/i18next/i18next/pull/380)
936- Null check for detectLngFromLocalStorage [PR 384](https://github.com/i18next/i18next/pull/384)
937- support for adding timeout in configuration for ajax request [PR 387](https://github.com/i18next/i18next/pull/387)
938
939### 1.8.2
940
941- fixes build of commonjs with jquery file
942
943### 1.8.0
944
945- [BREAKING] adds custom build for commonjs with jquery...default will be without require for jquery
946- fixes issue [issue 360](https://github.com/i18next/i18next/issues/360)
947- expose applyReplacement on api
948- save resources to localStorage when useLocaleStore is true
949- add support on key is a number
950- added getResourceBundle to API
951- allow multiple post-processors
952- fallback to singular if no plural is found fixes issue [issue 356](https://github.com/i18next/i18next/issues/356)
953- access localstorage always with try catch fixes issue [issue 353](https://github.com/i18next/i18next/issues/353)
954
955### 1.7.7
956
957- fixes issue with stack overflow on t(lng, count)
958- fixes empty value fallback when processing secondary ns
959
960### 1.7.6
961
962- fixes lng detection (i18next-client on npm)
963
964### 1.7.5
965
966- adds option to define defaultOptions, which gets merged into t(options) [issue 307](https://github.com/i18next/i18next/issues/307)
967- optimization of size added by plural rules
968- handle error on json parse when using internal xhr
969- fixes plural/singular on count if going on fallbacks eg. fr --> en
970- fixes global leak of sync in amd versions
971- apply options.lowerCaseLng to fallbackLng too
972- added hasResourceBundle(lng, ns) to check if bundle exists
973- added experimental i18n.sync.reload --> resets resStore and reloads resources
974- catch issues with localStorage quota
975- changes detectlanguage to support whitelist entries
976
977### 1.7.4
978
979- add resource bundle gets deep extend flag i18n.addResourceBundle(lng, ns, { 'deep': { 'key2': 'value2' }}, true);
980- new functions to add one key value or multiple i18n.addResource(lng, ns, key, value);, i18n.addResources(lng, ns, {'key1': 'value1', 'deep.key2': 'value2'});
981- lngWhitelist merged
982- override postMissing function
983- allow floats for count
984- added indefinite functionality for plurals
985- optional set replacing vars to replace member to avoid collision with other options
986- experimental optional detectLngFromLocalStorage
987- fix for norwegian language
988
989### 1.7.3
990
991- solves issue with ie8 not providing .trim function on string -> added to shim
992- set data using \$(selector).i18n() on data-i18n='[data-someDataAttr]key'
993- more bullet proof state handling on failed file load
994- corrected latvian plurals based on [issue 231](https://github.com/jamuhl/i18next/issues/231)
995- allow array of fallback languages
996- allow int in values passed to shortcut sprintf
997- setLng to 'cimode' will trigger a CI mode returning 'key' instead of translation
998
999### 1.7.2
1000
1001- introducing option fallbackOnEmpty -> empty string will fallback
1002- added function removeResourceBundle(lng, ns) -> removes a resource set
1003- fixed issue with no option passed to setLng
1004- added ability to prepend, append content with data-i18n attributes
1005- introducing objectTreeKeyHandler
1006- fixes issue with i18n.t(null), i18n.t(undefined) throwing exception
1007- returnObjectTrees does not mangle arrays, functions, and regexps
1008- optimized structure for bower support
1009
1010### 1.7.1
1011
1012- fixed some typo
1013- allow translate to take an array of keys - take first found
1014- allow numbers in object trees
1015
1016### 1.7.0
1017
1018- test if initialisation finished before allowing calling t function
1019- setting option fixLng=true will return t function on init or setLng with the lng fixed for every subsequent call to t
1020- grab key from content if attr data-i18n has no value
1021- setting shortcutFunction to 'defaultValue' allows calling i18n.t(key, defaultValue)
1022- empty string in defaultValue is now valid no longer displaying key
1023- allow option cookieDomain
1024- fixes issue #115 out of stack exception in IE8 by recursing \_translate in objectTrees
1025
1026### 1.6.3
1027
1028- option to parse key if missing
1029- fixes issue where plural don't get translated if language is passed in t options
1030- fixes issue where key or defaultValue aren't postProcessed with itself as value
1031- fixes issue with fallbackLng = false in combination with sendMissingTo = fallback
1032- fixes namespace fallback loop to only loop if array has really a ns in it
1033
1034### 1.6.2
1035
1036- fixes some var typo
1037- fixes sendMissing to correct namespace
1038- fixes sendMissing in combination with fallbackNS
1039
1040### 1.6.1
1041
1042- PR #106 optionally un/escape interpolated content
1043- PR #101 automatic gettext like sprintf syntax detection + postprocess injection
1044- customload will get called on dynamicLoad too
1045- fixes namespace array settings if loaded resourcebundle or additional namespaces
1046- lookup of not existend resouces can be fallbacked to other namespaces - see option fallbackNS (array or string if one ns to fallback to)
1047- defaultValues get postProcessed
1048- BREAKING: per default null values in resources get translated to fallback. This can be changed by setting option fallbackOnNull to false
1049- PR #81 added support for passing options to nested resources
1050- PR #88 added an exists method to check for the existence of a key in the resource store
1051- fixed issue with null value throws in applyReplacement function
1052- fixed issue #80 empty string lookup ends in fallback instead of returning result in language
1053- fixed issue with null value in resources not returning expected value
1054- optimized tests to use on server (nodejs) too
1055- allow zepto as drop in replacement for \$
1056- using testacular as runner
1057- upgraded to grunt 0.4.0
1058- fixed optional interpolation prefix/suffix not used in plural translation cases
1059- optimized check if there are multiple keys for the data-i18n attribute to parse
1060
1061### 1.6.0
1062
1063- option to specify target to set attributes with jquery function by using 'data-i18n-target attribute'
1064- function to set new options for nesting functionality
1065- function to add resources after init
1066- option to lookup in default namespace if value is not found in given namespace
1067- option to change interpolation prefix and suffix via translation options
1068- fixed issue with using ns/keyseparator on plurals, context,...
1069- fixed issue with posting missing when not using jquery
1070- post missing in correct lng if lng is given in translation options
1071- proper usage of deferred object in init function
1072- fixed issue replacing values in objectTree
1073
1074### 1.5.10
1075
1076- BREAKING: fixed plural rules for languages with extended plural forms (more than 2 forms)
1077- merged pull #61 - custom loader (enables jsonp or other loading custom loading strategies)
1078- escaping interpolation prefix/suffix for proper regex replace
1079
1080### 1.5.9
1081
1082- functions to load additional namespaces after init and to set default namespace to something else
1083- set if you don't want to read defaultValues from content while using jquery fc
1084- set dataAttribute to different value
1085- set cookieName to different value
1086- some smallbugfixes
1087- typesafe use of console if in debug mode
1088
1089### 1.5.8
1090
1091- disable cookie usage by setting init option useCookie to false
1092- accept empty string as translation value
1093- fixed bug in own ajax implementation not using proper sendType
1094- fixed bug for returning objTree in combination with namespace
1095- fixed bug in plurals of romanic lngs
1096
1097### 1.5.7
1098
1099- pass namespace in t() options
1100- interpolation nesting
1101- changable querystring param to look language up from
1102
1103### 1.5.6
1104
1105- typesafe check for window, document existance
1106- runnable under rhino
1107- seperated amd builds with/without jquery
1108
1109### 1.5.5
1110
1111- **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
1112- added sprintf as postprocessor -> postProcess = 'sprintf' and sprintf = obj or array
1113- set default postProcessor on init
1114- redone build process with grunt
1115- drop in replacement for jquery each, extend, ajax
1116- setting fallbackLng to false will stop loading and looking it up
1117- option to load only current or unspecific language files
1118
1119### 1.5.0
1120
1121- pass options to sync.\_fetchOne, use options for fetching
1122- support for i18next-webtranslate
1123
1124### 1.4.1
1125
1126- post processor
1127- **BREAKING:** localStorage defaults to false
1128- added localStorageExpirationTime for better caching control
1129- few bug fixes
1130
1131### 1.4.0
1132
1133- preload multiple languages
1134- translate key to other language than current
1135- fixed issue with namespace usage in combination with context and plurals
1136- more options to send missing values
1137- better amd support
1138
1139### 1.3.4
1140
1141- set type of ajax request to GET (options sendType: default POST)
1142- set cookie expiration (options cookieExpirationTime: in minutes)
1143- read / cache translation options (context, count, ...) in data-attribute (options useDataAttrOptions: default false)
1144
1145### 1.3.3
1146
1147- optional return an objectTree from translation
1148- use jquery promises or callback in initialisation
1149- rewrote all tests with mocha.js
1150
1151### 1.3.2
1152
1153- options to init i18next sync (options -> getAsync = false)
1154- replace all occurence of replacement string
1155
1156### 1.3.1
1157
1158- pass options to selector.i18n() thanks to [@hugojosefson](https://github.com/jamuhl/i18next/pull/10)
1159- close [issue #8(https://github.com/jamuhl/i18next/issues/8)]: Fail silently when trying to access a path with children
1160- cleanup
1161- debug flag (options.debug -> write infos/errors to console)
1162
1163### 1.2.5
1164
1165- fix for IE8
1166
1167### 1.2.4
1168
1169- added indexOf for non ECMA-262 standard compliant browsers (IE < 9)
1170- calling i28n() on element with data-i18n attribute will localize it now (i18n now not only works on container elements child)
1171
1172### 1.2.3
1173
1174- extended detectLng: switch via qs _setLng=_ or cookie _i18next_
1175- assert county in locale will be uppercased `en-us` -> `en-US`
1176- provide option to have locale always lowercased _option lowerCaseLng_
1177- set lng cookie when set in init function
1178
1179### 1.2
1180
1181- support for translation context
1182- fixed zero count in plurals
1183- init without options, callback
1184
1185### 1.1
1186
1187- support for multiple plural forms
1188- common.js enabled (for node.js serverside)
1189- changes to be less dependent on jquery (override it's functions, add to root if no jquery)
1190- enable it on serverside with node.js [i18next-node](https://github.com/jamuhl/i18next-node)
1191
1192### 1.0
1193
1194- support for other attribute translation via _data-i18n_ attribute
1195- bug fixes
1196- tests with qunit and sinon
1197
1198### 0.9
1199
1200- multi-namespace support
1201- loading static files or dynamic route
1202- jquery function for _data-i18n_ attibute
1203- post missing translations to the server
1204- graceful fallback en-US -> en -> fallbackLng
1205- localstorage support
1206- support for pluralized strings
1207- insertion of variables into translations
1208- translation nesting