Ana SayfaPlaygroundShowcaseUygulamaDokümanBlog
    • Englishİngilizce
      EN
    • русскийRusça
      RU
    • 日本語Japonca
      JA
    • françaisFransızca
      FR
    • 한국어Korece
      KO
    • 中文Çince
      ZH
    • españolİspanyolca
      ES
    • DeutschAlmanca
      DE
    • العربيةArapça
      AR
    • italianoİtalyanca
      IT
    • British Englishİngiliz İngilizcesi
      EN-GB
    • portuguêsPortekizce
      PT
    • हिन्दीHintçe
      HI
    • TürkçeTürkçe
      TR
    • polskiLehçe
      PL
    • IndonesiaEndonezce
      ID
    • Tiếng ViệtVietnamca
      VI
    • українськаUkraynaca
      UK
    /
    Çerçeveye göre belgeleri filtrele
    Alt+←
    Neden Intlayer?
    Başla
    Kavram
    • Intlayer Nasıl Çalışır
    • Yapılandırma
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Görsel Editör
    • CMS
    • CI/CD Entegrasyonu
    • ÇeviriÇoğulNumaralandırmaKoşulCinsiyetEklemeDosyaİç İçe GeçmeMarkdownHTMLFonksiyon Getirme
    • Yerel Dosya
    • Derleyici
    • Otomatik Doldurma
    • Test
    • Paket Optimizasyonu
    Ortam
    • Next.js 14 ve Uygulama Yönlendirici
      Next.js 15
      Next.js locale’siz URL
      Next.js ve Sayfa Yönlendirici
      Derleyici
    • Tanstack Start Solid
    • Astro ve React
      Astro ve Svelte
      Astro ve Vue
      Astro ve Solid
      Astro ve Preact
      Astro ve Lit
      Astro ve Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt ve Vue
    • Vite ve Solid
    • SvelteKit
    • Vite ve Preact
    • Vite ve Vanilla JS
    • Vite ve Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native ve Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx ve React
    Plugins
    • JSON
    • gettext (.po)
    VS Code Uzantısı
    Aracı
    • MCP Sunucusu
    • Aracı becerileri
    Sürümler
    • v8
    • v7
    • v6
    Karşılaştırma
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Blog
    Bir soru sor
    1. Documentation
    2. Sürümler
    3. v7
    Oluşturma:2025-09-22Son güncelleme:2025-09-23
    Bu dokümanı favori AI asistanınıza referans verin
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Sorunuzu sorun ve bu sayfaya ve seçtiğiniz AI sağlayıcısına referans vererek belgenin bir özetini alın

    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üleyin
    Bu dokümanı düzenle

    Bu dokümantasyonu geliştirmek için bir fikriniz varsa, lütfen GitHub'da bir çekme isteği göndererek katkıda bulunmaktan çekinmeyin.

    Dokümantasyon için GitHub bağlantısı
    Kopyala

    Belge Markdown'ını panoya kopyala

    Yeni Intlayer v7 - Yenilikler Neler?

    Intlayer v7'ye hoş geldiniz! Bu büyük sürüm, performans, tür güvenliği ve geliştirici deneyiminde önemli iyileştirmeler sunuyor. Aşağıda, geçiş notları ve pratik örneklerle birlikte öne çıkanlar yer almaktadır.

    Öne Çıkanlar

    • Daha hızlı derlemeler için önbellekleme stratejisi
    • Yerel dil türlerine göre geliştirilmiş TypeScript türü oluşturma
    • Paket optimizasyonu: Enum yerine string olarak yereller
    • Yeni yönlendirme modları: prefix-no-default, prefix-all, no-prefix, search-params
    • GDPR uyumlu yerel depolama, varsayılan olarak localStorage kullanımı
    • Esnek depolama yapılandırması: çerezler, localStorage, sessionStorage veya birden fazla
    • Görsel Düzenleyici paket boyutunda %30 küçülme
    • Geliştirilmiş ara katman (middleware) yapılandırma seçenekleri
    • Daha iyi içerik yönetimi için güncellenmiş fill komutu davranışı
    • Tam içerik beyan dosyası güncellemeleri ile artırılmış kararlılık
    • Çeviri doğruluğu için akıllı yeniden deneme yönetimi
    • Daha hızlı çeviri işlemi için paralelleştirme
    • AI bağlam sınırları içinde büyük dosyaları yönetmek için akıllı parçalara ayırma

    Performans: Daha hızlı derlemeler için önbellekleme

    Her derlemede esbuild ile içerik beyanlarını yeniden oluşturmak yerine, v7 derleme sürecini hızlandıran bir önbellekleme stratejisi uygular.

    bash
    Kodu kopyala

    Kodu panoya kopyala

    npx intlayer build

    Yeni önbellekleme sistemi:

    • Derlenmiş içerik beyanlarını saklayarak gereksiz işlemleri önler
    • Değişiklikleri algılar ve sadece değiştirilmiş dosyaları yeniden oluşturur
    • Büyük projelerde derleme sürelerini önemli ölçüde azaltır

    TypeScript: Yerel dil bazlı tür oluşturma

    TypeScript türleri artık her yerel dil için ayrı ayrı oluşturulmakta, böylece daha güçlü türlendirme sağlanmakta ve tüm yereller arasında birleşik türler ortadan kaldırılmaktadır.

    v6 davranışı:

    tsx
    Kodu kopyala

    Kodu panoya kopyala

    const content = getIntlayer("my-title-content", "en");// typeof content = { title: "My title" } | { title: "Mon titre" } | { title: "Mi título" }

    v7 davranışı:

    tsx
    Kodu kopyala

    Kodu panoya kopyala

    const content = getIntlayer("my-title-content", "en");// typeof content = { title: "Başlığım" }

    Faydalar:

    • IDE'nizde daha hassas otomatik tamamlama
    • Yereller arası tür kirliliği olmadan daha iyi tür güvenliği
    • Tür karmaşıklığını azaltarak geliştirilmiş performans

    Paket optimizasyonu: Yereller string olarak

    Locales türü artık bir enum değil, bu da tamamen tree-shakeable olduğu ve binlerce kullanılmayan yerel kayıtla paketinizin şişmesini engellediği anlamına gelir.

    v6:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    import { Locales } from "intlayer";// Tüm yerelleri içeren enum -> tree-shakeable değilconst locale: Locales = Locales.ENGLISH;

    v7:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    import { Locales, Locale } from "intlayer";// String türü -> tamamen tree-shakeableconst locale: Locale = Locales.ENGLISH;
    Çünkü Locales artık bir enum değil, yerel türü olarak almak için türü Locales'den Locale'a değiştirmeniz gerekecek.

    Daha fazla bilgi için uygulama detaylarına bakınız.


    Daha fazla esneklik için yeni yönlendirme modları

    v7, önceki prefixDefault ve noPrefix seçeneklerinin yerini alan birleşik bir routing.mode yapılandırması sunar ve URL yapısı üzerinde daha ayrıntılı kontrol sağlar.

    Mevcut yönlendirme modları

    • prefix-no-default (varsayılan): Varsayılan yerel için önek yok, diğer yerellerde var
      • /dashboard (en) veya /fr/dashboard (fr)
    • prefix-all: Tüm yerellerde önek var
      • /en/dashboard (en) veya /fr/dashboard (fr)
    • no-prefix: URL'lerde yerel önek yok (yerel ayar depolama/başlıklar aracılığıyla yönetilir)
      • Tüm yereller için /dashboard
    • search-params: Yerel ayar sorgu parametresi olarak iletilir
      • /dashboard?locale=en veya /dashboard?locale=fr

    Temel yapılandırma

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    // intlayer.config.tsexport default {  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "prefix-no-default", // varsayılan  },};

    GDPR uyumluluğu: localStorage / çerez depolama

    v7, kullanıcı gizliliğini ön planda tutarak varsayılan depolama mekanizması olarak çerezler yerine localStorage kullanır. Bu değişiklik, yerel tercihleri için çerez onayı gereksinimini ortadan kaldırarak GDPR uyumluluğuna yardımcı olur.

    Depolama yapılandırma seçenekleri

    Yeni routing.storage alanı, önceki middleware.cookieName ve middleware.serverSetCookie seçeneklerine ek olarak kullanılabilir durumdadır ve esnek depolama yapılandırmaları sunar:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    // Depolamayı devre dışı bırakstorage: false// Basit depolama türleristorage: 'cookie'storage: 'localStorage'storage: 'sessionStorage'// Özel özelliklere sahip çerezstorage: {  type: 'cookie',  name: 'custom-locale',  domain: '.example.com',  secure: true,  sameSite: 'strict'}// Özel anahtarla localStoragestorage: {  type: 'localStorage',  name: 'custom-locale'}// Yedeklilik için birden fazla depolama türüstorage: ['cookie', 'localStorage']

    GDPR uyumlu yapılandırma örneği

    Fonksiyonellik ile GDPR uyumluluğunu dengelemek zorunda olan üretim uygulamaları için:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    // intlayer.config.tsexport default {  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "prefix-no-default",    storage: [      {        type: "localStorage", // Birincil depolama (izin gerekmez)        name: "user-locale",      },      {        type: "cookie", // Opsiyonel çerez depolama (izin gerektirir)        name: "user-locale",        secure: true,        sameSite: "strict",        httpOnly: false,      },    ],  },};

    Çerez depolamasını etkinleştirme / devre dışı bırakma

    React / Next.js kullanarak örnek:

    Genel olarak tanımlanabilir:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    <IntlayerProvider isCookieEnabled={false}>  <App /></IntlayerProvider>

    Her hook için yerel olarak geçersiz kılınabilir:

    ts
    Kodu kopyala

    Kodu panoya kopyala

    const { setLocale } = useLocale({ isCookieEnabled: false });setLocale("en");

    Not: Çerezler varsayılan olarak etkinleştirilmiştir. Not: Özel kullanım durumunuz için GDPR çerez gereksinimlerini kontrol edin.


    Görsel Düzenleyici: %30 daha küçük paket

    Görsel Düzenleyici paketi, önceki sürüme göre %30 daha küçük olacak şekilde optimize edilmiştir, bunun sebepleri:

    • Kod düzenleyici performans iyileştirmeleri
    • Intlayer çekirdek paketlerine olan gereksiz bağımlılıkların kaldırılması
    • Daha iyi tree-shaking ve modül paketleme

    Bu, uygulamanız için daha hızlı indirme süreleri ve geliştirilmiş çalışma zamanı performansı sağlar.


    Fill komutu: Daha iyi içerik yönetimi için güncellenmiş davranış

    v7, fill komutu için daha öngörülebilir ve esnek içerik yönetimi sağlayan geliştirilmiş bir davranış sunar:

    Yeni fill davranışı

    • fill: true - Tüm yereller için doldurulmuş içerikle mevcut dosyayı yeniden yazar
    • fill: "path/to/file" - Mevcut dosyayı değiştirmeden belirtilen dosyayı doldurur
    • fill: false - Otomatik doldurmayı tamamen devre dışı bırakır

    Karmaşık içerik yapıları için geliştirilmiş destek

    Fill komutu artık aşağıdakiler dahil karmaşık içerik beyanı yapılarını desteklemektedir:

    • Bileşik nesneler: Diğer nesnelere referans veren içerik beyanları
    • Yapı bozma (destructuring) içeriği: Yapı bozma desenleri kullanan içerik
    • İç içe referanslar: Karmaşık hiyerarşilerde birbirini çağıran nesneler
    • Dinamik içerik yapıları: Koşullu veya hesaplanmış özelliklere sahip içerik

    Faydalar

    • Daha net niyet: Davranış artık neyin değiştirildiği konusunda daha açık
    • Daha iyi ayrım: İçerik dosyaları, doldurulmuş çevirilerden ayrı tutulabilir
    • Geliştirilmiş iş akışı: Geliştiriciler, çevirilerin nerede saklanacağı üzerinde daha fazla kontrole sahiptir
    • Karmaşık yapı desteği: Birbirine bağlı birden fazla nesne içeren karmaşık içerik mimarilerini yönetir

    Örnek kullanım

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    // Mevcut dosyayı tüm yerellerle yeniden yazconst content = {  key: "example",  fill: true, // Bu dosyayı yeniden yazar  content: {    title: "Hello World",  },};// Mevcut dosyayı değiştirmeden ayrı dosyayı doldurconst content = {  key: "example",  fill: "./translations.json", // translations.json dosyasını oluşturur/günceller  content: {    title: "Hello World",  },};// Otomatik doldurmayı devre dışı bırakconst content = {  key: "example",  fill: false, // Otomatik doldurma yok  content: {    title: "Merhaba Dünya",  },};// Bileşik nesnelerle karmaşık içerik yapısıconst sharedContent = {  buttons: {    save: "Kaydet",    cancel: "İptal",  },};const content = {  key: "karmaşık-örnek",  fill: true,  content: {    // Diğer nesnelere referanslar    sharedContent,    // Yapılandırılmış içerik    ...sharedContent,    // İç içe referanslar    sections: [      {        ...sharedContent.buttons,        header: "Bölüm 1",      },    ],  },};

    Geliştirilmiş kararlılık ve çeviri yönetimi

    v7, içerik çevirisini daha güvenilir ve verimli hale getirmek için birkaç iyileştirme sunar:

    Tam içerik beyan dosyası güncellemeleri

    Sistem artık kısmi güncellemeler yerine .content.{ts,js,cjs,mjs} dosyalarını günceller, böylece şunları sağlar:

    • Veri bütünlüğü: Tam dosya yeniden yazımları, içeriğin bozulmasına yol açabilecek kısmi güncellemeleri engeller
    • Tutarlılık: Tüm yereller atomik olarak güncellenir, senkronizasyon korunur
    • Güvenilirlik: Eksik veya hatalı içerik dosyası riskini azaltır

    Akıllı yeniden deneme yönetimi

    Yeni yeniden deneme mekanizmaları, içeriğin yanlış formatlarda gönderilmesini önler ve bir isteğin başarısız olması durumunda tüm doldurma sürecinin kırılmasını engeller.

    Daha hızlı işlem için paralelleştirme

    Çeviri işlemleri artık paralel çalıştırılmak üzere bir kuyruğa alınır. Bu, süreci önemli ölçüde hızlandırır.

    Büyük dosyalar için akıllı parçalara ayırma

    Gelişmiş parçalara ayırma stratejileri, AI bağlam pencerelerini aşmadan büyük içerik dosyalarını yönetir:

    Örnek iş akışı

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    // Büyük içerik dosyası otomatik olarak parçalara ayrılırconst content = {  key: "large-documentation",  fill: true,  content: {    // AI işleme için büyük içerik otomatik olarak parçalara ayrılır    introduction: "..." // 5000+ karakter    sections: [      // Birden çok büyük bölüm    ]  }};

    Sistem otomatik olarak:

    1. İçerik boyutunu ve yapısını analiz eder
    2. İçeriği uygun şekilde parçalara böler
    3. Parçaları paralel olarak işler
    4. Gerekirse doğrulama yapar ve yeniden dener
    5. Tam dosyayı yeniden oluşturur

    v6'dan geçiş notları

    Kaldırılan yapılandırmalar

    • middleware.cookieName: routing.storage ile değiştirildi
    • middleware.serverSetCookie: routing.storage ile değiştirildi
    • middleware.prefixDefault: routing.mode ile değiştirildi
    • middleware.noPrefix: routing.mode ile değiştirildi

    Geçiş eşlemesi

    Konfigürasyon eşlemesi

    Tüm tablo içeriğini göster

    Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın

    v6 Konfigürasyonu v7 Konfigürasyonu
    autoFill: xxx fill: xxx
    prefixDefault: false mode: 'prefix-no-default'
    prefixDefault: true mode: 'prefix-all'
    noPrefix: true mode: 'no-prefix'
    cookieName: 'my-locale' storage: { type: 'cookie', name: 'my-locale' }
    serverSetCookie: 'never' storage: false veya storage dizisinden cookie kaldırın

    Örnek geçiş

    Önce (v6):

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    export default {  middleware: {    headerName: "x-intlayer-locale",    cookieName: "intlayer-locale",    prefixDefault: false,    basePath: "",    serverSetCookie: "always",    noPrefix: false,  },};

    Sonra (v7):

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    export default {  routing: {    mode: "prefix-no-default",    storage: "localStorage", // veya çerez depolama gerekiyorsa 'cookie'    headerName: "x-intlayer-locale",    basePath: "",  },};

    Sözlük içerik eşlemesi

    Tüm tablo içeriğini göster

    Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın

    v6 Sözlük içeriği v7 Sözlük içeriği
    autoFill: xxx fill: xxx

    Örnek geçiş

    Önce (v6):

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    const content = {  key: "example",  autoFill: true, // Bu dosyayı yeniden yazar  content: {    title: "Merhaba Dünya",  },};

    Sonrası (v7):

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    const content = {  key: "example",  fill: true, // Bu dosyayı yeniden yazar  content: {    title: "Merhaba Dünya",  },};

    v5'ten v6'ya Geçiş Notları

    Daha fazla bilgi için v5'ten v6'ya geçiş notlarını kontrol edin.


    Faydalı bağlantılar

    • Yapılandırma Referansı
    • Middleware Dokümantasyonu
    • TypeScript Türleri
    • GDPR Çerez Rehberi
    v8
    v6
    Alt+→

    Bu sayfada

      Tartışmalar anonimdir ve yaygın sorunları ele almak için düzenli olarak incelenir. Özellik fikirleri, belgeleme hakkında geri bildirimler veya Intlayer ile ilgili herhangi bir şeyi paylaşmaktan çekinmeyin, bu girdileri yol haritamızı şekillendirmek ve ürünü geliştirmek için kullanıyoruz.

      npx intlayer build
      const content = getIntlayer("my-title-content", "en");// typeof content = { title: "My title" } | { title: "Mon titre" } | { title: "Mi título" }
      const content = getIntlayer("my-title-content", "en");// typeof content = { title: "Başlığım" }
      import { Locales } from "intlayer";// Tüm yerelleri içeren enum -> tree-shakeable değilconst locale: Locales = Locales.ENGLISH;
      import { Locales, Locale } from "intlayer";// String türü -> tamamen tree-shakeableconst locale: Locale = Locales.ENGLISH;
      // intlayer.config.tsexport default {  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "prefix-no-default", // varsayılan  },};
      // Depolamayı devre dışı bırakstorage: false// Basit depolama türleristorage: 'cookie'storage: 'localStorage'storage: 'sessionStorage'// Özel özelliklere sahip çerezstorage: {  type: 'cookie',  name: 'custom-locale',  domain: '.example.com',  secure: true,  sameSite: 'strict'}// Özel anahtarla localStoragestorage: {  type: 'localStorage',  name: 'custom-locale'}// Yedeklilik için birden fazla depolama türüstorage: ['cookie', 'localStorage']
      // intlayer.config.tsexport default {  internationalization: {    locales: ["en", "fr", "es"],    defaultLocale: "en",  },  routing: {    mode: "prefix-no-default",    storage: [      {        type: "localStorage", // Birincil depolama (izin gerekmez)        name: "user-locale",      },      {        type: "cookie", // Opsiyonel çerez depolama (izin gerektirir)        name: "user-locale",        secure: true,        sameSite: "strict",        httpOnly: false,      },    ],  },};
      <IntlayerProvider isCookieEnabled={false}>  <App /></IntlayerProvider>
      const { setLocale } = useLocale({ isCookieEnabled: false });setLocale("en");
      // Mevcut dosyayı tüm yerellerle yeniden yazconst content = {  key: "example",  fill: true, // Bu dosyayı yeniden yazar  content: {    title: "Hello World",  },};// Mevcut dosyayı değiştirmeden ayrı dosyayı doldurconst content = {  key: "example",  fill: "./translations.json", // translations.json dosyasını oluşturur/günceller  content: {    title: "Hello World",  },};// Otomatik doldurmayı devre dışı bırakconst content = {  key: "example",  fill: false, // Otomatik doldurma yok  content: {    title: "Merhaba Dünya",  },};// Bileşik nesnelerle karmaşık içerik yapısıconst sharedContent = {  buttons: {    save: "Kaydet",    cancel: "İptal",  },};const content = {  key: "karmaşık-örnek",  fill: true,  content: {    // Diğer nesnelere referanslar    sharedContent,    // Yapılandırılmış içerik    ...sharedContent,    // İç içe referanslar    sections: [      {        ...sharedContent.buttons,        header: "Bölüm 1",      },    ],  },};
      // Büyük içerik dosyası otomatik olarak parçalara ayrılırconst content = {  key: "large-documentation",  fill: true,  content: {    // AI işleme için büyük içerik otomatik olarak parçalara ayrılır    introduction: "..." // 5000+ karakter    sections: [      // Birden çok büyük bölüm    ]  }};
      export default {  middleware: {    headerName: "x-intlayer-locale",    cookieName: "intlayer-locale",    prefixDefault: false,    basePath: "",    serverSetCookie: "always",    noPrefix: false,  },};
      export default {  routing: {    mode: "prefix-no-default",    storage: "localStorage", // veya çerez depolama gerekiyorsa 'cookie'    headerName: "x-intlayer-locale",    basePath: "",  },};
      const content = {  key: "example",  autoFill: true, // Bu dosyayı yeniden yazar  content: {    title: "Merhaba Dünya",  },};
      const content = {  key: "example",  fill: true, // Bu dosyayı yeniden yazar  content: {    title: "Merhaba Dünya",  },};