build(deps): update dependency react-i18next to v17.0.21 (#13523)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [react-i18next](https://redirect.github.com/i18next/react-i18next) |
[`17.0.20` →
`17.0.21`](https://renovatebot.com/diffs/npm/react-i18next/17.0.20/17.0.21)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/react-i18next/17.0.21?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-i18next/17.0.20/17.0.21?slim=true)
|

---

### Release Notes

<details>
<summary>i18next/react-i18next (react-i18next)</summary>

###
[`v17.0.21`](https://redirect.github.com/i18next/react-i18next/blob/HEAD/CHANGELOG.md#17021)

[Compare
Source](https://redirect.github.com/i18next/react-i18next/compare/v17.0.20...v17.0.21)

- fix(IcuTrans): explicit `values` now win over
`interpolation.defaultVariables`, as they do in `t()`. `IcuTrans` merged
them the other way round, so `<IcuTrans values={{ user: 'John Doe' }}
/>` rendered the configured default variable `user` instead of `John
Doe`. `Trans` had the same inverted merge and is fixed too.
Compatibility note: only names that are set both in `values` and in
`defaultVariables` render differently.
- feat: new entry point `react-i18next/IcuTransWithoutContext` (with
types) for React Server Components. Importing `IcuTransWithoutContext`
from `react-i18next` in a Server Component could fail the build with
`createContext is not a function`, because the main entry creates the
React context when it is loaded. Like
`react-i18next/TransWithoutContext`, the new entry point does not.
- fix(build): the ESM build's `dist/es/package.json` now declares
`"sideEffects": false`, like the root `package.json` already did.
Bundlers use the nearest `package.json`, so the ESM build counted as
having side effects and unused exports were kept: an app that only uses
`Trans` still bundled `IcuTrans` with its HTML entity decoder,
`useTranslation` and `use-sync-external-store`. With esbuild, a
`Trans`-only bundle (React and i18next external) goes from 20.9 KB to
11.6 KB minified, 8.3 KB to 5.0 KB gzipped.
- docs: the `icu.macro` Babel macro is now marked as deprecated in
favour of using `IcuTrans` directly. It fails on Babel 8
(`t.jSXIdentifier is not a function`), `<Plural count={count}>` renders
the raw ICU message, and a React `key` on `<Plural>`/`<Select>` becomes
an ICU case. It keeps working on Babel 7 and is not removed. The
`IcuTrans` docs page has a corrected example and props table and covers
Server Components.

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/authelia/authelia).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsImphdmFzY3JpcHQiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This commit is contained in:
renovate[bot] authored and GitHub committed 2026-10-19 09:08:28 +00:00
1 parent cda122b2c0
commit 6e71c39b6c
2 files changed
+6 -6

No files matched your search

+1 -1
View File
@@ -21,7 +21,7 @@
"qrcode.react": "4.2.0",
"react": "19.3.1",
"react-dom": "19.3.1",
"react-i18next": "17.0.20",
"react-i18next": "17.0.21",
"react-router": "8.4.0",
"zxcvbn": "4.4.2"
},
+5 -5
View File
@@ -59,8 +59,8 @@ importers:
specifier: 19.3.1
version: 19.3.1(react@19.3.1)
react-i18next:
specifier: 17.0.20
version: 17.0.20(@typescript/typescript6@6.0.2)(i18next@26.4.7(@typescript/typescript6@6.0.2))(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
specifier: 17.0.21
version: 17.0.21(@typescript/typescript6@6.0.2)(i18next@26.4.7(@typescript/typescript6@6.0.2))(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
react-router:
specifier: 8.4.0
version: 8.4.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)
@@ -3365,8 +3365,8 @@ packages:
peerDependencies:
react: ^19.3.1
react-i18next@17.0.20:
resolution: {integrity: sha512-rzSSirf0NP9vfcUXHZAksIuyMWl7L/T/7nm8S+sSIFuIzku54qcyyVAOZXbawPNpUxGkDx/eosSv4DrpzcxuOQ==}
react-i18next@17.0.21:
resolution: {integrity: sha512-bcOTaZQKsNb4KKIc+T6Dx1Cf0x3UTV5io8X1PyaC38oOeNEbU5CNkW+5QmOGEyDSEbK/QC2kLXOgL9zeCIxR3g==}
peerDependencies:
i18next: '>= 26.2.0'
react: '>= 16.8.0'
@@ -7258,7 +7258,7 @@ snapshots:
react: 19.3.1
scheduler: 0.28.0
react-i18next@17.0.20(@typescript/typescript6@6.0.2)(i18next@26.4.7(@typescript/typescript6@6.0.2))(react-dom@19.3.1(react@19.3.1))(react@19.3.1):
react-i18next@17.0.21(@typescript/typescript6@6.0.2)(i18next@26.4.7(@typescript/typescript6@6.0.2))(react-dom@19.3.1(react@19.3.1))(react@19.3.1):
dependencies:
'@babel/runtime': 7.29.7
html-parse-stringify: 4.0.1