- App Router: changing the language on the client works with
i18nextOptions: { preload: [] }— with languages loaded on demand the server ships only the ones it has loaded, andI18nProviderpinnedsupportedLngsto whateverresourceshappened to contain, so i18next resolved every other language back to the fallback and client components stayed in the old language.supportedLngsis no longer derived fromresources(pass the prop to restrict it), and each newresourcesprop is merged into the client instance —router.refresh()delivers the language the server just loaded — re-resolving the language when its bundles only just arrived.useChangeLanguageleaves that switch to the provider when the store holds nothing for the target language yet, soi18n.resolvedLanguageno longer lags a switch behind in client components (react-i18next 17.0.14 fixes the same staleness at its source, for the case where an app switches the language itself). #2348