Vigia

react-i18next: 17.x sürümünden 18.x sürümüne yükseltme

react-i18next 17.1.13 ve 18.0.0 sürümlerinin genel API karşılaştırması, TypeScript tiplerinden otomatik olarak hesaplanır. Değişen bir imza olası bir uyumsuz değişikliktir, kesinlik değildir.

Özet

Kaldırılan içe aktarma yolları0
Kaldırılan dışa aktarımlar0
Değişen imzalar5
Kaldırılan sınıf veya arayüz üyeleri0
Değişen sınıf veya arayüz üyeleri0
Yeni kullanımdan kaldırılanlar1
Gereksinim değişiklikleri (engines, peer bağımlılıkları)3
Yeni dışa aktarımlar1

Kaldırılan dışa aktarımlar

Tespit edilmedi.

Değişen imzalar

exportÖnceSonra
react-i18next · useSSR(initialI18nStore: Resource, initialLanguage: string): void(initialI18nStore: Resource, initialLanguage: string, props?: { i18n?: any; } | undefined): void
react-i18next · ErrorCode"NO_I18NEXT_INSTANCE" | "NO_LANGUAGES" | "DEPRECATED_OPTION" | "TRANS_NULL_VALUE" | "TRANS_INVALID_OBJ" | "TRANS_INVALID_VAR" | "TRANS_INVALID_COMPONENTS" | "USE_T_BEFORE_READY" | "SUSPENDED_WHILE_LOADING""NO_I18NEXT_INSTANCE" | "NO_LANGUAGES" | "DEPRECATED_OPTION" | "TRANS_NULL_VALUE" | "TRANS_INVALID_OBJ" | "TRANS_INVALID_VAR" | "TRANS_INVALID_COMPONENTS" | "USE_T_BEFORE_READY" | "SUSPENDED_WHILE_LOADING" | "I18N_NOT_INITIALIZED" | "ICU_TRANS_RENDER_ERROR" | "GLOBAL_INSTANCE_ON_SERVER"
react-i18next · I18nContextReact.Context<{ i18n: i18n; }>React.Context<{ i18n: i18n; defaultNS?: string | string[] | undefined; } | undefined>
react-i18next · useTranslation<const Ns extends FlatNamespace | $Tuple<FlatNamespace> | undefined = undefined, const KPrefix extends KeyPrefix<FallbackNs<Ns>> = undefined>(ns?: Ns | undefined, options?: UseTranslationOptions<KPrefix> | undefined): UseTranslationResponse<FallbackNs<Ns>, KPrefix>UseTranslationSelector | UseTranslationLegacy
react-i18next · UseTranslationOptions{ i18n?: any; useSuspense?: boolean | undefined; keyPrefix?: KPrefix | undefined; bindI18n?: string | false | undefined; nsMode?: "fallback" | "default" | undefined; lng?: string | undefined; }{ i18n?: any; useSuspense?: boolean | undefined; keyPrefix?: KPrefix | undefined; bindI18n?: string | false | undefined; bindI18nStore?: string | false | undefined; nsMode?: "fallback" | "default" | undefined; lng?: string | undefined; }

Kaldırılan sınıf veya arayüz üyeleri

Tespit edilmedi.

Değişen sınıf veya arayüz üyeleri

Tespit edilmedi.

Yeni kullanımdan kaldırılanlar

export@deprecated
react-i18next · TransSelectorProps.shouldUnescapeignored: Trans always decodes HTML entities

Gereksinim değişiklikleri (engines, peer bağımlılıkları)

ÖnceSonra
engines.node—>=22
peerDependencies.react>= 16.8.0>= 18.0.0
peerDependencies.i18next>= 26.2.0>= 27.0.0
Yeni dışa aktarımlar (1)
importexportkind
react-i18nextReactOptionsvariable

Bu sürümler arasındaki changelog

Paket yazarlarının yayımladığı metin, olduğu gibi gösterilir.

18.0.0
Released together with i18next 27. The migration guide lists every change with what to do: https://react.i18next.com/latest/migrating-v17-to-v18

### Breaking changes

- requires i18next 27 (peer `>= 27.0.0`) and React 18 or later (peer `>= 18.0.0`). React 16 and 17 apps stay on react-i18next 17: on i18next 27, use react-i18next 17.1.13 or later (it brings the types of the `react` init options), or 18. `useSyncExternalStore` comes from React itself, so `use-sync-external-store` is no longer a dependency.
- `Trans` output no longer depends on `interpolation.escapeValue`: it always decodes HTML entities after parsing, as `IcuTrans` does, in text and in attribute values, both with `react.unescape` (attribute values used the built-in decoder before). With i18next's default `escapeValue: true`, a value `Tom & Jerry` rendered as `Tom &amp; Jerry` and a date `17/12/2025` as `17&#x2F;12&#x2F;2025`; both now render as written, and so do entities in the translation itself (`&amp;`, `&lt;`, `&nbsp;`, ...). Values still render as text, never as markup (since 17.1.10). The `shouldUnescape` prop and `react.transDefaultProps.shouldUnescape` are ignored and warn (`DEPRECATED_OPTION`, in development and with `debug: true`); remove them. Snapshot tests that contain entities inside `Trans` output need an update ([#1903](https://github.com/i18next/react-i18next/issues/1903), [#1893](https://github.com/i18next/react-i18next/issues/1893)).
- `Trans` and `IcuTrans` re-render on language change by themselves: they subscribe to the `react.bindI18n` (default `languageChanged`) and `react.bindI18nStore` events, like `useTranslation`. Before, they only updated when a parent re-rendered ([#1710](https://github.com/i18next/react-i18next/issues/1710)). They still neither load translations nor suspend; with a `t` prop, that `t` still decides the language. `TransWithoutContext` and `IcuTransWithoutContext` stay hook-free.
- the `react` options of an instance stay on that instance. `initReactI18next` copied them into module-wide defaults, so a second instance without `react` options inherited, for example, the first one's `useSuspense: false`. Set them on every instance, or call `setDefaults()` once.
- the `i18n` returned by `useTranslation` (and passed by `withTranslation` and `Translation`) forwards reads and writes to the instance. It was a copy taken when the language changed, so after `await i18n.changeLanguage('de')` the copy still said `en`, and properties set on it never reached the instance. It is still a new object whenever the language changes, for dependency arrays and the React Compiler. Because the old object now reads the current language too, a check like `prevProps.i18n.language !== this.props.i18n.language` (or the language of a `usePrevious(i18n)`) no longer sees a change: compare the objects (`prevProps.i18n !== this.props.i18n`) or keep the previous language yourself.
- `useSSR` and `withSSR` call i18next's `hydrate()` instead of writing `resourceStore.data`,

Bu verileri yapay zekâ ajanınıza verin

Vigia ücretsiz bir MCP sunucusudur: kodlama ajanınız kod yazmadan önce sürümleri, uyumsuz değişiklikleri ve güvenlik açıklarını kontrol eder. Kayıt ve API anahtarı gerekmez.

claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp

Cursor'a ekleVS Code'a ekle★ GitHub'da yıldız ver

Diğer tüm MCP istemcileri
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

Ajan becerisi (SKILL.md): ajana Vigia'yı ne zaman kullanacağını söyler · Pull request için GitHub Action

Sık sorulan sorular

react-i18next paketini 17 sürümünden 18 sürümüne yükseltirken uyumsuz değişiklikler nelerdir?

react-i18next 17.1.13 ile 18.0.0 arasında Vigia 0 kaldırılan dışa aktarım, 5 değişen imza ve 0 kaldırılan veya değişen sınıf ya da arayüz üyesi buldu.

react-i18next 18 sürümünde neler kullanımdan kaldırıldı?

react-i18next 18.0.0 sürümünde 1 dışa aktarım veya üye yeni olarak kullanımdan kaldırılmış işaretlendi.

Ajanlar için

GET https://vigia.coredls.cloud/v1/packages/npm/react-i18next/upgrade?from=17.1.13&to=18.0.0