Sorunuzu sorun ve bu sayfaya ve seçtiğiniz AI sağlayıcısına referans vererek belgenin bir özetini alın
Sürüm Geçmişi
- "Init history"v9.0.013.06.2026
Bu sayfanın içeriği bir yapay zeka kullanılarak çevrildi.
Orijinal içeriğin İngilizce son sürümünü görüntüleyinIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Migrate from next-intl to Intlayer
For a complete and detailed step-by-step tutorial, please see our full next-intl Migration Guide.
Migrating from next-intl to Intlayer allows you to maintain your application routing and syntax completely undisturbed.
What to do
Execute the following command in your repository:
Kodu panoya kopyala
npx intlayer initThis will create an intlayer.config.ts. In your next.config.ts, use the plugin wrapper to seamlessly inject the next-intl aliases towards @intlayer/next-intl.
Kodu panoya kopyala
import type { NextConfig } from "next";import { createNextIntlPlugin } from "@intlayer/next-intl/plugin";const withIntlayer = createNextIntlPlugin();const nextConfig: NextConfig = {};export default withIntlayer(nextConfig);What it does under the hood
The bundler wrapper replaces translations, but leaves the next-intl/navigation features intact (e.g. Link, redirect, usePathname).
Under the hood:
- ICU runtime: Plurals (
=0,one,other), select/selectordinal,#arguments, and formatted args ({ts, date, long}) run correctly using the sharedresolveMessage(..., 'icu')resolver. useTranslations()&getTranslations(): The bare scope calls extract the first key segment as the correct dictionary identifier. Nested namespaces gracefully split into dictionary paths and prefixes.- Rich formatting: Both
t.rich()andt.markup()are fully natively implemented, converting HTML-like nodes into rendered React chunks. useFormatter:relativeTime,list,dateTimeRange, and named formats from the configuration bridge to the core nativeIntlformatters.