UNPKG

react-i18next

Version:

Internationalization for react done right. Using the i18next i18n ecosystem.

1,401 lines (746 loc) 47.2 kB
### 15.5.1 add typescript as optional peer dependency [1843](https://github.com/i18next/react-i18next/pull/1843) ### 15.5.0 feat: use const type parameters for useTranslation() [1842](https://github.com/i18next/react-i18next/pull/1842) ### 15.4.1 fix: unique key warning on componentized element [1835](https://github.com/i18next/react-i18next/pull/1835) ### 15.4.0 feat: add meta with codes on warnings to allow conditional logging [1826](https://github.com/i18next/react-i18next/pull/1826) ### 15.3.0 Uses the i18next logger instead of the default console logger, if there is a valid i18next instance. Now the debug i18next option is respected, and you can also inject your own logger module: https://www.i18next.com/misc/creating-own-plugins#logger ### 15.2.0 This version may be breaking if you still use React < v18 with TypeScript. For JS users this version is equal to v15.1.4 - fix: Global JSX namespace is deprecated [1823](https://github.com/i18next/react-i18next/issues/1823) with [1822](https://github.com/i18next/react-i18next/pull/1822) ### 15.1.4 - Fix: warning each child should have a unique key [1820](https://github.com/i18next/react-i18next/pull/1820) ### 15.1.3 - fix: Self-closing REACT components in translation strings should not attempt to replace the component's children [1815](https://github.com/i18next/react-i18next/issues/1815) [1816](https://github.com/i18next/react-i18next/pull/1816) ### 15.1.2 - fix: Attempted to assign to readonly property [1813](https://github.com/i18next/react-i18next/pull/1813) ### 15.1.1 - fix: Not all namespaces are loaded when passing the lng option to useTranslate [1809](https://github.com/i18next/react-i18next/issues/1809) ### 15.1.0 - fix: `<Trans />` warns 'Each child in a list should have a unique "key" prop.' for react 19 [1806](https://github.com/i18next/react-i18next/pull/1806) ### 15.0.3 - try to fix [unexpected token issue](https://github.com/i18next/next-i18next/issues/2302) ### 15.0.2 - try to fix Trans handling with alwaysFormat set to true [1801](https://github.com/i18next/react-i18next/issues/1801) ### 15.0.1 - revert arrow function in class property to address [this](https://github.com/i18next/react-i18next/commit/46e8ea5ff69325b73087811a2ce6a2b1faffa971#r145061161) ### 15.0.0 - use optional chaining, nullish coalescing and nullish coalescing assignment [1774](https://github.com/i18next/react-i18next/pull/1774) - Build config and optimizations [1769](https://github.com/i18next/react-i18next/pull/1769) - some dependency updates [1768](https://github.com/i18next/react-i18next/pull/1768) - use modern hasLoadedNamespace code (now requires at least i18next > v19.4.5 (introduced in june 2020)) ### 14.1.3 - create a isObject helper function [1766](https://github.com/i18next/react-i18next/pull/1766) - optimize nodesToString [1765](https://github.com/i18next/react-i18next/pull/1765) - Simplifies hasValidReactChildren [1764](https://github.com/i18next/react-i18next/pull/1764) - create a isString helper to avoid code duplication [1763](https://github.com/i18next/react-i18next/pull/1763) - use arrow functions where possible [1762](https://github.com/i18next/react-i18next/pull/1762) - use the commented out async code [1761](https://github.com/i18next/react-i18next/pull/1761) ### 14.1.2 - bring back internal interpolationOverride handling for Trans component (if there are childrens), fixes [1754](https://github.com/i18next/react-i18next/issues/1754) ### 14.1.1 - do not modify passed tOptions context property to address [1745](https://github.com/i18next/react-i18next/issues/1745) ### 14.1.0 - types(`Trans`): add typechecking on context prop [1732](https://github.com/i18next/react-i18next/pull/1732) (might break if using "internal" `Trans` or `TransProps`) ### 14.0.8 - fix: issue [1728](https://github.com/i18next/react-i18next/issues/1728) when useSuspense is false and default ns [1731](https://github.com/i18next/react-i18next/pull/1731) ### 14.0.7 - try to get rid of internal interpolationOverride handling for Trans component, fixes [1729](https://github.com/i18next/react-i18next/issues/1729) ### 14.0.6 - align context handling of Trans component with t function, fixes [1729](https://github.com/i18next/react-i18next/issues/1729) ### 14.0.5 - Fix [1691](https://github.com/i18next/react-i18next/issues/1691) for strict mode, by preserving change language binding [1720](https://github.com/i18next/react-i18next/pull/1720) ### 14.0.4 - fix interpolation of the count prop [1719](https://github.com/i18next/react-i18next/issues/1719) ### 14.0.3 - revert changes done in v14.0.2 since it breaks normal language change render updates ### 14.0.2 - Fix/bug [1691](https://github.com/i18next/react-i18next/issues/1691) make returned t function identical upon second effect run in strict mode [1716](https://github.com/i18next/react-i18next/pull/1716) ### 14.0.1 - types: fix typo in `CustomInstanceExtensions` [1713](https://github.com/i18next/react-i18next/pull/1713) ### 14.0.0 - types: reportNamespaces is now optional, should fix [1693](https://github.com/i18next/react-i18next/issues/1693) ### 13.5.0 - self-closing components in translation strings should not attempt to replace the component's children [1695](https://github.com/i18next/react-i18next/issues/1695) ### 13.4.1 - types: use CustomInstanceExtenstions to extend reportNamespaces ### 13.4.0 - fix: separate cjs and mjs typings ### 13.3.2 - types: fix consider importing '\*.js' ### 13.3.1 - optimize defaultVariables feature introduced in last release ### 13.3.0 - Respect defaultVariables in the interpolation options [1685](https://github.com/i18next/react-i18next/issues/1685) ### 13.2.2 - Fix missing TransWithoutContext type [1672](https://github.com/i18next/react-i18next/pull/1672) ### 13.2.1 - types: Allow iterable ReactI18NextChildren as children [1669](https://github.com/i18next/react-i18next/pull/1669) ### 13.2.0 - Don't use defaults prop as default key [1664](https://github.com/i18next/react-i18next/pull/1664) ### 13.1.2 - postpone usage of newer ES syntax ### 13.1.1 - Render all children regardless of type when using i18nIsDynamicList prop [1661](https://github.com/i18next/react-i18next/pull/1661) ### 13.1.0 - Fix non-list dynamic content in Trans component [1660](https://github.com/i18next/react-i18next/pull/1660) ### 13.0.3 - fix unescape is not consistently called for all values [1657](https://github.com/i18next/react-i18next/issues/1657) ### 13.0.2 - export icu.macro [1652](https://github.com/i18next/react-i18next/issues/1652) ### 13.0.1 - types: Fix performance issue in Trans component [1646](https://github.com/i18next/react-i18next/pull/1646) ### 13.0.0 - Update types to support t function redesign [1615](https://github.com/i18next/react-i18next/pull/1615) - requires i18next >= v23.0.1 ### 12.3.1 - optimization for optional lng prop for useTranslation, should now prevent missings when lazy loading translations [1637](https://github.com/i18next/react-i18next/issues/1637) ### 12.3.0 - optional lng prop for useTranslation (helping on server side [1637](https://github.com/i18next/react-i18next/issues/1637)) ### 12.2.2 - try to fix conditional exports in package.json ### 12.2.1 - type fix: the type of defaultNS in I18nextProvider should support string[] [1633](https://github.com/i18next/react-i18next/pull/1633) ### 12.2.0 - if defaultValue is passed in not ready t functio (via useTranslation) return that instead of the key, even though the user-land could should be fixed [1618](https://github.com/i18next/react-i18next/issues/1618) ### 12.1.5 - fix react merged types [1606](https://github.com/i18next/react-i18next/pull/1606) originally introduced with #1531 to address #1506 ### 12.1.4 - fix crash in gatsby [1594](https://github.com/i18next/react-i18next/issues/1594) ### 12.1.3 - fix fallback of t function in Trans component ### 12.1.2 - fix crash in gatsby [1594](https://github.com/i18next/react-i18next/issues/1594) ### 12.1.1 - fix for node resolution [1589](https://github.com/i18next/react-i18next/issues/1589) ### 12.1.0 - context-less version of Trans component to be used for environments without react context [1588](https://github.com/i18next/react-i18next/pull/1588) ### 12.0.0 - Update t function types to rely on types coming from i18next [1501](https://github.com/i18next/react-i18next/pull/1501) ### 11.18.6 - types: nsMode [1554](https://github.com/i18next/react-i18next/issues/1554) ### 11.18.5 - support unescaping forward slash [1548](https://github.com/i18next/react-i18next/pull/1548) ### 11.18.4 - fix: reset t when keyPrefix is updated [1544](https://github.com/i18next/react-i18next/pull/1544) ### 11.18.3 - types: bindI18n option for UseTranslationOptions ### 11.18.2 - more html entities to unescape by default [1538](https://github.com/i18next/react-i18next/pull/1538) ### 11.18.1 - types: allow iterable with objects as children [1531](https://github.com/i18next/react-i18next/pull/1531) ### 11.18.0 - ability to add custom unescape function [1529](https://github.com/i18next/react-i18next/pull/1529) ### 11.17.4 - fix: UMD build [1527](https://github.com/i18next/react-i18next/issues/1527) ### 11.17.3 - style: explicit React imports [1525](https://github.com/i18next/react-i18next/pull/1525) ### 11.17.2 - reset t if ns changes in useTranslation [1518](https://github.com/i18next/react-i18next/pull/1518) ### 11.17.1 - Stricter typescript type for Trans components prop [1516](https://github.com/i18next/react-i18next/pull/1516) ### 11.17.0 - Add support for keyPrefix in withTranslation [1512](https://github.com/i18next/react-i18next/pull/1512) ### 11.16.11 - types: fix Translation component types regression [1511](https://github.com/i18next/react-i18next/pull/1511) ### 11.16.10 - types: translation component types [1509](https://github.com/i18next/react-i18next/pull/1509) ### 11.16.9 - types: fix missing generic type for HTMLAttributes [1499](https://github.com/i18next/react-i18next/pull/1499) ### 11.16.8 - types: fix Trans component to support react 18 types, by introducing allowObjectInHTMLChildren TS option [1492](https://github.com/i18next/react-i18next/pull/1492) ### 11.16.7 - types: Added objects explicitly to Trans children [1486](https://github.com/i18next/react-i18next/pull/1486) ### 11.16.6 - fix: warn just once 'i18n.languages were undefined or empty' and return true, like before ### 11.16.5 - types: ReactNode should be prefixed with React [1481](https://github.com/i18next/react-i18next/pull/1481) ### 11.16.4 - fix type 'TFunctionResult' is not assignable to type 'ReactNode' on React 18 [1480](https://github.com/i18next/react-i18next/pull/1480) ### 11.16.3 - types: children fix for React v18 [1478](https://github.com/i18next/react-i18next/pull/1478) - fix: apply [same fix](https://github.com/i18next/i18next/commit/0dcf7fdede9d58e16f82179b41b09f10eda5aeea) for local hasLoadedNamespace function ### 11.16.2 - update macro to wrap defaults in brackets when necessary [1472](https://github.com/i18next/react-i18next/pull/1472) ### 11.16.1 - types: for context prop of Trans component ### 11.16.0 - fix: transSupportBasicHtmlNodes for keepArray check [1470](https://github.com/i18next/react-i18next/pull/1470) - feat: add context prop to Trans component [1464](https://github.com/i18next/react-i18next/issues/1464) ### 11.15.7 - types: add nsSeparator to CustomTypeOptions [1471](https://github.com/i18next/react-i18next/pull/1471) ### 11.15.6 - fix error for typescript 4.6 [1453](https://github.com/i18next/react-i18next/pull/1463) ### 11.15.5 - types: fix never return type when using plurals [1453](https://github.com/i18next/react-i18next/pull/1453) ### 11.15.4 - types: add values field to Plural component in macros [1446](https://github.com/i18next/react-i18next/pull/1446) ### 11.15.3 - types: fix for issue introduced with type extension for react-native [1436](https://github.com/i18next/react-i18next/pull/1436) ### 11.15.2 - types: TypeScript interface for the Trans component does now accept react-native props [1418](https://github.com/i18next/react-i18next/pull/1418) ### 11.15.1 - add missing types for shouldUnescape and useTranslation [1429](https://github.com/i18next/react-i18next/pull/1429) ### 11.15.0 - option to unescape html in Trans [1426](https://github.com/i18next/react-i18next/pull/1426) ### 11.14.3 - types: remove undefined from conditional type [1410](https://github.com/i18next/react-i18next/pull/1410) ### 11.14.2 - Add type-safe support to deep keyPrefix [1403](https://github.com/i18next/react-i18next/pull/1403) ### 11.14.1 - Rollback [1402](https://github.com/i18next/react-i18next/pull/1402): Remove generics from Trans component to suppress warning issue [1400](https://github.com/i18next/react-i18next/pull/1400) ### 11.14.0 - Remove generics from Trans component to suppress warning issue [1400](https://github.com/i18next/react-i18next/pull/1400) - Add type support to plurals [1399](https://github.com/i18next/react-i18next/pull/1399) ### 11.13.0 - feat(types): add type-safe support to keyPrefix option [1390](https://github.com/i18next/react-i18next/pull/1390) - feat(types): allow key separator augmentation [1367](https://github.com/i18next/react-i18next/pull/1367) ### 11.12.0 - feature: add key prefix support to useTranslation hook [1371](https://github.com/i18next/react-i18next/pull/1371) ### 11.11.4 - typescript: add returnNull and returnEptyString options to TypeOptions interface [1341](https://github.com/i18next/react-i18next/pull/1341) ### 11.11.3 - Trans: parse first, then interpolate [1345](https://github.com/i18next/react-i18next/pull/1345) ### 11.11.2 - feat(typings): support readonly namespaces in TFuncKey [1340](https://github.com/i18next/react-i18next/pull/1340) ### 11.11.1 - feat(types): allow readonly namespaces in useTranslation [1339](https://github.com/i18next/react-i18next/pull/1339) ### 11.11.0 - introduce `CustomTypeOptions` type definition and deprecate the `Resources` type definition [1328](https://github.com/i18next/react-i18next/pull/1328) ### 11.10.0 - add transWrapTextNodes option [1324](https://github.com/i18next/react-i18next/pull/1324) to prevent a well-known Google Translate issue with React apps [1323](https://github.com/i18next/react-i18next/issues/1323), thanks to [feross](https://github.com/feross) ### 11.9.0 - typescript/icu macro: add new syntax for interpolation of complex types [1316](https://github.com/i18next/react-i18next/pull/1316) -> [docs for template usage](https://react.i18next.com/misc/using-with-icu-format#tagged-template-for-icu) ### 11.8.15 - ignore null children in Trans component [1307](https://github.com/i18next/react-i18next/issues/1307) ### 11.8.14 - update html-parse-stringify to fix uppercase elements in Trans component [1304](https://github.com/i18next/react-i18next/issues/1304) ### 11.8.13 - Replace html-parse-stringify2 with html-parse-stringify [1283](https://github.com/i18next/react-i18next/pull/1283) to prevent [CVE-2021-23346](https://github.com/i18next/react-i18next/issues/1275) ### 11.8.12 - refactor: remove unneeded object [1286](https://github.com/i18next/react-i18next/pull/1286) ### 11.8.11 - typescript: Bug fixes [1284](https://github.com/i18next/react-i18next/pull/1284) ### 11.8.10 - typescript: Move type definition files [1276](https://github.com/i18next/react-i18next/pull/1276) ### 11.8.9 - Fix allow to replace i18n in provider with useTranslation hook [1273](https://github.com/i18next/react-i18next/pull/1273) ### 11.8.8 - typescript: Allow `TFuncKey` to be used without specifying the namespace, in the same way TFunction and useTranslation work [1262](https://github.com/i18next/react-i18next/pull/1262) ### 11.8.7 - warning for old wait usage ### 11.8.6 - typescript: Updated TS definitions (adding useSuspense option in TranslationProps) [1247](https://github.com/i18next/react-i18next/pull/1247) ### 11.8.5 - typescript: fix: Inference for specific keys ts 4.1 [1230](https://github.com/i18next/react-i18next/pull/1230) ### 11.8.4 - typescript: Add workaround to suppress infinite instantiation warning [1227](https://github.com/i18next/react-i18next/pull/1227) - typescript: withTranslation() typing fix for defaultProps [1226](https://github.com/i18next/react-i18next/pull/1226) - typescript: Accept const components prop for Trans [1224](https://github.com/i18next/react-i18next/pull/1224) ### 11.8.3 - Fix: Return type inference for t function (typescript 4.1) [1221](https://github.com/i18next/react-i18next/pull/1221) ### 11.8.2 - fix: type definitions for typescript 4.1 [1220](https://github.com/i18next/react-i18next/pull/1220) ### 11.8.1 - fix: typescript definitions for t function without namespaces [1214](https://github.com/i18next/react-i18next/pull/1214) ### 11.8.0 - typescript: Make the translation function fully type-safe [1193](https://github.com/i18next/react-i18next/pull/1193) - trans should work with misleading overloaded empty elements in components [1206](https://github.com/i18next/react-i18next/pull/1206) ### 11.7.4 - fixes passing interpolations options via Trans components tOptions prop [1204](https://github.com/i18next/react-i18next/pull/1204) ### 11.7.3 - Avoid redundant re-rendering in I18nextProvider [1174](https://github.com/i18next/react-i18next/pull/1174) ### 11.7.2 - Avoid setState while react is rendering [1165](https://github.com/i18next/react-i18next/pull/1165) ### 11.7.1 - typescript: fix: typescript definition of context object [1160](https://github.com/i18next/react-i18next/pull/1160) ### 11.7.0 - Trans interpolating self-closing tags in components prop(object) [1140](https://github.com/i18next/react-i18next/pull/1140) ### 11.6.0 - Trans allow components props to be an object containing named interpolation elements ### 11.5.1 - providing filename when running babel.parse in icu.macro [1133](https://github.com/i18next/react-i18next/pull/1133) ### 11.5.0 - Trans: merge option in mapAST [1120](https://github.com/i18next/react-i18next/pull/1120) ### 11.4.0 - Add sideEffects false to package json to allow tree shaking [1097](https://github.com/i18next/react-i18next/pull/1097) ### 11.3.5 - fix returning defaultValue for Trans component [1092](https://github.com/i18next/react-i18next/pull/1092) ### 11.3.4 - [useTranslation] Avoid setting the new `t` function if the component is unmounted. (1051)[https://github.com/i18next/react-i18next/pull/1051] ### 11.3.3 - fixes copying ns in useSSR ### 11.3.2 - typescript: Add optional defaultN [1050](https://github.com/i18next/react-i18next/pull/1050) ### 11.3.1 - typescript: Translation component's ready parameter is missing in TypeScript definition [1044](https://github.com/i18next/react-i18next/pull/1044) - change hook condition in Trans to equal useTranslations implementation ### 11.3.0 - useSSR: add namespaces to init options options.ns [1031](https://github.com/i18next/react-i18next/issues/1031) - typescript: Fix the type of the components props of Trans [1036](https://github.com/i18next/react-i18next/pull/1036) ### 11.2.7 - typescript: Allow ComponentType for Trans' `parent` type [1021](https://github.com/i18next/react-i18next/pull/1021) ### 11.2.6 - typescript: Allow html props on Trans, fix `parent` prop type [1019](https://github.com/i18next/react-i18next/pull/1019) ### 11.2.5 - handle array fallback on wrongly configured app ;) [1010](https://github.com/i18next/react-i18next/pull/1010) ### 11.2.4 - typescript: Extend withTranslation tests to include optional props [1009](https://github.com/i18next/react-i18next/pull/1009) ### 11.2.3 - Store should be initialized after useSSR [1008](https://github.com/i18next/react-i18next/pull/1008) ### 11.2.2 - Only pass forwardedRef to children if options.withRef is false [999](https://github.com/i18next/react-i18next/pull/999) ### 11.2.1 - remove used jsx in withTranslation to avoid issues while compiling [994](https://github.com/i18next/react-i18next/pull/994) ### 11.2.0 - withTranslation allow not only passing a ref with option withRef but also passing a forwardedRef from outside as props (before forwardedRef was only added to wrapped component if the withRef option was set) [992](https://github.com/i18next/react-i18next/pull/992) ### 11.1.0 - Update `rollup.config.js` for IE11 Transpilations [988](https://github.com/i18next/react-i18next/pull/988) ### 11.0.1 - typescript: Use updated ts export default from i18next [984](https://github.com/i18next/react-i18next/pull/984) ### 11.0.0 - **Breaking** based on i18next changes made in [v18.0.0](https://github.com/i18next/i18next/blob/master/CHANGELOG.md#1800) changing the language should not trigger a Suspense anylonger. The state will be ready and `t` bound to the previous language until `languageChanged` get triggered -> this results in a nicer experience for users (no flickering Suspense while changing the language). Based on issue "Suspence is fired during lang change when useTranslation called in between" [975](https://github.com/i18next/react-i18next/issues/975) - the default bindI18n is now `languageChanged` and `languageChanging` was removed from that default - Adding `languageChanging` to bindI18n will bring back old behaviour where a language change will trigger a Suspense / ready: false while loading those new translations - You can now override the defaults in i18next.options.react for `bindI18n`, `bindI18nStore` and `useSuspense` in the hook by `useTranslation(ns, { bindI18n, bindI18nStore, useSuspense})` or in the HOC by passing those as props. ### 10.13.2 - typescript: Add t function to TransProps types [969](https://github.com/i18next/react-i18next/pull/969) - lint: Fix linter errors [966](https://github.com/i18next/react-i18next/pull/966) ### 10.13.1 - avoid conditional hook call in edge case (was only issue in wrong setup useContext outside I18nextProvider) [951](https://github.com/i18next/react-i18next/pull/951) ### 10.13.0 - also use count from `values` object passed to Trans if passed - else use the one on props [947](https://github.com/i18next/react-i18next/pull/947) ### 10.12.5 - typescript: Update types for reportNamespaces [945](https://github.com/i18next/react-i18next/pull/945) - typescript: Improve withSSR type definition [943](https://github.com/i18next/react-i18next/pull/943) ### 10.12.4 - ICU: Fixes macro to support count prop and expressions better [939](https://github.com/i18next/react-i18next/pull/939) ### 10.12.3 - avoid conditional hook call in edge case (wrong setup) [935](https://github.com/i18next/react-i18next/pull/935) ### 10.12.2 - Trans: do not replace html tags in translation strings that are not in the transKeepBasicHtmlNodesFor array [919](https://github.com/i18next/react-i18next/issues/919) ### 10.12.1 - Set ready flag to false when i18n instance has not been initialised [918](https://github.com/i18next/react-i18next/pull/918) ### 10.12.0 - fix / extend icu.macro: ICU: Trans macro will parse defaults as alternate to children [917](https://github.com/i18next/react-i18next/pull/917) ### 10.11.5 - typescript: fix types for use() [912](https://github.com/i18next/react-i18next/pull/912) ### 10.11.4 - assert edge case trans component get set a key - assert context get destructed of empty object if context gets used falsely on a component got pulled out of main tree from react-portal or similar ### 10.11.3 - only apply initial values in useSSR, withSSR on i18next instances not being a clone (eg. created by express middleware on server) ==> don't apply on serverside ### 10.11.2 - Reload translations whenever namespaces passed to useTranslation() change [878](https://github.com/i18next/react-i18next/pull/878) ### 10.11.1 - fixes a regression in Trans component taking namespace from passed t function [867](https://github.com/i18next/react-i18next/issues/867#issuecomment-502395958) ### 10.11.0 - Restore support passing the defaultNS via I18nextProvider prop [860](https://github.com/i18next/react-i18next/pull/860) ### 10.10.0 - HOC: expose wrapped component as WrappedComponent property [853](https://github.com/i18next/react-i18next/pull/853) ### 10.9.1 - Fix useEffect mount/unmount usage [852](https://github.com/i18next/react-i18next/pull/852) ### 10.9.0 - trigger suspense on languageChanging by add listening to that event too (new in i18next@15.1.0) - if you do not like this behaviour of suspending during languageChange - remove it from bindI18n ### 10.8.1 - expose context [829](https://github.com/i18next/react-i18next/pull/829) ### 10.8.0 - Support taking values for interpolation not only from content but the props count, values too: Replace count prop from <Trans> in translation string automatically [826](https://github.com/i18next/react-i18next/issues/826) ### 10.7.0 - brings back nsMode=default|fallback [822](https://github.com/i18next/react-i18next/pull/822) - typescript: Add missing type definition for withTranslation options [821](https://github.com/i18next/react-i18next/pull/821) ### 10.6.2 - Fix Trans component ignore default options [818](https://github.com/i18next/react-i18next/pull/818) ### 10.6.1 - useTranslation useEffect also guard against unmounted for bound events...seems unmount and actual call to useEffect cleanup are not in correct order (component is first unmounted and then unbound - should be vice versa) ### 10.6.0 - use forwardRef for withTranslation [802](https://github.com/i18next/react-i18next/pull/802) - fixes Translation reset after component is unmounted with useTranslation [801](https://github.com/i18next/react-i18next/issues/801) ### 10.5.3 - Fix the displayName of HOC components [798](https://github.com/i18next/react-i18next/pull/798) ### 10.5.2 - fixes: transSupportBasicHtmlNodes doesn't work with self-closing Trans [790](https://github.com/i18next/react-i18next/issues/790) ### 10.5.1 - ReferenceError: setImmediate is not defined [787](https://github.com/i18next/react-i18next/issues/787) ### 10.5.0 - Adding support for nested component inside Trans that are a list.map like `<ul>{['a', 'b'].map(item => ( <li key={item}>{item}</li> ))}</ul>` [784](https://github.com/i18next/react-i18next/pull/784) (Adding `<ul i18nIsDynamicList>` will also create correct missing string) ### 10.4.2 - typescript: updated typescript definition of the UseTranslationOptions interface, added the useSuspense configuration property [778](https://github.com/i18next/react-i18next/pull/778) ### 10.4.1 - allow p in Trans ### 10.4.0 - allow br, strong, i tags be used for translations handled by Trans ### 10.3.1 - IE11 sending console as the first argument to apply [774](https://github.com/i18next/react-i18next/pull/774) ### 10.3.0 - Allow to enable/disable useSuspense at a hook or component level [769](https://github.com/i18next/react-i18next/pull/769) - typescript: Add ready/tReady type definitions [753](https://github.com/i18next/react-i18next/pull/753) ### 10.2.1 - fix cimode won't load therefore won't be ready [768](https://github.com/i18next/react-i18next/issues/768) ### 10.2.0 - Add bindI18nStore event options to listen to store changes if needed [749](https://github.com/i18next/react-i18next/pull/749) ### 10.1.2 - allow passing ready if i18next not initialized yet but initialStore set (timing issue in razzle) ### 10.1.1 - forward ready state in withTranslation, Translation ### 10.1.0 - better naming for Wrappers in HOC for easier use of react debugger in console - allow setting options react.useSuspense to false on i18next.init to avoid usage of suspense ### 10.0.5 - fixes namespace loading for false inital state undefined - typescript: Make children optional within TransProps [728](https://github.com/i18next/react-i18next/pull/728) ### 10.0.4 - try avoiding pull in of regenerator runtime for async usage -> use Promise for now ### 10.0.3 - fix initial props on withSSR ### 10.0.2 - refactor ready state in useTranslation ### 10.0.1 - allow object spread `const { t } = useTranslation()` [714](https://github.com/i18next/react-i18next/pull/714) - typescript: add types for I18nextProvider [721](https://github.com/i18next/react-i18next/pull/721) ### 10.0.0 - released to npm - for MIGRATION READ [https://react.i18next.com/latest/migrating-v9-to-v10](https://react.i18next.com/latest/migrating-v9-to-v10) ### 10.0.0-alpha.3 - hooks: make reportNS bound to the i18n instance - so report is per request [711](https://github.com/i18next/react-i18next/issues/711) ### 10.0.0-alpha.2 - hooks: add Translation render prop [708](https://github.com/i18next/react-i18next/issues/708) - hooks: add I18nextProvider for passing i18n instance via context - hooks: might fix infinit loop issue on undefined language (set ready to true anyway) [673](https://github.com/i18next/react-i18next/issues/673) ### 10.0.0-alpha.1 - hooks: initial alpha version with all build targets -> preparing v10 release ### 9.0.10 - typescript: Add TS definition for reportNS prop [699](https://github.com/i18next/react-i18next/pull/699) ### 9.0.9 - typescript: fix: useTranslation hooks typing [698](https://github.com/i18next/react-i18next/pull/698) ### 9.0.8 - typescript: TFunction usage inside NamespacesConsumer should behave [694](https://github.com/i18next/react-i18next/pull/694) ### 9.0.7 - fixing react-i18next throwing webpack error when initializeing using @babel/runtime 7.3.0 [685](https://github.com/i18next/react-i18next/issues/685) ### 9.0.6 - updated all deps ### 9.0.5 - UMD: Environment optimization with rollup-plugin-replace support [683](https://github.com/i18next/react-i18next/pull/683) ### 9.0.4 - typescript: add generic type to t function and the tests [665](https://github.com/i18next/react-i18next/pull/665) - hooks: enable passing in i18n to useTranslation hook so we could wrap that with a useContext enabled hook ### 9.0.3 - fix useSSR for hooks storing state on i18n instance and not globally [671](https://github.com/i18next/react-i18next/issues/671) - should fix case where fallbackLng is set false and invalid lng is loaded in hooks -> never ready [677](https://github.com/i18next/react-i18next/issues/677) - multiple typescript improvements ### 9.0.2 - fix hooks ts [658](https://github.com/i18next/react-i18next/pull/658) ### 9.0.1 - fix ts [655](https://github.com/i18next/react-i18next/pull/655) ### 9.0.0 - allow defining `transEmptyNodeValue` in i18next.options.react to set a default fallback value for empty nodes to allow i18next fallback flow [462](https://github.com/i18next/react-i18next/pull/462) - Warn if i18next instance is a promise [652](https://github.com/i18next/react-i18next/pull/652) - keeping legacy names (no deprecation on them as this will be last version using those -> v10 will be based on hooks) **BREAKING** - out of licensing reasons the ponyfill for react-context had to be removed [635](https://github.com/i18next/react-i18next/issues/635) Using react >= 16.3.0 will be save - in other cases you will need to polyfill react.createContext yourself!! ### 8.4.0 - update typescript definitions for i18next v13 [631](https://github.com/i18next/react-i18next/pull/631) ### 8.3.9 - try fixing hooks ready algorithm [642](https://github.com/i18next/react-i18next/issues/642) ### 8.3.8 - try fixing edge case of unset state: [615](https://github.com/i18next/react-i18next/issues/615) ### 8.3.7 - handle initial SSR props only once ### 8.3.6 - remove componentWillReceiveProps call in I18nextProvider to comply with react strict mode [596](https://github.com/i18next/react-i18next/pull/596) ### 8.3.5 - rename named export to window.ReactI18next for standalone js ### 8.3.4 - try fixing standalone browser build ### 8.3.3 - remove wait option in hooks code (not used anylonger) ### 8.3.2 - use react suspense in hooks experimental code [learn more](https://react.i18next.com/experimental/using-with-hooks) ### 8.3.1 - make export in ./hooks.js explicit ### 8.3.0 - Ensure withI18n hoists static members. [584](https://github.com/i18next/react-i18next/pull/584) ### 8.2.0 - comes with support for hooks that are experimental in react v16.7.0-alpha [learn more](https://react.i18next.com/experimental/using-with-hooks) ### 8.1.2 - publish changes to typescript definitions [567](https://github.com/i18next/react-i18next/pull/567) ### 8.1.1 - persisting generated i18nOptions on withI18n hoc to avoid rerenders on pure components ### 8.1.0 - add typedefinitions [557](https://github.com/i18next/react-i18next/pull/557) ### 8.0.8 - add innerRefs support to withContext, withI18n ### 8.0.7 - replaces getWrappedInstance on withNamespaces / translate with passing a innerRef https://github.com/facebook/react/issues/13456 [534](https://github.com/i18next/react-i18next/issues/534) ### 8.0.6 - fix SSR cases ### 8.0.5 - fix issue with context not applied when merging i18n options ### 8.0.4 - add prop-types to peer deps as long we use the ponyfill create-react-context ### 8.0.3 - remove prop-types in tests ### 8.0.2 - remove proptypes dependency - not needed anylonger as we do not define old context - move out ssr stuff to utils - move reportNS to the NamespacesConsumer ### 8.0.1 - use @babel/plugin-transform-runtime ### 8.0.0 - translate HOC was renamed to "withNamespaces" as it controls which namespaces should be loaded - I18n render prop was renamed to "NamespacesConsumer" as it controls which namespaces should be "consumed" - there is a new context.consuming HOC "withI18n" adds i18n, t to component props (without the extra options of withNamespaces) - there is a simplification for interpolation in translations `'Hello <1><0>{{name}}</0></1>, you have <3>{{count}}</3> message. Open <5>hear</5>.'` can be written as: `'Hello <1>{{name}}</1>, you have {{count}} message. Open <5>hear</5>.'` => there is no need to add `<0>...</0>` around interpolated values anylonger => your old files having those extra pseudo tags will still work without needing to change them - there is a new I18nContext -> I18nContext.provider, I18next.consumer using new react context api **Using react's new context api** should be non breaking in most cases, with following exceptions: - using preact you will have to use preact.createContext plugin (or eventual hope the provided polyfill works for preact too) - you used the translate.getWrappedInstance function -> you will need to use instance.getWrappedInstance().getWrappedInstance() now as the translate hoc is now wrapped in an additional I18nContext.Consumer still we prefer to increase this to a **major version** as beside the described egde cases there might be other effects we not have covered with our tests ### 7.13.0 - Load missing namespaces when updating ns prop on I18n component [523](https://github.com/i18next/react-i18next/pull/523) ### 7.12.0 - pass down lng via props in I18n and translate HOC - for use cases like [508](https://github.com/i18next/react-i18next/issues/508) ### 7.11.1 - fix related to issue #504: also report default Namespace with translate() [506](https://github.com/i18next/react-i18next/pull/506) ### 7.11.0 - Added reportNS function to I18NextProvider to report used namespaces [500](https://github.com/i18next/react-i18next/pull/500) ### 7.10.1 - fix small issue in icu.macro introduced on refactoring ### 7.10.0 - Adds import { Trans, Plural, Select } from `react-i18next/icu.macro` a babel macro to allow nicer components used with ICU format (which as default would result in invalid JSX). [discussion](https://github.com/i18next/react-i18next/issues/439) ### 7.9.1 - Skip custom html tags in Trans component translation [PR482](https://github.com/i18next/react-i18next/pull/482) ### 7.9.0 - Support defaultNS from I18nextProvider props [PR478](https://github.com/i18next/react-i18next/pull/478) - Don't polyfill Object.entries globally [476](https://github.com/i18next/react-i18next/pull/476) ### 7.8.1 - i18n in context is optional as it can be passed via props too [474](https://github.com/i18next/react-i18next/pull/474) ### 7.8.0 - avoid rerenders triggered by bound i18next events while I18n or translate hoc are not ready yet (omitBoundRerender: true --- is default) [456](https://github.com/i18next/react-i18next/issues/456) ### 7.7.0 - Allow Trans component to be used with props only for icu use case (next step babel makro) [439](https://github.com/i18next/react-i18next/issues/439) ### 7.6.1 - Allow to pass a function as parent for <Trans /> component [PR424](https://github.com/i18next/react-i18next/pull/424) ### 7.6.0 - adds tOptions to Trans component to support ICU - removes componentWillMount lifecycle method from I18n.js render props as it will get deprecated on react 16.3 [404](https://github.com/i18next/react-i18next/issues/404) ### 7.5.1 - Fix reference to props in constructor [PR411](https://github.com/i18next/react-i18next/pull/411) ### 7.5.0 - passes down tReady from translate hoc for cases you prefer showing a placeholder instead of default return null in case of wait: true and not yet loaded translations [PR400](https://github.com/i18next/react-i18next/pull/400) - I18n render prop calls with ready as third param ### 7.4.0 - enables setting prop `ns` on Trans component to override namespace passed by render prop or hoc - allows trans component with no children just returning the string getting from translations ### 7.3.6 - reorder selection of i18n in I18n render prop ### 7.3.5 - reorder selection of i18n in I18n render prop ### 7.3.4 - more save access to options in general ### 7.3.3 - more save access to options.react ### 7.3.2 - replace Interpolate PureComponent with Component to assert it gets rerendered on lng change ### 7.3.1 - remove react-dom from peer dependencies as module is used in react-native too ### 7.3.0 - Allow translate HOC to take a function for getting namespaces [372](https://github.com/i18next/react-i18next/pull/372) ### 7.2.0 - Add usePureComponent option [PR357](https://github.com/i18next/react-i18next/pull/357) - Render empty string on empty string as Trans child [PR364](https://github.com/i18next/react-i18next/pull/364) ### 7.1.1 - fixes: bring back Trans component t fc from context ### 7.1.0 - optional take i18n.t in Trans component if non t function passed in via props or context ### 7.0.2 - fixes rendering in Trans component in case of no parent ### 7.0.1 - working Trans component without the need of setting options.react ### 7.0.0 - **[BREAKING]** As with react 16 you can return multiple elements from render - based on that we do not need to return a wrapper any longer from Trans component. Starting with v7.0.0 Trans component per default won't add a parent div around content passed as children. It will just return it's children. You still got the option to set a parent if you prefer content being wrapped. If you prefer wrapping for all your Trans components (or for backwards compatibility) you can set option `react.defaultTransParent` to an element on i18next init. ### 6.2.0 - adds hashTransKey function for custom key generation in case of not passing a key to Trans component and not like having the source value as key ### 6.1.0 - pre-check namespaces to avoid unnecessary initial `null` render [PR336](https://github.com/i18next/react-i18next/pull/336) ### 6.0.6 - remove PureComponent from Trans ### 6.0.5 - fixes support passing i18n and t to Trans as props [PR315](https://github.com/i18next/react-i18next/pull/315) ### 6.0.4 - fixes translate hoc build ### 6.0.3 - stop using PureComponent and use Component again...seems we get an issue with react-router v4 if using PureComponents - recreate t function on i18next updates so PureComponents relying on t get an update triggered ### 6.0.2 - rebuild needed cause of uppercasing for components name was not reflected in last build ### 6.0.1 - remove react from dependencies - not sure how that came into the package.json ### 6.0.0 - **[BREAKING]** removes options to set translateFuncName in translate hoc (was not supported in Trans and Interpolate component anyway) - setting i18n instance and defaults can now be done by i18next.use(reactI18nextModule) making I18nextProvider obsolete - As an alternative to the translate hoc you now can use the I18n component supporting a render props (for details about render props https://www.youtube.com/watch?v=BcVAq3YFiuc) ### 5.4.1 - fixes AST implementation for preact ### 5.4.0 - replaces regex used to parse nodes from string to an ast implementation solving [#298](https://github.com/i18next/react-i18next/issues/298) ### 5.3.0 - Pass extra parameters to Trans parent component ### 5.2.0 - adds module export in package.json pointing to es dist files. ### 5.1.0 - you now can set i18n instance on translate hoc once using setI18n: ``` import translate from 'react-i18next'; import i18n from './i18n'; translate.setI18n(i18n); ``` ### 5.0.0 - **[BREAKING]** we no longer accept wait to be specified on i18next init options like `{ wait: true }` -> all overrides for the translate hoc now have to be in child `react` like `{ react: { wait: true } }` - you now can override all the default options for translate hoc by setting them on i18next.init (excluding `translateFuncName` as we need that upfront to define childContextTypes) ``` i18next.init({ // ... other options react: { wait: false, withRef: false, bindI18n: 'languageChanged loaded', bindStore: 'added removed', nsMode: 'default' } }); ``` - you now can override all defaults for translate hoc options (including `translateFuncName`) by using: ``` import translate from 'react-i18next'; translate.setDefaults({ wait: false, withRef: false, bindI18n: 'languageChanged loaded', bindStore: 'added removed', nsMode: 'default', translateFuncName: 't' }); ``` ### 4.8.0 - make trans component work with preact and preact-compat - add preact example ### 4.7.0 - Trans component parent element configurable [PR278](https://github.com/i18next/react-i18next/pull/278) ### 4.6.4 - optimize generated defaultValue for components not having children ### 4.6.3 - move react, prop-types, ... to peerDependency again ### 4.6.2 - optimize trans component output ### 4.6.1 - fixes issue in changeLanguage on set via translate hoc ssr ### 4.6.0 - allow passing initialI18nStore and initialLanguage to I18nextProvider via props to support simpler ssr - adds a serverside rendering sample based on razzle ### 4.5.0 - pass i18n instance to context inside translate hoc to simplify usage in nextjs - options.react.exposeNamespace will expose namespace on data-i18next-options for consuming in editors ### 4.4.0 - introduces Trans component which enables you to translate nested components incl. interpolation by resulting in one translatable string. [learn more](https://react.i18next.com/components/trans-component.html) ### 4.3.0 - allow passing down initialI18nStore and initialLanguage to translate hoc to support ssr scenario better see example/nextjs ### 4.2.0 - allow passing i18next instance in translate hoc options makes integration in nextjs easier ### 4.1.2 - Remove workaround to set ready if there was no initialized signal [PR263](https://github.com/i18next/react-i18next/pull/263) ### 4.1.1 - Fix react-i18next to work with TypeScript [PR261](https://github.com/i18next/react-i18next/pull/261) ### 4.1.0 - eslint cleanup - a lot more tests - flag nsMode: 'fallback' -> uses namespaces passed to translate hoc as fallbacks [#254](https://github.com/i18next/react-i18next/issues/254) ### 4.0.0 - deploys 3.1.1 as possible breaking: fixes issue in fixing t function - pass only first namespace not an array of namespaces (access other namespaces like: this.props.t('namespace:key')) ### 3.1.2 - reverts last change ### 3.1.1 - fixes issue in fixing t function - pass only first namespace not an array of namespaces ### 3.1.0 - fixes wrong warning of missing prop on interpolate with format - the wait flag on translate hoc can now be set globally on i18next options `i18next.init({ wait: true })` ### 3.0.0 - [BREAKING] assert you install prop-types as a peerDependency based on changes in react >= 15.5.x - update react to 15.5.x use prop-types module to remove react warnings [PR248](https://github.com/i18next/react-i18next/pull/248) - update all dependencies - move react, prop-types to peerDependencies ### 2.2.3 - try not access store if undefined for hmr ### 2.2.1 - fixes validation for missing prop in interpolate component ### 2.2.0 - support formatting inside interpolate component ### 2.1.0 - tanslate hoc: expose the i18n instance via props ### 2.0.0 - translate hoc wait option asserts now that i18next is initialized before rendering (waits for lng detection) - [BREAKING] needs i18next >= 4.2.0 ### 1.11.0 - pass style prop to interpolate component - define i18next as a peerDependency ### 1.10.1 - Suppresses required context type warning if passing i18n as a prop [PR205](https://github.com/i18next/react-i18next/pull/205) ### 1.10.0 - allow passing i18next instance via props to translate hoc [PR203](https://github.com/i18next/react-i18next/pull/203) ### 1.9.0 - adds options bindI18n, bindStore can be set to false or string of events to bind for triggering updates ### 1.8.0 - allows to set a className on interpolate component - update all dependencies and devDependencies ### 1.7.0 - add option to change t function name to something else [PR196](https://github.com/i18next/react-i18next/pull/196) - Added an option of using the <Interpolate /> with a raw HTML [PR195](https://github.com/i18next/react-i18next/pull/195) ### 1.6.3 - only trigger loaded namespaces if mounted ### 1.6.2 - update for react 15.2, eliminates Unknown Prop Warning ### 1.6.1 - Added conditional warning on unmatched variable during interpolation [PR 160](https://github.com/i18next/react-i18next/pull/160 ### 1.6.0 - Hoist non react statics [PR 150](https://github.com/i18next/react-i18next/pull/150 ### 1.5.3 - Handle i18next added and removed resource events [PR 150](https://github.com/i18next/react-i18next/pull/150 ### 1.5.2 - move ns loading to did mount ### 1.5.1 - possible fix for HRM issues ### 1.5.0 - adds wait option, which delays initial rendering until translations are loaded ### 1.4.2 - possible fix for HRM issues ### 1.4.1 - change global name ### 1.4.0 - adds getWrappedInstance() to translate wrapper ### 1.3.0 - Support for universal apps / server-side rendering [PR 52](https://github.com/i18next/react-i18next/pull/52) ### 1.2.2 - fixes bower json - bower publish only ### 1.2.0 - change build to rollup ### 1.1.0 - added WrappedComponent property to translate wrapper [PR 15](https://github.com/i18next/react-i18next/pull/15) ### 1.0.1 - fixing export of index ### 1.0.0 - change package.json main to `/lib/index.js` - move build from gulp to npm run script