NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2339 most downloaded on npm
i18next internationalization framework
Last release 14 days ago
03 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
15 years old
608 releases · first in 2012
Enhance cloneInstance to create a new interpolator if interpolation options are passed in. This will address 2371.
cloneInstance to create a new interpolator if interpolation options are passed in. This will address 2371.- chore: dependency updates 2368
One column per quarter.
- types: export InterpolationMap
InterpolationMapfix: createInstance does not exist on an instance #2366
feat: exists() method now respects returnObjects option - returns false when accessing an object key with returnObjects: false, enabling detection of
feat: exists() method now respects returnObjects option - returns false when accessing an object key with returnObjects: false, enabling detection of object vs string keys 2359
Note: This is a potential behavior change. If you were previously calling exists() with returnObjects: false on object keys, those calls will now return false instead of true. This enables developers to detect whether a key points to an object or string value.
export esm type declaration for keyFromSelector 2356
fix last change => for cjs there is just 1 default export, no named exports, fixes 2348
export keyFromSelector from index.cjs 2347
export keyFromSelector function for testing purposes 2346
fix: enableSelector: true doesn't work with custom keySeparator 2341
fix: KeyPrefix not working with new selector api 2340
add new selector API to improve TypeScript IDE performance 2322
enableSelector: true in your configuration optionsenableSelector: "optimize", i18next can now handle translation dictionaries of any size, without affecting IDE performance or build timesimprove fix: Ordinals and non-ordinals don't work together 2337
fix: Ordinals and non-ordinals don't work together 2337
- remove unnecessary debug logs
fix: Brackets breaking nesting interpolation 2336
fix dir() for non-Intl language codes 2330
dir() for non-Intl language codes 2330warn if legacy interpolation.format function is still used
interpolation.format function is still usedfeat: support formatting function with plural and interpolation 2325
streamline fallbackLng option of t call with the init options 2312
fallbackLng option of t call with the init options 2312introduce cacheInBuiltFormats option to address 2227
cacheInBuiltFormats option to address 2227Ensure nsSeparator is respected when appendNamespaceToMissingKey is true 2311, fixes 2310
do not mutate t options, fixes 2307
fix options type for parseMissingKeyHandler
parseMissingKeyHandlerfeat: parseMissingKeyHandler now takes options as parameter like in missingKeyHandler 2304
parseMissingKeyHandler now takes options as parameter like in missingKeyHandler 2304fix cloneInstance with forkResourceStore: true addresses 2303
cloneInstance with forkResourceStore: true addresses 2303optimize changeLanguage to correctly use getBestMatchFromCodes (string or array) 2299 and improve resolvedLanguage set for non canonical codes
changeLanguage to correctly use getBestMatchFromCodes (string or array) 2299 and improve resolvedLanguage set for non canonical codesThis is a potentially breaking release:
This is a potentially breaking release:
Upgrade @babel/runtime package to version v7.26.10 2293
fix: Interpolation fails with arrays (TypeError) and doesn't work with objects in defaultValue 1829
Standardize null/undefined checks across codebase 2275
feat(typescript): Add strictKeyChecks option to enforce checking key existence when defaultValue is used 2274, fixes 2043
optimize fix: Bug Report: Unsafe Behavior in i18n.t Function Leading to Potential Code Execution 2273
fix: Bug Report: Unsafe Behavior in i18n.t Function Leading to Potential Code Execution 2273
try to address 2270 by cloning the store data 2271
- remove extra log for 2268
simplify fix: incorrect locale detected 2268
fix: incorrect locale detected 2268
if no Intl api, log error and use dummy rule
early return and log error, if no Intl api
This is a major breaking release:
This is a major breaking release:
test/compatibility/v4/v4Compatibility.jsinitImmediate to initAsyncdev language if plural rule not found➡️ check out the migration guide
fix(plural): Create cache entry for PluralRules created as part of the fallback flow 2256
if plural rule is not found, try to search with language only code 2252
fix: Small typo in the type definitions 2250
fix extractFromKey for use cases like this
revert formatter change 2247 because of caching not working anymore
- fix utils imports for Deno
perf(size): Adds a isString utility 2248
perf: Optimize size of Formatter 2247
use Intl.getCanonicalLocales function if available to format language code, like suggested in 2244
Intl.getCanonicalLocales function if available to format language code, like suggested in 2244fix(types): make context related keys detection stricter 2243 fixes 2242
types(TFunction): make return not inferrable and use defaultValue as return when provided 2234
support unescaped variables in TypeScript 2233
If backend errors with retry flag, set internal state to 0, so reloadingResources should work 147
Cache output of getRule to optimize performance 2226
revert last optimization to address 2227
remove console.log statement 2227
try to optimize last fix for 2227
try to address 2227 without the removal of cached formatter for in-built formatters
fix: Using a comma in a formatter parameter 2225
Your coding agent can read these notes before it upgrades. Set up the MCP server →