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
- "configOptions tek bir seçenek nesnesinde birleştirildi; proxy intlayer() içine dahil edildi"v9.0.025.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
intlayerProxy
intlayerProxy, her ortam için dil yönlendirme ara yazılımını (middleware) kaydeden bir Vite eklentisidir: geliştirme sunucusu (dev server), önizleme sunucusu (preview server) ve üretim SSR (Nitro / TanStack Start).
Intlayer v9'dan beriintlayerProxy, anaintlayer()eklentisine otomatik olarak dahil edilir verouting.enableProxy: truearacılığıyla varsayılan olarak etkinleştirilir. Yalnızca daha düşük seviyeli kontrole ihtiyacınız olduğunda veya bunu standartintlayer()kurulumunun dışında kullandığınızda ayrıca kaydetmeniz gerekir.
Kullanım
intlayer() Eklentisinin Parçası Olarak (Önerilen, v9+)
intlayerProxy'yi ayrıca kaydetmek yerine ana eklentiye proxy seçeneklerini iletin:
Kodu panoya kopyala
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [ intlayer({ proxy: { ignore: (req) => req.url?.startsWith("/api"), }, }), ],});Bağımsız (Standalone - gerektiğinde)
Kodu panoya kopyala
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [intlayer()],});Seçenekler
Kodu panoya kopyala
import type { IntlayerProxyPluginOptions } from "vite-intlayer";Tüm seçenekler isteğe bağlıdır ve tek bir nesne olarak iletilir:
Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın
| Seçenek | Tür | Açıklama |
|---|---|---|
ignore | (req: IncomingMessage) => boolean | İstekleri dil yönlendirmesinden hariç tutan yüklem (predicate). Bir isteği atlamak için true döndürün (örneğin API yolları, sağlık kontrolleri). |
configOptions | GetConfigurationOptions | getConfiguration() işlevine iletilen Intlayer yapılandırma geçersiz kılmaları. Proxy'nin belirli bir yapılandırma dosyasını okumasını veya değerleri geçersiz kılmasını istediğinizde kullanın. |
Örnek
Kodu panoya kopyala
intlayerProxy({ ignore: (req) => req.url?.startsWith("/api"), configOptions: { configFile: "./config/intlayer.config.ts" },});createIntlayerProxyHandler
createIntlayerProxyHandler, tüm dil yönlendirme mantığını içeren bağımsız, framework'ten bağımsız bir Node.js (req, res, next) ara yazılımı oluşturur. Vite eklenti API'sinin kullanılamadığı ortamlarda (örneğin düz bir Node.js sunucusu veya özel bir Nitro modülü) yararlıdır.
Kodu panoya kopyala
import { createIntlayerProxyHandler } from "vite-intlayer";const handler = createIntlayerProxyHandler({ ignore: (req) => req.url?.startsWith("/api"), configOptions: { configFile: "./config/intlayer.config.ts" },});// Express / Connectapp.use(handler);Üretim SSR (TanStack Start / h3 aracılığıyla Nitro)
Kodu panoya kopyala
// server/middleware/intlayerProxy.tsimport { fromNodeMiddleware } from "h3";import { createIntlayerProxyHandler } from "vite-intlayer";export default fromNodeMiddleware( createIntlayerProxyHandler({ ignore: (req) => req.url?.startsWith("/api"), }));Yönlendirme Davranışı
Ara yazılım, next-intlayer ara yazılımının yönlendirme mantığını yansıtır ve tüm Intlayer yönlendirme modlarını destekler.
Yönlendirme Modları
Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın
| Mod | Tarayıcıda görünen URL | Davranış |
|---|---|---|
prefix | /tr/about | Varsayılan. URL'deki dil öneki. Varsayılan dil, prefix-all etkin olmadığı sürece öneksiz URL'ye yönlendirir. |
prefix-all | /en/about, /tr/about | Varsayılan dil dahil tüm diller her zaman öneklidir. |
no-prefix | /about | URL'de dil yok. Dil yalnızca çerezlerde saklanır; URL yeniden yazımları dahili olarak gerçekleşir. |
search-params | /about?locale=tr | Dil, bir sorgu parametresi (query parameter) olarak iletilir. Eksik veya güncel olmadığında locale parametresini eklemek/güncellemek için yönlendirir. |
Algılama Önceliği
- URL yolu öneki (örneğin
/tr/about→tr). - Çerez / localStorage değeri (
intlayer-locale). Accept-Languageüstbilgisi (header).- Yapılandırmadaki
defaultLocale.
Otomatik Atlatma (Bypass)
Ara yazılım, bu istekleri dil işlemi yapmadan her zaman doğrudan iletir:
ignoreyüklemiyle eşleşen istekler./node_modules/**/@**– Vite dahili bileşenleri (@vite/,@fs/,@id/vb.)./_**– sunucu dahili bileşenleri (__vite_ping,__manifestvb.).- Yolu bir dosya uzantısıyla biten istekler (statische assets). Statik bir varlık yolunda bir dil öneki varsa (örneğin
/tr/logo.png), dosyanın doğru şekilde sunulabilmesi için bu önek kaldırılır.
Alan Adı Yönlendirmesi (Domain Routing)
Intlayer yapılandırmanızda routing.domains yapılandırıldığında, ara yazılım alan adları arası dil yönlendirmesini yönetir:
domains.zh = "intlayer.zh"olduğunda,intlayer.orgüzerindeki/zh/aboutisteğihttps://intlayer.zh/aboutadresine yönlendirilir.intlayer.zh/aboutisteği,[locale]rota parametresinin doldurulması için dahili olarak/zh/aboutşeklinde yeniden yazılır.
Yönlendirme Döngüsü Koruması (Redirect Loop Protection)
Ara yazılım, 2 saniyelik kayan bir pencere içinde originalUrl → newUrl çifti başına yönlendirme sayılarını izler. Bu pencere içinde 10'dan fazla yönlendirme, sonsuza kadar döngüye girmek yerine açıklayıcı bir hata ile birlikte 500 yanıtı döndürür.
Nitro / Üretim SSR (Otomatik Enjeksiyon, v9+)
intlayerProxy bir Vite eklentisi olarak kullanıldığında, bir .nitro özelliği taşır. nitro/vite derleme eklentisi bu özelliği okur ve nitroConfig.modules içine ekler, böylece intlayerNitroHandler otomatik olarak bir Nitro sunucu ara yazılımı olarak kaydedilir — üretim SSR için manuel yapılandırma gerekmez.
Nitro işleyicisi (handler), h3 v2'nin Web Fetch API olay modelini kullanır (fromNodeMiddleware değil), bu nedenle tüm Nitro şablonlarıyla (Node, Bun, Deno, edge runtimes) uyumludur.
Kullanımdan Kaldırılan Takma Adlar (Deprecated)
Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın
| Kullanımdan kaldırılan dışa aktarım | Değişiklik |
|---|---|
intlayerMiddleware | intlayerProxy |
intLayerMiddlewarePlugin | intlayerProxy |