Update dependency i18next to v26 #554

Open
Renovate wants to merge 1 commit from renovate/i18next-26.x into main
Collaborator

This PR contains the following updates:

Package Type Update Change
i18next (source) dependencies major ^25.3.2^26.0.0

Release Notes

i18next/i18next (i18next)

v26.0.3

Compare Source

  • fix(types): addResourceBundle now accepts an optional 6th options parameter ({ silent?: boolean; skipCopy?: boolean }) matching the runtime API 2419

v26.0.2

Compare Source

  • fix(types): t("key", {} as TOptions) no longer produces a type error — the context constraint now bypasses strict checking when context is unknown (e.g. from TOptions) 2418

v26.0.1

Compare Source

  • fix: Formatter no longer crashes when alwaysFormat is true and no format specifier is present (format is undefined)
  • fix: Formatter now returns undefined/null values as-is instead of producing NaN when the value is missing

v26.0.0

Compare Source

This is a major breaking release:

Breaking Changes
  • Remove deprecated initImmediate option — the backward-compatibility mapping from initImmediate to initAsync (introduced in v24) has been removed. Use initAsync instead.
  • Remove legacy interpolation.format function — the old monolithic format function (interpolation: { format: (value, format, lng) => ... }) is no longer supported. The built-in Formatter (or a custom Formatter module via .use()) is now always used. Migrate to the new formatting approach using i18next.services.formatter.add() or .addCached() for custom formatters.
  • Remove console support notice — the console support notice introduced in v25.8.0 has been removed, along with the showSupportNotice option and all related internal suppression logic (globalThis.__i18next_supportNoticeShown, I18NEXT_NO_SUPPORT_NOTICE env var). See our blog post for the full story.
  • Remove simplifyPluralSuffix option — this option was unused by the core PluralResolver (which relies entirely on Intl.PluralRules). It only had an effect in the old v1/v2/v3 compatibility layer. The v4 test compatibility layer now defaults to true internally.
  • Remove deprecated @babel/polyfill from devDependencies.
Improvements
  • Code modernization across all source files:
    • Replace indexOf() > -1 / indexOf() < 0 with .includes() (~40+ occurrences)
    • Replace indexOf() === 0 with .startsWith() where appropriate
    • Replace var with const, '' + object with String(object), .substring() with .slice()
    • Replace .apply(observer, [event, ...args]) with direct call observer(event, ...args)
    • Remove unnecessary .call(this, ...) in BackendConnector retry logic
    • Fix array-callback-return in LanguageUtils getBestMatchFromCodes
    • Clean up all stale eslint-disable comments from source files
  • EventEmitter: add once() method for one-time event subscriptions
  • Memory leak fix: move module-level checkedLoadedFor cache to Translator instance, preventing cross-instance state leakage
  • TypeScript: fix BackendModule generic parameter naming inconsistency between CJS and ESM type definitions
  • TypeScript: add once() method to i18n and ResourceStore type interfaces
  • ESLint 9: migrate from ESLint 8 (airbnb-base) to ESLint 9 flat config with neostandard
  • Vitest 4: upgrade from vitest 3 to vitest 4, migrate workspace files to test.projects config

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.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [i18next](https://www.i18next.com) ([source](https://github.com/i18next/i18next)) | dependencies | major | [`^25.3.2` → `^26.0.0`](https://renovatebot.com/diffs/npm/i18next/25.10.10/26.0.3) | --- ### Release Notes <details> <summary>i18next/i18next (i18next)</summary> ### [`v26.0.3`](https://github.com/i18next/i18next/blob/HEAD/CHANGELOG.md#2603) [Compare Source](https://github.com/i18next/i18next/compare/v26.0.2...v26.0.3) - fix(types): `addResourceBundle` now accepts an optional 6th `options` parameter (`{ silent?: boolean; skipCopy?: boolean }`) matching the runtime API [2419](https://github.com/i18next/i18next/issues/2419) ### [`v26.0.2`](https://github.com/i18next/i18next/blob/HEAD/CHANGELOG.md#2602) [Compare Source](https://github.com/i18next/i18next/compare/v26.0.1...v26.0.2) - fix(types): `t("key", {} as TOptions)` no longer produces a type error — the context constraint now bypasses strict checking when `context` is `unknown` (e.g. from `TOptions`) [2418](https://github.com/i18next/i18next/issues/2418) ### [`v26.0.1`](https://github.com/i18next/i18next/blob/HEAD/CHANGELOG.md#2601) [Compare Source](https://github.com/i18next/i18next/compare/v26.0.0...v26.0.1) - fix: Formatter no longer crashes when `alwaysFormat` is `true` and no format specifier is present (`format` is `undefined`) - fix: Formatter now returns `undefined`/`null` values as-is instead of producing `NaN` when the value is missing ### [`v26.0.0`](https://github.com/i18next/i18next/blob/HEAD/CHANGELOG.md#2600) [Compare Source](https://github.com/i18next/i18next/compare/v25.10.10...v26.0.0) **This is a major breaking release:** ##### Breaking Changes - **Remove deprecated `initImmediate` option** — the backward-compatibility mapping from `initImmediate` to `initAsync` (introduced in v24) has been removed. Use `initAsync` instead. - **Remove legacy `interpolation.format` function** — the old monolithic format function (`interpolation: { format: (value, format, lng) => ... }`) is no longer supported. The built-in Formatter (or a custom Formatter module via `.use()`) is now always used. Migrate to the [new formatting approach](https://www.i18next.com/translation-function/formatting) using `i18next.services.formatter.add()` or `.addCached()` for custom formatters. - **Remove console support notice** — the console support notice introduced in v25.8.0 has been removed, along with the `showSupportNotice` option and all related internal suppression logic (`globalThis.__i18next_supportNoticeShown`, `I18NEXT_NO_SUPPORT_NOTICE` env var). See our blog post for the [full story](https://www.locize.com/blog/i18next-support-notice). - **Remove `simplifyPluralSuffix` option** — this option was unused by the core PluralResolver (which relies entirely on `Intl.PluralRules`). It only had an effect in the old v1/v2/v3 compatibility layer. The v4 test compatibility layer now defaults to `true` internally. - **Remove deprecated `@babel/polyfill`** from devDependencies. ##### Improvements - **Code modernization** across all source files: - Replace `indexOf() > -1` / `indexOf() < 0` with `.includes()` (\~40+ occurrences) - Replace `indexOf() === 0` with `.startsWith()` where appropriate - Replace `var` with `const`, `'' + object` with `String(object)`, `.substring()` with `.slice()` - Replace `.apply(observer, [event, ...args])` with direct call `observer(event, ...args)` - Remove unnecessary `.call(this, ...)` in BackendConnector retry logic - Fix `array-callback-return` in LanguageUtils `getBestMatchFromCodes` - Clean up all stale `eslint-disable` comments from source files - **EventEmitter**: add `once()` method for one-time event subscriptions - **Memory leak fix**: move module-level `checkedLoadedFor` cache to Translator instance, preventing cross-instance state leakage - **TypeScript**: fix `BackendModule` generic parameter naming inconsistency between CJS and ESM type definitions - **TypeScript**: add `once()` method to `i18n` and `ResourceStore` type interfaces - **ESLint 9**: migrate from ESLint 8 (airbnb-base) to ESLint 9 flat config with [neostandard](https://github.com/neostandard/neostandard) - **Vitest 4**: upgrade from vitest 3 to vitest 4, migrate workspace files to `test.projects` config </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 has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My45Ni4wIiwidXBkYXRlZEluVmVyIjoiNDMuMTA0LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->
Update dependency i18next to v26
All checks were successful
ci/woodpecker/pr/testbuild Pipeline was successful
33012ba899
All checks were successful
ci/woodpecker/pr/testbuild Pipeline was successful
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/i18next-26.x:renovate/i18next-26.x
git switch renovate/i18next-26.x

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff renovate/i18next-26.x
git switch renovate/i18next-26.x
git rebase main
git switch main
git merge --ff-only renovate/i18next-26.x
git switch renovate/i18next-26.x
git rebase main
git switch main
git merge --no-ff renovate/i18next-26.x
git switch main
git merge --squash renovate/i18next-26.x
git switch main
git merge --ff-only renovate/i18next-26.x
git switch main
git merge renovate/i18next-26.x
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Bluemedia/LibreCharge!554
No description provided.