Bumps [i18next-cli](https://github.com/i18next/i18next-cli) from 1.51.5
to 1.51.6.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/i18next-cli/blob/main/CHANGELOG.md">i18next-cli's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/i18next/i18next-cli/compare/v1.51.5...v1.51.6">1.51.6</a>
- 2026-04-03</h2>
<ul>
<li>Add <code>getT</code> and <code>useT</code> to the default
<code>useTranslationNames</code> so that
<code>next-i18next</code> v16 App Router hooks are recognized out of the
box.
Keys from <code>useT('ns')</code> and <code>await getT('ns')</code> are
now correctly
extracted into the specified namespace instead of falling back to
<code>defaultNS</code>.
Fixes <a
href="https://redirect.github.com/i18next/i18next-cli/issues/232">#232</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2828baf61f"><code>2828baf</code></a>
1.51.6</li>
<li><a
href="0d6e5930f6"><code>0d6e593</code></a>
ts dep update</li>
<li><a
href="0f6f5b3148"><code>0f6f5b3</code></a>
Add <code>getT</code> and <code>useT</code> to the default
<code>useTranslationNames</code> so that `next-i18n...</li>
<li><a
href="274164840f"><code>2741648</code></a>
reproduce <a
href="https://redirect.github.com/i18next/i18next-cli/issues/231">#231</a></li>
<li>See full diff in <a
href="https://github.com/i18next/i18next-cli/compare/v1.51.5...v1.51.6">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@codemirror/view](https://github.com/codemirror/view) from 6.40.0
to 6.41.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/codemirror/view/blob/main/CHANGELOG.md"><code>@codemirror/view</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>6.41.0 (2026-04-01)</h2>
<h3>Bug fixes</h3>
<p>Fix an issue where <code>EditorView.posAtCoords</code> could
incorrectly return a position near a higher element on the line, in
mixed-font-size lines.</p>
<p>Expand the workaround for the Webkit bug that causes nonexistent
selections to stay visible to be active on non-Safari Webkit
browsers.</p>
<h3>New features</h3>
<p>The new <code>EditorView.cursorScrollMargin</code> facet can now be
used to configure the extra space used when scrolling the cursor into
view.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a0a5ed946c"><code>a0a5ed9</code></a>
Mark version 6.41.0</li>
<li><a
href="c834ebf424"><code>c834ebf</code></a>
Enable the workaround for ghost selections in all forms of Webkit</li>
<li><a
href="49d72c43f6"><code>49d72c4</code></a>
Improve posAtCoords in non-uniform height lines</li>
<li><a
href="4935d2495f"><code>4935d24</code></a>
Make the margin used when scrolling the cursor into view
configurable</li>
<li><a
href="ed7d6253a0"><code>ed7d625</code></a>
Remove duplicated slash in forum url in README</li>
<li><a
href="c3770d3f0a"><code>c3770d3</code></a>
Fix forum link in readme</li>
<li>See full diff in <a
href="https://github.com/codemirror/view/compare/6.40.0...6.41.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [slugify](https://github.com/simov/slugify) from 1.6.8 to 1.6.9.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/simov/slugify/blob/master/CHANGELOG.md">slugify's
changelog</a>.</em></p>
<blockquote>
<h3>v1.6.9 (2026-04-01)</h3>
<ul>
<li><a
href="https://redirect.github.com/simov/slugify/pull/171">#171</a> fix:
correct CommonJS export for "module": "node16" + ESM
(171) (<a
href="https://github.com/karlhorky"><code>@karlhorky</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/simov/slugify/commits">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~joshuakgoldberg">joshuakgoldberg</a>, a new
releaser for slugify since your current version.</p>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [sass](https://github.com/sass/dart-sass) from 1.98.0 to 1.99.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sass/dart-sass/releases">sass's
releases</a>.</em></p>
<blockquote>
<h2>Dart Sass 1.99.0</h2>
<p>To install Sass 1.99.0, download one of the packages below and <a
href="https://katiek2.github.io/path-doc/">add it to your PATH</a>, or
see <a href="https://sass-lang.com/install">the Sass website</a> for
full installation instructions.</p>
<h1>Changes</h1>
<ul>
<li>
<p>Add support for parent selectors (<code>&</code>) at the root of
the document. These are emitted as-is in the CSS output, where they're
interpreted as <a
href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/Nesting_selector#using_outside_nested_rule">the
scoping root</a>.</p>
</li>
<li>
<p>User-defined functions named <code>calc</code> or <code>clamp</code>
are no longer forbidden. If such a function exists without a namespace
in the current module, it will be used instead of the built-in
<code>calc()</code> or <code>clamp()</code> function.</p>
</li>
<li>
<p>User-defined functions whose names begin with <code>-</code> and end
with <code>-expression</code>, <code>-url</code>, <code>-and</code>,
<code>-or</code>, or <code>-not</code> are no longer forbidden. These
were originally intended to match vendor prefixes, but in practice no
vendor prefixes for these functions ever existed in real browsers.</p>
</li>
<li>
<p>User-defined functions named <code>EXPRESSION</code>,
<code>URL</code>, and <code>ELEMENT</code>, those that begin with
<code>-</code> and end with <code>-ELEMENT</code>, as well as the same
names with some lowercase letters are now deprecated, These are names
conflict with plain CSS functions that have special syntax.</p>
<p>See <a href="https://sass-lang.com/d/function-name">the Sass
website</a> for details.</p>
</li>
<li>
<p>In a future release, calls to functions whose names begin with
<code>-</code> and end with <code>-expression</code> and
<code>-url</code> will no longer have special parsing. For now, these
calls are deprecated if their behavior will change in the future.</p>
<p>See <a href="https://sass-lang.com/d/function-name">the Sass
website</a> for details.</p>
</li>
<li>
<p>Calls to functions whose names begin with <code>-</code> and end with
<code>-progid:...</code> are deprecated.</p>
<p>See <a href="https://sass-lang.com/d/function-name">the Sass
website</a> for details.</p>
</li>
</ul>
<p>See the <a
href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1990">full
changelog</a> for changes in earlier releases.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/sass/dart-sass/blob/main/CHANGELOG.md">sass's
changelog</a>.</em></p>
<blockquote>
<h2>1.99.0</h2>
<ul>
<li>
<p>Add support for parent selectors (<code>&</code>) at the root of
the document. These are
emitted as-is in the CSS output, where they're interpreted as <a
href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/Nesting_selector#using_outside_nested_rule">the
scoping
root</a>.</p>
</li>
<li>
<p>User-defined functions named <code>calc</code> or <code>clamp</code>
are no longer forbidden. If
such a function exists without a namespace in the current module, it
will be
used instead of the built-in <code>calc()</code> or <code>clamp()</code>
function.</p>
</li>
<li>
<p>User-defined functions whose names begin with <code>-</code> and end
with <code>-expression</code>,
<code>-url</code>, <code>-and</code>, <code>-or</code>, or
<code>-not</code> are no longer forbidden. These were
originally intended to match vendor prefixes, but in practice no vendor
prefixes for these functions ever existed in real browsers.</p>
</li>
<li>
<p>User-defined functions named <code>EXPRESSION</code>,
<code>URL</code>, and <code>ELEMENT</code>, those that
begin with <code>-</code> and end with <code>-ELEMENT</code>, as well as
the same names with some
lowercase letters are now deprecated, These are names conflict with
plain CSS
functions that have special syntax.</p>
<p>See <a href="https://sass-lang.com/d/function-name">the Sass
website</a> for details.</p>
</li>
<li>
<p>In a future release, calls to functions whose names begin with
<code>-</code> and end
with <code>-expression</code> and <code>-url</code> will no longer have
special parsing. For now,
these calls are deprecated if their behavior will change in the
future.</p>
<p>See <a href="https://sass-lang.com/d/function-name">the Sass
website</a> for details.</p>
</li>
<li>
<p>Calls to functions whose names begin with <code>-</code> and end with
<code>-progid:...</code> are
deprecated.</p>
<p>See <a href="https://sass-lang.com/d/function-name">the Sass
website</a> for details.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="83c39fec93"><code>83c39fe</code></a>
Support the top-level parent selector (<a
href="https://redirect.github.com/sass/dart-sass/issues/2758">#2758</a>)</li>
<li><a
href="ec85871864"><code>ec85871</code></a>
Bump EndBug/add-and-commit from 9 to 10 (<a
href="https://redirect.github.com/sass/dart-sass/issues/2756">#2756</a>)</li>
<li><a
href="a604acd19a"><code>a604acd</code></a>
[Function Name] Implement changes (<a
href="https://redirect.github.com/sass/dart-sass/issues/2731">#2731</a>)</li>
<li>See full diff in <a
href="https://github.com/sass/dart-sass/compare/1.98.0...1.99.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [react-i18next](https://github.com/i18next/react-i18next) from
17.0.1 to 17.0.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md">react-i18next's
changelog</a>.</em></p>
<blockquote>
<h2>17.0.2</h2>
<ul>
<li>fix(types): <code>values</code> prop on <code><Trans /></code>
now only requires interpolation variables for the specific
<code>i18nKey</code>, not all variables in the namespace <a
href="https://redirect.github.com/i18next/react-i18next/issues/1913">1913</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4d62f86905"><code>4d62f86</code></a>
17.0.2</li>
<li><a
href="61fe80c53f"><code>61fe80c</code></a>
fix(types): <code>values</code> prop on <code>\<Trans /></code>
now only requires interpolation vari...</li>
<li><a
href="b58d5a57b8"><code>b58d5a5</code></a>
l10n: add Swedish language support to examples (<a
href="https://redirect.github.com/i18next/react-i18next/issues/1912">#1912</a>)</li>
<li>See full diff in <a
href="https://github.com/i18next/react-i18next/compare/v17.0.1...v17.0.2">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [i18next](https://github.com/i18next/i18next) from 26.0.1 to
26.0.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/i18next/releases">i18next's
releases</a>.</em></p>
<blockquote>
<h2>v26.0.3</h2>
<ul>
<li>fix(types): <code>addResourceBundle</code> now accepts an optional
6th <code>options</code> parameter (<code>{ silent?: boolean; skipCopy?:
boolean }</code>) matching the runtime API <a
href="https://redirect.github.com/i18next/i18next/issues/2419">2419</a></li>
</ul>
<h2>v26.0.2</h2>
<ul>
<li>fix(types): <code>t("key", {} as TOptions)</code> no
longer produces a type error — the context constraint now bypasses
strict checking when <code>context</code> is <code>unknown</code> (e.g.
from <code>TOptions</code>) <a
href="https://redirect.github.com/i18next/i18next/issues/2418">2418</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/i18next/blob/master/CHANGELOG.md">i18next's
changelog</a>.</em></p>
<blockquote>
<h2>26.0.3</h2>
<ul>
<li>fix(types): <code>addResourceBundle</code> now accepts an optional
6th <code>options</code> parameter (<code>{ silent?: boolean; skipCopy?:
boolean }</code>) matching the runtime API <a
href="https://redirect.github.com/i18next/i18next/issues/2419">2419</a></li>
</ul>
<h2>26.0.2</h2>
<ul>
<li>fix(types): <code>t("key", {} as TOptions)</code> no
longer produces a type error — the context constraint now bypasses
strict checking when <code>context</code> is <code>unknown</code> (e.g.
from <code>TOptions</code>) <a
href="https://redirect.github.com/i18next/i18next/issues/2418">2418</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ea8391c875"><code>ea8391c</code></a>
26.0.3</li>
<li><a
href="5da85e09af"><code>5da85e0</code></a>
fix(types): <code>addResourceBundle</code> now accepts an optional 6th
<code>options</code> paramet...</li>
<li><a
href="3db098f72a"><code>3db098f</code></a>
26.0.2</li>
<li><a
href="6ece798338"><code>6ece798</code></a>
fix(types): <code>t("key", {} as TOptions)</code> no longer
produces a type error — the ...</li>
<li>See full diff in <a
href="https://github.com/i18next/i18next/compare/v26.0.1...v26.0.3">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [i18next](https://github.com/i18next/i18next) from 25.10.10 to
26.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/i18next/releases">i18next's
releases</a>.</em></p>
<blockquote>
<h2>v26.0.1</h2>
<ul>
<li>fix: Formatter no longer crashes when <code>alwaysFormat</code> is
<code>true</code> and no format specifier is present
(<code>format</code> is <code>undefined</code>)</li>
<li>fix: Formatter now returns <code>undefined</code>/<code>null</code>
values as-is instead of producing <code>NaN</code> when the value is
missing</li>
</ul>
<h2>v26.0.0</h2>
<p><strong>This is a major breaking release:</strong></p>
<h3>Breaking Changes</h3>
<ul>
<li><strong>Remove deprecated <code>initImmediate</code> option</strong>
— the backward-compatibility mapping from <code>initImmediate</code> to
<code>initAsync</code> (introduced in v24) has been removed. Use
<code>initAsync</code> instead.</li>
<li><strong>Remove legacy <code>interpolation.format</code>
function</strong> — the old monolithic format function
(<code>interpolation: { format: (value, format, lng) => ... }</code>)
is no longer supported. The built-in Formatter (or a custom Formatter
module via <code>.use()</code>) is now always used. Migrate to the <a
href="https://www.i18next.com/translation-function/formatting">new
formatting approach</a> using
<code>i18next.services.formatter.add()</code> or
<code>.addCached()</code> for custom formatters.</li>
<li><strong>Remove console support notice</strong> — the console support
notice introduced in v25.8.0 has been removed, along with the
<code>showSupportNotice</code> option and all related internal
suppression logic (<code>globalThis.__i18next_supportNoticeShown</code>,
<code>I18NEXT_NO_SUPPORT_NOTICE</code> env var). See our blog post for
the <a href="https://www.locize.com/blog/i18next-support-notice">full
story</a>.</li>
<li><strong>Remove <code>simplifyPluralSuffix</code> option</strong> —
this option was unused by the core PluralResolver (which relies entirely
on <code>Intl.PluralRules</code>). It only had an effect in the old
v1/v2/v3 compatibility layer. The v4 test compatibility layer now
defaults to <code>true</code> internally.</li>
<li><strong>Remove deprecated <code>@babel/polyfill</code></strong> from
devDependencies.</li>
</ul>
<h3>Improvements</h3>
<ul>
<li><strong>Code modernization</strong> across all source files:
<ul>
<li>Replace <code>indexOf() > -1</code> / <code>indexOf() <
0</code> with <code>.includes()</code> (~40+ occurrences)</li>
<li>Replace <code>indexOf() === 0</code> with <code>.startsWith()</code>
where appropriate</li>
<li>Replace <code>var</code> with <code>const</code>, <code>'' +
object</code> with <code>String(object)</code>,
<code>.substring()</code> with <code>.slice()</code></li>
<li>Replace <code>.apply(observer, [event, ...args])</code> with direct
call <code>observer(event, ...args)</code></li>
<li>Remove unnecessary <code>.call(this, ...)</code> in BackendConnector
retry logic</li>
<li>Fix <code>array-callback-return</code> in LanguageUtils
<code>getBestMatchFromCodes</code></li>
<li>Clean up all stale <code>eslint-disable</code> comments from source
files</li>
</ul>
</li>
<li><strong>EventEmitter</strong>: add <code>once()</code> method for
one-time event subscriptions</li>
<li><strong>Memory leak fix</strong>: move module-level
<code>checkedLoadedFor</code> cache to Translator instance, preventing
cross-instance state leakage</li>
<li><strong>TypeScript</strong>: fix <code>BackendModule</code> generic
parameter naming inconsistency between CJS and ESM type definitions</li>
<li><strong>TypeScript</strong>: add <code>once()</code> method to
<code>i18n</code> and <code>ResourceStore</code> type interfaces</li>
<li><strong>ESLint 9</strong>: migrate from ESLint 8 (airbnb-base) to
ESLint 9 flat config with <a
href="https://github.com/neostandard/neostandard">neostandard</a></li>
<li><strong>Vitest 4</strong>: upgrade from vitest 3 to vitest 4,
migrate workspace files to <code>test.projects</code> config</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/i18next/blob/master/CHANGELOG.md">i18next's
changelog</a>.</em></p>
<blockquote>
<h2>26.0.1</h2>
<ul>
<li>fix: Formatter no longer crashes when <code>alwaysFormat</code> is
<code>true</code> and no format specifier is present
(<code>format</code> is <code>undefined</code>)</li>
<li>fix: Formatter now returns <code>undefined</code>/<code>null</code>
values as-is instead of producing <code>NaN</code> when the value is
missing</li>
</ul>
<h2>26.0.0</h2>
<p><strong>This is a major breaking release:</strong></p>
<h3>Breaking Changes</h3>
<ul>
<li><strong>Remove deprecated <code>initImmediate</code> option</strong>
— the backward-compatibility mapping from <code>initImmediate</code> to
<code>initAsync</code> (introduced in v24) has been removed. Use
<code>initAsync</code> instead.</li>
<li><strong>Remove legacy <code>interpolation.format</code>
function</strong> — the old monolithic format function
(<code>interpolation: { format: (value, format, lng) => ... }</code>)
is no longer supported. The built-in Formatter (or a custom Formatter
module via <code>.use()</code>) is now always used. Migrate to the <a
href="https://www.i18next.com/translation-function/formatting">new
formatting approach</a> using
<code>i18next.services.formatter.add()</code> or
<code>.addCached()</code> for custom formatters.</li>
<li><strong>Remove console support notice</strong> — the console support
notice introduced in v25.8.0 has been removed, along with the
<code>showSupportNotice</code> option and all related internal
suppression logic (<code>globalThis.__i18next_supportNoticeShown</code>,
<code>I18NEXT_NO_SUPPORT_NOTICE</code> env var). See our blog post for
the <a href="https://www.locize.com/blog/i18next-support-notice">full
story</a>.</li>
<li><strong>Remove <code>simplifyPluralSuffix</code> option</strong> —
this option was unused by the core PluralResolver (which relies entirely
on <code>Intl.PluralRules</code>). It only had an effect in the old
v1/v2/v3 compatibility layer. The v4 test compatibility layer now
defaults to <code>true</code> internally.</li>
<li><strong>Remove deprecated <code>@babel/polyfill</code></strong> from
devDependencies.</li>
</ul>
<h3>Improvements</h3>
<ul>
<li><strong>Code modernization</strong> across all source files:
<ul>
<li>Replace <code>indexOf() > -1</code> / <code>indexOf() <
0</code> with <code>.includes()</code> (~40+ occurrences)</li>
<li>Replace <code>indexOf() === 0</code> with <code>.startsWith()</code>
where appropriate</li>
<li>Replace <code>var</code> with <code>const</code>, <code>'' +
object</code> with <code>String(object)</code>,
<code>.substring()</code> with <code>.slice()</code></li>
<li>Replace <code>.apply(observer, [event, ...args])</code> with direct
call <code>observer(event, ...args)</code></li>
<li>Remove unnecessary <code>.call(this, ...)</code> in BackendConnector
retry logic</li>
<li>Fix <code>array-callback-return</code> in LanguageUtils
<code>getBestMatchFromCodes</code></li>
<li>Clean up all stale <code>eslint-disable</code> comments from source
files</li>
</ul>
</li>
<li><strong>EventEmitter</strong>: add <code>once()</code> method for
one-time event subscriptions</li>
<li><strong>Memory leak fix</strong>: move module-level
<code>checkedLoadedFor</code> cache to Translator instance, preventing
cross-instance state leakage</li>
<li><strong>TypeScript</strong>: fix <code>BackendModule</code> generic
parameter naming inconsistency between CJS and ESM type definitions</li>
<li><strong>TypeScript</strong>: add <code>once()</code> method to
<code>i18n</code> and <code>ResourceStore</code> type interfaces</li>
<li><strong>ESLint 9</strong>: migrate from ESLint 8 (airbnb-base) to
ESLint 9 flat config with <a
href="https://github.com/neostandard/neostandard">neostandard</a></li>
<li><strong>Vitest 4</strong>: upgrade from vitest 3 to vitest 4,
migrate workspace files to <code>test.projects</code> config</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="18b3dbb473"><code>18b3dbb</code></a>
26.0.1</li>
<li><a
href="c829f91a2a"><code>c829f91</code></a>
fix: Formater crashes etc.</li>
<li><a
href="1593d1125e"><code>1593d11</code></a>
remove node v18 from github actions</li>
<li><a
href="d85c23da86"><code>d85c23d</code></a>
26.0.0</li>
<li><a
href="fad19d59cf"><code>fad19d5</code></a>
feat!: v26.0.0 — major version with breaking changes</li>
<li><a
href="780aa9170f"><code>780aa91</code></a>
jsr update</li>
<li>See full diff in <a
href="https://github.com/i18next/i18next/compare/v25.10.10...v26.0.1">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [i18next-cli](https://github.com/i18next/i18next-cli) from 1.51.4
to 1.51.5.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/i18next-cli/blob/main/CHANGELOG.md">i18next-cli's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/i18next/i18next-cli/compare/v1.51.4...v1.51.5">1.51.5</a>
- 2026-03-30</h2>
<ul>
<li>Fix extractor using only the initializer value instead of the full
enum type
when a variable has both a type annotation and an initializer
(e.g. <code>const status: Status = Status.New</code> now correctly
extracts all enum
values, not just <code>"new"</code>).
Fixes <a
href="https://redirect.github.com/i18next/i18next-cli/issues/210#issuecomment-4153581609">#210
(comment)</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3583c5f158"><code>3583c5f</code></a>
1.51.5</li>
<li><a
href="10341e765e"><code>10341e7</code></a>
Fix extractor using only the initializer value instead of the full enum
type</li>
<li><a
href="114f1de4d3"><code>114f1de</code></a>
update i18next dep</li>
<li>See full diff in <a
href="https://github.com/i18next/i18next-cli/compare/v1.51.4...v1.51.5">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [react-i18next](https://github.com/i18next/react-i18next) from
16.6.6 to 17.0.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md">react-i18next's
changelog</a>.</em></p>
<blockquote>
<h2>17.0.1</h2>
<ul>
<li>chore: bump minimum i18next peer dependency to <code>>=
26.0.1</code> <em>(forgot to do it in last version)</em></li>
<li>fix: migrate test setup from removed legacy
<code>interpolation.format</code> to
<code>i18n.services.formatter.add()</code> (i18next v26)</li>
</ul>
<h2>17.0.0</h2>
<h3>Potentially breaking changes</h3>
<ul>
<li>fix: <code>transKeepBasicHtmlNodesFor</code> now correctly preserves
HTML tag names when children contain interpolations or mixed content <a
href="https://redirect.github.com/i18next/i18next-cli/issues/230">230</a>
<ul>
<li>Previously, <code><strong>{{name}}</strong></code> was
incorrectly serialized as <code><1>{{name}}</1></code> — the
tag name was only preserved for plain string children</li>
<li>This bug existed since the feature was introduced and affects
auto-generated keys (when no explicit <code>i18nKey</code> is
provided)</li>
<li>If you rely on auto-generated Trans keys containing indexed tags for
kept HTML elements with interpolation children, you will need to update
your translation files</li>
</ul>
</li>
</ul>
<h3>Other changes</h3>
<ul>
<li>updated dev dependencies (vitest, rollup plugins, happy-dom,
typescript, etc.)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="23214960e3"><code>2321496</code></a>
17.0.1</li>
<li><a
href="7e656b5671"><code>7e656b5</code></a>
chore: bump minimum i18next peer dependency</li>
<li><a
href="dfc350b2c4"><code>dfc350b</code></a>
upate github actions</li>
<li><a
href="7fe2620326"><code>7fe2620</code></a>
17.0.0</li>
<li><a
href="f4ada4c38c"><code>f4ada4c</code></a>
fix: <code>transKeepBasicHtmlNodesFor</code> now correctly preserves
HTML tag names when...</li>
<li>See full diff in <a
href="https://github.com/i18next/react-i18next/compare/v16.6.6...v17.0.1">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Fix a few typos identified with codespell.
## Launch Checklist
- [X] Briefly describe the changes in this PR.
- [ ] Link to related issues.
- [ ] Write tests for all new functionality.
- [ ] Add an entry to `CHANGELOG.md` under the `## main` section.
Bumps [i18next-cli](https://github.com/i18next/i18next-cli) from 1.51.3
to 1.51.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/i18next-cli/blob/main/CHANGELOG.md">i18next-cli's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/i18next/i18next-cli/compare/v1.51.3...v1.51.4">1.51.4</a>
- 2026-03-27</h2>
<ul>
<li>Updated <code>react-i18next</code> to v17.
<code>transKeepBasicHtmlNodesFor</code> now correctly preserves HTML tag
names when
children contain interpolations or mixed content (e.g.
<code><strong>{{name}}</strong></code> instead of
<code><1>{{name}}</1></code>).
Fixes <a
href="https://redirect.github.com/i18next/i18next-cli/issues/230">#230</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="23b1681ae9"><code>23b1681</code></a>
1.51.4</li>
<li><a
href="262c6ae835"><code>262c6ae</code></a>
Updated <code>react-i18next</code> to v17 to fix <a
href="https://redirect.github.com/i18next/i18next-cli/issues/230">#230</a></li>
<li>See full diff in <a
href="https://github.com/i18next/i18next-cli/compare/v1.51.3...v1.51.4">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
[//]: # (dependabot-start)
⚠️ **Dependabot is rebasing this PR** ⚠️
Rebasing might not happen immediately, so don't worry if this takes some
time.
Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.
---
[//]: # (dependabot-end)
Bumps [i18next](https://github.com/i18next/i18next) from 25.10.9 to
25.10.10.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/i18next/releases">i18next's
releases</a>.</em></p>
<blockquote>
<h2>v25.10.10</h2>
<ul>
<li>feat: suppress support notice automatically in production
environments (<code>NODE_ENV=production</code>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/i18next/blob/master/CHANGELOG.md">i18next's
changelog</a>.</em></p>
<blockquote>
<h2>25.10.10</h2>
<ul>
<li>feat: suppress support notice automatically in production
environments (<code>NODE_ENV=production</code>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e0fa8382de"><code>e0fa838</code></a>
25.10.10</li>
<li><a
href="796fdd96c9"><code>796fdd9</code></a>
feat: suppress support notice automatically in production environments
(`NODE...</li>
<li><a
href="07f585f351"><code>07f585f</code></a>
changelog</li>
<li><a
href="1ba99513b2"><code>1ba9951</code></a>
jsr update</li>
<li>See full diff in <a
href="https://github.com/i18next/i18next/compare/v25.10.9...v25.10.10">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [react-i18next](https://github.com/i18next/react-i18next) from
16.6.5 to 16.6.6.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md">react-i18next's
changelog</a>.</em></p>
<blockquote>
<h3>16.6.6</h3>
<ul>
<li>fix(peer-deps): bump i18next peer dependency to <code>>=
25.10.9</code> to match required type exports
(<code>ConstrainTarget</code>, <code>ApplyTarget</code>,
<code>GetSource</code>) used by <code>TransSelector</code> <a
href="https://redirect.github.com/i18next/react-i18next/issues/1911">1911</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="eb02c6305a"><code>eb02c63</code></a>
16.6.6</li>
<li><a
href="76f98cdd00"><code>76f98cd</code></a>
fix(peer-deps): bump i18next peer dependency to <code>>=
25.10.9</code> to match require...</li>
<li>See full diff in <a
href="https://github.com/i18next/react-i18next/compare/v16.6.5...v16.6.6">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@@ -24,7 +24,7 @@ import { type MappedLayerErrors } from "../libs/definitions";
* When the stops are reordered the references are also updated (see this.orderStops) this allows React to use the same key for the element and keep keyboard focus.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.